[Armadillo:06916] Re: Armadillo-440 USBOTGについて

mmorikawa email@hidden
2011年 3月 24日 (木) 09:59:00 JST


森川です。

情報提供ありがとうございます。
お手数おかけしました。


(2011/03/23 18:40), nakai wrote:
> nakaiです。
> 
> お客様よりパッチをご提供いただけましたので、本文下部に貼り付けます。
> 
> あくまで参考情報ですので、動作を保証するものではありません。
> また、下記の情報では、ハードウェアを改造していますので、ご注意ください。
> 
> 
> 環境やソフトウェアのバージョンなどにつきましては、以下を参照してください。
> 
> 
> ● ハードウェア
> Armadillo-400のCON5(USB)の1・5番ピンとCON13の2番ピンを接続
> 電源はUSB Vbusのみとするため、ACアダプタは接続しない
> 
> ※ Host側から電源(Vbus)を供給されている状態でACアダプタを接続すると、
>     Host側のハードウェアやArmadilloが故障する恐れがあります
> 
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_hardware_manual_ja-1.4.0/ch05.html#sec-con5-con6-usb-iface
> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_hardware_manual_ja-1.4.0/ch05.html#sec-con12-con13-power-in-connector
> 
> ● ソフトウェア
>      linux-2.6.35-at-alpha1
> 
> http://armadillo.atmark-techno.com/dev/linux-2.6.35-at-alpha1-release
> 
> ● ファイルの更新(kernelにパッチをあてる)
>      drivers/usb/gadget/Kconfig
>      arch/arm/plat-mxc/usb_common.c
> 
> ● カーネルコンフィグレーション
>      make menuconfig
> 
>      [*] USB support --->
>          <  >  Supprt for Host-side USB
>          <  >  EHCI HCD (USB2.0) support
>          [ ]   Support for Freescale controller
>          [ ]     Support for DR host port on Freescale controller
>              Select transceiver for DR port --->
>                ( ) Internal UTMI
>          <*>  USB Gadget Support --->
>                    USB Peripheral Controller (Freescale USB Device Controller) --->
>                       (X) Freescale USB Device Controller
>                [*]    Apply static IRAN patch
>                [*} Peripheral Only but OTG
> 
>              *** OTG and related infrastructure ***
>          <  >  GPIO based peripheral-only VBUS sensing 'transceiver'
>          [ ] Generic ULPI Transceiver Driver
>          <  >  NOP USB Transceiver Driver
> 
> ※ gadgetドライバは含まれていないので、適切なものを選択してください
>     以下、File-backed Storage Gadgetの場合です
>          <M>    USB Gadget Drivers
>          <M>      File-backed Storage Gadget
> 
> 
> ● 参考リンク
> http://www.linux-usb.org/gadget/
> http://www.linux-usb.org/gadget/file_storage.html
> 
> ---
>   arch/arm/plat-mxc/usb_common.c |   11 +++++++++++
>   drivers/usb/gadget/Kconfig     |    7 +++++++
>   2 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/plat-mxc/usb_common.c b/arch/arm/plat-mxc/usb_common.c
> index 76c1fcd..b4e0d45 100644
> --- a/arch/arm/plat-mxc/usb_common.c
> +++ b/arch/arm/plat-mxc/usb_common.c
> @@ -735,6 +735,10 @@ static void otg_set_utmi_xcvr(void)
> 
>   	USBCTRL&= ~UCTRL_OWIE;	/* OTG Wakeup Intr Disable */
> 
> +#if defined(CONFIG_USB_OTG_PERIPHERAL_ONLY)
> +	UOG_OTGSC |= OTGSC_CTRL_VBUS_CHARGE;	/* the VBUS line to be charged */
> +#endif
> +
>   	/* set UTMI xcvr */
>   	tmp = UOG_PORTSC1&  ~PORTSC_PTS_MASK;
>   	tmp |= PORTSC_PTS_UTMI;
> @@ -813,6 +817,13 @@ int usbotg_init(struct platform_device *pdev)
> 
>   	if (fsl_check_usbclk() != 0)
>   		return -EINVAL;
> +
> +#if defined(CONFIG_USB_OTG_PERIPHERAL_ONLY)
> +	UOG_OTGSC |= OTGSC_CTRL_OTG_TERM;	/* must be set when the OTG devices */
> +	UOG_OTGSC&=~OTGSC_CTRL_USB_ID_PU;	/* the ID input will not be sampled */
> +	USB_OTG_MIRROR |= OTGM_IDIDG;		/* it operates as B-device */
> +#endif
> +
>   	if (!mxc_otg_used) {
>   		if (cpu_is_mx50())
>   			/* Turn on AHB CLK for OTG*/
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index cc5f056..d53ca9a 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -587,6 +587,13 @@ config USB_OTG
> 
>   	   Select this only if your OMAP board has a Mini-AB connector.
> 
> +config USB_OTG_PERIPHERAL_ONLY
> +	boolean "Peripheral Only but OTG"
> +	depends on MACH_ARMADILLO420 || MACH_ARMADILLO440
> +	help
> +	  You can use Armadillo for USB Gadget.
> +	  Armadillo-4x0 has the A-plug only.
> +
>   #
>   # USB Gadget Drivers
>   #
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内