Re: [PATCH v4 2/9] usb: isp1760: move to regmap for register access

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rui,

On 13/05/2021 10:47, Rui Miguel Silva wrote:
> 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.
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
[    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 !!!
        usleep_range(10000, 11000);
        isp1760_reg_write(udc->regs, ISP176x_DC_MODE, 0);
        usleep_range(10000, 11000);

[...]




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux