Re: [PATCH v2 3/4] ARM: dts: exynos: Add regulator suspend configuration to Odroid XU3/XU4/HC1 family

From: Anand Moon
Date: Sun Jun 23 2019 - 12:02:34 EST


Hi Krzysztof,

Thanks for this patch. Please add my

Tested-by: Anand Moon <linux.amoon@xxxxxxxxx>

[snip]

Could you integrate below small changes into this patch.
with these below changes suspend and resume work correctly at my end.

[1] XU4_suspendresume.patch

As per S2MPS11B PMIC 1.2.1 Regulator (Features)
Fix the min max value for *Buck7* and *Buck8*

-- Buck7 (VDD_1.0V_LDO) 1.5 A (1.2 V to 1.5 V, 12.5 mV step, default on 1.35 V)
-- Buck8 (VDD_1.8V_LDO) 2.5 A (1.8 V to 2.1 V, 12.5 mV step, default on 2.0 V)

Also add suspend-off for *Buck9*
Buck9 internally controls the power of USB hub.
Adding suspend the this node help proper reset of USB hub on Odroid
XU4 / HC1/ XU3
during suspend and resume. Below it the logs from my testing.

[2] https://pastebin.com/pRJJmWL6

Best Regards
-Anand
[root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:29:56 2019
[ 72.707852] PM: suspend entry (deep)
[ 72.712727] Filesystems sync: 0.002 seconds
[ 72.722108] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 72.730550] OOM killer disabled.
[ 72.733462] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 72.815847] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 72.971552] wake enabled for irq 151
[ 73.007942] wake enabled for irq 155
[ 73.128081] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7
[ 73.146535] Disabling non-boot CPUs ...
[ 73.225374] s3c2410-wdt 101d0000.watchdog: watchdog disabled
[ 73.229930] usb usb1: root hub lost power or was reset
[ 73.299725] usb usb2: root hub lost power or was reset
[ 73.304474] wake disabled for irq 155
[ 73.314064] wake disabled for irq 151
[ 73.331117] exynos-tmu 10060000.tmu: More trip points than supported by this TMU.
[ 73.337297] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode.
[ 73.345343] exynos-tmu 10064000.tmu: More trip points than supported by this TMU.
[ 73.352807] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode.
[ 73.360916] exynos-tmu 10068000.tmu: More trip points than supported by this TMU.
[ 73.368295] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode.
[ 73.376429] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU.
[ 73.383742] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode.
[ 73.394345] usb usb3: root hub lost power or was reset
[ 73.394704] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[ 73.394840] usb usb5: root hub lost power or was reset
[ 73.394864] usb usb6: root hub lost power or was reset
[ 73.398063] usb usb4: root hub lost power or was reset
[ 73.806876] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 73.986504] usb 3-1: reset high-speed USB device number 2 using xhci-hcd
[ 74.026814] usb 5-1: reset high-speed USB device number 2 using xhci-hcd
[ 74.266364] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd
[ 74.988689] OOM killer enabled.
[ 74.990372] Restarting tasks ... done.
[ 74.997529] PM: suspend exit
[ 75.014009] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[root@archl-xu4e ~]# [ 75.243019] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[ 75.255929] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0)
[ 75.290096] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1)

[root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:30:20 2019
[ 86.308500] PM: suspend entry (deep)
[ 86.311962] Filesystems sync: 0.001 seconds
[ 86.320781] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 86.328542] OOM killer disabled.
[ 86.331644] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 86.435700] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 86.591293] wake enabled for irq 151
[ 86.626989] wake enabled for irq 155
[ 86.747140] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7
[ 86.765605] Disabling non-boot CPUs ...
[ 86.841073] s3c2410-wdt 101d0000.watchdog: watchdog disabled
[ 86.845648] usb usb1: root hub lost power or was reset
[ 86.919564] usb usb2: root hub lost power or was reset
[ 86.924314] wake disabled for irq 155
[ 86.933852] wake disabled for irq 151
[ 86.950827] exynos-tmu 10060000.tmu: More trip points than supported by this TMU.
[ 86.957003] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode.
[ 86.965055] exynos-tmu 10064000.tmu: More trip points than supported by this TMU.
[ 86.972496] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode.
[ 86.980632] exynos-tmu 10068000.tmu: More trip points than supported by this TMU.
[ 86.988014] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode.
[ 86.996148] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU.
[ 87.003452] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode.
[ 87.013926] usb usb3: root hub lost power or was reset
[ 87.014295] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[ 87.014473] usb usb5: root hub lost power or was reset
[ 87.014498] usb usb6: root hub lost power or was reset
[ 87.017644] usb usb4: root hub lost power or was reset
[ 87.427075] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 87.606386] usb 3-1: reset high-speed USB device number 2 using xhci-hcd
[ 87.646461] usb 5-1: reset high-speed USB device number 2 using xhci-hcd
[ 87.886242] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd
[ 88.607881] OOM killer enabled.
[ 88.609562] Restarting tasks ... done.
[ 88.614340] PM: suspend exit
[ 88.632953] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[root@archl-xu4e ~]# [ 88.896900] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[ 88.912970] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0)
[ 88.929810] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1)

[root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10
rtcwake: assuming RTC uses UTC ...
rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:30:41 2019
[ 97.024433] PM: suspend entry (deep)
[ 97.030395] Filesystems sync: 0.003 seconds
[ 97.036715] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 97.044507] OOM killer disabled.
[ 97.047753] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 97.105552] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 97.261608] wake enabled for irq 151
[ 97.299424] wake enabled for irq 155
[ 97.415885] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7
[ 97.433150] Disabling non-boot CPUs ...
[ 97.526880] s3c2410-wdt 101d0000.watchdog: watchdog disabled
[ 97.531343] usb usb1: root hub lost power or was reset
[ 97.609426] usb usb2: root hub lost power or was reset
[ 97.614169] wake disabled for irq 155
[ 97.623676] wake disabled for irq 151
[ 97.640212] exynos-tmu 10060000.tmu: More trip points than supported by this TMU.
[ 97.646403] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode.
[ 97.654436] exynos-tmu 10064000.tmu: More trip points than supported by this TMU.
[ 97.661883] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode.
[ 97.670005] exynos-tmu 10068000.tmu: More trip points than supported by this TMU.
[ 97.677395] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode.
[ 97.685522] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU.
[ 97.692834] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode.
[ 97.703438] usb usb3: root hub lost power or was reset
[ 97.703790] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[ 97.707156] usb usb4: root hub lost power or was reset
[ 97.719084] usb usb5: root hub lost power or was reset
[ 97.722931] usb usb6: root hub lost power or was reset
[ 98.116558] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 98.296240] usb 3-1: reset high-speed USB device number 2 using xhci-hcd
[ 98.336318] usb 5-1: reset high-speed USB device number 2 using xhci-hcd
[ 98.576097] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd
[ 99.300281] OOM killer enabled.
[ 99.301995] Restarting tasks ... done.
[ 99.309311] PM: suspend exit
[root@archl-xu4e ~]# [ 99.326729] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 99.563622] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
[ 99.577778] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0)
[ 99.587818] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1)

[root@archl-xu4e ~]# lsusb -t
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/2p, 5000M
|__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/2p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=exynos-ehci/3p, 480M



Attachment: XU4_suspendresume.patch
Description: Binary data