diff mbox

[3/3] ARM: sunxi: dts: Add ahci support to a few A10 and A20 boards

Message ID 1386159055-10264-4-git-send-email-oliver@schinagl.nl
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Olliver Schinagl Dec. 4, 2013, 12:10 p.m. UTC
From: Oliver Schinagl <oliver@schinagl.nl>

This patch adds sunxi sata support to A10 and A20 boards that have such
a connector. Some boards also feature a regulator via a GPIO and support
for this is also added.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
---
 arch/arm/boot/dts/sun4i-a10-cubieboard.dts      | 26 +++++++++++++++++++++++++
 arch/arm/boot/dts/sun4i-a10.dtsi                |  9 +++++++++
 arch/arm/boot/dts/sun7i-a20-cubieboard2.dts     | 26 +++++++++++++++++++++++++
 arch/arm/boot/dts/sun7i-a20-cubietruck.dts      | 26 +++++++++++++++++++++++++
 arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 26 +++++++++++++++++++++++++
 arch/arm/boot/dts/sun7i-a20.dtsi                |  9 +++++++++
 6 files changed, 122 insertions(+)

Comments

Maxime Ripard Dec. 6, 2013, 6:33 p.m. UTC | #1
Hi Oliver,

On Wed, Dec 04, 2013 at 01:10:55PM +0100, oliver@schinagl.nl wrote:
> From: Oliver Schinagl <oliver@schinagl.nl>
> 
> This patch adds sunxi sata support to A10 and A20 boards that have such
> a connector. Some boards also feature a regulator via a GPIO and support
> for this is also added.
> 
> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>

Your git setup seems to be pretty uncertain about how your first name is spelled :)

> ---
>  arch/arm/boot/dts/sun4i-a10-cubieboard.dts      | 26 +++++++++++++++++++++++++
>  arch/arm/boot/dts/sun4i-a10.dtsi                |  9 +++++++++
>  arch/arm/boot/dts/sun7i-a20-cubieboard2.dts     | 26 +++++++++++++++++++++++++
>  arch/arm/boot/dts/sun7i-a20-cubietruck.dts      | 26 +++++++++++++++++++++++++
>  arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 26 +++++++++++++++++++++++++
>  arch/arm/boot/dts/sun7i-a20.dtsi                |  9 +++++++++
>  6 files changed, 122 insertions(+)

Could you split this into several patches please?

At least one per SoC.

> diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
> index 425a7db..b620084 100644
> --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
> +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
> @@ -42,7 +42,18 @@
>  			};
>  		};
>  
> +		sata: ahci@01c18000 {
> +			pwr-supply = <&reg_ahci_5v>;
> +			status = "okay";
> +		};
> +
>  		pinctrl@01c20800 {
> +			ahci_pwr_pin: ahci_pwr_pin@0 {

Please prefix it with name of the board.

> +				allwinner,pins = "PB8";
> +				allwinner,function = "gpio_out";
> +				allwinner,driver = <0>;
> +				allwinner,pull = <0>;
> +			};

Please add a newline here.

>  			led_pins_cubieboard: led_pins@0 {
>  				allwinner,pins = "PH20", "PH21";
>  				allwinner,function = "gpio_out";
> @@ -86,4 +97,19 @@
>  			linux,default-trigger = "heartbeat";
>  		};
>  	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +		pinctrl-names = "default";
> +
> +		reg_ahci_5v: ahci-5v {
> +			compatible = "regulator-fixed";
> +			regulator-name = "ahci-5v";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			pinctrl-0 = <&ahci_pwr_pin>;
> +			gpio = <&pio 1 8 0>;
> +			enable-active-high;
> +		};
> +	};
>  };
> diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
> index 4dccdb0..53c6cdb 100644
> --- a/arch/arm/boot/dts/sun4i-a10.dtsi
> +++ b/arch/arm/boot/dts/sun4i-a10.dtsi
> @@ -306,6 +306,15 @@
>  			#size-cells = <0>;
>  		};
>  
> +		sata: ahci@01c18000 {
> +			compatible = "allwinner,sun4i-a10-ahci";

Please use sun4i-ahci for consistency.

> +			reg = <0x01c18000 0x1000>;
> +			interrupts = <0 56 1>;

The interrupt here doesn't seem right. Is it actually working at all?

> +			clocks = <&ahb_gates 25>, <&pll6 0>;
> +			clock-names = "ahb_sata", "pll6_sata";
> +			status = "disabled";
> +		};
> +
>  		intc: interrupt-controller@01c20400 {
>  			compatible = "allwinner,sun4i-ic";
>  			reg = <0x01c20400 0x400>;
> diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
> index 5c51cb8..99c5e78 100644
> --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
> +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
> @@ -34,7 +34,18 @@
>  			};
>  		};
>  
> +		sata: ahci@01c18000 {
> +			pwr-supply = <&reg_ahci_5v>;
> +			status = "okay";
> +		};
> +
>  		pinctrl@01c20800 {
> +			ahci_pwr_pin: ahci_pwr_pin@0 {
> +				allwinner,pins = "PB8";
> +				allwinner,function = "gpio_out";
> +				allwinner,drive = <0>;
> +				allwinner,pull = <0>;
> +			};

Please add a newline here.

>  			led_pins_cubieboard2: led_pins@0 {
>  				allwinner,pins = "PH20", "PH21";
>  				allwinner,function = "gpio_out";
> @@ -77,4 +88,19 @@
>  			gpios = <&pio 7 20 0>;
>  		};
>  	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +		pinctrl-names = "default";
> +
> +		reg_ahci_5v: ahci-5v {
> +			compatible = "regulator-fixed";
> +			regulator-name = "ahci-5v";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			pinctrl-0 = <&ahci_pwr_pin>;
> +			gpio = <&pio 1 8 0>;
> +			enable-active-high;
> +		};
> +	};
>  };
> diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> index 8a1009d..19af23e 100644
> --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> @@ -19,7 +19,18 @@
>  	compatible = "cubietech,cubietruck", "allwinner,sun7i-a20";
>  
>  	soc@01c00000 {
> +		sata: ahci@01c18000 {
> +			pwr-supply = <&reg_ahci_5v>;
> +			status = "okay";
> +		};
> +
>  		pinctrl@01c20800 {
> +			ahci_pwr_pin: ahci_pwr_pin@0 {
> +				allwinner,pins = "PH12";
> +				allwinner,function = "gpio_out";
> +				allwinner,driver = <0>;
> +				allwinner,pull = <0>;
> +			};

Please add a newline here.

>  			led_pins_cubietruck: led_pins@0 {
>  				allwinner,pins = "PH7", "PH11", "PH20", "PH21";
>  				allwinner,function = "gpio_out";
> @@ -60,4 +71,19 @@
>  			gpios = <&pio 7 7 0>;
>  		};
>  	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +		pinctrl-names = "default";
> +
> +		reg_ahci_5v: ahci-5v {
> +			compatible = "regulator-fixed";
> +			regulator-name = "ahci-5v";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			pinctrl-0 = <&ahci_pwr_pin>;
> +			gpio = <&pio 7 12 0>;
> +			enable-active-high;
> +		};
> +	};
>  };
> diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
> index ead3013..23ed708 100644
> --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
> +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
> @@ -34,7 +34,19 @@
>  			};
>  		};
>  
> +		sata: ahci@01c18000 {
> +			pwr-supply = <&reg_ahci_5v>;
> +			status = "okay";
> +		};
> +
>  		pinctrl@01c20800 {
> +			ahci_pwr_pin: ahci_pwr_pin@0 {
> +				allwinner,pins = "PB8";
> +				allwinner,function = "gpio_out";
> +				allwinner,drive = <0>;
> +				allwinner,pull = <0>;
> +			};
> +
>  			led_pins_olinuxino: led_pins@0 {
>  				allwinner,pins = "PH2";
>  				allwinner,function = "gpio_out";
> @@ -91,4 +103,18 @@
>  			default-state = "on";
>  		};
>  	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +
> +		reg_ahci_5v: ahci-5v {
> +			compatible = "regulator-fixed";
> +			regulator-name = "ahci-5v";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			pinctrl-0 = <&ahci_pwr_pin>;
> +			gpio = <&pio 1 8 0>;
> +			enable-active-high;
> +		};
> +	};
>  };
> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
> index 0552a64..b72c69e 100644
> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
> @@ -368,6 +368,15 @@
>  			};
>  		};
>  
> +		sata: ahci@01c18000 {
> +			compatible = "allwinner,sun4i-a10-ahci";
> +			reg = <0x01c18000 0x1000>;
> +			interrupts = <0 56 1>;
> +			clocks = <&ahb_gates 25>, <&pll6 0>;
> +			clock-names = "ahb_sata", "pll6_sata";
> +			status = "disabled";
> +		};
> +
>  		timer@01c20c00 {
>  			compatible = "allwinner,sun4i-timer";
>  			reg = <0x01c20c00 0x90>;
> -- 
> 1.8.3.2
> 

Thanks,
Maxime
Olliver Schinagl Dec. 7, 2013, 11:47 a.m. UTC | #2
Hey maxime,
On 06-12-13 19:33, Maxime Ripard wrote:
> Hi Oliver,
>
> On Wed, Dec 04, 2013 at 01:10:55PM +0100, oliver@schinagl.nl wrote:
>> From: Oliver Schinagl <oliver@schinagl.nl>
>>
>> This patch adds sunxi sata support to A10 and A20 boards that have such
>> a connector. Some boards also feature a regulator via a GPIO and support
>> for this is also added.
>>
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>
> Your git setup seems to be pretty uncertain about how your first name is spelled :)
I should have formally mention it to confuse less people,

This is how officially my name is spelled (I left out any 'middle' 
letters. I never really used it as such, as it confuses people and they 
always write it wrong anyway. After years I decided that at least on 
these patches, I should write it down properly (googleability etc in the 
future). So formally it's Olliver 'oliver' M. Schinagl.

And no, I won't share my middle name :p

There! :)
>
>> ---
>>   arch/arm/boot/dts/sun4i-a10-cubieboard.dts      | 26 +++++++++++++++++++++++++
>>   arch/arm/boot/dts/sun4i-a10.dtsi                |  9 +++++++++
>>   arch/arm/boot/dts/sun7i-a20-cubieboard2.dts     | 26 +++++++++++++++++++++++++
>>   arch/arm/boot/dts/sun7i-a20-cubietruck.dts      | 26 +++++++++++++++++++++++++
>>   arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 26 +++++++++++++++++++++++++
>>   arch/arm/boot/dts/sun7i-a20.dtsi                |  9 +++++++++
>>   6 files changed, 122 insertions(+)
>
> Could you split this into several patches please?
Yes, appologies, will take care of this! Sorry,

Oliver
>
> At least one per SoC.
>
>> diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>> index 425a7db..b620084 100644
>> --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>> +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>> @@ -42,7 +42,18 @@
>>   			};
>>   		};
>>
>> +		sata: ahci@01c18000 {
>> +			pwr-supply = <&reg_ahci_5v>;
>> +			status = "okay";
>> +		};
>> +
>>   		pinctrl@01c20800 {
>> +			ahci_pwr_pin: ahci_pwr_pin@0 {
>
> Please prefix it with name of the board.
>
>> +				allwinner,pins = "PB8";
>> +				allwinner,function = "gpio_out";
>> +				allwinner,driver = <0>;
>> +				allwinner,pull = <0>;
>> +			};
>
> Please add a newline here.
>
>>   			led_pins_cubieboard: led_pins@0 {
>>   				allwinner,pins = "PH20", "PH21";
>>   				allwinner,function = "gpio_out";
>> @@ -86,4 +97,19 @@
>>   			linux,default-trigger = "heartbeat";
>>   		};
>>   	};
>> +
>> +	regulators {
>> +		compatible = "simple-bus";
>> +		pinctrl-names = "default";
>> +
>> +		reg_ahci_5v: ahci-5v {
>> +			compatible = "regulator-fixed";
>> +			regulator-name = "ahci-5v";
>> +			regulator-min-microvolt = <5000000>;
>> +			regulator-max-microvolt = <5000000>;
>> +			pinctrl-0 = <&ahci_pwr_pin>;
>> +			gpio = <&pio 1 8 0>;
>> +			enable-active-high;
>> +		};
>> +	};
>>   };
>> diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
>> index 4dccdb0..53c6cdb 100644
>> --- a/arch/arm/boot/dts/sun4i-a10.dtsi
>> +++ b/arch/arm/boot/dts/sun4i-a10.dtsi
>> @@ -306,6 +306,15 @@
>>   			#size-cells = <0>;
>>   		};
>>
>> +		sata: ahci@01c18000 {
>> +			compatible = "allwinner,sun4i-a10-ahci";
>
> Please use sun4i-ahci for consistency.
>
>> +			reg = <0x01c18000 0x1000>;
>> +			interrupts = <0 56 1>;
>
> The interrupt here doesn't seem right. Is it actually working at all?
>
>> +			clocks = <&ahb_gates 25>, <&pll6 0>;
>> +			clock-names = "ahb_sata", "pll6_sata";
>> +			status = "disabled";
>> +		};
>> +
>>   		intc: interrupt-controller@01c20400 {
>>   			compatible = "allwinner,sun4i-ic";
>>   			reg = <0x01c20400 0x400>;
>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> index 5c51cb8..99c5e78 100644
>> --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>> @@ -34,7 +34,18 @@
>>   			};
>>   		};
>>
>> +		sata: ahci@01c18000 {
>> +			pwr-supply = <&reg_ahci_5v>;
>> +			status = "okay";
>> +		};
>> +
>>   		pinctrl@01c20800 {
>> +			ahci_pwr_pin: ahci_pwr_pin@0 {
>> +				allwinner,pins = "PB8";
>> +				allwinner,function = "gpio_out";
>> +				allwinner,drive = <0>;
>> +				allwinner,pull = <0>;
>> +			};
>
> Please add a newline here.
>
>>   			led_pins_cubieboard2: led_pins@0 {
>>   				allwinner,pins = "PH20", "PH21";
>>   				allwinner,function = "gpio_out";
>> @@ -77,4 +88,19 @@
>>   			gpios = <&pio 7 20 0>;
>>   		};
>>   	};
>> +
>> +	regulators {
>> +		compatible = "simple-bus";
>> +		pinctrl-names = "default";
>> +
>> +		reg_ahci_5v: ahci-5v {
>> +			compatible = "regulator-fixed";
>> +			regulator-name = "ahci-5v";
>> +			regulator-min-microvolt = <5000000>;
>> +			regulator-max-microvolt = <5000000>;
>> +			pinctrl-0 = <&ahci_pwr_pin>;
>> +			gpio = <&pio 1 8 0>;
>> +			enable-active-high;
>> +		};
>> +	};
>>   };
>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>> index 8a1009d..19af23e 100644
>> --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>> +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>> @@ -19,7 +19,18 @@
>>   	compatible = "cubietech,cubietruck", "allwinner,sun7i-a20";
>>
>>   	soc@01c00000 {
>> +		sata: ahci@01c18000 {
>> +			pwr-supply = <&reg_ahci_5v>;
>> +			status = "okay";
>> +		};
>> +
>>   		pinctrl@01c20800 {
>> +			ahci_pwr_pin: ahci_pwr_pin@0 {
>> +				allwinner,pins = "PH12";
>> +				allwinner,function = "gpio_out";
>> +				allwinner,driver = <0>;
>> +				allwinner,pull = <0>;
>> +			};
>
> Please add a newline here.
>
>>   			led_pins_cubietruck: led_pins@0 {
>>   				allwinner,pins = "PH7", "PH11", "PH20", "PH21";
>>   				allwinner,function = "gpio_out";
>> @@ -60,4 +71,19 @@
>>   			gpios = <&pio 7 7 0>;
>>   		};
>>   	};
>> +
>> +	regulators {
>> +		compatible = "simple-bus";
>> +		pinctrl-names = "default";
>> +
>> +		reg_ahci_5v: ahci-5v {
>> +			compatible = "regulator-fixed";
>> +			regulator-name = "ahci-5v";
>> +			regulator-min-microvolt = <5000000>;
>> +			regulator-max-microvolt = <5000000>;
>> +			pinctrl-0 = <&ahci_pwr_pin>;
>> +			gpio = <&pio 7 12 0>;
>> +			enable-active-high;
>> +		};
>> +	};
>>   };
>> diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>> index ead3013..23ed708 100644
>> --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>> +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>> @@ -34,7 +34,19 @@
>>   			};
>>   		};
>>
>> +		sata: ahci@01c18000 {
>> +			pwr-supply = <&reg_ahci_5v>;
>> +			status = "okay";
>> +		};
>> +
>>   		pinctrl@01c20800 {
>> +			ahci_pwr_pin: ahci_pwr_pin@0 {
>> +				allwinner,pins = "PB8";
>> +				allwinner,function = "gpio_out";
>> +				allwinner,drive = <0>;
>> +				allwinner,pull = <0>;
>> +			};
>> +
>>   			led_pins_olinuxino: led_pins@0 {
>>   				allwinner,pins = "PH2";
>>   				allwinner,function = "gpio_out";
>> @@ -91,4 +103,18 @@
>>   			default-state = "on";
>>   		};
>>   	};
>> +
>> +	regulators {
>> +		compatible = "simple-bus";
>> +
>> +		reg_ahci_5v: ahci-5v {
>> +			compatible = "regulator-fixed";
>> +			regulator-name = "ahci-5v";
>> +			regulator-min-microvolt = <5000000>;
>> +			regulator-max-microvolt = <5000000>;
>> +			pinctrl-0 = <&ahci_pwr_pin>;
>> +			gpio = <&pio 1 8 0>;
>> +			enable-active-high;
>> +		};
>> +	};
>>   };
>> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
>> index 0552a64..b72c69e 100644
>> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
>> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
>> @@ -368,6 +368,15 @@
>>   			};
>>   		};
>>
>> +		sata: ahci@01c18000 {
>> +			compatible = "allwinner,sun4i-a10-ahci";
>> +			reg = <0x01c18000 0x1000>;
>> +			interrupts = <0 56 1>;
Will always fix this to <0 56 4> if i'm not mistaken.

oliver
>> +			clocks = <&ahb_gates 25>, <&pll6 0>;
>> +			clock-names = "ahb_sata", "pll6_sata";
>> +			status = "disabled";
>> +		};
>> +
>>   		timer@01c20c00 {
>>   			compatible = "allwinner,sun4i-timer";
>>   			reg = <0x01c20c00 0x90>;
>> --
>> 1.8.3.2
>>
>
> Thanks,
> Maxime
>

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michal Suchanek Dec. 7, 2013, 1:11 p.m. UTC | #3
On 7 December 2013 12:47, Olliver Schinagl <oliver+list@schinagl.nl> wrote:
> Hey maxime,
>
> On 06-12-13 19:33, Maxime Ripard wrote:
>>
>> Hi Oliver,
>>
>> On Wed, Dec 04, 2013 at 01:10:55PM +0100, oliver@schinagl.nl wrote:
>>>
>>> From: Oliver Schinagl <oliver@schinagl.nl>
>>>
>>> This patch adds sunxi sata support to A10 and A20 boards that have such
>>> a connector. Some boards also feature a regulator via a GPIO and support
>>> for this is also added.
>>>
>>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>>
>>
>> Your git setup seems to be pretty uncertain about how your first name is
>> spelled :)
>
> I should have formally mention it to confuse less people,
>
> This is how officially my name is spelled (I left out any 'middle' letters.
> I never really used it as such, as it confuses people and they always write
> it wrong anyway. After years I decided that at least on these patches, I
> should write it down properly (googleability etc in the future). So formally
> it's Olliver 'oliver' M. Schinagl.
>
> And no, I won't share my middle name :p
>
> There! :)
>
>>
>>> ---
>>>   arch/arm/boot/dts/sun4i-a10-cubieboard.dts      | 26
>>> +++++++++++++++++++++++++
>>>   arch/arm/boot/dts/sun4i-a10.dtsi                |  9 +++++++++
>>>   arch/arm/boot/dts/sun7i-a20-cubieboard2.dts     | 26
>>> +++++++++++++++++++++++++
>>>   arch/arm/boot/dts/sun7i-a20-cubietruck.dts      | 26
>>> +++++++++++++++++++++++++
>>>   arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 26
>>> +++++++++++++++++++++++++
>>>   arch/arm/boot/dts/sun7i-a20.dtsi                |  9 +++++++++
>>>   6 files changed, 122 insertions(+)
>>
>>
>> Could you split this into several patches please?
>
> Yes, appologies, will take care of this! Sorry,
>
> Oliver
>
>>
>> At least one per SoC.
>>
>>> diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>>> b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>>> index 425a7db..b620084 100644
>>> --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>>> +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
>>> @@ -42,7 +42,18 @@
>>>                         };
>>>                 };
>>>
>>> +               sata: ahci@01c18000 {
>>> +                       pwr-supply = <&reg_ahci_5v>;
>>> +                       status = "okay";
>>> +               };
>>> +
>>>                 pinctrl@01c20800 {
>>> +                       ahci_pwr_pin: ahci_pwr_pin@0 {
>>
>>
>> Please prefix it with name of the board.
>>
>>> +                               allwinner,pins = "PB8";
>>> +                               allwinner,function = "gpio_out";
>>> +                               allwinner,driver = <0>;
>>> +                               allwinner,pull = <0>;
>>> +                       };
>>
>>
>> Please add a newline here.
>>
>>>                         led_pins_cubieboard: led_pins@0 {
>>>                                 allwinner,pins = "PH20", "PH21";
>>>                                 allwinner,function = "gpio_out";
>>> @@ -86,4 +97,19 @@
>>>                         linux,default-trigger = "heartbeat";
>>>                 };
>>>         };
>>> +
>>> +       regulators {
>>> +               compatible = "simple-bus";
>>> +               pinctrl-names = "default";
>>> +
>>> +               reg_ahci_5v: ahci-5v {
>>> +                       compatible = "regulator-fixed";
>>> +                       regulator-name = "ahci-5v";
>>> +                       regulator-min-microvolt = <5000000>;
>>> +                       regulator-max-microvolt = <5000000>;
>>> +                       pinctrl-0 = <&ahci_pwr_pin>;
>>> +                       gpio = <&pio 1 8 0>;
>>> +                       enable-active-high;
>>> +               };
>>> +       };
>>>   };
>>> diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi
>>> b/arch/arm/boot/dts/sun4i-a10.dtsi
>>> index 4dccdb0..53c6cdb 100644
>>> --- a/arch/arm/boot/dts/sun4i-a10.dtsi
>>> +++ b/arch/arm/boot/dts/sun4i-a10.dtsi
>>> @@ -306,6 +306,15 @@
>>>                         #size-cells = <0>;
>>>                 };
>>>
>>> +               sata: ahci@01c18000 {
>>> +                       compatible = "allwinner,sun4i-a10-ahci";
>>
>>
>> Please use sun4i-ahci for consistency.
>>
>>> +                       reg = <0x01c18000 0x1000>;
>>> +                       interrupts = <0 56 1>;
>>
>>
>> The interrupt here doesn't seem right. Is it actually working at all?
>>
>>> +                       clocks = <&ahb_gates 25>, <&pll6 0>;
>>> +                       clock-names = "ahb_sata", "pll6_sata";
>>> +                       status = "disabled";
>>> +               };
>>> +
>>>                 intc: interrupt-controller@01c20400 {
>>>                         compatible = "allwinner,sun4i-ic";
>>>                         reg = <0x01c20400 0x400>;
>>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>>> b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>>> index 5c51cb8..99c5e78 100644
>>> --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>>> +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
>>> @@ -34,7 +34,18 @@
>>>                         };
>>>                 };
>>>
>>> +               sata: ahci@01c18000 {
>>> +                       pwr-supply = <&reg_ahci_5v>;
>>> +                       status = "okay";
>>> +               };
>>> +
>>>                 pinctrl@01c20800 {
>>> +                       ahci_pwr_pin: ahci_pwr_pin@0 {
>>> +                               allwinner,pins = "PB8";
>>> +                               allwinner,function = "gpio_out";
>>> +                               allwinner,drive = <0>;
>>> +                               allwinner,pull = <0>;
>>> +                       };
>>
>>
>> Please add a newline here.
>>
>>>                         led_pins_cubieboard2: led_pins@0 {
>>>                                 allwinner,pins = "PH20", "PH21";
>>>                                 allwinner,function = "gpio_out";
>>> @@ -77,4 +88,19 @@
>>>                         gpios = <&pio 7 20 0>;
>>>                 };
>>>         };
>>> +
>>> +       regulators {
>>> +               compatible = "simple-bus";
>>> +               pinctrl-names = "default";
>>> +
>>> +               reg_ahci_5v: ahci-5v {
>>> +                       compatible = "regulator-fixed";
>>> +                       regulator-name = "ahci-5v";
>>> +                       regulator-min-microvolt = <5000000>;
>>> +                       regulator-max-microvolt = <5000000>;
>>> +                       pinctrl-0 = <&ahci_pwr_pin>;
>>> +                       gpio = <&pio 1 8 0>;
>>> +                       enable-active-high;
>>> +               };
>>> +       };
>>>   };
>>> diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>>> b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>>> index 8a1009d..19af23e 100644
>>> --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>>> +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
>>> @@ -19,7 +19,18 @@
>>>         compatible = "cubietech,cubietruck", "allwinner,sun7i-a20";
>>>
>>>         soc@01c00000 {
>>> +               sata: ahci@01c18000 {
>>> +                       pwr-supply = <&reg_ahci_5v>;
>>> +                       status = "okay";
>>> +               };
>>> +
>>>                 pinctrl@01c20800 {
>>> +                       ahci_pwr_pin: ahci_pwr_pin@0 {
>>> +                               allwinner,pins = "PH12";
>>> +                               allwinner,function = "gpio_out";
>>> +                               allwinner,driver = <0>;
>>> +                               allwinner,pull = <0>;
>>> +                       };
>>
>>
>> Please add a newline here.
>>
>>>                         led_pins_cubietruck: led_pins@0 {
>>>                                 allwinner,pins = "PH7", "PH11", "PH20",
>>> "PH21";
>>>                                 allwinner,function = "gpio_out";
>>> @@ -60,4 +71,19 @@
>>>                         gpios = <&pio 7 7 0>;
>>>                 };
>>>         };
>>> +
>>> +       regulators {
>>> +               compatible = "simple-bus";
>>> +               pinctrl-names = "default";
>>> +
>>> +               reg_ahci_5v: ahci-5v {
>>> +                       compatible = "regulator-fixed";
>>> +                       regulator-name = "ahci-5v";
>>> +                       regulator-min-microvolt = <5000000>;
>>> +                       regulator-max-microvolt = <5000000>;
>>> +                       pinctrl-0 = <&ahci_pwr_pin>;
>>> +                       gpio = <&pio 7 12 0>;
>>> +                       enable-active-high;
>>> +               };
>>> +       };
>>>   };
>>> diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>>> b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>>> index ead3013..23ed708 100644
>>> --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>>> +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
>>> @@ -34,7 +34,19 @@
>>>                         };
>>>                 };
>>>
>>> +               sata: ahci@01c18000 {
>>> +                       pwr-supply = <&reg_ahci_5v>;
>>> +                       status = "okay";
>>> +               };
>>> +
>>>                 pinctrl@01c20800 {
>>> +                       ahci_pwr_pin: ahci_pwr_pin@0 {
>>> +                               allwinner,pins = "PB8";
>>> +                               allwinner,function = "gpio_out";
>>> +                               allwinner,drive = <0>;
>>> +                               allwinner,pull = <0>;
>>> +                       };
>>> +
>>>                         led_pins_olinuxino: led_pins@0 {
>>>                                 allwinner,pins = "PH2";
>>>                                 allwinner,function = "gpio_out";
>>> @@ -91,4 +103,18 @@
>>>                         default-state = "on";
>>>                 };
>>>         };
>>> +
>>> +       regulators {
>>> +               compatible = "simple-bus";
>>> +
>>> +               reg_ahci_5v: ahci-5v {
>>> +                       compatible = "regulator-fixed";
>>> +                       regulator-name = "ahci-5v";
>>> +                       regulator-min-microvolt = <5000000>;
>>> +                       regulator-max-microvolt = <5000000>;
>>> +                       pinctrl-0 = <&ahci_pwr_pin>;
>>> +                       gpio = <&pio 1 8 0>;
>>> +                       enable-active-high;
>>> +               };
>>> +       };
>>>   };
>>> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi
>>> b/arch/arm/boot/dts/sun7i-a20.dtsi
>>> index 0552a64..b72c69e 100644
>>> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
>>> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
>>> @@ -368,6 +368,15 @@
>>>                         };
>>>                 };
>>>
>>> +               sata: ahci@01c18000 {
>>> +                       compatible = "allwinner,sun4i-a10-ahci";
>>> +                       reg = <0x01c18000 0x1000>;
>>> +                       interrupts = <0 56 1>;
>
> Will always fix this to <0 56 4> if i'm not mistaken.

<0 56 1> appears to work on sun7i but sun4i has <56> in the working
DT. The DT you sent has <0 56 1> on sun4i which somehow compiles and
loads as DT but the driver fails.

Thanks

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Maxime Ripard Dec. 9, 2013, 7:16 p.m. UTC | #4
On Sat, Dec 07, 2013 at 12:47:39PM +0100, Olliver Schinagl wrote:
> Hey maxime,
> On 06-12-13 19:33, Maxime Ripard wrote:
> >Hi Oliver,
> >
> >On Wed, Dec 04, 2013 at 01:10:55PM +0100, oliver@schinagl.nl wrote:
> >>From: Oliver Schinagl <oliver@schinagl.nl>
> >>
> >>This patch adds sunxi sata support to A10 and A20 boards that have such
> >>a connector. Some boards also feature a regulator via a GPIO and support
> >>for this is also added.
> >>
> >>Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
> >
> >Your git setup seems to be pretty uncertain about how your first name is spelled :)
> I should have formally mention it to confuse less people,
> 
> This is how officially my name is spelled (I left out any 'middle'
> letters. I never really used it as such, as it confuses people and
> they always write it wrong anyway. After years I decided that at
> least on these patches, I should write it down properly
> (googleability etc in the future). So formally it's Olliver 'oliver'
> M. Schinagl.
> 
> And no, I won't share my middle name :p
> 
> There! :)

My point was more that the spelling in your From is different from the
spelling in your SoB.

> >>diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
> >>index 0552a64..b72c69e 100644
> >>--- a/arch/arm/boot/dts/sun7i-a20.dtsi
> >>+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
> >>@@ -368,6 +368,15 @@
> >>  			};
> >>  		};
> >>
> >>+		sata: ahci@01c18000 {
> >>+			compatible = "allwinner,sun4i-a10-ahci";
> >>+			reg = <0x01c18000 0x1000>;
> >>+			interrupts = <0 56 1>;
> Will always fix this to <0 56 4> if i'm not mistaken.

Only the GIC has a three-cells interrupts. So only the A20 and A31 are
supposed to have this value.

Maxime
diff mbox

Patch

diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 425a7db..b620084 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -42,7 +42,18 @@ 
 			};
 		};
 
+		sata: ahci@01c18000 {
+			pwr-supply = <&reg_ahci_5v>;
+			status = "okay";
+		};
+
 		pinctrl@01c20800 {
+			ahci_pwr_pin: ahci_pwr_pin@0 {
+				allwinner,pins = "PB8";
+				allwinner,function = "gpio_out";
+				allwinner,driver = <0>;
+				allwinner,pull = <0>;
+			};
 			led_pins_cubieboard: led_pins@0 {
 				allwinner,pins = "PH20", "PH21";
 				allwinner,function = "gpio_out";
@@ -86,4 +97,19 @@ 
 			linux,default-trigger = "heartbeat";
 		};
 	};
+
+	regulators {
+		compatible = "simple-bus";
+		pinctrl-names = "default";
+
+		reg_ahci_5v: ahci-5v {
+			compatible = "regulator-fixed";
+			regulator-name = "ahci-5v";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			pinctrl-0 = <&ahci_pwr_pin>;
+			gpio = <&pio 1 8 0>;
+			enable-active-high;
+		};
+	};
 };
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index 4dccdb0..53c6cdb 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -306,6 +306,15 @@ 
 			#size-cells = <0>;
 		};
 
+		sata: ahci@01c18000 {
+			compatible = "allwinner,sun4i-a10-ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <0 56 1>;
+			clocks = <&ahb_gates 25>, <&pll6 0>;
+			clock-names = "ahb_sata", "pll6_sata";
+			status = "disabled";
+		};
+
 		intc: interrupt-controller@01c20400 {
 			compatible = "allwinner,sun4i-ic";
 			reg = <0x01c20400 0x400>;
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 5c51cb8..99c5e78 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -34,7 +34,18 @@ 
 			};
 		};
 
+		sata: ahci@01c18000 {
+			pwr-supply = <&reg_ahci_5v>;
+			status = "okay";
+		};
+
 		pinctrl@01c20800 {
+			ahci_pwr_pin: ahci_pwr_pin@0 {
+				allwinner,pins = "PB8";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 			led_pins_cubieboard2: led_pins@0 {
 				allwinner,pins = "PH20", "PH21";
 				allwinner,function = "gpio_out";
@@ -77,4 +88,19 @@ 
 			gpios = <&pio 7 20 0>;
 		};
 	};
+
+	regulators {
+		compatible = "simple-bus";
+		pinctrl-names = "default";
+
+		reg_ahci_5v: ahci-5v {
+			compatible = "regulator-fixed";
+			regulator-name = "ahci-5v";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			pinctrl-0 = <&ahci_pwr_pin>;
+			gpio = <&pio 1 8 0>;
+			enable-active-high;
+		};
+	};
 };
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 8a1009d..19af23e 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -19,7 +19,18 @@ 
 	compatible = "cubietech,cubietruck", "allwinner,sun7i-a20";
 
 	soc@01c00000 {
+		sata: ahci@01c18000 {
+			pwr-supply = <&reg_ahci_5v>;
+			status = "okay";
+		};
+
 		pinctrl@01c20800 {
+			ahci_pwr_pin: ahci_pwr_pin@0 {
+				allwinner,pins = "PH12";
+				allwinner,function = "gpio_out";
+				allwinner,driver = <0>;
+				allwinner,pull = <0>;
+			};
 			led_pins_cubietruck: led_pins@0 {
 				allwinner,pins = "PH7", "PH11", "PH20", "PH21";
 				allwinner,function = "gpio_out";
@@ -60,4 +71,19 @@ 
 			gpios = <&pio 7 7 0>;
 		};
 	};
+
+	regulators {
+		compatible = "simple-bus";
+		pinctrl-names = "default";
+
+		reg_ahci_5v: ahci-5v {
+			compatible = "regulator-fixed";
+			regulator-name = "ahci-5v";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			pinctrl-0 = <&ahci_pwr_pin>;
+			gpio = <&pio 7 12 0>;
+			enable-active-high;
+		};
+	};
 };
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index ead3013..23ed708 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -34,7 +34,19 @@ 
 			};
 		};
 
+		sata: ahci@01c18000 {
+			pwr-supply = <&reg_ahci_5v>;
+			status = "okay";
+		};
+
 		pinctrl@01c20800 {
+			ahci_pwr_pin: ahci_pwr_pin@0 {
+				allwinner,pins = "PB8";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
+
 			led_pins_olinuxino: led_pins@0 {
 				allwinner,pins = "PH2";
 				allwinner,function = "gpio_out";
@@ -91,4 +103,18 @@ 
 			default-state = "on";
 		};
 	};
+
+	regulators {
+		compatible = "simple-bus";
+
+		reg_ahci_5v: ahci-5v {
+			compatible = "regulator-fixed";
+			regulator-name = "ahci-5v";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			pinctrl-0 = <&ahci_pwr_pin>;
+			gpio = <&pio 1 8 0>;
+			enable-active-high;
+		};
+	};
 };
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 0552a64..b72c69e 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -368,6 +368,15 @@ 
 			};
 		};
 
+		sata: ahci@01c18000 {
+			compatible = "allwinner,sun4i-a10-ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <0 56 1>;
+			clocks = <&ahb_gates 25>, <&pll6 0>;
+			clock-names = "ahb_sata", "pll6_sata";
+			status = "disabled";
+		};
+
 		timer@01c20c00 {
 			compatible = "allwinner,sun4i-timer";
 			reg = <0x01c20c00 0x90>;