[PATCHv3] ARM: mvebu: use regulator-boot-on for SATA regulators on Armada 388 GP
Gregory CLEMENT
gregory.clement at free-electrons.com
Mon Jan 11 08:25:15 PST 2016
Hi,
On mar., déc. 22 2015, Gregory CLEMENT <gregory.clement at free-electrons.com> wrote:
> Hi Thomas,
>
> On mar., déc. 22 2015, Thomas Petazzoni <thomas.petazzoni at free-electrons.com> wrote:
>
>> Really, what we meant by regulator-always-on is that the regulators
>> are already turned on by the bootloader, for which regulator-boot-on
>> is a better description.
>>
>> A net advantage of using regulator-boot-on is that the regulator is
>> not touched at boot time by the kernel, which avoids having the hard
>> drives spinning down and then up again, taking several (~5) seconds of
>> additional boot time.
>>
>> In addition, there is no need to have such properties on the child
>> regulators used for SATA. Having it on the parent regulator that
>> really controls the GPIO is sufficient.
>>
>> Without the patch:
>>
>> [ 3.945866] ata2: SATA link down (SStatus 0 SControl 300)
>> [ 3.995862] ata3: SATA link down (SStatus 0 SControl 300)
>> [ 4.005863] ata4: SATA link down (SStatus 0 SControl 300)
>> [ 9.125861] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
>> [ 9.144575] ata1.00: ATA-8: WDC WD5003ABYX-01WERA1, 01.01S02, max UDMA/133
>> [ 9.151471] ata1.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
>>
>> (and you can hear the disk spinning down and up during this 5.1
>> seconds delay)
>>
>> With the patch:
>>
>> [ 3.945988] ata2: SATA link down (SStatus 0 SControl 300)
>> [ 4.005980] ata4: SATA link down (SStatus 0 SControl 300)
>> [ 4.011404] ata3: SATA link down (SStatus 0 SControl 300)
>> [ 4.145978] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
>> [ 4.153701] ata1.00: ATA-8: WDC WD5003ABYX-01WERA1, 01.01S02, max UDMA/133
>> [ 4.160597] ata1.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
>>
>> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>
> Applied on mvebu/dt
As for the other one, I didn't managed to do a pull request before the
holidays period so I moved this commit to mvebu/dt-for-4.6
Gregory
>
> Thanks,
>
> Gregory
>> ---
>> Changes since v2:
>> - Use regulator-boot-on only for SATA regulators, not for USB
>> regulators.
>> ---
>> arch/arm/boot/dts/armada-388-gp.dts | 16 ++++------------
>> 1 file changed, 4 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
>> index d8dab0f..5e47291 100644
>> --- a/arch/arm/boot/dts/armada-388-gp.dts
>> +++ b/arch/arm/boot/dts/armada-388-gp.dts
>> @@ -319,7 +319,7 @@
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> enable-active-high;
>> - regulator-always-on;
>> + regulator-boot-on;
>> gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
>> };
>>
>> @@ -328,7 +328,6 @@
>> regulator-name = "v5.0-sata0";
>> regulator-min-microvolt = <5000000>;
>> regulator-max-microvolt = <5000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata0>;
>> };
>>
>> @@ -337,7 +336,6 @@
>> regulator-name = "v12.0-sata0";
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata0>;
>> };
>>
>> @@ -347,7 +345,7 @@
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> enable-active-high;
>> - regulator-always-on;
>> + regulator-boot-on;
>> gpio = <&expander0 3 GPIO_ACTIVE_HIGH>;
>> };
>>
>> @@ -356,7 +354,6 @@
>> regulator-name = "v5.0-sata1";
>> regulator-min-microvolt = <5000000>;
>> regulator-max-microvolt = <5000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata1>;
>> };
>>
>> @@ -365,7 +362,6 @@
>> regulator-name = "v12.0-sata1";
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata1>;
>> };
>>
>> @@ -373,7 +369,7 @@
>> compatible = "regulator-fixed";
>> regulator-name = "pwr_en_sata2";
>> enable-active-high;
>> - regulator-always-on;
>> + regulator-boot-on;
>> gpio = <&expander0 11 GPIO_ACTIVE_HIGH>;
>> };
>>
>> @@ -382,7 +378,6 @@
>> regulator-name = "v5.0-sata2";
>> regulator-min-microvolt = <5000000>;
>> regulator-max-microvolt = <5000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata2>;
>> };
>>
>> @@ -391,7 +386,6 @@
>> regulator-name = "v12.0-sata2";
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata2>;
>> };
>>
>> @@ -399,7 +393,7 @@
>> compatible = "regulator-fixed";
>> regulator-name = "pwr_en_sata3";
>> enable-active-high;
>> - regulator-always-on;
>> + regulator-boot-on;
>> gpio = <&expander0 12 GPIO_ACTIVE_HIGH>;
>> };
>>
>> @@ -408,7 +402,6 @@
>> regulator-name = "v5.0-sata3";
>> regulator-min-microvolt = <5000000>;
>> regulator-max-microvolt = <5000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata3>;
>> };
>>
>> @@ -417,7 +410,6 @@
>> regulator-name = "v12.0-sata3";
>> regulator-min-microvolt = <12000000>;
>> regulator-max-microvolt = <12000000>;
>> - regulator-always-on;
>> vin-supply = <®_sata3>;
>> };
>> };
>> --
>> 2.6.4
>>
>
> --
> Gregory Clement, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
More information about the linux-arm-kernel
mailing list