1b7be1449SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2b7be1449SNeil Armstrong/*
3b7be1449SNeil Armstrong * Copyright (c) 2019 BayLibre SAS. All rights reserved.
4b7be1449SNeil Armstrong */
5b7be1449SNeil Armstrong
6b7be1449SNeil Armstrong/dts-v1/;
7b7be1449SNeil Armstrong
8b7be1449SNeil Armstrong#include "meson-g12a.dtsi"
92297c33cSJerome Brunet#include <dt-bindings/gpio/gpio.h>
10d1c023afSNeil Armstrong#include <dt-bindings/input/input.h>
112297c33cSJerome Brunet#include <dt-bindings/gpio/meson-g12a-gpio.h>
12b7be1449SNeil Armstrong
13b7be1449SNeil Armstrong/ {
14b7be1449SNeil Armstrong	compatible = "seirobotics,sei510", "amlogic,g12a";
15b7be1449SNeil Armstrong	model = "SEI Robotics SEI510";
16b7be1449SNeil Armstrong
17d1c023afSNeil Armstrong	adc_keys {
18d1c023afSNeil Armstrong		compatible = "adc-keys";
19d1c023afSNeil Armstrong		io-channels = <&saradc 0>;
20d1c023afSNeil Armstrong		io-channel-names = "buttons";
21d1c023afSNeil Armstrong		keyup-threshold-microvolt = <1800000>;
22d1c023afSNeil Armstrong
23d1c023afSNeil Armstrong		button-onoff {
24d1c023afSNeil Armstrong			label = "On/Off";
25d1c023afSNeil Armstrong			linux,code = <KEY_POWER>;
26d1c023afSNeil Armstrong			press-threshold-microvolt = <1700000>;
27d1c023afSNeil Armstrong		};
28d1c023afSNeil Armstrong	};
29d1c023afSNeil Armstrong
3073429cf2SJerome Brunet	aliases {
3173429cf2SJerome Brunet		serial0 = &uart_AO;
32a1abafb6SJerome Brunet		ethernet0 = &ethmac;
332297c33cSJerome Brunet	};
342297c33cSJerome Brunet
35b7be1449SNeil Armstrong	chosen {
36b7be1449SNeil Armstrong		stdout-path = "serial0:115200n8";
37b7be1449SNeil Armstrong	};
38b7be1449SNeil Armstrong
39912a3395SNeil Armstrong	cvbs-connector {
40912a3395SNeil Armstrong		compatible = "composite-video-connector";
41912a3395SNeil Armstrong
42912a3395SNeil Armstrong		port {
43912a3395SNeil Armstrong			cvbs_connector_in: endpoint {
44912a3395SNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
45912a3395SNeil Armstrong			};
46912a3395SNeil Armstrong		};
47912a3395SNeil Armstrong	};
48912a3395SNeil Armstrong
495a2ea2f7SJerome Brunet	emmc_pwrseq: emmc-pwrseq {
505a2ea2f7SJerome Brunet		compatible = "mmc-pwrseq-emmc";
515a2ea2f7SJerome Brunet		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
525a2ea2f7SJerome Brunet	};
535a2ea2f7SJerome Brunet
54912a3395SNeil Armstrong	hdmi-connector {
55912a3395SNeil Armstrong		compatible = "hdmi-connector";
56912a3395SNeil Armstrong		type = "a";
57912a3395SNeil Armstrong
58912a3395SNeil Armstrong		port {
59912a3395SNeil Armstrong			hdmi_connector_in: endpoint {
60912a3395SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
61912a3395SNeil Armstrong			};
62912a3395SNeil Armstrong		};
63912a3395SNeil Armstrong	};
64912a3395SNeil Armstrong
65b7be1449SNeil Armstrong	memory@0 {
66b7be1449SNeil Armstrong		device_type = "memory";
67b7be1449SNeil Armstrong		reg = <0x0 0x0 0x0 0x40000000>;
68b7be1449SNeil Armstrong	};
69b7be1449SNeil Armstrong
7073429cf2SJerome Brunet	ao_5v: regulator-ao_5v {
7173429cf2SJerome Brunet		compatible = "regulator-fixed";
7273429cf2SJerome Brunet		regulator-name = "AO_5V";
7373429cf2SJerome Brunet		regulator-min-microvolt = <5000000>;
7473429cf2SJerome Brunet		regulator-max-microvolt = <5000000>;
7573429cf2SJerome Brunet		vin-supply = <&dc_in>;
7673429cf2SJerome Brunet		regulator-always-on;
77b7be1449SNeil Armstrong	};
7873429cf2SJerome Brunet
7973429cf2SJerome Brunet	dc_in: regulator-dc_in {
8073429cf2SJerome Brunet		compatible = "regulator-fixed";
8173429cf2SJerome Brunet		regulator-name = "DC_IN";
8273429cf2SJerome Brunet		regulator-min-microvolt = <5000000>;
8373429cf2SJerome Brunet		regulator-max-microvolt = <5000000>;
8473429cf2SJerome Brunet		regulator-always-on;
8573429cf2SJerome Brunet	};
8673429cf2SJerome Brunet
8773429cf2SJerome Brunet	emmc_1v8: regulator-emmc_1v8 {
8873429cf2SJerome Brunet		compatible = "regulator-fixed";
8973429cf2SJerome Brunet		regulator-name = "EMMC_1V8";
9073429cf2SJerome Brunet		regulator-min-microvolt = <1800000>;
9173429cf2SJerome Brunet		regulator-max-microvolt = <1800000>;
9273429cf2SJerome Brunet		vin-supply = <&vddao_3v3>;
9373429cf2SJerome Brunet		regulator-always-on;
94b7be1449SNeil Armstrong	};
952297c33cSJerome Brunet
962297c33cSJerome Brunet	vddao_3v3: regulator-vddao_3v3 {
972297c33cSJerome Brunet		compatible = "regulator-fixed";
982297c33cSJerome Brunet		regulator-name = "VDDAO_3V3";
992297c33cSJerome Brunet		regulator-min-microvolt = <3300000>;
1002297c33cSJerome Brunet		regulator-max-microvolt = <3300000>;
1012297c33cSJerome Brunet		vin-supply = <&dc_in>;
1022297c33cSJerome Brunet		regulator-always-on;
1032297c33cSJerome Brunet	};
1042297c33cSJerome Brunet
1052297c33cSJerome Brunet	vddao_3v3_t: regultor-vddao_3v3_t {
1062297c33cSJerome Brunet		compatible = "regulator-fixed";
1072297c33cSJerome Brunet		regulator-name = "VDDAO_3V3_T";
1082297c33cSJerome Brunet		regulator-min-microvolt = <3300000>;
1092297c33cSJerome Brunet		regulator-max-microvolt = <3300000>;
1102297c33cSJerome Brunet		vin-supply = <&vddao_3v3>;
1112297c33cSJerome Brunet		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
1122297c33cSJerome Brunet		enable-active-high;
1132297c33cSJerome Brunet	};
1142297c33cSJerome Brunet
1152297c33cSJerome Brunet	vddio_ao1v8: regulator-vddio_ao1v8 {
1162297c33cSJerome Brunet		compatible = "regulator-fixed";
1172297c33cSJerome Brunet		regulator-name = "VDDIO_AO1V8";
1182297c33cSJerome Brunet		regulator-min-microvolt = <1800000>;
1192297c33cSJerome Brunet		regulator-max-microvolt = <1800000>;
1202297c33cSJerome Brunet		vin-supply = <&vddao_3v3>;
1212297c33cSJerome Brunet		regulator-always-on;
1222297c33cSJerome Brunet	};
12373429cf2SJerome Brunet
12473429cf2SJerome Brunet	reserved-memory {
12573429cf2SJerome Brunet		/* TEE Reserved Memory */
12673429cf2SJerome Brunet		bl32_reserved: bl32@5000000 {
12773429cf2SJerome Brunet			reg = <0x0 0x05300000 0x0 0x2000000>;
12873429cf2SJerome Brunet			no-map;
12973429cf2SJerome Brunet		};
13073429cf2SJerome Brunet	};
131d1c023afSNeil Armstrong};
1322297c33cSJerome Brunet
133912a3395SNeil Armstrong&cec_AO {
134912a3395SNeil Armstrong	pinctrl-0 = <&cec_ao_a_h_pins>;
135912a3395SNeil Armstrong	pinctrl-names = "default";
136912a3395SNeil Armstrong	status = "disabled";
137912a3395SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
138912a3395SNeil Armstrong};
139912a3395SNeil Armstrong
140912a3395SNeil Armstrong&cecb_AO {
141912a3395SNeil Armstrong	pinctrl-0 = <&cec_ao_b_h_pins>;
142912a3395SNeil Armstrong	pinctrl-names = "default";
143912a3395SNeil Armstrong	status = "okay";
144912a3395SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
145912a3395SNeil Armstrong};
146912a3395SNeil Armstrong
147912a3395SNeil Armstrong&cvbs_vdac_port {
148912a3395SNeil Armstrong	cvbs_vdac_out: endpoint {
149912a3395SNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
150912a3395SNeil Armstrong	};
151912a3395SNeil Armstrong};
152912a3395SNeil Armstrong
153a1abafb6SJerome Brunet&ethmac {
154a1abafb6SJerome Brunet	status = "okay";
155a1abafb6SJerome Brunet	phy-handle = <&internal_ephy>;
156a1abafb6SJerome Brunet	phy-mode = "rmii";
157a1abafb6SJerome Brunet};
158a1abafb6SJerome Brunet
15973429cf2SJerome Brunet&hdmi_tx {
16073429cf2SJerome Brunet	status = "okay";
16173429cf2SJerome Brunet	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
16273429cf2SJerome Brunet	pinctrl-names = "default";
16373429cf2SJerome Brunet};
16473429cf2SJerome Brunet
16573429cf2SJerome Brunet&hdmi_tx_tmds_port {
16673429cf2SJerome Brunet	hdmi_tx_tmds_out: endpoint {
16773429cf2SJerome Brunet		remote-endpoint = <&hdmi_connector_in>;
16873429cf2SJerome Brunet	};
16973429cf2SJerome Brunet};
17073429cf2SJerome Brunet
17132232316SJerome Brunet&i2c3 {
17232232316SJerome Brunet	status = "okay";
17332232316SJerome Brunet	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
17432232316SJerome Brunet	pinctrl-names = "default";
17532232316SJerome Brunet};
17632232316SJerome Brunet
177d1c023afSNeil Armstrong&saradc {
178d1c023afSNeil Armstrong	status = "okay";
179d1c023afSNeil Armstrong	vref-supply = <&vddio_ao1v8>;
180d1c023afSNeil Armstrong};
181d1c023afSNeil Armstrong
1825a2ea2f7SJerome Brunet/* SD card */
1835a2ea2f7SJerome Brunet&sd_emmc_b {
1845a2ea2f7SJerome Brunet	status = "okay";
1855a2ea2f7SJerome Brunet	pinctrl-0 = <&sdcard_c_pins>;
1865a2ea2f7SJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
1875a2ea2f7SJerome Brunet	pinctrl-names = "default", "clk-gate";
1885a2ea2f7SJerome Brunet
1895a2ea2f7SJerome Brunet	bus-width = <4>;
1905a2ea2f7SJerome Brunet	cap-sd-highspeed;
1915a2ea2f7SJerome Brunet	max-frequency = <50000000>;
1925a2ea2f7SJerome Brunet	disable-wp;
1935a2ea2f7SJerome Brunet
1945a2ea2f7SJerome Brunet	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
1955a2ea2f7SJerome Brunet	vmmc-supply = <&vddao_3v3>;
1965a2ea2f7SJerome Brunet	vqmmc-supply = <&vddao_3v3>;
1975a2ea2f7SJerome Brunet};
1985a2ea2f7SJerome Brunet
1995a2ea2f7SJerome Brunet/* eMMC */
2005a2ea2f7SJerome Brunet&sd_emmc_c {
2015a2ea2f7SJerome Brunet	status = "okay";
2025a2ea2f7SJerome Brunet	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
2035a2ea2f7SJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
2045a2ea2f7SJerome Brunet	pinctrl-names = "default", "clk-gate";
2055a2ea2f7SJerome Brunet
2065a2ea2f7SJerome Brunet	bus-width = <8>;
2075a2ea2f7SJerome Brunet	cap-mmc-highspeed;
2085a2ea2f7SJerome Brunet	mmc-ddr-1_8v;
2095a2ea2f7SJerome Brunet	mmc-hs200-1_8v;
2105a2ea2f7SJerome Brunet	max-frequency = <200000000>;
2115a2ea2f7SJerome Brunet	non-removable;
2125a2ea2f7SJerome Brunet	disable-wp;
2135a2ea2f7SJerome Brunet
2145a2ea2f7SJerome Brunet	mmc-pwrseq = <&emmc_pwrseq>;
2155a2ea2f7SJerome Brunet	vmmc-supply = <&vddao_3v3>;
2165a2ea2f7SJerome Brunet	vqmmc-supply = <&emmc_1v8>;
2175a2ea2f7SJerome Brunet};
2185a2ea2f7SJerome Brunet
219d1c023afSNeil Armstrong&uart_A {
220d1c023afSNeil Armstrong	status = "okay";
221d1c023afSNeil Armstrong	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
222d1c023afSNeil Armstrong	pinctrl-names = "default";
223d1c023afSNeil Armstrong	uart-has-rtscts;
224d1c023afSNeil Armstrong
225d1c023afSNeil Armstrong	bluetooth {
226d1c023afSNeil Armstrong		compatible = "brcm,bcm43438-bt";
227d1c023afSNeil Armstrong		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
228d272c534SJerome Brunet		vbat-supply = <&vddao_3v3>;
229d272c534SJerome Brunet		vddio-supply = <&vddio_ao1v8>;
230d1c023afSNeil Armstrong	};
231b7be1449SNeil Armstrong};
232b7be1449SNeil Armstrong
233b7be1449SNeil Armstrong&uart_AO {
234b7be1449SNeil Armstrong	status = "okay";
23551d215c1SNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
23651d215c1SNeil Armstrong	pinctrl-names = "default";
237b7be1449SNeil Armstrong};
23841cc4551SNeil Armstrong
23941cc4551SNeil Armstrong&usb {
24041cc4551SNeil Armstrong	status = "okay";
24141cc4551SNeil Armstrong	dr_mode = "host";
24241cc4551SNeil Armstrong};
243