sunxi: driver refresh for 3.13
[openwrt.git] / target / linux / sunxi / patches-3.13 / 164-1-dt-sun4i-add-ahci.patch
1 From 3cae1df0e62432a80db86c80e261eb9bbed326ee 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: dt: 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 |  6 +++++
15  arch/arm/boot/dts/sun4i-a10.dtsi           |  8 +++++++
16  arch/arm/boot/dts/sunxi-ahci-reg.dtsi      | 36 ++++++++++++++++++++++++++++++
17  4 files changed, 54 insertions(+)
18  create mode 100644 arch/arm/boot/dts/sunxi-ahci-reg.dtsi
19
20 diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
21 index cbd2e13..d6ec839 100644
22 --- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
23 +++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
24 @@ -35,6 +35,10 @@
25                         };
26                 };
27  
28 +               ahci: sata@01c18000 {
29 +                       status = "okay";
30 +               };
31 +
32                 pinctrl@01c20800 {
33                         emac_power_pin_a1000: emac_power_pin@0 {
34                                 allwinner,pins = "PH15";
35 diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
36 index b139ee6..6df237d8 100644
37 --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
38 +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
39 @@ -12,6 +12,7 @@
40  
41  /dts-v1/;
42  /include/ "sun4i-a10.dtsi"
43 +/include/ "sunxi-ahci-reg.dtsi"
44  
45  / {
46         model = "Cubietech Cubieboard";
47 @@ -33,6 +34,11 @@
48                         };
49                 };
50  
51 +               ahci: sata@01c18000 {
52 +                       target-supply = <&reg_ahci_5v>;
53 +                       status = "okay";
54 +               };
55 +
56                 pinctrl@01c20800 {
57                         led_pins_cubieboard: led_pins@0 {
58                                 allwinner,pins = "PH20", "PH21";
59 diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
60 index 336dbec..454077a 100644
61 --- a/arch/arm/boot/dts/sun4i-a10.dtsi
62 +++ b/arch/arm/boot/dts/sun4i-a10.dtsi
63 @@ -338,6 +338,14 @@
64                         #size-cells = <0>;
65                 };
66  
67 +               ahci: sata@01c18000 {
68 +                       compatible = "allwinner,sun4i-a10-ahci";
69 +                       reg = <0x01c18000 0x1000>;
70 +                       interrupts = <56>;
71 +                       clocks = <&pll6 0>, <&ahb_gates 25>;
72 +                       status = "disabled";
73 +               };
74 +
75                 intc: interrupt-controller@01c20400 {
76                         compatible = "allwinner,sun4i-ic";
77                         reg = <0x01c20400 0x400>;
78 diff --git a/arch/arm/boot/dts/sunxi-ahci-reg.dtsi b/arch/arm/boot/dts/sunxi-ahci-reg.dtsi
79 new file mode 100644
80 index 0000000..7072af1
81 --- /dev/null
82 +++ b/arch/arm/boot/dts/sunxi-ahci-reg.dtsi
83 @@ -0,0 +1,36 @@
84 +/*
85 + * sunxi boards sata target power supply common code
86 + *
87 + * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
88 + *
89 + * The code contained herein is licensed under the GNU General Public
90 + * License. You may obtain a copy of the GNU General Public License
91 + * Version 2 or later at the following locations:
92 + *
93 + * http://www.opensource.org/licenses/gpl-license.html
94 + * http://www.gnu.org/copyleft/gpl.html
95 + */
96 +
97 +/ {
98 +       soc@01c00000 {
99 +               pio: pinctrl@01c20800 {
100 +                       ahci_pwr_pin_a: ahci_pwr_pin@0 {
101 +                               allwinner,pins = "PB8";
102 +                               allwinner,function = "gpio_out";
103 +                               allwinner,drive = <0>;
104 +                               allwinner,pull = <0>;
105 +                       };
106 +               };
107 +       };
108 +
109 +       reg_ahci_5v: ahci-5v {
110 +               compatible = "regulator-fixed";
111 +               pinctrl-names = "default";
112 +               pinctrl-0 = <&ahci_pwr_pin_a>;
113 +               regulator-name = "ahci-5v";
114 +               regulator-min-microvolt = <5000000>;
115 +               regulator-max-microvolt = <5000000>;
116 +               enable-active-high;
117 +               gpio = <&pio 1 8 0>;
118 +       };
119 +};
120 -- 
121 1.8.5.5
122