aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-09-28 06:45:56 -0400
committerArnd Bergmann <arnd@arndb.de>2018-09-28 06:46:05 -0400
commit49919eabc85f10cecbb7360e3f526fcb01e0d511 (patch)
tree1ea7bb5a52bc6ffc9ac53dcb9492133632988fdc
parent262c083d13286ab7fd2d0cf3c5c2a4407a8fe918 (diff)
parent54ef8539f5a3c3da0a415c4afa41556547c973fd (diff)
Merge tag 'amlogic-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt
ARM: dts: Amlogic updates for v4.20 - fix clock controller register sizes - new board: Endless Mini (EC-100) by Endless Mobile - add voltage regulators * tag 'amlogic-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: dts: meson8b: odroidc1: add stdout-path property ARM: dts: meson8b: odroidc1: enable the SAR ADC ARM: dts: meson8b: odroidc1: add the fixed voltage regulators ARM: dts: meson8b: odroidc1: add the CPU voltage regulator ARM: dts: meson8b: Add support for the Endless Mini (EC-100) ARM: dts: meson8b: add the RMII pins ARM: dts: meson8b: add the I2C_A, PWM_C and UART_B pins dt-bindings: arm: amlogic: Add the Endless Mobile Endless Mini (EC-100) dt-bindings: add vendor prefix for "Endless Mobile, Inc." ARM: dts: meson8b: fix the clock controller register size ARM: dts: meson8: fix the clock controller register size Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic.txt1
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt1
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/meson8.dtsi2
-rw-r--r--arch/arm/boot/dts/meson8b-ec100.dts248
-rw-r--r--arch/arm/boot/dts/meson8b-odroidc1.dts109
-rw-r--r--arch/arm/boot/dts/meson8b.dtsi47
7 files changed, 407 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
index b5c2b5c35766..2c2eee206736 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -63,6 +63,7 @@ Board compatible values (alphabetically, grouped by SoC):
63 63
64 - "minix,neo-x8" (Meson8) 64 - "minix,neo-x8" (Meson8)
65 65
66 - "endless,ec100" (Meson8b)
66 - "hardkernel,odroid-c1" (Meson8b) 67 - "hardkernel,odroid-c1" (Meson8b)
67 - "tronfy,mxq" (Meson8b) 68 - "tronfy,mxq" (Meson8b)
68 69
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 2c3fc512e746..1c63d2c2d48f 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -114,6 +114,7 @@ elan Elan Microelectronic Corp.
114embest Shenzhen Embest Technology Co., Ltd. 114embest Shenzhen Embest Technology Co., Ltd.
115emmicro EM Microelectronic 115emmicro EM Microelectronic
116emtrion emtrion GmbH 116emtrion emtrion GmbH
117endless Endless Mobile, Inc.
117energymicro Silicon Laboratories (formerly Energy Micro AS) 118energymicro Silicon Laboratories (formerly Energy Micro AS)
118engicam Engicam S.r.l. 119engicam Engicam S.r.l.
119epcos EPCOS AG 120epcos EPCOS AG
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index fc210987768c..dbf198b95377 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -322,6 +322,7 @@ dtb-$(CONFIG_MACH_MESON6) += \
322 meson6-atv1200.dtb 322 meson6-atv1200.dtb
323dtb-$(CONFIG_MACH_MESON8) += \ 323dtb-$(CONFIG_MACH_MESON8) += \
324 meson8-minix-neo-x8.dtb \ 324 meson8-minix-neo-x8.dtb \
325 meson8b-ec100.dtb \
325 meson8b-mxq.dtb \ 326 meson8b-mxq.dtb \
326 meson8b-odroidc1.dtb \ 327 meson8b-odroidc1.dtb \
327 meson8m2-mxiii-plus.dtb 328 meson8m2-mxiii-plus.dtb
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
index d77dcf890cfc..7162e0ca05b0 100644
--- a/arch/arm/boot/dts/meson8.dtsi
+++ b/arch/arm/boot/dts/meson8.dtsi
@@ -194,7 +194,7 @@
194 #clock-cells = <1>; 194 #clock-cells = <1>;
195 #reset-cells = <1>; 195 #reset-cells = <1>;
196 compatible = "amlogic,meson8-clkc"; 196 compatible = "amlogic,meson8-clkc";
197 reg = <0x8000 0x4>, <0x4000 0x460>; 197 reg = <0x8000 0x4>, <0x4000 0x400>;
198 }; 198 };
199 199
200 reset: reset-controller@4404 { 200 reset: reset-controller@4404 {
diff --git a/arch/arm/boot/dts/meson8b-ec100.dts b/arch/arm/boot/dts/meson8b-ec100.dts
new file mode 100644
index 000000000000..0872f6e3abf5
--- /dev/null
+++ b/arch/arm/boot/dts/meson8b-ec100.dts
@@ -0,0 +1,248 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10
11#include "meson8b.dtsi"
12
13/ {
14 model = "Endless Computers Endless Mini";
15 compatible = "endless,ec100", "amlogic,meson8b";
16
17 aliases {
18 serial0 = &uart_AO;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 memory {
26 reg = <0x40000000 0x40000000>;
27 };
28
29 gpio-keys {
30 compatible = "gpio-keys-polled";
31 #address-cells = <1>;
32 #size-cells = <0>;
33 poll-interval = <100>;
34
35 pal-switch {
36 label = "pal";
37 linux,input-type = <EV_SW>;
38 linux,code = <KEY_SWITCHVIDEOMODE>;
39 gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
40 };
41
42 ntsc-switch {
43 label = "ntsc";
44 linux,input-type = <EV_SW>;
45 linux,code = <KEY_SWITCHVIDEOMODE>;
46 gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
47 };
48
49 power-button {
50 label = "power";
51 linux,code = <KEY_POWER>;
52 gpios = <&gpio GPIOH_9 GPIO_ACTIVE_LOW>;
53 };
54 };
55
56 gpio-poweroff {
57 compatible = "gpio-poweroff";
58 /*
59 * shutdown is managed by the EC (embedded micro-controller)
60 * which is configured through GPIOAO_2 (poweroff GPIO) and
61 * GPIOAO_7 (power LED, which has to go LOW as well).
62 */
63 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
64 timeout-ms = <20000>;
65 };
66
67 leds {
68 compatible = "gpio-leds";
69
70 power {
71 label = "ec100:red:power";
72 /*
73 * Needs to go LOW (together with the poweroff GPIO)
74 * during shutdown to allow the EC (embedded
75 * micro-controller) to shutdown the system. Setting
76 * the output to LOW signals the EC to start a
77 * "breathing"/pulsing effect until the power is fully
78 * turned off.
79 */
80 gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
81 default-state = "on";
82 };
83 };
84
85 usb_vbus: regulator-usb-vbus {
86 compatible = "regulator-fixed";
87
88 regulator-name = "USB_VBUS";
89
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92
93 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
94 enable-active-high;
95 };
96
97 vcc_5v: regulator-vcc5v {
98 compatible = "regulator-fixed";
99
100 regulator-name = "VCC5V";
101
102 regulator-min-microvolt = <5000000>;
103 regulator-max-microvolt = <5000000>;
104
105 gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>;
106
107 regulator-boot-on;
108 regulator-always-on;
109 };
110
111 vcck: regulator-vcck {
112 compatible = "pwm-regulator";
113
114 regulator-name = "VCCK";
115 regulator-min-microvolt = <860000>;
116 regulator-max-microvolt = <1140000>;
117
118 pwms = <&pwm_cd 0 1148 0>;
119 pwm-dutycycle-range = <100 0>;
120
121 regulator-boot-on;
122 regulator-always-on;
123 };
124
125 vcc_1v8: regulator-vcc1v8 {
126 compatible = "regulator-fixed";
127
128 regulator-name = "VCC1V8";
129 regulator-min-microvolt = <1800000>;
130 regulator-max-microvolt = <1800000>;
131 };
132
133 vcc_3v3: regulator-vcc3v3 {
134 compatible = "regulator-fixed";
135
136 regulator-name = "VCC3V3";
137 regulator-min-microvolt = <3300000>;
138 regulator-max-microvolt = <3300000>;
139 };
140};
141
142&cpu0 {
143 cpu-supply = <&vcck>;
144};
145
146&ethmac {
147 status = "okay";
148
149 pinctrl-0 = <&eth_rmii_pins>;
150 pinctrl-names = "default";
151
152 phy-handle = <&eth_phy0>;
153 phy-mode = "rmii";
154
155 snps,reset-gpio = <&gpio GPIOH_4 0>;
156 snps,reset-delays-us = <0 10000 1000000>;
157 snps,reset-active-low;
158
159 mdio {
160 compatible = "snps,dwmac-mdio";
161 #address-cells = <1>;
162 #size-cells = <0>;
163
164 eth_phy0: ethernet-phy@0 {
165 /* IC Plus IP101A/G (0x02430c54) */
166 reg = <0>;
167 };
168 };
169};
170
171&i2c_A {
172 status = "okay";
173 pinctrl-0 = <&i2c_a_pins>;
174 pinctrl-names = "default";
175
176 rt5640: codec@1c {
177 compatible = "realtek,rt5640";
178 reg = <0x1c>;
179 interrupt-parent = <&gpio_intc>;
180 interrupts = <13 IRQ_TYPE_EDGE_BOTH>; /* GPIOAO_13 */
181 realtek,in1-differential;
182 };
183};
184
185&saradc {
186 status = "okay";
187 vref-supply = <&vcc_1v8>;
188};
189
190&sdio {
191 status = "okay";
192
193 pinctrl-0 = <&sd_b_pins>;
194 pinctrl-names = "default";
195
196 /* SD card */
197 sd_card_slot: slot@1 {
198 compatible = "mmc-slot";
199 reg = <1>;
200 status = "okay";
201
202 bus-width = <4>;
203 no-sdio;
204 cap-mmc-highspeed;
205 cap-sd-highspeed;
206 disable-wp;
207
208 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
209 cd-inverted;
210
211 vmmc-supply = <&vcc_3v3>;
212 };
213};
214
215&pwm_cd {
216 status = "okay";
217 pinctrl-0 = <&pwm_c1_pins>;
218 pinctrl-names = "default";
219 clocks = <&clkc CLKID_XTAL>;
220 clock-names = "clkin0";
221};
222
223/* exposed through the pin headers labeled "URDUG1" on the top of the PCB */
224&uart_AO {
225 status = "okay";
226 pinctrl-0 = <&uart_ao_a_pins>;
227 pinctrl-names = "default";
228};
229
230/*
231 * connected to the Bluetooth part of the RTL8723BS SDIO wifi / Bluetooth
232 * combo chip. This is only available on the variant with 2GB RAM.
233 */
234&uart_B {
235 status = "okay";
236 pinctrl-0 = <&uart_b0_pins>, <&uart_b0_cts_rts_pins>;
237 pinctrl-names = "default";
238 uart-has-rtscts;
239};
240
241&usb1 {
242 status = "okay";
243 vbus-supply = <&usb_vbus>;
244};
245
246&usb1_phy {
247 status = "okay";
248};
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
index ef3177d3da3d..58669abda259 100644
--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -57,6 +57,10 @@
57 mmc0 = &sd_card_slot; 57 mmc0 = &sd_card_slot;
58 }; 58 };
59 59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
60 memory { 64 memory {
61 reg = <0x40000000 0x40000000>; 65 reg = <0x40000000 0x40000000>;
62 }; 66 };
@@ -71,6 +75,14 @@
71 }; 75 };
72 }; 76 };
73 77
78 p5v0: regulator-p5v0 {
79 compatible = "regulator-fixed";
80
81 regulator-name = "P5V0";
82 regulator-min-microvolt = <5000000>;
83 regulator-max-microvolt = <5000000>;
84 };
85
74 tflash_vdd: regulator-tflash_vdd { 86 tflash_vdd: regulator-tflash_vdd {
75 /* 87 /*
76 * signal name from schematics: TFLASH_VDD_EN 88 * signal name from schematics: TFLASH_VDD_EN
@@ -81,6 +93,8 @@
81 regulator-min-microvolt = <3300000>; 93 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>; 94 regulator-max-microvolt = <3300000>;
83 95
96 vin-supply = <&vcc_3v3>;
97
84 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; 98 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
85 enable-active-high; 99 enable-active-high;
86 }; 100 };
@@ -92,6 +106,8 @@
92 regulator-min-microvolt = <1800000>; 106 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <3300000>; 107 regulator-max-microvolt = <3300000>;
94 108
109 vin-supply = <&vcc_3v3>;
110
95 /* 111 /*
96 * signal name from schematics: TF_3V3N_1V8_EN 112 * signal name from schematics: TF_3V3N_1V8_EN
97 */ 113 */
@@ -101,6 +117,86 @@
101 states = <3300000 0 117 states = <3300000 0
102 1800000 1>; 118 1800000 1>;
103 }; 119 };
120
121 vcc_1v8: regulator-vcc-1v8 {
122 /*
123 * RICHTEK RT9179 configured for a fixed output voltage of
124 * 1.8V. This supplies not only VCC1V8 but also IOREF_1V8 and
125 * VDD1V8 according to the schematics.
126 */
127 compatible = "regulator-fixed";
128
129 regulator-name = "VCC1V8";
130 regulator-min-microvolt = <1800000>;
131 regulator-max-microvolt = <1800000>;
132
133 vin-supply = <&p5v0>;
134 };
135
136 vcc_3v3: regulator-vcc-3v3 {
137 /*
138 * Monolithic Power Systems MP2161 configured for a fixed
139 * output voltage of 3.3V. This supplies not only VCC3V3 but
140 * also VDD3V3 and VDDIO_AO3V3 according to the schematics.
141 */
142 compatible = "regulator-fixed";
143
144 regulator-name = "VCC3V3";
145 regulator-min-microvolt = <3300000>;
146 regulator-max-microvolt = <3300000>;
147
148 vin-supply = <&p5v0>;
149 };
150
151 vcck: regulator-vcck {
152 /* Monolithic Power Systems MP2161 */
153 compatible = "pwm-regulator";
154
155 regulator-name = "VCCK";
156 regulator-min-microvolt = <860000>;
157 regulator-max-microvolt = <1140000>;
158
159 vin-supply = <&p5v0>;
160
161 pwms = <&pwm_cd 0 12218 0>;
162 pwm-dutycycle-range = <91 0>;
163
164 regulator-boot-on;
165 regulator-always-on;
166 };
167
168 vddc_ddr: regulator-vddc-ddr {
169 /*
170 * Monolithic Power Systems MP2161 configured for a fixed
171 * output voltage of 1.5V. This supplies not only DDR_VDDC but
172 * also DDR3_1V5 according to the schematics.
173 */
174 compatible = "regulator-fixed";
175
176 regulator-name = "DDR_VDDC";
177 regulator-min-microvolt = <1500000>;
178 regulator-max-microvolt = <1500000>;
179
180 vin-supply = <&p5v0>;
181 };
182
183 vdd_rtc: regulator-vdd-rtc {
184 /*
185 * Torex Semiconductor XC6215 configured for a fixed output of
186 * 0.9V.
187 */
188 compatible = "regulator-fixed";
189
190 regulator-name = "VDD_RTC";
191 regulator-min-microvolt = <900000>;
192 regulator-max-microvolt = <900000>;
193
194 vin-supply = <&vcc_3v3>;
195 };
196};
197
198&cpu0 {
199 cpu-supply = <&vcck>;
104}; 200};
105 201
106&ethmac { 202&ethmac {
@@ -154,6 +250,11 @@
154 pinctrl-names = "default"; 250 pinctrl-names = "default";
155}; 251};
156 252
253&saradc {
254 status = "okay";
255 vref-supply = <&vcc_1v8>;
256};
257
157&sdio { 258&sdio {
158 status = "okay"; 259 status = "okay";
159 260
@@ -180,6 +281,14 @@
180 }; 281 };
181}; 282};
182 283
284&pwm_cd {
285 status = "okay";
286 pinctrl-0 = <&pwm_c1_pins>;
287 pinctrl-names = "default";
288 clocks = <&clkc CLKID_XTAL>;
289 clock-names = "clkin0";
290};
291
183&uart_AO { 292&uart_AO {
184 status = "okay"; 293 status = "okay";
185 pinctrl-0 = <&uart_ao_a_pins>; 294 pinctrl-0 = <&uart_ao_a_pins>;
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index 08f7f6be7254..cd1ca9dda126 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -163,7 +163,7 @@
163 #clock-cells = <1>; 163 #clock-cells = <1>;
164 #reset-cells = <1>; 164 #reset-cells = <1>;
165 compatible = "amlogic,meson8b-clkc"; 165 compatible = "amlogic,meson8b-clkc";
166 reg = <0x8000 0x4>, <0x4000 0x460>; 166 reg = <0x8000 0x4>, <0x4000 0x400>;
167 }; 167 };
168 168
169 reset: reset-controller@4404 { 169 reset: reset-controller@4404 {
@@ -223,6 +223,28 @@
223 }; 223 };
224 }; 224 };
225 225
226 eth_rmii_pins: eth-rmii {
227 mux {
228 groups = "eth_tx_en",
229 "eth_txd1_0",
230 "eth_txd0_0",
231 "eth_rx_clk",
232 "eth_rx_dv",
233 "eth_rxd1",
234 "eth_rxd0",
235 "eth_mdio_en",
236 "eth_mdc";
237 function = "ethernet";
238 };
239 };
240
241 i2c_a_pins: i2c-a {
242 mux {
243 groups = "i2c_sda_a", "i2c_sck_a";
244 function = "i2c_a";
245 };
246 };
247
226 sd_b_pins: sd-b { 248 sd_b_pins: sd-b {
227 mux { 249 mux {
228 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 250 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
@@ -230,6 +252,29 @@
230 function = "sd_b"; 252 function = "sd_b";
231 }; 253 };
232 }; 254 };
255
256 pwm_c1_pins: pwm-c1 {
257 mux {
258 groups = "pwm_c1";
259 function = "pwm_c";
260 };
261 };
262
263 uart_b0_pins: uart-b0 {
264 mux {
265 groups = "uart_tx_b0",
266 "uart_rx_b0";
267 function = "uart_b";
268 };
269 };
270
271 uart_b0_cts_rts_pins: uart-b0-cts-rts {
272 mux {
273 groups = "uart_cts_b0",
274 "uart_rts_b0";
275 function = "uart_b";
276 };
277 };
233 }; 278 };
234}; 279};
235 280