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

Rui Miguel Silva
2021-08-20T14:36:25Z

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