[PATCH] arm64: dts: imx8m: correct usb power domain

Frieder Schrempf frieder.schrempf at kontron.de
Fri Apr 29 08:24:33 PDT 2022


Am 29.04.22 um 12:09 schrieb Jun Li:
>> -----Original Message-----
>> From: Frieder Schrempf <frieder.schrempf at kontron.de>
>> Sent: Friday, April 29, 2022 5:04 PM
>> To: Jun Li <jun.li at nxp.com>; shawnguo at kernel.org
>> Cc: robh+dt at kernel.org; krzysztof.kozlowski+dt at linaro.org;
>> s.hauer at pengutronix.de; kernel at pengutronix.de; festevam at gmail.com;
>> dl-linux-imx <linux-imx at nxp.com>; l.stach at pengutronix.de;
>> aford173 at gmail.com; tharvey at gateworks.com; devicetree at vger.kernel.org;
>> linux-arm-kernel at lists.infradead.org; Jacky Bai <ping.bai at nxp.com>
>> Subject: Re: [PATCH] arm64: dts: imx8m: correct usb power domain
>>
>> Am 29.04.22 um 09:43 schrieb Li Jun:
>>> pgc_otg1/2 is for each usb phy and pgc_hsiomix is shared by 2 usb
>>> controllers, so assign those power domains to correct controller and
>>> phy node, decouple the pgc_otg1/2 from pgc_hsiomix since there is no
>>> hardware dependency.
>>>
>>> Suggested-by: Jacky Bai <ping.bai at nxp.com>
>>> Signed-off-by: Li Jun <jun.li at nxp.com>
>>
>> Thanks for the patch!
>>
>> In my previous test I probably made some mistake. The second USB controller
>> was kept enabled by the onboard hub. When I disable the second port and test
>> the patch with the first port only, resuming from autosuspend still doesn't
>> work, even when I keep the HSIOMIX as parent for OTG1/2. So there's probably
>> still something missing...
> 
> My test was done with both second USB port and PCIE disabled, so
> while autosuspend of first port, the pgc_hsiomix is off, it works
> fine on my HW:
> 
> root at imx8mqevk:~# [   81.021437] usb 1-1: USB disconnect, device number 3

Are you testing on i.MX8MM/N EVK? Your CLI prompt says imx8mqevk, which
seems a bit misleading...

On which kernel version are you testing? I'm on 5.18-rc4.

>  
> root at imx8mqevk:~# cat /sys/kernel/debug/pm_genpd/usb-otg1/current_state
> on
> root at imx8mqevk:~# cat /sys/kernel/debug/pm_genpd/hsiomix/current_state 
> off-0
> root at imx8mqevk:~# cat /sys/kernel/debug/pm_genpd/usb-otg2/current_state                                                                                                                      
> off-0
> root at imx8mqevk:~# [  182.196450] usb 1-1: new high-speed USB device number 4 using ci_hdrc
> [  182.356130] usb-storage 1-1:1.0: USB Mass Storage device detected
> [  182.357632] scsi host0: usb-storage 1-1:1.0
> [  183.367923] scsi 0:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6
> [  183.370559] sd 0:0:0:0: [sda] 60062500 512-byte logical blocks: (30.8 GB/28.6 GiB)
> [  183.372332] sd 0:0:0:0: [sda] Write Protect is off
> [  183.373061] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
> [  183.384709] sd 0:0:0:0: [sda] Attached SCSI removable disk
> [  184.207552] EXT4-fs (sda): mounted filesystem with ordered data mode. Quota mode: none.
> 
> root at imx8mqevk:~# ls /sys/bus/platform/devices/*usb* -d
> /sys/bus/platform/devices/32e40000.usb
> /sys/bus/platform/devices/32e40200.usbmisc
> /sys/bus/platform/devices/usbphynop1

The PCIe nodes, usbotg2, usbphynop2 and usbmisc2 are disabled and
devices on the autosuspended first port aren't detected:

root at kontron-mx8mm:~# cat /sys/kernel/debug/pm_genpd/usb-otg1/current_state
on
root at kontron-mx8mm:~# cat /sys/kernel/debug/pm_genpd/usb-otg2/current_state
off-0
root at kontron-mx8mm:~# cat /sys/kernel/debug/pm_genpd/hsiomix/current_state
off-0

root at kontron-mx8mm:~# ls /sys/bus/platform/devices/*usb* -d
/sys/bus/platform/devices/32e40000.usb
/sys/bus/platform/devices/32e40200.usbmisc
/sys/bus/platform/devices/usbphynop1

> 
> So basically you are saying your first port cannot work even both pgc_otg1 and
> pgc_hsiomix are on if you disable 2nd port? 

Exactly. I really don't understand it, but as soon as I disable the
second port the detection of a device on the suspended first port stops
working. When I force the port on, the device is detected:

root at kontron-mx8mm:~# echo on > /sys/bus/usb/devices/usb1/power/control
root at kontron-mx8mm:~# [  194.523296] usb 1-1: new full-speed USB device
number 2 using ci_hdrc




More information about the linux-arm-kernel mailing list