blob: 77a6f0ec692d40331e88480703989444c6ed1c30 [file] [log] [blame]
Neil Armstrongb7be1442019-02-12 15:02:59 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 BayLibre SAS. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include "meson-g12a.dtsi"
Jerome Brunet2297c332019-03-18 11:04:52 +01009#include <dt-bindings/gpio/gpio.h>
Neil Armstrongd1c023a2019-03-25 11:14:50 +010010#include <dt-bindings/input/input.h>
Jerome Brunet2297c332019-03-18 11:04:52 +010011#include <dt-bindings/gpio/meson-g12a-gpio.h>
Neil Armstrongb7be1442019-02-12 15:02:59 +010012
13/ {
14 compatible = "seirobotics,sei510", "amlogic,g12a";
15 model = "SEI Robotics SEI510";
16
Neil Armstrongd1c023a2019-03-25 11:14:50 +010017 adc_keys {
18 compatible = "adc-keys";
19 io-channels = <&saradc 0>;
20 io-channel-names = "buttons";
21 keyup-threshold-microvolt = <1800000>;
22
23 button-onoff {
24 label = "On/Off";
25 linux,code = <KEY_POWER>;
26 press-threshold-microvolt = <1700000>;
27 };
28 };
29
Jerome Brunet73429cf2019-05-10 17:53:26 +020030 aliases {
31 serial0 = &uart_AO;
Jerome Bruneta1abafb2019-05-20 15:14:01 +020032 ethernet0 = &ethmac;
Jerome Brunet2297c332019-03-18 11:04:52 +010033 };
34
Neil Armstrongb7be1442019-02-12 15:02:59 +010035 chosen {
36 stdout-path = "serial0:115200n8";
37 };
38
Neil Armstrong912a3392019-04-08 11:31:38 +020039 cvbs-connector {
40 compatible = "composite-video-connector";
41
42 port {
43 cvbs_connector_in: endpoint {
44 remote-endpoint = <&cvbs_vdac_out>;
45 };
46 };
47 };
48
Jerome Brunet5a2ea2f2019-05-14 11:16:11 +020049 emmc_pwrseq: emmc-pwrseq {
50 compatible = "mmc-pwrseq-emmc";
51 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
52 };
53
Neil Armstrong912a3392019-04-08 11:31:38 +020054 hdmi-connector {
55 compatible = "hdmi-connector";
56 type = "a";
57
58 port {
59 hdmi_connector_in: endpoint {
60 remote-endpoint = <&hdmi_tx_tmds_out>;
61 };
62 };
63 };
64
Neil Armstrongb7be1442019-02-12 15:02:59 +010065 memory@0 {
66 device_type = "memory";
67 reg = <0x0 0x0 0x0 0x40000000>;
68 };
69
Jerome Brunet73429cf2019-05-10 17:53:26 +020070 ao_5v: regulator-ao_5v {
71 compatible = "regulator-fixed";
72 regulator-name = "AO_5V";
73 regulator-min-microvolt = <5000000>;
74 regulator-max-microvolt = <5000000>;
75 vin-supply = <&dc_in>;
76 regulator-always-on;
77 };
78
79 dc_in: regulator-dc_in {
80 compatible = "regulator-fixed";
81 regulator-name = "DC_IN";
82 regulator-min-microvolt = <5000000>;
83 regulator-max-microvolt = <5000000>;
84 regulator-always-on;
85 };
86
87 emmc_1v8: regulator-emmc_1v8 {
88 compatible = "regulator-fixed";
89 regulator-name = "EMMC_1V8";
90 regulator-min-microvolt = <1800000>;
91 regulator-max-microvolt = <1800000>;
92 vin-supply = <&vddao_3v3>;
93 regulator-always-on;
Neil Armstrongb7be1442019-02-12 15:02:59 +010094 };
Jerome Brunet2297c332019-03-18 11:04:52 +010095
96 vddao_3v3: regulator-vddao_3v3 {
97 compatible = "regulator-fixed";
98 regulator-name = "VDDAO_3V3";
99 regulator-min-microvolt = <3300000>;
100 regulator-max-microvolt = <3300000>;
101 vin-supply = <&dc_in>;
102 regulator-always-on;
103 };
104
105 vddao_3v3_t: regultor-vddao_3v3_t {
106 compatible = "regulator-fixed";
107 regulator-name = "VDDAO_3V3_T";
108 regulator-min-microvolt = <3300000>;
109 regulator-max-microvolt = <3300000>;
110 vin-supply = <&vddao_3v3>;
111 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
112 enable-active-high;
113 };
114
115 vddio_ao1v8: regulator-vddio_ao1v8 {
116 compatible = "regulator-fixed";
117 regulator-name = "VDDIO_AO1V8";
118 regulator-min-microvolt = <1800000>;
119 regulator-max-microvolt = <1800000>;
120 vin-supply = <&vddao_3v3>;
121 regulator-always-on;
122 };
Jerome Brunet73429cf2019-05-10 17:53:26 +0200123
124 reserved-memory {
125 /* TEE Reserved Memory */
126 bl32_reserved: bl32@5000000 {
127 reg = <0x0 0x05300000 0x0 0x2000000>;
128 no-map;
129 };
130 };
Neil Armstrong5f57a092019-06-07 16:47:35 +0200131
132 sdio_pwrseq: sdio-pwrseq {
133 compatible = "mmc-pwrseq-simple";
134 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
135 clocks = <&wifi32k>;
136 clock-names = "ext_clock";
137 };
138
139 wifi32k: wifi32k {
140 compatible = "pwm-clock";
141 #clock-cells = <0>;
142 clock-frequency = <32768>;
143 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
144 };
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100145};
Jerome Brunet2297c332019-03-18 11:04:52 +0100146
Neil Armstrong912a3392019-04-08 11:31:38 +0200147&cec_AO {
148 pinctrl-0 = <&cec_ao_a_h_pins>;
149 pinctrl-names = "default";
150 status = "disabled";
151 hdmi-phandle = <&hdmi_tx>;
152};
153
154&cecb_AO {
155 pinctrl-0 = <&cec_ao_b_h_pins>;
156 pinctrl-names = "default";
157 status = "okay";
158 hdmi-phandle = <&hdmi_tx>;
159};
160
161&cvbs_vdac_port {
162 cvbs_vdac_out: endpoint {
163 remote-endpoint = <&cvbs_connector_in>;
164 };
165};
166
Jerome Bruneta1abafb2019-05-20 15:14:01 +0200167&ethmac {
168 status = "okay";
169 phy-handle = <&internal_ephy>;
170 phy-mode = "rmii";
171};
172
Jerome Brunet73429cf2019-05-10 17:53:26 +0200173&hdmi_tx {
174 status = "okay";
175 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
176 pinctrl-names = "default";
177};
178
179&hdmi_tx_tmds_port {
180 hdmi_tx_tmds_out: endpoint {
181 remote-endpoint = <&hdmi_connector_in>;
182 };
183};
184
Jerome Brunet32232312019-05-14 12:12:37 +0200185&i2c3 {
186 status = "okay";
187 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
188 pinctrl-names = "default";
189};
190
Neil Armstrong5f57a092019-06-07 16:47:35 +0200191&pwm_ef {
192 status = "okay";
193 pinctrl-0 = <&pwm_e_pins>;
194 pinctrl-names = "default";
195 clocks = <&xtal>;
196 clock-names = "clkin0";
197};
198
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100199&saradc {
200 status = "okay";
201 vref-supply = <&vddio_ao1v8>;
202};
203
Neil Armstrong5f57a092019-06-07 16:47:35 +0200204/* SDIO */
205&sd_emmc_a {
206 status = "okay";
207 pinctrl-0 = <&sdio_pins>;
208 pinctrl-1 = <&sdio_clk_gate_pins>;
209 pinctrl-names = "default", "clk-gate";
210 #address-cells = <1>;
211 #size-cells = <0>;
212
213 bus-width = <4>;
214 cap-sd-highspeed;
215 sd-uhs-sdr50;
216 max-frequency = <100000000>;
217
218 non-removable;
219 disable-wp;
220
221 mmc-pwrseq = <&sdio_pwrseq>;
222
223 vmmc-supply = <&vddao_3v3>;
224 vqmmc-supply = <&vddio_ao1v8>;
225
226 brcmf: wifi@1 {
227 reg = <1>;
228 compatible = "brcm,bcm4329-fmac";
229 };
230};
231
Jerome Brunet5a2ea2f2019-05-14 11:16:11 +0200232/* SD card */
233&sd_emmc_b {
234 status = "okay";
235 pinctrl-0 = <&sdcard_c_pins>;
236 pinctrl-1 = <&sdcard_clk_gate_c_pins>;
237 pinctrl-names = "default", "clk-gate";
238
239 bus-width = <4>;
240 cap-sd-highspeed;
241 max-frequency = <50000000>;
242 disable-wp;
243
244 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
245 vmmc-supply = <&vddao_3v3>;
246 vqmmc-supply = <&vddao_3v3>;
247};
248
249/* eMMC */
250&sd_emmc_c {
251 status = "okay";
252 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
253 pinctrl-1 = <&emmc_clk_gate_pins>;
254 pinctrl-names = "default", "clk-gate";
255
256 bus-width = <8>;
257 cap-mmc-highspeed;
258 mmc-ddr-1_8v;
259 mmc-hs200-1_8v;
260 max-frequency = <200000000>;
261 non-removable;
262 disable-wp;
263
264 mmc-pwrseq = <&emmc_pwrseq>;
265 vmmc-supply = <&vddao_3v3>;
266 vqmmc-supply = <&emmc_1v8>;
267};
268
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100269&uart_A {
270 status = "okay";
271 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
272 pinctrl-names = "default";
273 uart-has-rtscts;
274
275 bluetooth {
276 compatible = "brcm,bcm43438-bt";
277 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
Neil Armstrongfaf438e2019-06-07 16:36:15 +0200278 clocks = <&wifi32k>;
279 clock-names = "lpo";
Jerome Brunetd272c532019-05-16 09:13:55 +0200280 vbat-supply = <&vddao_3v3>;
281 vddio-supply = <&vddio_ao1v8>;
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100282 };
Neil Armstrongb7be1442019-02-12 15:02:59 +0100283};
284
285&uart_AO {
286 status = "okay";
Neil Armstrong51d215c2019-03-18 11:04:49 +0100287 pinctrl-0 = <&uart_ao_a_pins>;
288 pinctrl-names = "default";
Neil Armstrongb7be1442019-02-12 15:02:59 +0100289};
Neil Armstrong41cc4552019-03-25 11:14:51 +0100290
291&usb {
292 status = "okay";
293 dr_mode = "host";
294};