USB OTG support on mx27pdk

Peter Chen Peter.Chen at freescale.com
Tue Apr 15 20:23:54 PDT 2014



 
> Hi,
> 
> I am trying to add USBOTG support to mx27pdk with the following dts patch:
> 
> --- a/arch/arm/boot/dts/imx27-pdk.dts
> +++ b/arch/arm/boot/dts/imx27-pdk.dts
> @@ -78,6 +78,14 @@
>         status = "okay";
>  };
> 
> +&usbotg {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_usbotg>;
> +       dr_mode = "otg";
> +       phy_type = "ulpi";
> +       status = "okay";
> +};
> +
>  &iomuxc {
>         imx27-pdk {
>                 pinctrl_cspi2: cspi2grp { @@ -121,5 +129,22 @@
>                                 MX27_PAD_UART1_RTS__UART1_RTS 0x0
>                         >;
>                 };
> +
> +               pinctrl_usbotg: usbotggrp {
> +                       fsl,pins = <
> +                               MX27_PAD_USBOTG_NXT__USBOTG_NXT 0x0
> +                               MX27_PAD_USBOTG_STP__USBOTG_STP 0x0
> +                               MX27_PAD_USBOTG_DIR__USBOTG_DIR 0x0
> +                               MX27_PAD_USBOTG_CLK__USBOTG_CLK 0x0
> +                               MX27_PAD_USBOTG_DATA0__USBOTG_DATA0 0x0
> +                               MX27_PAD_USBOTG_DATA1__USBOTG_DATA1 0x0
> +                               MX27_PAD_USBOTG_DATA2__USBOTG_DATA2 0x0
> +                               MX27_PAD_USBOTG_DATA3__USBOTG_DATA3 0x0
> +                               MX27_PAD_USBOTG_DATA4__USBOTG_DATA4 0x0
> +                               MX27_PAD_USBOTG_DATA5__USBOTG_DATA5 0x0
> +                               MX27_PAD_USBOTG_DATA6__USBOTG_DATA6 0x0
> +                               MX27_PAD_USBOTG_DATA7__USBOTG_DATA7 0x0
> +                       >;
> +               };
>         };
>  }
> 
> 
> However on kernel boot the following is seen:
> 
> 
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> ehci-mxc: Freescale On-Chip EHCI Host driver
> usbcore: registered new interface driver usb-storage 10024000.usb supply
> vbus not found, using dummy regulator Unhandled fault: external abort on
> non-linefetch (0x808) at 0xf4424184 Internal error: : 808 [#1] PREEMPT
> ARM Modules linked in:
> CPU: 0 PID: 1 Comm: swapper Not tainted 3.15.0-rc1-26325-g971f9fd-dirty
> #64
> task: c7829aa0 ti: c7836000 task.ti: c7836000 PC is at
> ci_hdrc_probe+0x3a4/0x634 LR is at ci_hdrc_probe+0x100/0x634
> pc : [<c036cc78>]    lr : [<c036c9d4>]    psr: 60000013
> sp : c7837d48  ip : 00000001  fp : 00000000
> r10: 00000000  r9 : 00000000  r8 : c791b6c0
> r7 : c7945000  r6 : f4424000  r5 : c7945010  r4 : c794e010
> r3 : f4424184  r2 : 00000000  r1 : 8c000004  r0 : 0c000004
> Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: 0005317f  Table: a0004000  DAC: 00000017 Process swapper (pid: 1,
> stack limit = 0xc78361c0)
> Stack: (0xc7837d48 to 0xc7838000)
> 7d40:                   00000000 c012e294 c7945010 c06f471c c073dc90
> c06f471c
> 7d60: 00000000 c02b9d84 c02b9d6c c7945010 00000000 c02b8874 c02b8a1c
> 00000000
> 7d80: c7945010 c02b8a1c c78bc010 c02b6fcc c7828c7c c7a150d4 c7945010
> c7945044
> 7da0: c7945010 c02b8744 c7945010 c06e6780 c7945010 c02b7e58 c7945010
> 00000000
> 7dc0: c7945018 c02b6440 c7829aa0 c06cd748 c791b6c0 c7945010 00000000
> 00000002
> 7de0: c7945000 c7945010 c7945000 00000002 c7893340 c02b9f28 10024000
> 00000000
> 7e00: 00000000 c7837e34 c7945000 c036d1d4 00000000 00000000 c78bc010
> c78bc000
> 7e20: 00000000 00000091 c7875670 c036e358 c7836000 c78a8aa0 00000100
> 00000000
> 7e40: c7881b90 00000003 0000000a 00000003 00000000 c793b9c0 00000000
> c78bc010
> 7e60: c06f48c4 c073dc90 c06f48c4 c7836000 c06a4aa0 c02b9d84 c02b9d6c
> c78bc010
> 7e80: 00000000 c02b8874 00000000 c78bc010 c06f48c4 c78bc044 00000000
> c02b8a18
> 7ea0: 00000000 c06f48c4 c02b898c c02b7070 c7828c6c c78905b0 c06f48c4
> c7943ee0
> 7ec0: c06e6780 c02b8050 c05ff4b8 c024a414 c06f48c4 c06f48c4 00000006
> c06b21c4
> 7ee0: c0707240 c02b9088 00000000 c06bdd8c 00000006 c0008974 c7866280
> c01236c0
> 7f00: c070f434 c7866280 c04c9900 0000004f 00000000 00000000 00000000
> c01239f4
> 7f20: 60000053 c06cec64 c7ffc890 c04ec5c0 00000091 c0034300 c064db3c
> 00000006
> 7f40: c7ffc897 00000006 c06cec3c c06bdd8c 00000006 c06b21c4 c0707240
> c0679480
> 7f60: 00000091 c06b21d0 00000000 c0679af0 00000006 00000006 c0679480
> ffffffff
> 7f80: c7837f9c c003f8c0 00000000 c04b8dd0 00000000 00000000 00000000
> 00000000
> 7fa0: 00000000 c04b8dd8 00000000 c00095b0 00000000 00000000 00000000
> 00000000
> 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> 00000000
> 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff
> ffffffff [<c036cc78>] (ci_hdrc_probe) from [<c02b9d84>]
> (platform_drv_probe+0x18/0x48) [<c02b9d84>] (platform_drv_probe) from
> [<c02b8874>] (driver_probe_device+0x104/) [<c02b8874>]
> (driver_probe_device) from [<c02b6fcc>] (bus_for_each_drv+0x48/0x9)
> [<c02b6fcc>] (bus_for_each_drv) from [<c02b8744>]
> (device_attach+0x74/0x80) [<c02b8744>] (device_attach) from [<c02b7e58>]
> (bus_probe_device+0x88/0xb0) [<c02b7e58>] (bus_probe_device) from
> [<c02b6440>] (device_add+0x3e0/0x4e4) [<c02b6440>] (device_add) from
> [<c02b9f28>] (platform_device_add+0xac/0x20c) [<c02b9f28>]
> (platform_device_add) from [<c036d1d4>] (ci_hdrc_add_device+0x198/)
> [<c036d1d4>] (ci_hdrc_add_device) from [<c036e358>]
> (ci_hdrc_imx_probe+0x1b4/0x) [<c036e358>] (ci_hdrc_imx_probe) from
> [<c02b9d84>] (platform_drv_probe+0x18/0x4) [<c02b9d84>]
> (platform_drv_probe) from [<c02b8874>] (driver_probe_device+0x104/)
> [<c02b8874>] (driver_probe_device) from [<c02b8a18>]
> (__driver_attach+0x8c/0x90) [<c02b8a18>] (__driver_attach) from
> [<c02b7070>] (bus_for_each_dev+0x5c/0x8c) [<c02b7070>] (bus_for_each_dev)
> from [<c02b8050>] (bus_add_driver+0xd8/0x1d8) [<c02b8050>]
> (bus_add_driver) from [<c02b9088>] (driver_register+0x78/0xf4)
> [<c02b9088>] (driver_register) from [<c0008974>]
> (do_one_initcall+0xf8/0x15c) [<c0008974>] (do_one_initcall) from
> [<c0679af0>] (kernel_init_freeable+0xec/0x1) [<c0679af0>]
> (kernel_init_freeable) from [<c04b8dd8>] (kernel_init+0x8/0xec)
> [<c04b8dd8>] (kernel_init) from [<c00095b0>] (ret_from_fork+0x14/0x24)
> Code: e3520000 1a000003 e3c004d2 e1801001 (e5831000) ---[ end trace
> 4042b4d525025a88 ]--- Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
> 
> ---[ end Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
> 
> 

Please check if below patch is existed 

commit 3b5d3e6845bfe68777d069886b0d1cd5f23b9d58
Author: Chris Ruehl <chris.ruehl at gtsys.com.hk>
Date:   Fri Jan 10 13:51:29 2014 +0800

    usb: chipidea: Fix Internal error: : 808 [#1] ARM related to STS flag
    
    * init the sts flag to 0 (missed)
    * fix write the real bit not sts value
    * Set PORTCS_STS and DEVLC_STS only if sts = 1


I cced chris who has imx27 hardware.

Peter


> Does anyone know if USB otg is functional on any mx27 hardware with 3.15-
> rc1?
> 
> 
> Thanks,
> 
> Fabio Estevam
> 



More information about the linux-arm-kernel mailing list