sunxi: initial 3.13 support
[openwrt.git] / target / linux / sunxi / patches-3.13 / 162-1-dt-sun4i-add-ahci-nodes.patch
1 From 23af610e09f78822ade4067a400ff9ceb5b020ea Mon Sep 17 00:00:00 2001
2 From: Oliver Schinagl <oliver@schinagl.nl>
3 Date: Tue, 3 Dec 2013 12:10:11 +0100
4 Subject: [PATCH] ARM: sun4i: dts: Add ahci / sata support
5
6 This patch adds sunxi sata support to A10 boards that have such a connector.
7 Some boards also feature a regulator via a GPIO and support for this is also
8 added.
9
10 Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
11 Signed-off-by: Hans de Goede <hdegoede@redhat.com>
12 ---
13  arch/arm/boot/dts/sun4i-a10-a1000.dts      |  4 ++++
14  arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 27 +++++++++++++++++++++++++++
15  arch/arm/boot/dts/sun4i-a10.dtsi           |  9 +++++++++
16  3 files changed, 40 insertions(+)
17
18 diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
19 index aef8207..fd6d512 100644
20 --- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
21 +++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
22 @@ -48,6 +48,10 @@
23                         status = "okay";
24                 };
25  
26 +               sata: ahci@01c18000 {
27 +                       status = "okay";
28 +               };
29 +
30                 pinctrl@01c20800 {
31                         mmc0_cd_pin_a1000: mmc0_cd_pin@0 {
32                                 allwinner,pins = "PH1";
33 diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
34 index f50fb2b..53ac453 100644
35 --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
36 +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
37 @@ -51,7 +51,19 @@
38                         status = "okay";
39                 };
40  
41 +               sata: ahci@01c18000 {
42 +                       pwr-supply = <&reg_ahci_5v>;
43 +                       status = "okay";
44 +               };
45 +
46                 pinctrl@01c20800 {
47 +                       ahci_pwr_pin_cubieboard: ahci_pwr_pin@0 {
48 +                               allwinner,pins = "PB8";
49 +                               allwinner,function = "gpio_out";
50 +                               allwinner,drive = <0>;
51 +                               allwinner,pull = <0>;
52 +                       };
53 +
54                         mmc0_cd_pin_cubieboard: mmc0_cd_pin@0 {
55                                 allwinner,pins = "PH1";
56                                 allwinner,function = "gpio_in";
57 @@ -102,4 +114,19 @@
58                         linux,default-trigger = "heartbeat";
59                 };
60         };
61 +
62 +       regulators {
63 +               compatible = "simple-bus";
64 +               pinctrl-names = "default";
65 +
66 +               reg_ahci_5v: ahci-5v {
67 +                       compatible = "regulator-fixed";
68 +                       regulator-name = "ahci-5v";
69 +                       regulator-min-microvolt = <5000000>;
70 +                       regulator-max-microvolt = <5000000>;
71 +                       pinctrl-0 = <&ahci_pwr_pin_cubieboard>;
72 +                       gpio = <&pio 1 8 0>;
73 +                       enable-active-high;
74 +               };
75 +       };
76  };
77 diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
78 index 4736dd2..731b491 100644
79 --- a/arch/arm/boot/dts/sun4i-a10.dtsi
80 +++ b/arch/arm/boot/dts/sun4i-a10.dtsi
81 @@ -331,6 +331,15 @@
82                         status = "disabled";
83                 };
84  
85 +               sata: ahci@01c18000 {
86 +                       compatible = "allwinner,sun4i-a10-ahci";
87 +                       reg = <0x01c18000 0x1000>;
88 +                       interrupts = <56>;
89 +                       clocks = <&ahb_gates 25>, <&pll6 0>;
90 +                       clock-names = "ahb_sata", "pll6_sata";
91 +                       status = "disabled";
92 +               };
93 +
94                 intc: interrupt-controller@01c20400 {
95                         compatible = "allwinner,sun4i-ic";
96                         reg = <0x01c20400 0x400>;
97 -- 
98 1.8.5.1
99