blob: 984a59a441defa94d98661f622a991bd94653eb1 [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
Maxime Jourdanb06c8c6e2019-05-24 16:03:17 +020035 mono_dac: audio-codec {
36 compatible = "maxim,max98357a";
37 #sound-dai-cells = <0>;
38 sound-name-prefix = "U16";
39 sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>;
40 };
41
Neil Armstrongb7be1442019-02-12 15:02:59 +010042 chosen {
43 stdout-path = "serial0:115200n8";
44 };
45
Neil Armstrong912a3392019-04-08 11:31:38 +020046 cvbs-connector {
47 compatible = "composite-video-connector";
48
49 port {
50 cvbs_connector_in: endpoint {
51 remote-endpoint = <&cvbs_vdac_out>;
52 };
53 };
54 };
55
Jerome Brunet5a2ea2f2019-05-14 11:16:11 +020056 emmc_pwrseq: emmc-pwrseq {
57 compatible = "mmc-pwrseq-emmc";
58 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
59 };
60
Neil Armstrong912a3392019-04-08 11:31:38 +020061 hdmi-connector {
62 compatible = "hdmi-connector";
63 type = "a";
64
65 port {
66 hdmi_connector_in: endpoint {
67 remote-endpoint = <&hdmi_tx_tmds_out>;
68 };
69 };
70 };
71
Neil Armstrongb7be1442019-02-12 15:02:59 +010072 memory@0 {
73 device_type = "memory";
74 reg = <0x0 0x0 0x0 0x40000000>;
75 };
76
Jerome Brunet73429cf2019-05-10 17:53:26 +020077 ao_5v: regulator-ao_5v {
78 compatible = "regulator-fixed";
79 regulator-name = "AO_5V";
80 regulator-min-microvolt = <5000000>;
81 regulator-max-microvolt = <5000000>;
82 vin-supply = <&dc_in>;
83 regulator-always-on;
84 };
85
86 dc_in: regulator-dc_in {
87 compatible = "regulator-fixed";
88 regulator-name = "DC_IN";
89 regulator-min-microvolt = <5000000>;
90 regulator-max-microvolt = <5000000>;
91 regulator-always-on;
92 };
93
94 emmc_1v8: regulator-emmc_1v8 {
95 compatible = "regulator-fixed";
96 regulator-name = "EMMC_1V8";
97 regulator-min-microvolt = <1800000>;
98 regulator-max-microvolt = <1800000>;
99 vin-supply = <&vddao_3v3>;
100 regulator-always-on;
Neil Armstrongb7be1442019-02-12 15:02:59 +0100101 };
Jerome Brunet2297c332019-03-18 11:04:52 +0100102
103 vddao_3v3: regulator-vddao_3v3 {
104 compatible = "regulator-fixed";
105 regulator-name = "VDDAO_3V3";
106 regulator-min-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>;
108 vin-supply = <&dc_in>;
109 regulator-always-on;
110 };
111
112 vddao_3v3_t: regultor-vddao_3v3_t {
113 compatible = "regulator-fixed";
114 regulator-name = "VDDAO_3V3_T";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
117 vin-supply = <&vddao_3v3>;
118 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
119 enable-active-high;
120 };
121
122 vddio_ao1v8: regulator-vddio_ao1v8 {
123 compatible = "regulator-fixed";
124 regulator-name = "VDDIO_AO1V8";
125 regulator-min-microvolt = <1800000>;
126 regulator-max-microvolt = <1800000>;
127 vin-supply = <&vddao_3v3>;
128 regulator-always-on;
129 };
Jerome Brunet73429cf2019-05-10 17:53:26 +0200130
131 reserved-memory {
132 /* TEE Reserved Memory */
133 bl32_reserved: bl32@5000000 {
134 reg = <0x0 0x05300000 0x0 0x2000000>;
135 no-map;
136 };
137 };
Neil Armstrong5f57a092019-06-07 16:47:35 +0200138
139 sdio_pwrseq: sdio-pwrseq {
140 compatible = "mmc-pwrseq-simple";
141 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
142 clocks = <&wifi32k>;
143 clock-names = "ext_clock";
144 };
145
146 wifi32k: wifi32k {
147 compatible = "pwm-clock";
148 #clock-cells = <0>;
149 clock-frequency = <32768>;
150 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
151 };
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100152};
Jerome Brunet2297c332019-03-18 11:04:52 +0100153
Neil Armstrong912a3392019-04-08 11:31:38 +0200154&cec_AO {
155 pinctrl-0 = <&cec_ao_a_h_pins>;
156 pinctrl-names = "default";
157 status = "disabled";
158 hdmi-phandle = <&hdmi_tx>;
159};
160
161&cecb_AO {
162 pinctrl-0 = <&cec_ao_b_h_pins>;
163 pinctrl-names = "default";
164 status = "okay";
165 hdmi-phandle = <&hdmi_tx>;
166};
167
168&cvbs_vdac_port {
169 cvbs_vdac_out: endpoint {
170 remote-endpoint = <&cvbs_connector_in>;
171 };
172};
173
Jerome Bruneta1abafb2019-05-20 15:14:01 +0200174&ethmac {
175 status = "okay";
176 phy-handle = <&internal_ephy>;
177 phy-mode = "rmii";
178};
179
Jerome Brunet73429cf2019-05-10 17:53:26 +0200180&hdmi_tx {
181 status = "okay";
182 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
183 pinctrl-names = "default";
184};
185
186&hdmi_tx_tmds_port {
187 hdmi_tx_tmds_out: endpoint {
188 remote-endpoint = <&hdmi_connector_in>;
189 };
190};
191
Jerome Brunet32232312019-05-14 12:12:37 +0200192&i2c3 {
193 status = "okay";
194 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
195 pinctrl-names = "default";
196};
197
Neil Armstrong5f57a092019-06-07 16:47:35 +0200198&pwm_ef {
199 status = "okay";
200 pinctrl-0 = <&pwm_e_pins>;
201 pinctrl-names = "default";
202 clocks = <&xtal>;
203 clock-names = "clkin0";
204};
205
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100206&saradc {
207 status = "okay";
208 vref-supply = <&vddio_ao1v8>;
209};
210
Neil Armstrong5f57a092019-06-07 16:47:35 +0200211/* SDIO */
212&sd_emmc_a {
213 status = "okay";
214 pinctrl-0 = <&sdio_pins>;
215 pinctrl-1 = <&sdio_clk_gate_pins>;
216 pinctrl-names = "default", "clk-gate";
217 #address-cells = <1>;
218 #size-cells = <0>;
219
220 bus-width = <4>;
221 cap-sd-highspeed;
222 sd-uhs-sdr50;
223 max-frequency = <100000000>;
224
225 non-removable;
226 disable-wp;
227
228 mmc-pwrseq = <&sdio_pwrseq>;
229
230 vmmc-supply = <&vddao_3v3>;
231 vqmmc-supply = <&vddio_ao1v8>;
232
233 brcmf: wifi@1 {
234 reg = <1>;
235 compatible = "brcm,bcm4329-fmac";
236 };
237};
238
Jerome Brunet5a2ea2f2019-05-14 11:16:11 +0200239/* SD card */
240&sd_emmc_b {
241 status = "okay";
242 pinctrl-0 = <&sdcard_c_pins>;
243 pinctrl-1 = <&sdcard_clk_gate_c_pins>;
244 pinctrl-names = "default", "clk-gate";
245
246 bus-width = <4>;
247 cap-sd-highspeed;
248 max-frequency = <50000000>;
249 disable-wp;
250
251 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
252 vmmc-supply = <&vddao_3v3>;
253 vqmmc-supply = <&vddao_3v3>;
254};
255
256/* eMMC */
257&sd_emmc_c {
258 status = "okay";
259 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
260 pinctrl-1 = <&emmc_clk_gate_pins>;
261 pinctrl-names = "default", "clk-gate";
262
263 bus-width = <8>;
264 cap-mmc-highspeed;
265 mmc-ddr-1_8v;
266 mmc-hs200-1_8v;
267 max-frequency = <200000000>;
268 non-removable;
269 disable-wp;
270
271 mmc-pwrseq = <&emmc_pwrseq>;
272 vmmc-supply = <&vddao_3v3>;
273 vqmmc-supply = <&emmc_1v8>;
274};
275
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100276&uart_A {
277 status = "okay";
278 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
279 pinctrl-names = "default";
280 uart-has-rtscts;
281
282 bluetooth {
283 compatible = "brcm,bcm43438-bt";
284 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
Neil Armstrongdff60012019-06-07 16:36:17 +0200285 max-speed = <2000000>;
Neil Armstrongfaf438e2019-06-07 16:36:15 +0200286 clocks = <&wifi32k>;
287 clock-names = "lpo";
Jerome Brunetd272c532019-05-16 09:13:55 +0200288 vbat-supply = <&vddao_3v3>;
289 vddio-supply = <&vddio_ao1v8>;
Neil Armstrongd1c023a2019-03-25 11:14:50 +0100290 };
Neil Armstrongb7be1442019-02-12 15:02:59 +0100291};
292
293&uart_AO {
294 status = "okay";
Neil Armstrong51d215c2019-03-18 11:04:49 +0100295 pinctrl-0 = <&uart_ao_a_pins>;
296 pinctrl-names = "default";
Neil Armstrongb7be1442019-02-12 15:02:59 +0100297};
Neil Armstrong41cc4552019-03-25 11:14:51 +0100298
299&usb {
300 status = "okay";
301 dr_mode = "host";
302};