Thread (15 messages) 15 messages, 4 authors, 2021-08-20

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);

[...]

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help