From: Oliver Schinagl <oli...@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 <oli...@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(+)

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>;
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to