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