1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Andreas Färber
4 * Copyright (c) 2016 BayLibre, Inc.
5 * Author: Kevin Hilman <khilman@kernel.org>
6 */
7
8#include "meson-gxbb.dtsi"
9
10/ {
11	aliases {
12		serial0 = &uart_AO;
13		ethernet0 = &ethmac;
14	};
15
16	chosen {
17		stdout-path = "serial0:115200n8";
18	};
19
20	memory@0 {
21		device_type = "memory";
22		reg = <0x0 0x0 0x0 0x40000000>;
23	};
24
25	leds {
26		compatible = "gpio-leds";
27
28		system {
29			label = "wetek-play:system-status";
30			gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
31			default-state = "on";
32			panic-indicator;
33		};
34	};
35
36	usb_pwr: regulator-usb-pwrs {
37		compatible = "regulator-fixed";
38
39		regulator-name = "USB_PWR";
40
41		regulator-min-microvolt = <5000000>;
42		regulator-max-microvolt = <5000000>;
43
44		gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
45		enable-active-high;
46	};
47
48	vddio_boot: regulator-vddio_boot {
49		compatible = "regulator-fixed";
50		regulator-name = "VDDIO_BOOT";
51		regulator-min-microvolt = <1800000>;
52		regulator-max-microvolt = <1800000>;
53	};
54
55	vddao_3v3: regulator-vddao_3v3 {
56		compatible = "regulator-fixed";
57		regulator-name = "VDDAO_3V3";
58		regulator-min-microvolt = <3300000>;
59		regulator-max-microvolt = <3300000>;
60	};
61
62	vcc_3v3: regulator-vcc_3v3 {
63		compatible = "regulator-fixed";
64		regulator-name = "VCC_3V3";
65		regulator-min-microvolt = <3300000>;
66		regulator-max-microvolt = <3300000>;
67	};
68
69	emmc_pwrseq: emmc-pwrseq {
70		compatible = "mmc-pwrseq-emmc";
71		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
72	};
73
74	wifi32k: wifi32k {
75		compatible = "pwm-clock";
76		#clock-cells = <0>;
77		clock-frequency = <32768>;
78		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
79	};
80
81	sdio_pwrseq: sdio-pwrseq {
82		compatible = "mmc-pwrseq-simple";
83		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
84		clocks = <&wifi32k>;
85		clock-names = "ext_clock";
86	};
87
88	cvbs-connector {
89		compatible = "composite-video-connector";
90
91		port {
92			cvbs_connector_in: endpoint {
93				remote-endpoint = <&cvbs_vdac_out>;
94			};
95		};
96	};
97
98	hdmi-connector {
99		compatible = "hdmi-connector";
100		type = "a";
101
102		port {
103			hdmi_connector_in: endpoint {
104				remote-endpoint = <&hdmi_tx_tmds_out>;
105			};
106		};
107	};
108};
109
110&cec_AO {
111	status = "okay";
112	pinctrl-0 = <&ao_cec_pins>;
113	pinctrl-names = "default";
114	hdmi-phandle = <&hdmi_tx>;
115};
116
117&cvbs_vdac_port {
118	cvbs_vdac_out: endpoint {
119		remote-endpoint = <&cvbs_connector_in>;
120	};
121};
122
123&ethmac {
124	status = "okay";
125	pinctrl-0 = <&eth_rgmii_pins>;
126	pinctrl-names = "default";
127
128	phy-handle = <&eth_phy0>;
129	phy-mode = "rgmii";
130
131	amlogic,tx-delay-ns = <2>;
132
133	snps,reset-gpio = <&gpio GPIOZ_14 0>;
134	snps,reset-delays-us = <0 10000 1000000>;
135	snps,reset-active-low;
136
137	mdio {
138		compatible = "snps,dwmac-mdio";
139		#address-cells = <1>;
140		#size-cells = <0>;
141
142		eth_phy0: ethernet-phy@0 {
143			/* Realtek RTL8211F (0x001cc916) */
144			reg = <0>;
145			eee-broken-1000t;
146		};
147	};
148};
149
150&hdmi_tx {
151	status = "okay";
152	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
153	pinctrl-names = "default";
154};
155
156&hdmi_tx_tmds_port {
157	hdmi_tx_tmds_out: endpoint {
158		remote-endpoint = <&hdmi_connector_in>;
159	};
160};
161
162&ir {
163	status = "okay";
164	pinctrl-0 = <&remote_input_ao_pins>;
165	pinctrl-names = "default";
166};
167
168&pwm_ef {
169	status = "okay";
170	pinctrl-0 = <&pwm_e_pins>;
171	pinctrl-names = "default";
172	clocks = <&clkc CLKID_FCLK_DIV4>;
173	clock-names = "clkin0";
174};
175
176/* Wireless SDIO Module */
177&sd_emmc_a {
178	status = "okay";
179	pinctrl-0 = <&sdio_pins>;
180	pinctrl-1 = <&sdio_clk_gate_pins>;
181	pinctrl-names = "default", "clk-gate";
182	#address-cells = <1>;
183	#size-cells = <0>;
184
185	bus-width = <4>;
186	cap-sd-highspeed;
187	max-frequency = <100000000>;
188
189	non-removable;
190	disable-wp;
191
192	mmc-pwrseq = <&sdio_pwrseq>;
193
194	vmmc-supply = <&vddao_3v3>;
195	vqmmc-supply = <&vddio_boot>;
196
197	brcmf: wifi@1 {
198		reg = <1>;
199		compatible = "brcm,bcm4329-fmac";
200	};
201};
202
203/* SD card */
204&sd_emmc_b {
205	status = "okay";
206	pinctrl-0 = <&sdcard_pins>;
207	pinctrl-1 = <&sdcard_clk_gate_pins>;
208	pinctrl-names = "default", "clk-gate";
209
210	bus-width = <4>;
211	cap-sd-highspeed;
212	max-frequency = <100000000>;
213	disable-wp;
214
215	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
216	cd-inverted;
217
218	vmmc-supply = <&vddao_3v3>;
219	vqmmc-supply = <&vcc_3v3>;
220};
221
222/* eMMC */
223&sd_emmc_c {
224	status = "okay";
225	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
226	pinctrl-1 = <&emmc_clk_gate_pins>;
227	pinctrl-names = "default", "clk-gate";
228
229	bus-width = <8>;
230	cap-mmc-highspeed;
231	max-frequency = <200000000>;
232	non-removable;
233	disable-wp;
234	mmc-ddr-1_8v;
235	mmc-hs200-1_8v;
236
237	mmc-pwrseq = <&emmc_pwrseq>;
238	vmmc-supply = <&vcc_3v3>;
239	vqmmc-supply = <&vddio_boot>;
240};
241
242/* This UART is brought out to the DB9 connector */
243&uart_AO {
244	status = "okay";
245	pinctrl-0 = <&uart_ao_a_pins>;
246	pinctrl-names = "default";
247};
248
249&usb0_phy {
250	status = "okay";
251	phy-supply = <&usb_pwr>;
252};
253
254&usb0 {
255	status = "okay";
256};
257