1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 BayLibre SAS. 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 = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a";
14	model = "Shenzhen Amediatech Technology Co., Ltd X96 Max";
15
16	aliases {
17		serial0 = &uart_AO;
18	};
19	chosen {
20		stdout-path = "serial0:115200n8";
21	};
22	memory@0 {
23		device_type = "memory";
24		reg = <0x0 0x0 0x0 0x40000000>;
25	};
26
27	cvbs-connector {
28		compatible = "composite-video-connector";
29
30		port {
31			cvbs_connector_in: endpoint {
32				remote-endpoint = <&cvbs_vdac_out>;
33			};
34		};
35	};
36
37	hdmi-connector {
38		compatible = "hdmi-connector";
39		type = "a";
40
41		port {
42			hdmi_connector_in: endpoint {
43				remote-endpoint = <&hdmi_tx_tmds_out>;
44			};
45		};
46	};
47
48	flash_1v8: regulator-flash_1v8 {
49		compatible = "regulator-fixed";
50		regulator-name = "FLASH_1V8";
51		regulator-min-microvolt = <1800000>;
52		regulator-max-microvolt = <1800000>;
53		vin-supply = <&vcc_3v3>;
54		regulator-always-on;
55	};
56
57	dc_in: regulator-dc_in {
58		compatible = "regulator-fixed";
59		regulator-name = "DC_IN";
60		regulator-min-microvolt = <5000000>;
61		regulator-max-microvolt = <5000000>;
62		regulator-always-on;
63	};
64
65	vcc_1v8: regulator-vcc_1v8 {
66		compatible = "regulator-fixed";
67		regulator-name = "VCC_1V8";
68		regulator-min-microvolt = <1800000>;
69		regulator-max-microvolt = <1800000>;
70		vin-supply = <&vcc_3v3>;
71		regulator-always-on;
72	};
73
74	vcc_3v3: regulator-vcc_3v3 {
75		compatible = "regulator-fixed";
76		regulator-name = "VCC_3V3";
77		regulator-min-microvolt = <3300000>;
78		regulator-max-microvolt = <3300000>;
79		vin-supply = <&vddao_3v3>;
80		regulator-always-on;
81		/* FIXME: actually controlled by VDDCPU_B_EN */
82	};
83
84	vcc_5v: regulator-vcc_5v {
85		compatible = "regulator-fixed";
86		regulator-name = "VCC_5V";
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89		vin-supply = <&dc_in>;
90
91		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
92		enable-active-low;
93	};
94
95	vddao_1v8: regulator-vddao_1v8 {
96		compatible = "regulator-fixed";
97		regulator-name = "VDDAO_1V8";
98		regulator-min-microvolt = <1800000>;
99		regulator-max-microvolt = <1800000>;
100		vin-supply = <&vddao_3v3>;
101		regulator-always-on;
102	};
103
104	vddao_3v3: regulator-vddao_3v3 {
105		compatible = "regulator-fixed";
106		regulator-name = "VDDAO_3V3";
107		regulator-min-microvolt = <3300000>;
108		regulator-max-microvolt = <3300000>;
109		vin-supply = <&dc_in>;
110		regulator-always-on;
111	};
112};
113
114&cec_AO {
115	pinctrl-0 = <&cec_ao_a_h_pins>;
116	pinctrl-names = "default";
117	status = "disabled";
118	hdmi-phandle = <&hdmi_tx>;
119};
120
121&cecb_AO {
122	pinctrl-0 = <&cec_ao_b_h_pins>;
123	pinctrl-names = "default";
124	status = "okay";
125	hdmi-phandle = <&hdmi_tx>;
126};
127
128&cvbs_vdac_port {
129	cvbs_vdac_out: endpoint {
130		remote-endpoint = <&cvbs_connector_in>;
131	};
132};
133
134&hdmi_tx {
135	status = "okay";
136	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
137	pinctrl-names = "default";
138	hdmi-supply = <&vcc_5v>;
139};
140
141&hdmi_tx_tmds_port {
142	hdmi_tx_tmds_out: endpoint {
143		remote-endpoint = <&hdmi_connector_in>;
144	};
145};
146
147&uart_A {
148	status = "okay";
149	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
150	pinctrl-names = "default";
151	uart-has-rtscts;
152
153	bluetooth {
154		compatible = "brcm,bcm43438-bt";
155		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
156	};
157};
158
159&uart_AO {
160	status = "okay";
161	pinctrl-0 = <&uart_ao_a_pins>;
162	pinctrl-names = "default";
163};
164
165&usb {
166	status = "okay";
167	dr_mode = "host";
168};
169