Re: [PATCH v4 2/9] usb: isp1760: move to regmap for register access
From: "Rui Miguel Silva" <rui.silva@linaro.org>
Date: 2021-08-20 14:36:25
Also in:
linux-usb
Hey Dietmar, On Fri Aug 20, 2021 at 2:30 PM WEST, Dietmar Eggemann wrote:
Hi Rui, On 13/05/2021 10:47, Rui Miguel Silva wrote:quoted
Rework access to registers and memory to use regmap framework. No change in current feature or way of work is intended with this change. This will allow to reuse this driver with other IP of this family, for example isp1763, with little changes and effort.1da9e1c06873 - usb: isp1760: move to regmap for register access Starting from this patch, our Arm TC2 platform (multi_v7_defconfig, vexpress-v2p-ca15_a7.dts) doesn't boot anymore.
:( sorry about that
We discovered this in our v5.14-rc1 based task scheduler test build. With 1da9e1c06873^1 : # lsusb Bus 001 Device 001: ID 1d6b:0002 <-- NXP ISP1760 USB Host Controller Bus 001 Device 002: ID 0471:3526 Bus 001 Device 003: ID 0781:5591 # dmesg | grep -i isp [ 4.014307] isp1760 1b000000.usb: bus width: 32, oc: digital [ 4.014442] isp1760 1b000000.usb: NXP ISP1760 USB Host Controller [ 4.014715] isp1760 1b000000.usb: new USB bus registered, assigned bus number 1 [ 4.025076] isp1760 1b000000.usb: irq 32, io mem 0x1b000000 [ 4.025288] isp1760 1b000000.usb: USB ISP 1761 HW rev. 1 started
Never managed to get my hands in a board with 1761, I will try to get one of this.
[ 4.055802] ISP1760 USB device initialised
[ 4.257911] isp1760 1b000000.usb: port 1 high speed
[ 4.325662] usb 1-1: new high-speed USB device number 2 using isp1760
[ 4.475670] isp1760 1b000000.usb: port 1 high speed
[ 14.320372] usb 1-1.2: new high-speed USB device number 3 using isp1760
With v5.14-rc1 :
there is no boot output at all, but I debugged it a little bit and the
system seems to hang here:
[ 1.847494] [<c0cac46c>] (isp1760_udc_register) from [<c0ca668c>] (isp1760_register+0x5d0/0x5f0)
[ 1.847527] [<c0ca668c>] (isp1760_register) from [<c0ca6b7c>] (isp1760_plat_probe+0x150/0x1b0)
[ 1.847557] [<c0ca6b7c>] (isp1760_plat_probe) from [<c0a46ef0>] (platform_probe+0x5c/0xb8)
[ 1.847589] [<c0a46ef0>] (platform_probe) from [<c0a44924>] (really_probe.part.0+0x9c/0x32c)
...
isp1760_udc_register()->isp1760_udc_init()
....
/* Reset the device controller. */
isp1760_udc_set(udc, DC_SFRESET); <-- hangs here !!!
Thanks for the hint, I will take a better look here, to find if some
register or mapping is wrongly set.
------
Cheers,
Rui usleep_range(10000, 11000);
isp1760_reg_write(udc->regs, ISP176x_DC_MODE, 0);
usleep_range(10000, 11000);
[...]