[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 メーリングリストの案内