aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-09-13 11:36:04 -0400
committerArnd Bergmann <arnd@arndb.de>2016-09-13 11:36:04 -0400
commitd9d37f70feab141515e87128af7e1fc8c2352d4e (patch)
treeedd09038077cd21968b8f3864fd28f58cb92f37e
parenta6023d05001737722a9a06c4c49f4e2cf340fda4 (diff)
parentaccfb2f19d185628858dc0c063c69c8b75b32724 (diff)
Merge tag 'sunxi-dt-for-4.9' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt
Pull "Allwinner DT changes for 4.9" from Maxime Ripard: Business as usual on our side, with a mix of new boards and new IPs enabled on boards: - Support for the GPIO found on the AXP PMIC - ESP8089 on the relevant boards - More boards converted to the reference design and q8 designs - New boards: Orange Pi PC Plus, Orange Pi 2, Orange Pi Plus 2E, Orange Pi Lite, Olimex A33-Olinuxino, Empire Electronix M712, inet-d978_rev2, Nano Pi Neo * tag 'sunxi-dt-for-4.9' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (31 commits) devicetree: Add vendor prefix for FriendlyARM ARM: dts: sun8i: Add dts file for the NanoPi NEO SBC ARM: dts: sun8i-q8-common: Add support for SDIO wifi controllers ARM: dts: sun8i: Add dts file for the Orange Pi Plus2E SBC ARM: dts: sun8i: Orange Pi Plus dts is for the Plus and Plus 2 ARM: dts: sun8i: Add PWM controller node in H3 ARM: dts: sun8i: Add dts file for inet-d978_rev2 tablets ARM: dts: sun9i: Add missing #interrupt-cells to R_PIO pinctrl device node ARM: dts: sun8i: Rename reference-design-tablet touchscreen node ARM: dts: sun5i: Add dts file for the Empire Electronix M712 tablet ARM: dts: sun5i: Convert inet-98v-rev2 dts to use reference-design-tablet.dtsi ARM: dts: sun4i: Disable ohci1 on ba10-tv-box ARM: dts: sun8i: Add dt node for esp8089 wifi chip on polaroid-mid2809 ARM: dts: sun8i: Add dt node for esp8089 wifi chip on polaroid-mid2407 ARM: dts: sun8i: add NAND controller node for A23/A33 ARM: dts: sun6i: Add new dts file for tablets using the inet-q972 PCB ARM: dts: sun6i: Add sun6i-reference-design-tablet.dtsi ARM: dts: sun6i: colorfly-e708-q1: Remove unused mma8452_int_e708_q1 node ARM: dts: sun9i: Switch to the AC100 RTC clock outputs for osc32k ARM: dts: sun9i: cubieboard4: Add device node for AC100 ...
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt1
-rw-r--r--arch/arm/boot/dts/Makefile8
-rw-r--r--arch/arm/boot/dts/axp209.dtsi6
-rw-r--r--arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts4
-rw-r--r--arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts51
-rw-r--r--arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts164
-rw-r--r--arch/arm/boot/dts/sun5i-r8-chip.dts10
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts138
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-inet-q972.dts100
-rw-r--r--arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi193
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi21
-rw-r--r--arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts192
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts42
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts42
-rw-r--r--arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts18
-rw-r--r--arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts88
-rw-r--r--arch/arm/boot/dts/sun8i-a33-olinuxino.dts226
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts125
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-2.dts10
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts178
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts88
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts2
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts53
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi8
-rw-r--r--arch/arm/boot/dts/sun8i-q8-common.dtsi49
-rw-r--r--arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi26
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts29
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts29
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi14
29 files changed, 1411 insertions, 504 deletions
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 1992aa97d45a..7b6bda3b4189 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -98,6 +98,7 @@ ezchip EZchip Semiconductor
98fcs Fairchild Semiconductor 98fcs Fairchild Semiconductor
99firefly Firefly 99firefly Firefly
100focaltech FocalTech Systems Co.,Ltd 100focaltech FocalTech Systems Co.,Ltd
101friendlyarm Guangzhou FriendlyARM Computer Tech Co., Ltd
101fsl Freescale Semiconductor 102fsl Freescale Semiconductor
102ge General Electric Company 103ge General Electric Company
103geekbuying GeekBuying 104geekbuying GeekBuying
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 8eb8cff8c97d..f228163b02f7 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -731,6 +731,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
731 sun5i-a10s-wobo-i5.dtb \ 731 sun5i-a10s-wobo-i5.dtb \
732 sun5i-a13-difrnce-dit4350.dtb \ 732 sun5i-a13-difrnce-dit4350.dtb \
733 sun5i-a13-empire-electronix-d709.dtb \ 733 sun5i-a13-empire-electronix-d709.dtb \
734 sun5i-a13-empire-electronix-m712.dtb \
734 sun5i-a13-hsg-h702.dtb \ 735 sun5i-a13-hsg-h702.dtb \
735 sun5i-a13-inet-98v-rev2.dtb \ 736 sun5i-a13-inet-98v-rev2.dtb \
736 sun5i-a13-olinuxino.dtb \ 737 sun5i-a13-olinuxino.dtb \
@@ -747,6 +748,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
747 sun6i-a31-mele-a1000g-quad.dtb \ 748 sun6i-a31-mele-a1000g-quad.dtb \
748 sun6i-a31s-colorfly-e708-q1.dtb \ 749 sun6i-a31s-colorfly-e708-q1.dtb \
749 sun6i-a31s-cs908.dtb \ 750 sun6i-a31s-cs908.dtb \
751 sun6i-a31s-inet-q972.dtb \
750 sun6i-a31s-primo81.dtb \ 752 sun6i-a31s-primo81.dtb \
751 sun6i-a31s-sina31s.dtb \ 753 sun6i-a31s-sina31s.dtb \
752 sun6i-a31s-sinovoip-bpi-m2.dtb \ 754 sun6i-a31s-sinovoip-bpi-m2.dtb \
@@ -786,16 +788,22 @@ dtb-$(CONFIG_MACH_SUN8I) += \
786 sun8i-a23-q8-tablet.dtb \ 788 sun8i-a23-q8-tablet.dtb \
787 sun8i-a33-et-q8-v1.6.dtb \ 789 sun8i-a33-et-q8-v1.6.dtb \
788 sun8i-a33-ga10h-v1.1.dtb \ 790 sun8i-a33-ga10h-v1.1.dtb \
791 sun8i-a33-inet-d978-rev2.dtb \
789 sun8i-a33-ippo-q8h-v1.2.dtb \ 792 sun8i-a33-ippo-q8h-v1.2.dtb \
793 sun8i-a33-olinuxino.dtb \
790 sun8i-a33-q8-tablet.dtb \ 794 sun8i-a33-q8-tablet.dtb \
791 sun8i-a33-sinlinx-sina33.dtb \ 795 sun8i-a33-sinlinx-sina33.dtb \
792 sun8i-a83t-allwinner-h8homlet-v2.dtb \ 796 sun8i-a83t-allwinner-h8homlet-v2.dtb \
793 sun8i-a83t-cubietruck-plus.dtb \ 797 sun8i-a83t-cubietruck-plus.dtb \
794 sun8i-h3-bananapi-m2-plus.dtb \ 798 sun8i-h3-bananapi-m2-plus.dtb \
799 sun8i-h3-nanopi-neo.dtb \
795 sun8i-h3-orangepi-2.dtb \ 800 sun8i-h3-orangepi-2.dtb \
801 sun8i-h3-orangepi-lite.dtb \
796 sun8i-h3-orangepi-one.dtb \ 802 sun8i-h3-orangepi-one.dtb \
797 sun8i-h3-orangepi-pc.dtb \ 803 sun8i-h3-orangepi-pc.dtb \
804 sun8i-h3-orangepi-pc-plus.dtb \
798 sun8i-h3-orangepi-plus.dtb \ 805 sun8i-h3-orangepi-plus.dtb \
806 sun8i-h3-orangepi-plus2e.dtb \
799 sun8i-r16-parrot.dtb 807 sun8i-r16-parrot.dtb
800dtb-$(CONFIG_MACH_SUN9I) += \ 808dtb-$(CONFIG_MACH_SUN9I) += \
801 sun9i-a80-optimus.dtb \ 809 sun9i-a80-optimus.dtb \
diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index afbe89c01df5..675bb0f30825 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -53,6 +53,12 @@
53 interrupt-controller; 53 interrupt-controller;
54 #interrupt-cells = <1>; 54 #interrupt-cells = <1>;
55 55
56 axp_gpio: gpio {
57 compatible = "x-powers,axp209-gpio";
58 gpio-controller;
59 #gpio-cells = <2>;
60 };
61
56 regulators { 62 regulators {
57 /* Default work frequency for buck regulators */ 63 /* Default work frequency for buck regulators */
58 x-powers,dcdc-freq = <1500>; 64 x-powers,dcdc-freq = <1500>;
diff --git a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
index f3cb297fd1db..5f98582232d6 100644
--- a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
+++ b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
@@ -121,10 +121,6 @@
121 status = "okay"; 121 status = "okay";
122}; 122};
123 123
124&ohci1 {
125 status = "okay";
126};
127
128&otg_sram { 124&otg_sram {
129 status = "okay"; 125 status = "okay";
130}; 126};
diff --git a/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts b/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts
new file mode 100644
index 000000000000..b1e2afd9de52
--- /dev/null
+++ b/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts
@@ -0,0 +1,51 @@
1/*
2 * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun5i-a13.dtsi"
45#include "sun5i-reference-design-tablet.dtsi"
46#include <dt-bindings/interrupt-controller/irq.h>
47
48/ {
49 model = "Empire Electronix M712 tablet";
50 compatible = "empire-electronix,m712", "allwinner,sun5i-a13";
51};
diff --git a/arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts b/arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts
index 1b11ec95ae53..439ae3b537df 100644
--- a/arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts
+++ b/arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts
@@ -42,171 +42,9 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun5i-a13.dtsi" 44#include "sun5i-a13.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun5i-reference-design-tablet.dtsi"
46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 46
51/ { 47/ {
52 model = "INet-98V Rev 02"; 48 model = "INet-98V Rev 02";
53 compatible = "primux,inet98v-rev2", "allwinner,sun5i-a13"; 49 compatible = "primux,inet98v-rev2", "allwinner,sun5i-a13";
54
55 aliases {
56 serial0 = &uart1;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62
63};
64
65&cpu0 {
66 cpu-supply = <&reg_dcdc2>;
67};
68
69&ehci0 {
70 status = "okay";
71};
72
73&i2c0 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&i2c0_pins_a>;
76 status = "okay";
77
78 axp209: pmic@34 {
79 reg = <0x34>;
80 interrupts = <0>;
81 };
82};
83
84#include "axp209.dtsi"
85
86&i2c1 {
87 pinctrl-names = "default";
88 pinctrl-0 = <&i2c1_pins_a>;
89 status = "okay";
90
91 pcf8563: rtc@51 {
92 compatible = "nxp,pcf8563";
93 reg = <0x51>;
94 };
95};
96
97&lradc {
98 vref-supply = <&reg_ldo2>;
99 status = "okay";
100
101 button@200 {
102 label = "Volume Up";
103 linux,code = <KEY_VOLUMEUP>;
104 channel = <0>;
105 voltage = <200000>;
106 };
107
108 button@400 {
109 label = "Volume Down";
110 linux,code = <KEY_VOLUMEDOWN>;
111 channel = <0>;
112 voltage = <400000>;
113 };
114};
115
116&mmc0 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_inet98fv2>;
119 vmmc-supply = <&reg_vcc3v3>;
120 bus-width = <4>;
121 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
122 cd-inverted;
123 status = "okay";
124};
125
126&otg_sram {
127 status = "okay";
128};
129
130&pio {
131 mmc0_cd_pin_inet98fv2: mmc0_cd_pin@0 {
132 allwinner,pins = "PG0";
133 allwinner,function = "gpio_in";
134 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
135 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
136 };
137
138 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
139 allwinner,pins = "PG1";
140 allwinner,function = "gpio_in";
141 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
142 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
143 };
144
145 usb0_id_detect_pin: usb0_id_detect_pin@0 {
146 allwinner,pins = "PG2";
147 allwinner,function = "gpio_in";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
149 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
150 };
151};
152
153&reg_dcdc2 {
154 regulator-always-on;
155 regulator-min-microvolt = <1000000>;
156 regulator-max-microvolt = <1400000>;
157 regulator-name = "vdd-cpu";
158};
159
160&reg_dcdc3 {
161 regulator-always-on;
162 regulator-min-microvolt = <1250000>;
163 regulator-max-microvolt = <1250000>;
164 regulator-name = "vdd-int-pll";
165};
166
167&reg_ldo1 {
168 regulator-name = "vdd-rtc";
169};
170
171&reg_ldo2 {
172 regulator-always-on;
173 regulator-min-microvolt = <3000000>;
174 regulator-max-microvolt = <3000000>;
175 regulator-name = "avcc";
176};
177
178&reg_ldo3 {
179 regulator-min-microvolt = <3300000>;
180 regulator-max-microvolt = <3300000>;
181 regulator-name = "vcc-wifi";
182};
183
184&reg_usb0_vbus {
185 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
186 status = "okay";
187};
188
189&uart1 {
190 pinctrl-names = "default";
191 pinctrl-0 = <&uart1_pins_b>;
192 status = "okay";
193};
194
195&usb_otg {
196 dr_mode = "otg";
197 status = "okay";
198};
199
200&usb0_vbus_pin_a {
201 allwinner,pins = "PG12";
202};
203
204&usbphy {
205 pinctrl-names = "default";
206 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
207 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
208 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
209 usb0_vbus-supply = <&reg_usb0_vbus>;
210 usb1_vbus-supply = <&reg_ldo3>;
211 status = "okay";
212}; 50};
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index f694482bdeb6..b68a12374b35 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -64,6 +64,16 @@
64 chosen { 64 chosen {
65 stdout-path = "serial0:115200n8"; 65 stdout-path = "serial0:115200n8";
66 }; 66 };
67
68 leds {
69 compatible = "gpio-leds";
70
71 status {
72 label = "chip:white:status";
73 gpios = <&axp_gpio 2 GPIO_ACTIVE_HIGH>;
74 default-state = "on";
75 };
76 };
67}; 77};
68 78
69&be0 { 79&be0 {
diff --git a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
index e182eec6d878..882a4d89fa22 100644
--- a/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts
@@ -42,32 +42,11 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun6i-a31s.dtsi" 44#include "sun6i-a31s.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun6i-reference-design-tablet.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 46
51/ { 47/ {
52 model = "Colorfly E708 Q1 tablet"; 48 model = "Colorfly E708 Q1 tablet";
53 compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s"; 49 compatible = "colorfly,e708-q1", "allwinner,sun6i-a31s";
54
55 aliases {
56 serial0 = &uart0;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62};
63
64&cpu0 {
65 cpu-supply = <&reg_dcdc3>;
66};
67
68&ehci0 {
69 /* rtl8188etv wifi is connected here */
70 status = "okay";
71}; 50};
72 51
73&lradc { 52&lradc {
@@ -82,103 +61,6 @@
82 }; 61 };
83}; 62};
84 63
85&mmc0 {
86 pinctrl-names = "default";
87 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
88 vmmc-supply = <&reg_dcdc1>;
89 bus-width = <4>;
90 cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
91 cd-inverted;
92 status = "okay";
93};
94
95&pio {
96 mma8452_int_e708_q1: mma8452_int_pin@0 {
97 allwinner,pins = "PA9";
98 allwinner,function = "gpio_in";
99 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
100 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
101 };
102
103 mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
104 allwinner,pins = "PA8";
105 allwinner,function = "gpio_in";
106 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
107 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
108 };
109};
110
111&p2wi {
112 status = "okay";
113
114 axp22x: pmic@68 {
115 compatible = "x-powers,axp221";
116 reg = <0x68>;
117 interrupt-parent = <&nmi_intc>;
118 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
119 };
120};
121
122#include "axp22x.dtsi"
123
124&reg_aldo3 {
125 regulator-always-on;
126 regulator-min-microvolt = <2700000>;
127 regulator-max-microvolt = <3300000>;
128 regulator-name = "avcc";
129};
130
131&reg_dc1sw {
132 regulator-name = "vcc-lcd";
133};
134
135&reg_dc5ldo {
136 regulator-always-on;
137 regulator-min-microvolt = <700000>;
138 regulator-max-microvolt = <1320000>;
139 regulator-name = "vdd-cpus"; /* This is an educated guess */
140};
141
142&reg_dcdc1 {
143 regulator-always-on;
144 regulator-min-microvolt = <3000000>;
145 regulator-max-microvolt = <3000000>;
146 regulator-name = "vcc-3v0";
147};
148
149&reg_dcdc2 {
150 regulator-min-microvolt = <700000>;
151 regulator-max-microvolt = <1320000>;
152 regulator-name = "vdd-gpu";
153};
154
155&reg_dcdc3 {
156 regulator-always-on;
157 regulator-min-microvolt = <700000>;
158 regulator-max-microvolt = <1320000>;
159 regulator-name = "vdd-cpu";
160};
161
162&reg_dcdc4 {
163 regulator-always-on;
164 regulator-min-microvolt = <700000>;
165 regulator-max-microvolt = <1320000>;
166 regulator-name = "vdd-sys-dll";
167};
168
169&reg_dcdc5 {
170 regulator-always-on;
171 regulator-min-microvolt = <1500000>;
172 regulator-max-microvolt = <1500000>;
173 regulator-name = "vcc-dram";
174};
175
176&reg_dldo1 {
177 regulator-min-microvolt = <3300000>;
178 regulator-max-microvolt = <3300000>;
179 regulator-name = "vcc-wifi";
180};
181
182&reg_dldo2 { 64&reg_dldo2 {
183 regulator-min-microvolt = <1800000>; 65 regulator-min-microvolt = <1800000>;
184 regulator-max-microvolt = <1800000>; 66 regulator-max-microvolt = <1800000>;
@@ -186,23 +68,5 @@
186}; 68};
187 69
188&simplefb_lcd { 70&simplefb_lcd {
189 vcc-lcd-supply = <&reg_dc1sw>;
190 vcc-pg-supply = <&reg_dldo2>; 71 vcc-pg-supply = <&reg_dldo2>;
191}; 72};
192
193/*
194 * FIXME for now we only support host mode and rely on u-boot to have
195 * turned on Vbus which is controlled by the axp221 pmic on the board.
196 *
197 * Once we have axp221 power-supply and vbus-usb support we should switch
198 * to fully supporting otg.
199 */
200&usb_otg {
201 dr_mode = "host";
202 status = "okay";
203};
204
205&usbphy {
206 usb1_vbus-supply = <&reg_dldo1>;
207 status = "okay";
208};
diff --git a/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts b/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts
new file mode 100644
index 000000000000..e584e6b186a7
--- /dev/null
+++ b/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts
@@ -0,0 +1,100 @@
1/*
2 * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun6i-a31s.dtsi"
45#include "sun6i-reference-design-tablet.dtsi"
46
47/ {
48 model = "iNet Q972 tablet";
49 compatible = "inet-tek,inet-q972", "allwinner,sun6i-a31s";
50};
51
52&ehci1 {
53 status = "okay";
54};
55
56&i2c1 {
57 pinctrl-names = "default";
58 pinctrl-0 = <&i2c1_pins_a>;
59 status = "okay";
60
61 ft5406ee8: touchscreen@38 {
62 compatible = "edt,edt-ft5406";
63 reg = <0x38>;
64 interrupt-parent = <&pio>;
65 interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; /* PA3 */
66 touchscreen-size-x = <768>;
67 touchscreen-size-y = <1024>;
68 touchscreen-swapped-x-y;
69 };
70};
71
72&lradc {
73 vref-supply = <&reg_aldo3>;
74 status = "okay";
75
76 button@200 {
77 label = "Volume Down";
78 linux,code = <KEY_VOLUMEDOWN>;
79 channel = <0>;
80 voltage = <200000>;
81 };
82
83 button@900 {
84 label = "Volume Up";
85 linux,code = <KEY_VOLUMEUP>;
86 channel = <0>;
87 voltage = <900000>;
88 };
89
90 button@1200 {
91 label = "Back";
92 linux,code = <KEY_BACK>;
93 channel = <0>;
94 voltage = <1200000>;
95 };
96};
97
98&ohci1 {
99 status = "okay";
100};
diff --git a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
new file mode 100644
index 000000000000..0c434304e040
--- /dev/null
+++ b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
@@ -0,0 +1,193 @@
1/*
2 * Copyright 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include "sunxi-common-regulators.dtsi"
44
45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/input/input.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48
49/ {
50 aliases {
51 serial0 = &uart0;
52 };
53
54 chosen {
55 stdout-path = "serial0:115200n8";
56 };
57};
58
59&cpu0 {
60 cpu-supply = <&reg_dcdc3>;
61};
62
63&ehci0 {
64 /* Wifi is connected here */
65 status = "okay";
66};
67
68&mmc0 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
71 vmmc-supply = <&reg_dcdc1>;
72 bus-width = <4>;
73 cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
74 cd-inverted;
75 status = "okay";
76};
77
78&pio {
79 mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
80 allwinner,pins = "PA8";
81 allwinner,function = "gpio_in";
82 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
83 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
84 };
85
86 usb0_id_detect_pin: usb0_id_detect_pin@0 {
87 allwinner,pins = "PA15";
88 allwinner,function = "gpio_in";
89 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
90 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
91 };
92};
93
94&p2wi {
95 status = "okay";
96
97 axp22x: pmic@68 {
98 compatible = "x-powers,axp221";
99 reg = <0x68>;
100 interrupt-parent = <&nmi_intc>;
101 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
102 drivevbus-supply = <&reg_vcc5v0>;
103 x-powers,drive-vbus-en;
104 };
105};
106
107#include "axp22x.dtsi"
108
109&reg_aldo3 {
110 regulator-always-on;
111 regulator-min-microvolt = <2700000>;
112 regulator-max-microvolt = <3300000>;
113 regulator-name = "avcc";
114};
115
116&reg_dc1sw {
117 regulator-name = "vcc-lcd";
118};
119
120&reg_dc5ldo {
121 regulator-always-on;
122 regulator-min-microvolt = <700000>;
123 regulator-max-microvolt = <1320000>;
124 regulator-name = "vdd-cpus"; /* This is an educated guess */
125};
126
127&reg_dcdc1 {
128 regulator-always-on;
129 regulator-min-microvolt = <3000000>;
130 regulator-max-microvolt = <3000000>;
131 regulator-name = "vcc-3v0";
132};
133
134&reg_dcdc2 {
135 regulator-min-microvolt = <700000>;
136 regulator-max-microvolt = <1320000>;
137 regulator-name = "vdd-gpu";
138};
139
140&reg_dcdc3 {
141 regulator-always-on;
142 regulator-min-microvolt = <700000>;
143 regulator-max-microvolt = <1320000>;
144 regulator-name = "vdd-cpu";
145};
146
147&reg_dcdc4 {
148 regulator-always-on;
149 regulator-min-microvolt = <700000>;
150 regulator-max-microvolt = <1320000>;
151 regulator-name = "vdd-sys-dll";
152};
153
154&reg_dcdc5 {
155 regulator-always-on;
156 regulator-min-microvolt = <1500000>;
157 regulator-max-microvolt = <1500000>;
158 regulator-name = "vcc-dram";
159};
160
161&reg_dldo1 {
162 regulator-min-microvolt = <3300000>;
163 regulator-max-microvolt = <3300000>;
164 regulator-name = "vcc-wifi";
165};
166
167&reg_drivevbus {
168 regulator-name = "usb0-vbus";
169 status = "okay";
170};
171
172&simplefb_lcd {
173 vcc-lcd-supply = <&reg_dc1sw>;
174};
175
176&usb_otg {
177 dr_mode = "otg";
178 status = "okay";
179};
180
181&usb_power_supply {
182 status = "okay";
183};
184
185&usbphy {
186 pinctrl-names = "default";
187 pinctrl-0 = <&usb0_id_detect_pin>;
188 usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
189 usb0_vbus_power-supply = <&usb_power_supply>;
190 usb0_vbus-supply = <&reg_drivevbus>;
191 usb1_vbus-supply = <&reg_dldo1>;
192 status = "okay";
193};
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 7e05e09e61c7..6d6509c71009 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -239,6 +239,14 @@
239 "mmc2_sample"; 239 "mmc2_sample";
240 }; 240 };
241 241
242 nand_clk: clk@01c20080 {
243 #clock-cells = <0>;
244 compatible = "allwinner,sun4i-a10-mod0-clk";
245 reg = <0x01c20080 0x4>;
246 clocks = <&osc24M>, <&pll6 1>;
247 clock-output-names = "nand";
248 };
249
242 usb_clk: clk@01c200cc { 250 usb_clk: clk@01c200cc {
243 #clock-cells = <1>; 251 #clock-cells = <1>;
244 #reset-cells = <1>; 252 #reset-cells = <1>;
@@ -322,6 +330,19 @@
322 #size-cells = <0>; 330 #size-cells = <0>;
323 }; 331 };
324 332
333 nfc: nand@01c03000 {
334 compatible = "allwinner,sun4i-a10-nand";
335 reg = <0x01c03000 0x1000>;
336 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
337 clocks = <&ahb1_gates 13>, <&nand_clk>;
338 clock-names = "ahb", "mod";
339 resets = <&ahb1_rst 13>;
340 reset-names = "ahb";
341 status = "disabled";
342 #address-cells = <1>;
343 #size-cells = <0>;
344 };
345
325 ehci0: usb@01c1a000 { 346 ehci0: usb@01c1a000 {
326 compatible = "allwinner,sun8i-a23-ehci", "generic-ehci"; 347 compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
327 reg = <0x01c1a000 0x100>; 348 reg = <0x01c1a000 0x100>;
diff --git a/arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts b/arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts
index b2ce284a65a2..f27ebbbeac09 100644
--- a/arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts
+++ b/arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts
@@ -42,70 +42,18 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun8i-a23.dtsi" 44#include "sun8i-a23.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun8i-reference-design-tablet.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
51 46
52/ { 47/ {
53 model = "Allwinner GT90H Dual Core Tablet (v4)"; 48 model = "Allwinner GT90H Dual Core Tablet (v4)";
54 compatible = "allwinner,gt90h-v4", "allwinner,sun8i-a23"; 49 compatible = "allwinner,gt90h-v4", "allwinner,sun8i-a23";
55
56 aliases {
57 serial0 = &r_uart;
58 };
59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pinctrl-names = "default";
63 pinctrl-0 = <&bl_en_pin_gt90h>;
64 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
65 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
66 default-brightness-level = <8>;
67 enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
68 };
69
70 chosen {
71 stdout-path = "serial0:115200n8";
72 };
73}; 50};
74 51
75&ehci0 { 52&ehci0 {
76 status = "okay"; 53 status = "okay";
77}; 54};
78 55
79&i2c0 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&i2c0_pins_a>;
82 status = "okay";
83};
84
85&i2c1 {
86 pinctrl-names = "default";
87 pinctrl-0 = <&i2c1_pins_a>;
88 status = "okay";
89};
90
91&lradc { 56&lradc {
92 vref-supply = <&reg_vcc3v0>;
93 status = "okay";
94
95 button@200 {
96 label = "Volume Up";
97 linux,code = <KEY_VOLUMEUP>;
98 channel = <0>;
99 voltage = <200000>;
100 };
101
102 button@400 {
103 label = "Volume Down";
104 linux,code = <KEY_VOLUMEDOWN>;
105 channel = <0>;
106 voltage = <400000>;
107 };
108
109 button@600 { 57 button@600 {
110 label = "Back"; 58 label = "Back";
111 linux,code = <KEY_BACK>; 59 linux,code = <KEY_BACK>;
@@ -114,144 +62,6 @@
114 }; 62 };
115}; 63};
116 64
117&mmc0 {
118 pinctrl-names = "default";
119 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_gt90h>;
120 vmmc-supply = <&reg_aldo1>;
121 bus-width = <4>;
122 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
123 cd-inverted;
124 status = "okay";
125};
126
127&pio {
128 bl_en_pin_gt90h: bl_en_pin@0 {
129 allwinner,pins = "PH6";
130 allwinner,function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
132 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
133 };
134
135 mmc0_cd_pin_gt90h: mmc0_cd_pin@0 {
136 allwinner,pins = "PB4";
137 allwinner,function = "gpio_in";
138 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
139 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
140 };
141};
142
143&pwm {
144 pinctrl-names = "default";
145 pinctrl-0 = <&pwm0_pins>;
146 status = "okay";
147};
148
149&r_rsb {
150 status = "okay";
151
152 axp22x: pmic@3a3 {
153 compatible = "x-powers,axp223";
154 reg = <0x3a3>;
155 interrupt-parent = <&nmi_intc>;
156 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
157 eldoin-supply = <&reg_dcdc1>;
158 };
159};
160
161&r_uart {
162 pinctrl-names = "default";
163 pinctrl-0 = <&r_uart_pins_a>;
164 status = "okay";
165};
166
167#include "axp22x.dtsi"
168
169&reg_aldo1 {
170 regulator-always-on;
171 regulator-min-microvolt = <3000000>;
172 regulator-max-microvolt = <3000000>;
173 regulator-name = "vcc-io";
174};
175
176&reg_aldo2 {
177 regulator-always-on;
178 regulator-min-microvolt = <2350000>;
179 regulator-max-microvolt = <2650000>;
180 regulator-name = "vdd-dll";
181};
182
183&reg_aldo3 {
184 regulator-always-on;
185 regulator-min-microvolt = <2700000>;
186 regulator-max-microvolt = <3300000>;
187 regulator-name = "vcc-pll-avcc";
188};
189
190&reg_dc1sw {
191 regulator-name = "vcc-lcd";
192};
193
194&reg_dc5ldo {
195 regulator-always-on;
196 regulator-min-microvolt = <900000>;
197 regulator-max-microvolt = <1400000>;
198 regulator-name = "vdd-cpus";
199};
200
201&reg_dcdc1 {
202 regulator-always-on;
203 regulator-min-microvolt = <3000000>;
204 regulator-max-microvolt = <3000000>;
205 regulator-name = "vcc-3v0";
206};
207
208&reg_dcdc2 {
209 regulator-always-on;
210 regulator-min-microvolt = <900000>;
211 regulator-max-microvolt = <1400000>;
212 regulator-name = "vdd-sys";
213};
214
215&reg_dcdc3 {
216 regulator-always-on;
217 regulator-min-microvolt = <900000>;
218 regulator-max-microvolt = <1400000>;
219 regulator-name = "vdd-cpu";
220};
221
222&reg_dcdc5 {
223 regulator-always-on;
224 regulator-min-microvolt = <1500000>;
225 regulator-max-microvolt = <1500000>;
226 regulator-name = "vcc-dram";
227};
228
229&reg_dldo1 {
230 regulator-min-microvolt = <3300000>;
231 regulator-max-microvolt = <3300000>;
232 regulator-name = "vcc-wifi";
233};
234
235&reg_rtc_ldo {
236 regulator-name = "vcc-rtc";
237};
238
239&simplefb_lcd {
240 vcc-lcd-supply = <&reg_dc1sw>;
241};
242
243/*
244 * FIXME for now we only support host mode and rely on u-boot to have
245 * turned on Vbus which is controlled by the axp223 pmic on the board.
246 *
247 * Once we have axp223 support we should switch to fully supporting otg.
248 */
249&usb_otg {
250 dr_mode = "host";
251 status = "okay";
252};
253
254&usbphy { 65&usbphy {
255 usb1_vbus-supply = <&reg_dldo1>; 66 usb1_vbus-supply = <&reg_dldo1>;
256 status = "okay";
257}; 67};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
index e3004428e7a7..4789aac89955 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
@@ -47,4 +47,46 @@
47/ { 47/ {
48 model = "Polaroid MID2407PXE03 tablet"; 48 model = "Polaroid MID2407PXE03 tablet";
49 compatible = "polaroid,mid2407pxe03", "allwinner,sun8i-a23"; 49 compatible = "polaroid,mid2407pxe03", "allwinner,sun8i-a23";
50
51 aliases {
52 ethernet0 = &esp8089;
53 };
54
55 wifi_pwrseq: wifi_pwrseq {
56 compatible = "mmc-pwrseq-simple";
57 pinctrl-names = "default";
58 pinctrl-0 = <&wifi_pwrseq_pin_mid2407>;
59 reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
60 /* The esp8089 needs 200 ms after driving wifi-en high */
61 post-power-on-delay-ms = <200>;
62 };
63};
64
65&mmc1 {
66 pinctrl-names = "default";
67 pinctrl-0 = <&mmc1_pins_a>;
68 vmmc-supply = <&reg_dldo1>;
69 mmc-pwrseq = <&wifi_pwrseq>;
70 bus-width = <4>;
71 non-removable;
72 status = "okay";
73
74 esp8089: sdio_wifi@1 {
75 compatible = "esp,esp8089";
76 reg = <1>;
77 esp,crystal-26M-en = <2>;
78 };
79};
80
81&mmc1_pins_a {
82 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
83};
84
85&r_pio {
86 wifi_pwrseq_pin_mid2407: wifi_pwrseq_pin@0 {
87 allwinner,pins = "PL6";
88 allwinner,function = "gpio_out";
89 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
90 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
91 };
50}; 92};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
index 6d06e24d446b..c9213caf7424 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
@@ -47,4 +47,46 @@
47/ { 47/ {
48 model = "Polaroid MID2809PXE04 tablet"; 48 model = "Polaroid MID2809PXE04 tablet";
49 compatible = "polaroid,mid2809pxe04", "allwinner,sun8i-a23"; 49 compatible = "polaroid,mid2809pxe04", "allwinner,sun8i-a23";
50
51 aliases {
52 ethernet0 = &esp8089;
53 };
54
55 wifi_pwrseq: wifi_pwrseq {
56 compatible = "mmc-pwrseq-simple";
57 pinctrl-names = "default";
58 pinctrl-0 = <&wifi_pwrseq_pin_mid2809>;
59 reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
60 /* The esp8089 needs 200 ms after driving wifi-en high */
61 post-power-on-delay-ms = <200>;
62 };
63};
64
65&mmc1 {
66 pinctrl-names = "default";
67 pinctrl-0 = <&mmc1_pins_a>;
68 vmmc-supply = <&reg_dldo1>;
69 mmc-pwrseq = <&wifi_pwrseq>;
70 bus-width = <4>;
71 non-removable;
72 status = "okay";
73
74 esp8089: sdio_wifi@1 {
75 compatible = "esp,esp8089";
76 reg = <1>;
77 esp,crystal-26M-en = <2>;
78 };
79};
80
81&mmc1_pins_a {
82 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
83};
84
85&r_pio {
86 wifi_pwrseq_pin_mid2809: wifi_pwrseq_pin@0 {
87 allwinner,pins = "PL6";
88 allwinner,function = "gpio_out";
89 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
90 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
91 };
50}; 92};
diff --git a/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts b/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
index 65660324005c..de6269dcac3a 100644
--- a/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
+++ b/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
@@ -47,6 +47,11 @@
47/ { 47/ {
48 model = "Allwinner GA10H Quad Core Tablet (v1.1)"; 48 model = "Allwinner GA10H Quad Core Tablet (v1.1)";
49 compatible = "allwinner,ga10h-v1.1", "allwinner,sun8i-a33"; 49 compatible = "allwinner,ga10h-v1.1", "allwinner,sun8i-a33";
50
51 aliases {
52 /* Make u-boot set mac-address for rtl8703as (no eeprom) */
53 ethernet0 = &rtl8703as;
54 };
50}; 55};
51 56
52&ehci0 { 57&ehci0 {
@@ -62,6 +67,19 @@
62 }; 67 };
63}; 68};
64 69
70&mmc1 {
71 pinctrl-names = "default";
72 pinctrl-0 = <&mmc1_pins_a>;
73 vmmc-supply = <&reg_dldo1>;
74 bus-width = <4>;
75 non-removable;
76 status = "okay";
77
78 rtl8703as: sdio_wifi@1 {
79 reg = <1>;
80 };
81};
82
65&ohci0 { 83&ohci0 {
66 status = "okay"; 84 status = "okay";
67}; 85};
diff --git a/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
new file mode 100644
index 000000000000..0f52cd9dfa41
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts
@@ -0,0 +1,88 @@
1/*
2 * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
3 * Copyright 2016 Icenowy Zheng <icenowy@aosc.xyz>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun8i-a33.dtsi"
46#include "sun8i-reference-design-tablet.dtsi"
47
48/ {
49 model = "INet-D978 Rev 02";
50 compatible = "primux,inet-d978-rev2", "allwinner,sun8i-a33";
51
52 leds {
53 compatible = "gpio-leds";
54 pinctrl-names = "default";
55 pinctrl-0 = <&led_pin_d978>;
56
57 home {
58 label = "d978:blue:home";
59 gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
60 };
61 };
62};
63
64&mmc1_pins_a {
65 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
66};
67
68&mmc1 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&mmc1_pins_a>;
71 vmmc-supply = <&reg_dldo1>;
72 bus-width = <4>;
73 non-removable;
74 status = "okay";
75
76 rtl8723bs: sdio_wifi@1 {
77 reg = <1>;
78 };
79};
80
81&r_pio {
82 led_pin_d978: led_pin_d978@0 {
83 allwinner,pins = "PL5";
84 allwinner,function = "gpio_out";
85 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
86 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
87 };
88};
diff --git a/arch/arm/boot/dts/sun8i-a33-olinuxino.dts b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
new file mode 100644
index 000000000000..9ea637e82b2d
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a33-olinuxino.dts
@@ -0,0 +1,226 @@
1/*
2 * Copyright 2016 - Stefan Mavrodiev <stefan.mavrodiev@gmail.com>
3 * Olimex LTD. <support@olimex.com>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45#include "sun8i-a33.dtsi"
46#include "sunxi-common-regulators.dtsi"
47
48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h>
50
51/ {
52 model = "Olimex A33-OLinuXino";
53 compatible = "olimex,a33-olinuxino","allwinner,sun8i-a33";
54
55 aliases {
56 serial0 = &uart0;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62
63 leds {
64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pin_olinuxino>;
67
68 green {
69 label = "a33-olinuxino:green:usr";
70 gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
71 };
72 };
73};
74
75&ehci0 {
76 status = "okay";
77};
78
79&mmc0 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>;
82 vmmc-supply = <&reg_dcdc1>;
83 bus-width = <4>;
84 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
85 cd-inverted;
86 status = "okay";
87};
88
89&ohci0 {
90 status = "okay";
91};
92
93&pio {
94 led_pin_olinuxino: led_pins@0 {
95 allwinner,pins = "PB7";
96 allwinner,function = "gpio_out";
97 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
98 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
99 };
100
101 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
102 allwinner,pins = "PB4";
103 allwinner,function = "gpio_in";
104 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
105 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
106 };
107
108 usb0_id_detect_pin: usb0_id_detect_pin@0 {
109 allwinner,pins = "PB3";
110 allwinner,function = "gpio_in";
111 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
112 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
113 };
114};
115
116&r_rsb {
117 status = "okay";
118
119 axp22x: pmic@3a3 {
120 compatible = "x-powers,axp223";
121 reg = <0x3a3>;
122 interrupt-parent = <&nmi_intc>;
123 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
124 eldoin-supply = <&reg_dcdc1>;
125 x-powers,drive-vbus-en;
126 };
127};
128
129#include "axp22x.dtsi"
130
131&reg_aldo1 {
132 regulator-always-on;
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 regulator-name = "vcc-io";
136};
137
138&reg_aldo2 {
139 regulator-always-on;
140 regulator-min-microvolt = <2350000>;
141 regulator-max-microvolt = <2650000>;
142 regulator-name = "vdd-dll";
143};
144
145&reg_aldo3 {
146 regulator-always-on;
147 regulator-min-microvolt = <3300000>;
148 regulator-max-microvolt = <3300000>;
149 regulator-name = "vcc-avcc";
150};
151
152&reg_dc1sw {
153 regulator-name = "vcc-lcd";
154};
155
156&reg_dc5ldo {
157 regulator-always-on;
158 regulator-min-microvolt = <900000>;
159 regulator-max-microvolt = <1400000>;
160 regulator-name = "vdd-cpus";
161};
162
163&reg_dcdc1 {
164 regulator-always-on;
165 regulator-min-microvolt = <3300000>;
166 regulator-max-microvolt = <3300000>;
167 regulator-name = "vcc-3v3";
168};
169
170&reg_dcdc2 {
171 regulator-always-on;
172 regulator-min-microvolt = <900000>;
173 regulator-max-microvolt = <1400000>;
174 regulator-name = "vdd-sys";
175};
176
177&reg_dcdc3 {
178 regulator-always-on;
179 regulator-min-microvolt = <900000>;
180 regulator-max-microvolt = <1400000>;
181 regulator-name = "vdd-cpu";
182};
183
184&reg_dcdc5 {
185 regulator-always-on;
186 regulator-min-microvolt = <1500000>;
187 regulator-max-microvolt = <1500000>;
188 regulator-name = "vcc-dram";
189};
190
191&reg_drivevbus {
192 regulator-name = "usb0-vbus";
193 status = "okay";
194};
195
196&reg_rtc_ldo {
197 regulator-name = "vcc-rtc";
198};
199
200&simplefb_lcd {
201 vcc-lcd-supply = <&reg_dc1sw>;
202};
203
204&uart0 {
205 pinctrl-names = "default";
206 pinctrl-0 = <&uart0_pins_b>;
207 status = "okay";
208};
209
210&usb_otg {
211 dr_mode = "otg";
212 status = "okay";
213};
214
215&usb_power_supply {
216 status = "okay";
217};
218
219&usbphy {
220 pinctrl-names = "default";
221 pinctrl-0 = <&usb0_id_detect_pin>;
222 usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
223 usb0_vbus_power-supply = <&usb_power_supply>;
224 usb0_vbus-supply = <&reg_drivevbus>;
225 status = "okay";
226};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
new file mode 100644
index 000000000000..3d64cafc1e90
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts
@@ -0,0 +1,125 @@
1/*
2 * Copyright (C) 2016 James Pettigrew <james@innovum.com.au>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49
50/ {
51 model = "FriendlyARM NanoPi NEO";
52 compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
53
54 aliases {
55 serial0 = &uart0;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61
62 leds {
63 compatible = "gpio-leds";
64 pinctrl-names = "default";
65 pinctrl-0 = <&leds_opc>, <&leds_r_opc>;
66
67 pwr {
68 label = "nanopi:green:pwr";
69 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
70 default-state = "on";
71 };
72
73 status {
74 label = "nanopi:blue:status";
75 gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
76 };
77 };
78};
79
80&ehci3 {
81 status = "okay";
82};
83
84&mmc0 {
85 pinctrl-names = "default";
86 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
87 vmmc-supply = <&reg_vcc3v3>;
88 bus-width = <4>;
89 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
90 cd-inverted;
91 status = "okay";
92};
93
94&ohci3 {
95 status = "okay";
96};
97
98&pio {
99 leds_opc: led-pins {
100 allwinner,pins = "PA10";
101 allwinner,function = "gpio_out";
102 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
103 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
104 };
105};
106
107&r_pio {
108 leds_r_opc: led-pins {
109 allwinner,pins = "PL10";
110 allwinner,function = "gpio_out";
111 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
112 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
113 };
114};
115
116&uart0 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&uart0_pins_a>;
119 status = "okay";
120};
121
122&usbphy {
123 /* USB VBUS is always on */
124 status = "okay";
125};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
index f93f5d1695c4..f89fe00ddec5 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
@@ -54,6 +54,8 @@
54 54
55 aliases { 55 aliases {
56 serial0 = &uart0; 56 serial0 = &uart0;
57 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
58 ethernet1 = &rtl8189;
57 }; 59 };
58 60
59 chosen { 61 chosen {
@@ -131,6 +133,14 @@
131 bus-width = <4>; 133 bus-width = <4>;
132 non-removable; 134 non-removable;
133 status = "okay"; 135 status = "okay";
136
137 /*
138 * Explicitly define the sdio device, so that we can add an ethernet
139 * alias for it (which e.g. makes u-boot set a mac-address).
140 */
141 rtl8189: sdio_wifi@1 {
142 reg = <1>;
143 };
134}; 144};
135 145
136&pio { 146&pio {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
new file mode 100644
index 000000000000..1550fee1ec68
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
@@ -0,0 +1,178 @@
1/*
2 * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51/ {
52 model = "Xunlong Orange Pi Lite";
53 compatible = "xunlong,orangepi-lite", "allwinner,sun8i-h3";
54
55 aliases {
56 /* The H3 emac is not used so the wifi is ethernet0 */
57 ethernet0 = &rtl8189ftv;
58 serial0 = &uart0;
59 };
60
61 chosen {
62 stdout-path = "serial0:115200n8";
63 };
64
65 leds {
66 compatible = "gpio-leds";
67 pinctrl-names = "default";
68 pinctrl-0 = <&leds_opc>, <&leds_r_opc>;
69
70 pwr_led {
71 label = "orangepi:green:pwr";
72 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
73 default-state = "on";
74 };
75
76 status_led {
77 label = "orangepi:red:status";
78 gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>;
79 };
80 };
81
82 r_gpio_keys {
83 compatible = "gpio-keys";
84 pinctrl-names = "default";
85 pinctrl-0 = <&sw_r_opc>;
86
87 sw4 {
88 label = "sw4";
89 linux,code = <BTN_0>;
90 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
91 };
92 };
93};
94
95&ehci1 {
96 status = "okay";
97};
98
99&ehci2 {
100 status = "okay";
101};
102
103&ir {
104 pinctrl-names = "default";
105 pinctrl-0 = <&ir_pins_a>;
106 status = "okay";
107};
108
109&mmc0 {
110 pinctrl-names = "default";
111 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
112 vmmc-supply = <&reg_vcc3v3>;
113 bus-width = <4>;
114 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
115 cd-inverted;
116 status = "okay";
117};
118
119&mmc1 {
120 pinctrl-names = "default";
121 pinctrl-0 = <&mmc1_pins_a>;
122 vmmc-supply = <&reg_vcc3v3>;
123 bus-width = <4>;
124 non-removable;
125 status = "okay";
126
127 /*
128 * Explicitly define the sdio device, so that we can add an ethernet
129 * alias for it (which e.g. makes u-boot set a mac-address).
130 */
131 rtl8189ftv: sdio_wifi@1 {
132 reg = <1>;
133 };
134};
135
136&ohci1 {
137 status = "okay";
138};
139
140&ohci2 {
141 status = "okay";
142};
143
144&pio {
145 leds_opc: led_pins@0 {
146 allwinner,pins = "PA15";
147 allwinner,function = "gpio_out";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
149 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
150 };
151};
152
153&r_pio {
154 leds_r_opc: led_pins@0 {
155 allwinner,pins = "PL10";
156 allwinner,function = "gpio_out";
157 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
158 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
159 };
160
161 sw_r_opc: key_pins@0 {
162 allwinner,pins = "PL3";
163 allwinner,function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 };
167};
168
169&uart0 {
170 pinctrl-names = "default";
171 pinctrl-0 = <&uart0_pins_a>;
172 status = "okay";
173};
174
175&usbphy {
176 /* USB VBUS is always on */
177 status = "okay";
178};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
new file mode 100644
index 000000000000..851fd2c2cc8c
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
@@ -0,0 +1,88 @@
1/*
2 * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/* The Orange Pi PC Plus is an extended version of the regular PC */
44#include "sun8i-h3-orangepi-pc.dts"
45
46/ {
47 model = "Xunlong Orange Pi PC Plus";
48 compatible = "xunlong,orangepi-pc-plus", "allwinner,sun8i-h3";
49
50 aliases {
51 /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
52 ethernet1 = &rtl8189ftv;
53 };
54};
55
56&mmc1 {
57 pinctrl-names = "default";
58 pinctrl-0 = <&mmc1_pins_a>;
59 vmmc-supply = <&reg_vcc3v3>;
60 bus-width = <4>;
61 non-removable;
62 status = "okay";
63
64 /*
65 * Explicitly define the sdio device, so that we can add an ethernet
66 * alias for it (which e.g. makes u-boot set a mac-address).
67 */
68 rtl8189ftv: sdio_wifi@1 {
69 reg = <1>;
70 };
71};
72
73&mmc2 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&mmc2_8bit_pins>;
76 vmmc-supply = <&reg_vcc3v3>;
77 bus-width = <8>;
78 non-removable;
79 cap-mmc-hw-reset;
80 status = "okay";
81};
82
83&mmc2_8bit_pins {
84 /* Increase drive strength for DDR modes */
85 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
86 /* eMMC is missing pull-ups */
87 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
88};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
index b0cb41787e09..bb585918cf54 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
@@ -44,7 +44,7 @@
44#include "sun8i-h3-orangepi-2.dts" 44#include "sun8i-h3-orangepi-2.dts"
45 45
46/ { 46/ {
47 model = "Xunlong Orange Pi Plus"; 47 model = "Xunlong Orange Pi Plus / Plus 2";
48 compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3"; 48 compatible = "xunlong,orangepi-plus", "allwinner,sun8i-h3";
49 49
50 reg_usb3_vbus: usb3-vbus { 50 reg_usb3_vbus: usb3-vbus {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
new file mode 100644
index 000000000000..5851a47a3089
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
@@ -0,0 +1,53 @@
1/*
2 * Copyright (C) 2016 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/*
44 * The Orange Pi Plus 2E is an extended version of the Orange Pi PC Plus,
45 * with 2G RAM and an external gbit ethernet phy.
46 */
47
48#include "sun8i-h3-orangepi-pc-plus.dts"
49
50/ {
51 model = "Xunlong Orange Pi Plus 2E";
52 compatible = "xunlong,orangepi-plus2e", "allwinner,sun8i-h3";
53};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index fdf9fdbda267..6d83b8674201 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -389,6 +389,14 @@
389 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 389 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
390 }; 390 };
391 391
392 pwm: pwm@01c21400 {
393 compatible = "allwinner,sun8i-h3-pwm";
394 reg = <0x01c21400 0x8>;
395 clocks = <&osc24M>;
396 #pwm-cells = <3>;
397 status = "disabled";
398 };
399
392 uart0: serial@01c28000 { 400 uart0: serial@01c28000 {
393 compatible = "snps,dw-apb-uart"; 401 compatible = "snps,dw-apb-uart";
394 reg = <0x01c28000 0x400>; 402 reg = <0x01c28000 0x400>;
diff --git a/arch/arm/boot/dts/sun8i-q8-common.dtsi b/arch/arm/boot/dts/sun8i-q8-common.dtsi
index 60fa9585022b..29f837a47771 100644
--- a/arch/arm/boot/dts/sun8i-q8-common.dtsi
+++ b/arch/arm/boot/dts/sun8i-q8-common.dtsi
@@ -42,10 +42,59 @@
42#include "sunxi-reference-design-tablet.dtsi" 42#include "sunxi-reference-design-tablet.dtsi"
43#include "sun8i-reference-design-tablet.dtsi" 43#include "sun8i-reference-design-tablet.dtsi"
44 44
45/ {
46 aliases {
47 serial0 = &r_uart;
48 /* Make u-boot set mac-address for wifi without an eeprom */
49 ethernet0 = &sdio_wifi;
50 };
51
52 wifi_pwrseq: wifi_pwrseq {
53 compatible = "mmc-pwrseq-simple";
54 /*
55 * Q8 boards use various PL# pins as wifi-en. On other boards
56 * these may be connected to a wifi module output pin. To avoid
57 * short-circuits we configure these as inputs with pull-ups via
58 * pinctrl, instead of listing them as active-low reset-gpios.
59 */
60 pinctrl-names = "default";
61 pinctrl-0 = <&wifi_pwrseq_pin_q8>;
62 /* The esp8089 needs 200 ms after driving wifi-en high */
63 post-power-on-delay-ms = <200>;
64 };
65};
66
45&ehci0 { 67&ehci0 {
46 status = "okay"; 68 status = "okay";
47}; 69};
48 70
71&mmc1 {
72 pinctrl-names = "default";
73 pinctrl-0 = <&mmc1_pins_a>;
74 vmmc-supply = <&reg_dldo1>;
75 mmc-pwrseq = <&wifi_pwrseq>;
76 bus-width = <4>;
77 non-removable;
78 status = "okay";
79
80 sdio_wifi: sdio_wifi@1 {
81 reg = <1>;
82 };
83};
84
85&mmc1_pins_a {
86 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
87};
88
89&r_pio {
90 wifi_pwrseq_pin_q8: wifi_pwrseq_pin@0 {
91 allwinner,pins = "PL6", "PL7", "PL11";
92 allwinner,function = "gpio_in";
93 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
94 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
95 };
96};
97
49&usbphy { 98&usbphy {
50 usb1_vbus-supply = <&reg_dldo1>; 99 usb1_vbus-supply = <&reg_dldo1>;
51}; 100};
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
index 9d9036140511..08cd00143635 100644
--- a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -63,6 +63,25 @@
63 }; 63 };
64}; 64};
65 65
66&i2c0 {
67 /*
68 * The gsl1680 is rated at 400KHz and it will not work reliable at
69 * 100KHz, this has been confirmed on multiple different q8 tablets.
70 * The gsl1680 is the only device on this bus.
71 */
72 clock-frequency = <400000>;
73
74 touchscreen: touchscreen@0 {
75 interrupt-parent = <&pio>;
76 interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */
77 pinctrl-names = "default";
78 pinctrl-0 = <&ts_power_pin>;
79 power-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
80 /* Tablet dts must provide reg and compatible */
81 status = "disabled";
82 };
83};
84
66&mmc0 { 85&mmc0 {
67 pinctrl-names = "default"; 86 pinctrl-names = "default";
68 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 87 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
@@ -88,6 +107,13 @@
88 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 107 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
89 }; 108 };
90 109
110 ts_power_pin: ts_power_pin@0 {
111 allwinner,pins = "PH1";
112 allwinner,function = "gpio_out";
113 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
114 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
115 };
116
91 usb0_id_detect_pin: usb0_id_detect_pin@0 { 117 usb0_id_detect_pin: usb0_id_detect_pin@0 {
92 allwinner,pins = "PH8"; 118 allwinner,pins = "PH8";
93 allwinner,function = "gpio_in"; 119 allwinner,function = "gpio_in";
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 1526b41c70f1..04b014603659 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -103,6 +103,11 @@
103 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 103 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
104}; 104};
105 105
106&osc32k {
107 /* osc32k input is from AC100 */
108 clocks = <&ac100_rtc 0>;
109};
110
106&pio { 111&pio {
107 led_pins_cubieboard4: led-pins@0 { 112 led_pins_cubieboard4: led-pins@0 {
108 allwinner,pins = "PH6", "PH17"; 113 allwinner,pins = "PH6", "PH17";
@@ -250,6 +255,30 @@
250 }; 255 };
251 }; 256 };
252 }; 257 };
258
259 ac100: codec@e89 {
260 compatible = "x-powers,ac100";
261 reg = <0xe89>;
262
263 ac100_codec: codec {
264 compatible = "x-powers,ac100-codec";
265 interrupt-parent = <&r_pio>;
266 interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
267 #clock-cells = <0>;
268 clock-output-names = "4M_adda";
269 };
270
271 ac100_rtc: rtc {
272 compatible = "x-powers,ac100-rtc";
273 interrupt-parent = <&nmi_intc>;
274 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
275 clocks = <&ac100_codec>;
276 #clock-cells = <1>;
277 clock-output-names = "cko1_rtc",
278 "cko2_rtc",
279 "cko3_rtc";
280 };
281 };
253}; 282};
254 283
255#include "axp809.dtsi" 284#include "axp809.dtsi"
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 7fd22e888602..fd874ded890e 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -152,6 +152,11 @@
152 status = "okay"; 152 status = "okay";
153}; 153};
154 154
155&osc32k {
156 /* osc32k input is from AC100 */
157 clocks = <&ac100_rtc 0>;
158};
159
155&pio { 160&pio {
156 led_pins_optimus: led-pins@0 { 161 led_pins_optimus: led-pins@0 {
157 allwinner,pins = "PH0", "PH1"; 162 allwinner,pins = "PH0", "PH1";
@@ -322,6 +327,30 @@
322 }; 327 };
323 }; 328 };
324 }; 329 };
330
331 ac100: codec@e89 {
332 compatible = "x-powers,ac100";
333 reg = <0xe89>;
334
335 ac100_codec: codec {
336 compatible = "x-powers,ac100-codec";
337 interrupt-parent = <&r_pio>;
338 interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
339 #clock-cells = <0>;
340 clock-output-names = "4M_adda";
341 };
342
343 ac100_rtc: rtc {
344 compatible = "x-powers,ac100-rtc";
345 interrupt-parent = <&nmi_intc>;
346 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
347 clocks = <&ac100_codec>;
348 #clock-cells = <1>;
349 clock-output-names = "cko1_rtc",
350 "cko2_rtc",
351 "cko3_rtc";
352 };
353 };
325}; 354};
326 355
327#include "axp809.dtsi" 356#include "axp809.dtsi"
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index f68b3242b33a..3c5214cbe4e6 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -148,15 +148,14 @@
148 148
149 /* 149 /*
150 * The 32k clock is from an external source, normally the 150 * The 32k clock is from an external source, normally the
151 * AC100 codec/RTC chip. This clock is by default enabled 151 * AC100 codec/RTC chip. This serves as a placeholder for
152 * and clocked at 32768 Hz, from the oscillator connected 152 * board dts files to specify the source.
153 * to the AC100. It is configurable, but no such driver or
154 * bindings exist yet.
155 */ 153 */
156 osc32k: osc32k_clk { 154 osc32k: osc32k_clk {
157 #clock-cells = <0>; 155 #clock-cells = <0>;
158 compatible = "fixed-clock"; 156 compatible = "fixed-factor-clock";
159 clock-frequency = <32768>; 157 clock-div = <1>;
158 clock-mult = <1>;
160 clock-output-names = "osc32k"; 159 clock-output-names = "osc32k";
161 }; 160 };
162 161
@@ -899,8 +898,7 @@
899 resets = <&apbs_rst 0>; 898 resets = <&apbs_rst 0>;
900 gpio-controller; 899 gpio-controller;
901 interrupt-controller; 900 interrupt-controller;
902 #address-cells = <1>; 901 #interrupt-cells = <3>;
903 #size-cells = <0>;
904 #gpio-cells = <3>; 902 #gpio-cells = <3>;
905 903
906 r_ir_pins: r_ir { 904 r_ir_pins: r_ir {