Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / amlogic / meson-g12a-u200.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4  */
5
6 /dts-v1/;
7
8 #include "meson-g12a.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/gpio/meson-g12a-gpio.h>
11
12 / {
13         compatible = "amlogic,u200", "amlogic,g12a";
14         model = "Amlogic Meson G12A U200 Development Board";
15
16         aliases {
17                 serial0 = &uart_AO;
18                 ethernet0 = &ethmac;
19         };
20
21         chosen {
22                 stdout-path = "serial0:115200n8";
23         };
24
25         cvbs-connector {
26                 compatible = "composite-video-connector";
27
28                 port {
29                         cvbs_connector_in: endpoint {
30                                 remote-endpoint = <&cvbs_vdac_out>;
31                         };
32                 };
33         };
34
35         emmc_pwrseq: emmc-pwrseq {
36                 compatible = "mmc-pwrseq-emmc";
37                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
38         };
39
40         hdmi-connector {
41                 compatible = "hdmi-connector";
42                 type = "a";
43
44                 port {
45                         hdmi_connector_in: endpoint {
46                                 remote-endpoint = <&hdmi_tx_tmds_out>;
47                         };
48                 };
49         };
50
51         memory@0 {
52                 device_type = "memory";
53                 reg = <0x0 0x0 0x0 0x40000000>;
54         };
55
56         flash_1v8: regulator-flash_1v8 {
57                 compatible = "regulator-fixed";
58                 regulator-name = "FLASH_1V8";
59                 regulator-min-microvolt = <1800000>;
60                 regulator-max-microvolt = <1800000>;
61                 vin-supply = <&vcc_3v3>;
62                 regulator-always-on;
63         };
64
65         main_12v: regulator-main_12v {
66                 compatible = "regulator-fixed";
67                 regulator-name = "12V";
68                 regulator-min-microvolt = <12000000>;
69                 regulator-max-microvolt = <12000000>;
70                 regulator-always-on;
71         };
72
73         usb_pwr_en: regulator-usb_pwr_en {
74                 compatible = "regulator-fixed";
75                 regulator-name = "USB_PWR_EN";
76                 regulator-min-microvolt = <5000000>;
77                 regulator-max-microvolt = <5000000>;
78                 vin-supply = <&vcc_5v>;
79
80                 gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
81                 enable-active-high;
82         };
83
84         vcc_1v8: regulator-vcc_1v8 {
85                 compatible = "regulator-fixed";
86                 regulator-name = "VCC_1V8";
87                 regulator-min-microvolt = <1800000>;
88                 regulator-max-microvolt = <1800000>;
89                 vin-supply = <&vcc_3v3>;
90                 regulator-always-on;
91         };
92
93         vcc_3v3: regulator-vcc_3v3 {
94                 compatible = "regulator-fixed";
95                 regulator-name = "VCC_3V3";
96                 regulator-min-microvolt = <3300000>;
97                 regulator-max-microvolt = <3300000>;
98                 vin-supply = <&vddao_3v3>;
99                 regulator-always-on;
100                 /* FIXME: actually controlled by VDDCPU_B_EN */
101         };
102
103         vcc_5v: regulator-vcc_5v {
104                 compatible = "regulator-fixed";
105                 regulator-name = "VCC_5V";
106                 regulator-min-microvolt = <5000000>;
107                 regulator-max-microvolt = <5000000>;
108                 vin-supply = <&main_12v>;
109
110                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
111                 enable-active-high;
112         };
113
114         vddao_1v8: regulator-vddao_1v8 {
115                 compatible = "regulator-fixed";
116                 regulator-name = "VDDAO_1V8";
117                 regulator-min-microvolt = <1800000>;
118                 regulator-max-microvolt = <1800000>;
119                 vin-supply = <&vddao_3v3>;
120                 regulator-always-on;
121         };
122
123         vddao_3v3: regulator-vddao_3v3 {
124                 compatible = "regulator-fixed";
125                 regulator-name = "VDDAO_3V3";
126                 regulator-min-microvolt = <3300000>;
127                 regulator-max-microvolt = <3300000>;
128                 vin-supply = <&main_12v>;
129                 regulator-always-on;
130         };
131
132         vddcpu: regulator-vddcpu {
133                 /*
134                  * MP8756GD Regulator.
135                  */
136                 compatible = "pwm-regulator";
137
138                 regulator-name = "VDDCPU";
139                 regulator-min-microvolt = <721000>;
140                 regulator-max-microvolt = <1022000>;
141
142                 vin-supply = <&main_12v>;
143
144                 pwms = <&pwm_AO_cd 1 1250 0>;
145                 pwm-dutycycle-range = <100 0>;
146
147                 regulator-boot-on;
148                 regulator-always-on;
149         };
150 };
151
152 &cec_AO {
153         pinctrl-0 = <&cec_ao_a_h_pins>;
154         pinctrl-names = "default";
155         status = "disabled";
156         hdmi-phandle = <&hdmi_tx>;
157 };
158
159 &cecb_AO {
160         pinctrl-0 = <&cec_ao_b_h_pins>;
161         pinctrl-names = "default";
162         status = "okay";
163         hdmi-phandle = <&hdmi_tx>;
164 };
165
166 &cpu0 {
167         cpu-supply = <&vddcpu>;
168         operating-points-v2 = <&cpu_opp_table>;
169         clocks = <&clkc CLKID_CPU_CLK>;
170         clock-latency = <50000>;
171 };
172
173 &cpu1 {
174         cpu-supply = <&vddcpu>;
175         operating-points-v2 = <&cpu_opp_table>;
176         clocks = <&clkc CLKID_CPU_CLK>;
177         clock-latency = <50000>;
178 };
179
180 &cpu2 {
181         cpu-supply = <&vddcpu>;
182         operating-points-v2 = <&cpu_opp_table>;
183         clocks = <&clkc CLKID_CPU_CLK>;
184         clock-latency = <50000>;
185 };
186
187 &cpu3 {
188         cpu-supply = <&vddcpu>;
189         operating-points-v2 = <&cpu_opp_table>;
190         clocks = <&clkc CLKID_CPU_CLK>;
191         clock-latency = <50000>;
192 };
193
194 &cvbs_vdac_port {
195         cvbs_vdac_out: endpoint {
196                 remote-endpoint = <&cvbs_connector_in>;
197         };
198 };
199
200 &ethmac {
201         status = "okay";
202         phy-handle = <&internal_ephy>;
203         phy-mode = "rmii";
204 };
205
206 &hdmi_tx {
207         status = "okay";
208         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
209         pinctrl-names = "default";
210         hdmi-supply = <&vcc_5v>;
211 };
212
213 &hdmi_tx_tmds_port {
214         hdmi_tx_tmds_out: endpoint {
215                 remote-endpoint = <&hdmi_connector_in>;
216         };
217 };
218
219 &ir {
220         status = "okay";
221         pinctrl-0 = <&remote_input_ao_pins>;
222         pinctrl-names = "default";
223 };
224
225 /* i2c Touch */
226 &i2c0 {
227         status = "okay";
228         pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
229         pinctrl-names = "default";
230 };
231
232 /* i2c CM */
233 &i2c2 {
234         status = "okay";
235         pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
236         pinctrl-names = "default";
237 };
238
239 /* i2c Audio */
240 &i2c3 {
241         status = "okay";
242         pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
243         pinctrl-names = "default";
244 };
245
246 &pwm_AO_cd {
247         pinctrl-0 = <&pwm_ao_d_e_pins>;
248         pinctrl-names = "default";
249         clocks = <&xtal>;
250         clock-names = "clkin1";
251         status = "okay";
252 };
253
254 /* SD card */
255 &sd_emmc_b {
256         status = "okay";
257         pinctrl-0 = <&sdcard_c_pins>;
258         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
259         pinctrl-names = "default", "clk-gate";
260
261         bus-width = <4>;
262         cap-sd-highspeed;
263         max-frequency = <50000000>;
264         disable-wp;
265
266         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
267         vmmc-supply = <&vddao_3v3>;
268         vqmmc-supply = <&vddao_3v3>;
269 };
270
271 /* eMMC */
272 &sd_emmc_c {
273         status = "okay";
274         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
275         pinctrl-1 = <&emmc_clk_gate_pins>;
276         pinctrl-names = "default", "clk-gate";
277
278         bus-width = <8>;
279         cap-mmc-highspeed;
280         mmc-ddr-1_8v;
281         mmc-hs200-1_8v;
282         max-frequency = <200000000>;
283         non-removable;
284         disable-wp;
285
286         mmc-pwrseq = <&emmc_pwrseq>;
287         vmmc-supply = <&vcc_3v3>;
288         vqmmc-supply = <&flash_1v8>;
289 };
290
291 &uart_AO {
292         status = "okay";
293         pinctrl-0 = <&uart_ao_a_pins>;
294         pinctrl-names = "default";
295 };
296
297 &usb {
298         status = "okay";
299         vbus-supply = <&usb_pwr_en>;
300 };
301
302 &usb2_phy0 {
303         phy-supply = <&vcc_5v>;
304 };
305
306 &usb2_phy1 {
307         phy-supply = <&vcc_5v>;
308 };