Skip to content

Commit facf47e

Browse files
author
Peter Chen
committed
ARM: dts: imx27.dtsi: change the clock information for usb
For imx27, it needs three clocks to let the controller work, the old code is wrong, and usbmisc has not included clock handling code any more. Without this patch, it will cause below data abort when accessing usbmisc registers. usbcore: registered new interface driver usb-storage Unhandled fault: external abort on non-linefetch (0x008) at 0xf4424600 pgd = c0004000 [f4424600] *pgd=10000452(bad) Internal error: : 8 [#1] PREEMPT ARM Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-next-20150701-dirty raspberrypi#3089 Hardware name: Freescale i.MX27 (Device Tree Support) task: c7832b60 ti: c783e000 task.ti: c783e000 PC is at usbmisc_imx27_init+0x4c/0xbc LR is at usbmisc_imx27_init+0x40/0xbc pc : [<c03cb5c0>] lr : [<c03cb5b4>] psr: 60000093 sp : c783fe08 ip : 00000000 fp : 00000000 r10: c0576434 r9 : 0000009c r8 : c7a773a0 r7 : 01000000 r6 : 60000013 r5 : c7a776f0 r4 : c7a773f0 r3 : f4424600 r2 : 00000000 r1 : 00000001 r0 : 00000001 Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 0005317f Table: a0004000 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xc783e190) Stack: (0xc783fe08 to 0xc7840000) Signed-off-by: Peter Chen <peter.chen@freescale.com> Reported-by: Fabio Estevam <fabio.estevam@freescale.com> Tested-by: Fabio Estevam <fabio.estevam@freescale.com> Cc: <stable@vger.kernel.org> #v4.1+ Acked-by: Shawn Guo <shawnguo@kernel.org>
1 parent ae3e57a commit facf47e

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

arch/arm/boot/dts/imx27.dtsi

+12-4
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,10 @@
486486
compatible = "fsl,imx27-usb";
487487
reg = <0x10024000 0x200>;
488488
interrupts = <56>;
489-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
489+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
490+
<&clks IMX27_CLK_USB_AHB_GATE>,
491+
<&clks IMX27_CLK_USB_DIV>;
492+
clock-names = "ipg", "ahb", "per";
490493
fsl,usbmisc = <&usbmisc 0>;
491494
status = "disabled";
492495
};
@@ -495,7 +498,10 @@
495498
compatible = "fsl,imx27-usb";
496499
reg = <0x10024200 0x200>;
497500
interrupts = <54>;
498-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
501+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
502+
<&clks IMX27_CLK_USB_AHB_GATE>,
503+
<&clks IMX27_CLK_USB_DIV>;
504+
clock-names = "ipg", "ahb", "per";
499505
fsl,usbmisc = <&usbmisc 1>;
500506
dr_mode = "host";
501507
status = "disabled";
@@ -505,7 +511,10 @@
505511
compatible = "fsl,imx27-usb";
506512
reg = <0x10024400 0x200>;
507513
interrupts = <55>;
508-
clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
514+
clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
515+
<&clks IMX27_CLK_USB_AHB_GATE>,
516+
<&clks IMX27_CLK_USB_DIV>;
517+
clock-names = "ipg", "ahb", "per";
509518
fsl,usbmisc = <&usbmisc 2>;
510519
dr_mode = "host";
511520
status = "disabled";
@@ -515,7 +524,6 @@
515524
#index-cells = <1>;
516525
compatible = "fsl,imx27-usbmisc";
517526
reg = <0x10024600 0x200>;
518-
clocks = <&clks IMX27_CLK_USB_AHB_GATE>;
519527
};
520528

521529
sahara2: sahara@10025000 {

0 commit comments

Comments
 (0)