[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 = <&reg_sata0>;
>>  	};
>>  
>> @@ -337,7 +336,6 @@
>>  		regulator-name = "v12.0-sata0";
>>  		regulator-min-microvolt = <12000000>;
>>  		regulator-max-microvolt = <12000000>;
>> -		regulator-always-on;
>>  		vin-supply = <&reg_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 = <&reg_sata1>;
>>  	};
>>  
>> @@ -365,7 +362,6 @@
>>  		regulator-name = "v12.0-sata1";
>>  		regulator-min-microvolt = <12000000>;
>>  		regulator-max-microvolt = <12000000>;
>> -		regulator-always-on;
>>  		vin-supply = <&reg_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 = <&reg_sata2>;
>>  	};
>>  
>> @@ -391,7 +386,6 @@
>>  		regulator-name = "v12.0-sata2";
>>  		regulator-min-microvolt = <12000000>;
>>  		regulator-max-microvolt = <12000000>;
>> -		regulator-always-on;
>>  		vin-supply = <&reg_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 = <&reg_sata3>;
>>  	};
>>  
>> @@ -417,7 +410,6 @@
>>  		regulator-name = "v12.0-sata3";
>>  		regulator-min-microvolt = <12000000>;
>>  		regulator-max-microvolt = <12000000>;
>> -		regulator-always-on;
>>  		vin-supply = <&reg_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