• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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-sm1.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/gpio/meson-g12a-gpio.h>
12
13/ {
14	compatible = "seirobotics,sei610", "amlogic,sm1";
15	model = "SEI Robotics SEI610";
16
17	aliases {
18		serial0 = &uart_AO;
19		ethernet0 = &ethmac;
20	};
21
22	chosen {
23		stdout-path = "serial0:115200n8";
24	};
25
26	emmc_pwrseq: emmc-pwrseq {
27		compatible = "mmc-pwrseq-emmc";
28		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
29	};
30
31	gpio-keys {
32		compatible = "gpio-keys-polled";
33		poll-interval = <100>;
34
35		key1 {
36			label = "A";
37			linux,code = <BTN_0>;
38			gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
39		};
40
41		key2 {
42			label = "B";
43			linux,code = <BTN_1>;
44			gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
45		};
46
47		key3 {
48			label = "C";
49			linux,code = <BTN_2>;
50			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
51		};
52	};
53
54	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
65	leds {
66		compatible = "gpio-leds";
67
68		bluetooth {
69			label = "sei610:blue:bt";
70			gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
71			default-state = "off";
72		};
73	};
74
75	pwmleds {
76		compatible = "pwm-leds";
77
78		power {
79			label = "sei610:red:power";
80			pwms = <&pwm_AO_ab 0 30518 0>;
81			max-brightness = <255>;
82			linux,default-trigger = "default-on";
83			active-low;
84		};
85	};
86
87	memory@0 {
88		device_type = "memory";
89		reg = <0x0 0x0 0x0 0x40000000>;
90	};
91
92	ao_5v: regulator-ao_5v {
93		compatible = "regulator-fixed";
94		regulator-name = "AO_5V";
95		regulator-min-microvolt = <5000000>;
96		regulator-max-microvolt = <5000000>;
97		vin-supply = <&dc_in>;
98		regulator-always-on;
99	};
100
101	dc_in: regulator-dc_in {
102		compatible = "regulator-fixed";
103		regulator-name = "DC_IN";
104		regulator-min-microvolt = <5000000>;
105		regulator-max-microvolt = <5000000>;
106		regulator-always-on;
107	};
108
109	emmc_1v8: regulator-emmc_1v8 {
110		compatible = "regulator-fixed";
111		regulator-name = "EMMC_1V8";
112		regulator-min-microvolt = <1800000>;
113		regulator-max-microvolt = <1800000>;
114		vin-supply = <&vddao_3v3>;
115		regulator-always-on;
116	};
117
118	vddao_3v3: regulator-vddao_3v3 {
119		compatible = "regulator-fixed";
120		regulator-name = "VDDAO_3V3";
121		regulator-min-microvolt = <3300000>;
122		regulator-max-microvolt = <3300000>;
123		vin-supply = <&dc_in>;
124		regulator-always-on;
125	};
126
127	/* Used by Tuner, RGB Led & IR Emitter LED array */
128	vddao_3v3_t: regulator-vddao_3v3_t {
129		compatible = "regulator-fixed";
130		regulator-name = "VDDAO_3V3_T";
131		regulator-min-microvolt = <3300000>;
132		regulator-max-microvolt = <3300000>;
133		vin-supply = <&vddao_3v3>;
134		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
135		enable-active-low;
136		regulator-always-on;
137	};
138
139	vddcpu: regulator-vddcpu {
140		/*
141		 * SY8120B1ABC DC/DC Regulator.
142		 */
143		compatible = "pwm-regulator";
144
145		regulator-name = "VDDCPU";
146		regulator-min-microvolt = <690000>;
147		regulator-max-microvolt = <1050000>;
148
149		vin-supply = <&dc_in>;
150
151		pwms = <&pwm_AO_cd 1 1500 0>;
152		pwm-dutycycle-range = <100 0>;
153
154		regulator-boot-on;
155		regulator-always-on;
156	};
157
158	vddio_ao1v8: regulator-vddio_ao1v8 {
159		compatible = "regulator-fixed";
160		regulator-name = "VDDIO_AO1V8";
161		regulator-min-microvolt = <1800000>;
162		regulator-max-microvolt = <1800000>;
163		vin-supply = <&vddao_3v3>;
164		regulator-always-on;
165	};
166
167	sdio_pwrseq: sdio-pwrseq {
168		compatible = "mmc-pwrseq-simple";
169		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
170		clocks = <&wifi32k>;
171		clock-names = "ext_clock";
172	};
173
174	wifi32k: wifi32k {
175		compatible = "pwm-clock";
176		#clock-cells = <0>;
177		clock-frequency = <32768>;
178		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
179	};
180};
181
182&cec_AO {
183	pinctrl-0 = <&cec_ao_a_h_pins>;
184	pinctrl-names = "default";
185	status = "disabled";
186	hdmi-phandle = <&hdmi_tx>;
187};
188
189&cecb_AO {
190	pinctrl-0 = <&cec_ao_b_h_pins>;
191	pinctrl-names = "default";
192	status = "okay";
193	hdmi-phandle = <&hdmi_tx>;
194};
195
196&cpu0 {
197	cpu-supply = <&vddcpu>;
198	operating-points-v2 = <&cpu_opp_table>;
199	clocks = <&clkc CLKID_CPU_CLK>;
200	clock-latency = <50000>;
201};
202
203&cpu1 {
204	cpu-supply = <&vddcpu>;
205	operating-points-v2 = <&cpu_opp_table>;
206	clocks = <&clkc CLKID_CPU1_CLK>;
207	clock-latency = <50000>;
208};
209
210&cpu2 {
211	cpu-supply = <&vddcpu>;
212	operating-points-v2 = <&cpu_opp_table>;
213	clocks = <&clkc CLKID_CPU2_CLK>;
214	clock-latency = <50000>;
215};
216
217&cpu3 {
218	cpu-supply = <&vddcpu>;
219	operating-points-v2 = <&cpu_opp_table>;
220	clocks = <&clkc CLKID_CPU3_CLK>;
221	clock-latency = <50000>;
222};
223
224&ethmac {
225	status = "okay";
226	phy-handle = <&internal_ephy>;
227	phy-mode = "rmii";
228};
229
230&hdmi_tx {
231	status = "okay";
232	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
233	pinctrl-names = "default";
234};
235
236&hdmi_tx_tmds_port {
237	hdmi_tx_tmds_out: endpoint {
238		remote-endpoint = <&hdmi_connector_in>;
239	};
240};
241
242&i2c3 {
243	status = "okay";
244	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
245	pinctrl-names = "default";
246};
247
248&ir {
249	status = "okay";
250	pinctrl-0 = <&remote_input_ao_pins>;
251	pinctrl-names = "default";
252};
253
254&pwm_AO_ab {
255	status = "okay";
256	pinctrl-0 = <&pwm_ao_a_pins>;
257	pinctrl-names = "default";
258	clocks = <&xtal>;
259	clock-names = "clkin0";
260};
261
262&pwm_AO_cd {
263	pinctrl-0 = <&pwm_ao_d_e_pins>;
264	pinctrl-names = "default";
265	clocks = <&xtal>;
266	clock-names = "clkin1";
267	status = "okay";
268};
269
270&pwm_ef {
271	status = "okay";
272	pinctrl-0 = <&pwm_e_pins>;
273	pinctrl-names = "default";
274	clocks = <&xtal>;
275	clock-names = "clkin0";
276};
277
278&saradc {
279	status = "okay";
280	vref-supply = <&vddio_ao1v8>;
281};
282
283/* SDIO */
284&sd_emmc_a {
285	status = "okay";
286	pinctrl-0 = <&sdio_pins>;
287	pinctrl-1 = <&sdio_clk_gate_pins>;
288	pinctrl-names = "default", "clk-gate";
289	#address-cells = <1>;
290	#size-cells = <0>;
291
292	bus-width = <4>;
293	cap-sd-highspeed;
294	sd-uhs-sdr50;
295	max-frequency = <100000000>;
296
297	non-removable;
298	disable-wp;
299
300	mmc-pwrseq = <&sdio_pwrseq>;
301
302	vmmc-supply = <&vddao_3v3>;
303	vqmmc-supply = <&vddio_ao1v8>;
304
305	brcmf: wifi@1 {
306		reg = <1>;
307		compatible = "brcm,bcm4329-fmac";
308	};
309};
310
311/* SD card */
312&sd_emmc_b {
313	status = "okay";
314	pinctrl-0 = <&sdcard_c_pins>;
315	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
316	pinctrl-names = "default", "clk-gate";
317
318	bus-width = <4>;
319	cap-sd-highspeed;
320	max-frequency = <50000000>;
321	disable-wp;
322
323	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
324	vmmc-supply = <&vddao_3v3>;
325	vqmmc-supply = <&vddao_3v3>;
326};
327
328/* eMMC */
329&sd_emmc_c {
330	status = "okay";
331	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
332	pinctrl-1 = <&emmc_clk_gate_pins>;
333	pinctrl-names = "default", "clk-gate";
334
335	bus-width = <8>;
336	cap-mmc-highspeed;
337	mmc-ddr-1_8v;
338	mmc-hs200-1_8v;
339	max-frequency = <200000000>;
340	non-removable;
341	disable-wp;
342
343	mmc-pwrseq = <&emmc_pwrseq>;
344	vmmc-supply = <&vddao_3v3>;
345	vqmmc-supply = <&emmc_1v8>;
346};
347
348&uart_A {
349	status = "okay";
350	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
351	pinctrl-names = "default";
352	uart-has-rtscts;
353
354	bluetooth {
355		compatible = "brcm,bcm43438-bt";
356		interrupt-parent = <&gpio_intc>;
357		interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
358		interrupt-names = "host-wakeup";
359		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
360		max-speed = <2000000>;
361		clocks = <&wifi32k>;
362		clock-names = "lpo";
363		vbat-supply = <&vddao_3v3>;
364		vddio-supply = <&vddio_ao1v8>;
365	};
366};
367
368/* Exposed via the on-board USB to Serial FT232RL IC */
369&uart_AO {
370	status = "okay";
371	pinctrl-0 = <&uart_ao_a_pins>;
372	pinctrl-names = "default";
373};
374
375&usb {
376	status = "okay";
377	dr_mode = "otg";
378};
379