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

2019-06-24 Thread Anand Moon
Hi Marek / Krzysztof,

On Mon, 24 Jun 2019 at 14:31, Marek Szyprowski  wrote:
>
> Hi Krzysztof,
>
> On 2019-06-24 09:41, Krzysztof Kozlowski wrote:
> > On Mon, 24 Jun 2019 at 09:20, Marek Szyprowski  
> > wrote:
> >> On 2019-06-23 18:02, Anand Moon wrote:
> >>> Thanks for this patch. Please add my
> >>>
> >>> Tested-by: Anand Moon 
> >>>
> >>> [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)
> >> Could you elaborate why such change for Buck7 and Buck8 is needed?
> > Anand has here valid point - the constraints in DTS do not match
> > hardware manual. This leads to question whether voltage table in
> > driver is proper... Another point is the voltage itself. The
> > schematics describes them as at specific voltage (1.35 V and 2.0 V)
> > but after boot they are 1.2 V and 1.85 V. Maybe this shift comes from
> > the problem above.
> >
> >>> 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.
> >> Disabling Buck9 in suspend indeed reduces the power consumed by the
> >> board during suspend-to-ram from about 80mA to as little as 7-10mA, what
> >> matches the results of OdroidXU3. Thanks for the hint!
> > Although I did not get what is the difference in the logs (Anand
> > pasted two logs but they look the same) but the power consumption is
> > reason is good enough. I would be happy to put in the changelog entire
> > consumption  difference. I can measure it on XU3-Lite but can you give
> > me the XU4 (before and after)?\
>
>
> HC1:
>
> next-20190620: 120mA (@5V)
> this patchset: 72mA (@5V)
> this patchset + fixup from Anand: 7-10mA (@5V)
>
> XU4 (SDcard):
>
> next-20190620: 88mA (@5V)
> this patchset: 74mA (@5V), sometimes 42mA (@5V)
> this patchset + fixup from Anand: 6-9mA (@5V)
>
>
> XU4 (eMMC):
>
> next-20190620: 100mA (@5V)
> this patchset: 72mA (@5V), sometimes 41mA (@5V)
> this patchset + fixup from Anand: 6-9mA (@5V)
>
>
> Best regards
> --
> Marek Szyprowski, PhD
> Samsung R Institute Poland
>

Thanks for this results.

Best Regards
-Anand


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

2019-06-24 Thread Marek Szyprowski
Hi Krzysztof,

On 2019-06-24 09:41, Krzysztof Kozlowski wrote:
> On Mon, 24 Jun 2019 at 09:20, Marek Szyprowski  
> wrote:
>> On 2019-06-23 18:02, Anand Moon wrote:
>>> Thanks for this patch. Please add my
>>>
>>> Tested-by: Anand Moon 
>>>
>>> [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)
>> Could you elaborate why such change for Buck7 and Buck8 is needed?
> Anand has here valid point - the constraints in DTS do not match
> hardware manual. This leads to question whether voltage table in
> driver is proper... Another point is the voltage itself. The
> schematics describes them as at specific voltage (1.35 V and 2.0 V)
> but after boot they are 1.2 V and 1.85 V. Maybe this shift comes from
> the problem above.
>
>>> 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.
>> Disabling Buck9 in suspend indeed reduces the power consumed by the
>> board during suspend-to-ram from about 80mA to as little as 7-10mA, what
>> matches the results of OdroidXU3. Thanks for the hint!
> Although I did not get what is the difference in the logs (Anand
> pasted two logs but they look the same) but the power consumption is
> reason is good enough. I would be happy to put in the changelog entire
> consumption  difference. I can measure it on XU3-Lite but can you give
> me the XU4 (before and after)?\


HC1:

next-20190620: 120mA (@5V)
this patchset: 72mA (@5V)
this patchset + fixup from Anand: 7-10mA (@5V)

XU4 (SDcard):

next-20190620: 88mA (@5V)
this patchset: 74mA (@5V), sometimes 42mA (@5V)
this patchset + fixup from Anand: 6-9mA (@5V)


XU4 (eMMC):

next-20190620: 100mA (@5V)
this patchset: 72mA (@5V), sometimes 41mA (@5V)
this patchset + fixup from Anand: 6-9mA (@5V)


Best regards
-- 
Marek Szyprowski, PhD
Samsung R Institute Poland



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

2019-06-24 Thread Krzysztof Kozlowski
On Mon, 24 Jun 2019 at 09:20, Marek Szyprowski  wrote:
>
> Hi Anand,
>
> On 2019-06-23 18:02, Anand Moon wrote:
> > Thanks for this patch. Please add my
> >
> > Tested-by: Anand Moon 
> >
> > [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)
>
> Could you elaborate why such change for Buck7 and Buck8 is needed?

Anand has here valid point - the constraints in DTS do not match
hardware manual. This leads to question whether voltage table in
driver is proper... Another point is the voltage itself. The
schematics describes them as at specific voltage (1.35 V and 2.0 V)
but after boot they are 1.2 V and 1.85 V. Maybe this shift comes from
the problem above.

>
> > 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.
>
> Disabling Buck9 in suspend indeed reduces the power consumed by the
> board during suspend-to-ram from about 80mA to as little as 7-10mA, what
> matches the results of OdroidXU3. Thanks for the hint!

Although I did not get what is the difference in the logs (Anand
pasted two logs but they look the same) but the power consumption is
reason is good enough. I would be happy to put in the changelog entire
consumption  difference. I can measure it on XU3-Lite but can you give
me the XU4 (before and after)?

Best regards,
Krzysztof


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

2019-06-24 Thread Marek Szyprowski
Hi Anand,

On 2019-06-23 18:02, Anand Moon wrote:
> Thanks for this patch. Please add my
>
> Tested-by: Anand Moon 
>
> [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)

Could you elaborate why such change for Buck7 and Buck8 is needed?

> 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.

Disabling Buck9 in suspend indeed reduces the power consumed by the 
board during suspend-to-ram from about 80mA to as little as 7-10mA, what 
matches the results of OdroidXU3. Thanks for the hint!

Best regards
-- 
Marek Szyprowski, PhD
Samsung R Institute Poland



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

2019-06-23 Thread Anand Moon
Hi Krzysztof,

Thanks for this patch. Please add my

Tested-by: Anand Moon 

[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 1340.pinctrl: Setting external wakeup 
interrupt mask: 0xffe7
[   73.146535] Disabling non-boot CPUs ...
[   73.225374] s3c2410-wdt 101d.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 1006.tmu: More trip points than supported by this 
TMU.
[   73.337297] exynos-tmu 1006.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 101e.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) = 5000Hz (slot req 
40Hz, actual 396825HZ div = 63)
[root@archl-xu4e ~]# [   75.243019] mmc_host mmc0: Bus speed (slot 0) = 
2Hz (slot req 2Hz, actual 2HZ div = 0)
[   75.255929] mmc_host mmc0: Bus speed (slot 0) = 5000Hz (slot req 
5200Hz, actual 5000HZ div = 0)
[   75.290096] mmc_host mmc0: Bus speed (slot 0) = 4Hz (slot req 
2Hz, actual 2HZ 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 1340.pinctrl: Setting external wakeup 
interrupt mask: 0xffe7
[   86.765605] Disabling non-boot CPUs ...
[   86.841073] s3c2410-wdt 101d.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 1006.tmu: More trip points than supported by this 
TMU.
[   86.957003] exynos-tmu 1006.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 

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

2019-06-21 Thread Krzysztof Kozlowski
Add the PMIC regulator suspend configuration to entire Odroid
XU3/XU4/HC1 family of boards to reduce power usage during suspend.  The
configuration is based on vendor (Hardkernel) reference kernel.

Signed-off-by: Krzysztof Kozlowski 
Tested-by: Marek Szyprowski 

---

Tested on XU3 and HC1 with SD card.

---

Changes since v1:
1. Add Marek's tag.
---
 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 92 +++
 1 file changed, 92 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi 
b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index 0f967259ad29..5a4f7dd2568b 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -177,6 +177,10 @@
regulator-name = "vdd_adc";
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo5_reg: LDO5 {
@@ -184,6 +188,10 @@
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo6_reg: LDO6 {
@@ -191,6 +199,10 @@
regulator-min-microvolt = <100>;
regulator-max-microvolt = <100>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo7_reg: LDO7 {
@@ -198,6 +210,10 @@
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo8_reg: LDO8 {
@@ -205,6 +221,10 @@
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo9_reg: LDO9 {
@@ -212,6 +232,10 @@
regulator-min-microvolt = <300>;
regulator-max-microvolt = <300>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo10_reg: LDO10 {
@@ -219,6 +243,10 @@
regulator-min-microvolt = <180>;
regulator-max-microvolt = <180>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo11_reg: LDO11 {
@@ -226,6 +254,10 @@
regulator-min-microvolt = <100>;
regulator-max-microvolt = <100>;
regulator-always-on;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo12_reg: LDO12 {
@@ -239,6 +271,10 @@
regulator-name = "vddq_mmc2";
regulator-min-microvolt = <180>;
regulator-max-microvolt = <280>;
+
+   regulator-state-mem {
+   regulator-off-in-suspend;
+   };
};
 
ldo14_reg: LDO14 {
@@ -253,6 +289,10 @@
regulator-min-microvolt = <330>;
regulator-max-microvolt = <330>;
regulator-always-on;
+
+   regulator-state-mem {
+