usb clock not found on imx27 when using dt

trem tremyfr at yahoo.fr
Tue Nov 13 15:43:20 EST 2012


On 13/11/12 08:38, s.hauer at pengutronix.de wrote:
>>> Please investigate in using the chipidea driver. This will be the way
>>> forward for i.MX.
>>
>> I use the chipidea driver for the usb.
>>
>> The main issue is that the chipidea driver don't found the clock :
>>
>> [    0.761693] imx_usb mxc-ehci.0: Failed to get clock, err=-2
>> [    0.767620] imx_usb: probe of mxc-ehci.0 failed with error -2
>>
>> The driver ci13xxx_imx request the clock in the probe function
>> in the following line:
>> data->clk = devm_clk_get(&pdev->dev, NULL);
>> calling: clk = clk_get(dev, id);
>> calling: clk_get_sys(dev_id, con_id);
>> calling: clk_find(dev_id, con_id);
>> with dev_id = mxc-ehci.0 and con_id = NULL
>> This last function fail to found a clock.
>>
>> In the function mx27_clocks_init, several mxc-ehci.0
>> clocks are registered, but all with a con_id.
>>
>> So the function clk_find fails.
>>
>> As I'm not really sure of the dts, I don't know if the problem
>> is in the dts or in the driver (maybe both).
>
> You have to register the lookups for the chipidea driver with
> clk_register_clkdev(). The lookups are only what the name suggests:
> lookups. They are no clocks by themselves. This means that you have to
> add another lookup which matches the device name.

Thanks for this help, I've added three "clocks" for the chipidea driver :
clk_register_clkdev(clk[usb_div], NULL, "mxc-ehci.0");

And I don't have the missing clock issue, but a kernel panic :

[    0.679565] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.687807] usbcore: registered new interface driver cdc_acm
[    0.693503] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    0.702506] usbcore: registered new interface driver usblp
[    0.708292] Initializing USB Mass Storage driver...
[    0.713885] usbcore: registered new interface driver usb-storage
[    0.720190] USB Mass Storage support registered.
[    0.726361] usbcore: registered new interface driver usbserial
[    0.732984] usbcore: registered new interface driver ftdi_sio
[    0.739510] usbserial: USB Serial support registered for FTDI USB Serial Device
[    0.747708] usbcore: registered new interface driver pl2303
[    0.754044] usbserial: USB Serial support registered for pl2303
[    0.762611] Unhandled fault: external abort on non-linefetch (0x008) at 0xf4424100
[    0.770227] Internal error: : 8 [#1] PREEMPT ARM
[    0.774861] Modules linked in:
[    0.777950] CPU: 0    Not tainted  (3.7.0-rc5-ge917a67 #2)
[    0.783469] PC is at ci_hdrc_probe+0xcc/0x430
[    0.787853] LR is at devm_kzalloc+0x4c/0x64
[    0.792058] pc : [<c03da658>]    lr : [<c023ffa8>]    psr: 60000013
[    0.792058] sp : d3833d98  ip : 40000013  fp : 00000000
[    0.803550] r10: c054db14  r9 : 00000000  r8 : f4424100
[    0.808788] r7 : d398c4e0  r6 : d39b1180  r5 : d39b1190  r4 : d3901010
[    0.815329] r3 : 00000100  r2 : 00000000  r1 : d3901010  r0 : d3901010
[    0.821871] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    0.829194] Control: 0005317f  Table: a0004000  DAC: 00000017
[    0.834954] Process swapper (pid: 1, stack limit = 0xd38321b8)
[    0.840799] Stack: (0xd3833d98 to 0xd3834000)
[    0.845174] 3d80:                                                       d39b1198 00000000
[    0.853384] 3da0: d39b1190 c055ea90 d39b1190 c0545010 c055ea6c c023e574 d39b1190 c023d288
[    0.861592] 3dc0: d39b1190 d3833dd8 c023d4a4 00000000 c055ea6c c023bb68 d380755c d39cdb74
[    0.869798] 3de0: d39cda50 d39b11c4 d39b1190 d39b1190 00000000 c023d588 d39b1190 c05367b0
[    0.878004] 3e00: d39b1190 c023c6a8 d39b1190 d38c99b0 d39b1198 c023b4d0 00000021 00000000
[    0.886210] 3e20: 00000002 c01e9aac d39b1180 d39b1190 d3832000 d39b1180 d39b1190 00000002
[    0.894416] 3e40: d38573a0 00000002 d3832000 c054db14 00000000 c023eb6c d39b1180 00000000
[    0.902622] 3e60: 00000000 d38573a0 00000002 c02b4cb0 ffffffff 00000000 d398c530 d38c99b0
[    0.910828] 3e80: d38c99a0 d398c530 00000000 00000000 ffffffff c03dac80 d38c99b0 c055ea90
[    0.919035] 3ea0: d38c99b0 c0545184 c050a32c 0000007a c051c8b8 c023e574 d38c99b0 c023d288
[    0.927241] 3ec0: d38c99b0 c0545184 d38c99e4 00000000 c050a32c c023d4a0 c0545184 d3833ee8
[    0.935448] 3ee0: c023d414 c023bbf4 d380754c d38c8d50 c0545184 c0545184 c05367b0 d39cda80
[    0.943654] 3f00: 00000000 c023c380 c04a6948 d3832000 c0545184 d3832000 c0545184 c054dc00
[    0.951860] 3f20: 00000000 c023da70 d3832000 00000007 c054dc00 00000000 c050a32c c00087ec
[    0.960065] 3f40: c04a70ec c04db800 00000006 00000006 00000000 c05147fc 00000006 c05147fc
[    0.968269] 3f60: 00000007 c054dc00 c0514808 c04f71ac 0000007a c03d7404 00000006 00000006
[    0.976475] 3f80: c04f71ac 01234567 d3832000 00000000 c03d7314 00000000 00000000 00000000
[    0.984678] 3fa0: 00000000 00000000 00000000 c0014730 00000000 00000000 00000000 00000000
[    0.992881] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    1.001084] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00008000
[    1.009335] [<c03da658>] (ci_hdrc_probe+0xcc/0x430) from [<c023e574>] (platform_drv_probe+0x14/0x18)
[    1.018523] [<c023e574>] (platform_drv_probe+0x14/0x18) from [<c023d288>] (driver_probe_device+0x80/0x20c)
[    1.028221] [<c023d288>] (driver_probe_device+0x80/0x20c) from [<c023bb68>] (bus_for_each_drv+0x64/0x8c)
[    1.037746] [<c023bb68>] (bus_for_each_drv+0x64/0x8c) from [<c023d588>] (device_attach+0x80/0x98)
[    1.046660] [<c023d588>] (device_attach+0x80/0x98) from [<c023c6a8>] (bus_probe_device+0x84/0xac)
[    1.055570] [<c023c6a8>] (bus_probe_device+0x84/0xac) from [<c023b4d0>] (device_add+0x534/0x604)
[    1.064392] [<c023b4d0>] (device_add+0x534/0x604) from [<c023eb6c>] (platform_device_add+0x134/0x20c)
[    1.073667] [<c023eb6c>] (platform_device_add+0x134/0x20c) from [<c02b4cb0>] (ci13xxx_add_device+0xd8/0x110)
[    1.083543] [<c02b4cb0>] (ci13xxx_add_device+0xd8/0x110) from [<c03dac80>] (ci13xxx_imx_probe+0x250/0x304)
[    1.093246] [<c03dac80>] (ci13xxx_imx_probe+0x250/0x304) from [<c023e574>] (platform_drv_probe+0x14/0x18)
[    1.102860] [<c023e574>] (platform_drv_probe+0x14/0x18) from [<c023d288>] (driver_probe_device+0x80/0x20c)
[    1.112557] [<c023d288>] (driver_probe_device+0x80/0x20c) from [<c023d4a0>] (__driver_attach+0x8c/0x90)
[    1.121991] [<c023d4a0>] (__driver_attach+0x8c/0x90) from [<c023bbf4>] (bus_for_each_dev+0x64/0x8c)
[    1.131077] [<c023bbf4>] (bus_for_each_dev+0x64/0x8c) from [<c023c380>] (bus_add_driver+0xa0/0x22c)
[    1.140167] [<c023c380>] (bus_add_driver+0xa0/0x22c) from [<c023da70>] (driver_register+0x78/0x140)
[    1.149253] [<c023da70>] (driver_register+0x78/0x140) from [<c00087ec>] (do_one_initcall+0x30/0x178)
[    1.158438] [<c00087ec>] (do_one_initcall+0x30/0x178) from [<c03d7404>] (kernel_init+0xf0/0x294)
[    1.167277] [<c03d7404>] (kernel_init+0xf0/0x294) from [<c0014730>] (ret_from_fork+0x14/0x24)
[    1.175833] Code: e584800c e5933004 e0888003 e5848010 (e5d83000)
[    1.182012] ---[ end trace f1f4ba6255ab3146 ]---
[    1.187015] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b


Regards,
Philippe




More information about the linux-arm-kernel mailing list