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
2808dc0e5dSNeil Armstrong		led-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>;
67*8182a358SChristian Hewitt		regulator-always-on;
68dfa8b3cdSChristian Hewitt	};
69dfa8b3cdSChristian Hewitt
70fb72c03eSNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
71fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
72fb72c03eSNeil Armstrong		regulator-name = "VCC_3V3";
73fb72c03eSNeil Armstrong		regulator-min-microvolt = <3300000>;
74fb72c03eSNeil Armstrong		regulator-max-microvolt = <3300000>;
75fb72c03eSNeil Armstrong	};
76fb72c03eSNeil Armstrong
77fb72c03eSNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
78fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-emmc";
79fb72c03eSNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
80fb72c03eSNeil Armstrong	};
81fb72c03eSNeil Armstrong
82fb72c03eSNeil Armstrong	wifi32k: wifi32k {
83fb72c03eSNeil Armstrong		compatible = "pwm-clock";
84fb72c03eSNeil Armstrong		#clock-cells = <0>;
85fb72c03eSNeil Armstrong		clock-frequency = <32768>;
86fb72c03eSNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
87fb72c03eSNeil Armstrong	};
88fb72c03eSNeil Armstrong
89fb72c03eSNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
90fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-simple";
91fb72c03eSNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
92fb72c03eSNeil Armstrong		clocks = <&wifi32k>;
93fb72c03eSNeil Armstrong		clock-names = "ext_clock";
94fb72c03eSNeil Armstrong	};
95fb72c03eSNeil Armstrong
96fb72c03eSNeil Armstrong	cvbs-connector {
97fb72c03eSNeil Armstrong		compatible = "composite-video-connector";
98fb72c03eSNeil Armstrong
99fb72c03eSNeil Armstrong		port {
100fb72c03eSNeil Armstrong			cvbs_connector_in: endpoint {
101fb72c03eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
102fb72c03eSNeil Armstrong			};
103fb72c03eSNeil Armstrong		};
104fb72c03eSNeil Armstrong	};
105fb72c03eSNeil Armstrong
106fb72c03eSNeil Armstrong	hdmi-connector {
107fb72c03eSNeil Armstrong		compatible = "hdmi-connector";
108fb72c03eSNeil Armstrong		type = "a";
109fb72c03eSNeil Armstrong
110fb72c03eSNeil Armstrong		port {
111fb72c03eSNeil Armstrong			hdmi_connector_in: endpoint {
112fb72c03eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
113fb72c03eSNeil Armstrong			};
114fb72c03eSNeil Armstrong		};
115fb72c03eSNeil Armstrong	};
116fb72c03eSNeil Armstrong};
117fb72c03eSNeil Armstrong
118fb72c03eSNeil Armstrong&cec_AO {
119fb72c03eSNeil Armstrong	status = "okay";
120fb72c03eSNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
121fb72c03eSNeil Armstrong	pinctrl-names = "default";
122fb72c03eSNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
123fb72c03eSNeil Armstrong};
124fb72c03eSNeil Armstrong
125fb72c03eSNeil Armstrong&cvbs_vdac_port {
126fb72c03eSNeil Armstrong	cvbs_vdac_out: endpoint {
127fb72c03eSNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
128fb72c03eSNeil Armstrong	};
129fb72c03eSNeil Armstrong};
130fb72c03eSNeil Armstrong
131fb72c03eSNeil Armstrong&ethmac {
132fb72c03eSNeil Armstrong	status = "okay";
133fb72c03eSNeil Armstrong	pinctrl-0 = <&eth_rgmii_pins>;
134fb72c03eSNeil Armstrong	pinctrl-names = "default";
135fb72c03eSNeil Armstrong
136fb72c03eSNeil Armstrong	phy-handle = <&eth_phy0>;
137fb72c03eSNeil Armstrong	phy-mode = "rgmii";
138fb72c03eSNeil Armstrong
139fb72c03eSNeil Armstrong	amlogic,tx-delay-ns = <2>;
140fb72c03eSNeil Armstrong
141fb72c03eSNeil Armstrong	mdio {
142fb72c03eSNeil Armstrong		compatible = "snps,dwmac-mdio";
143fb72c03eSNeil Armstrong		#address-cells = <1>;
144fb72c03eSNeil Armstrong		#size-cells = <0>;
145fb72c03eSNeil Armstrong
146fb72c03eSNeil Armstrong		eth_phy0: ethernet-phy@0 {
147fb72c03eSNeil Armstrong			/* Realtek RTL8211F (0x001cc916) */
148fb72c03eSNeil Armstrong			reg = <0>;
149f29cabf2SMartin Blumenstingl
150f29cabf2SMartin Blumenstingl			reset-assert-us = <10000>;
151c183c406SStefan Agner			reset-deassert-us = <80000>;
152f29cabf2SMartin Blumenstingl			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
153647e1643SChristian Hewitt
154647e1643SChristian Hewitt			interrupt-parent = <&gpio_intc>;
155647e1643SChristian Hewitt			/* MAC_INTR on GPIOZ_15 */
156647e1643SChristian Hewitt			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
157fb72c03eSNeil Armstrong		};
158fb72c03eSNeil Armstrong	};
159fb72c03eSNeil Armstrong};
160fb72c03eSNeil Armstrong
161fb72c03eSNeil Armstrong&hdmi_tx {
162fb72c03eSNeil Armstrong	status = "okay";
163fb72c03eSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
164fb72c03eSNeil Armstrong	pinctrl-names = "default";
165*8182a358SChristian Hewitt	hdmi-supply = <&vddio_ao18>;
166fb72c03eSNeil Armstrong};
167fb72c03eSNeil Armstrong
168fb72c03eSNeil Armstrong&hdmi_tx_tmds_port {
169fb72c03eSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
170fb72c03eSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
171fb72c03eSNeil Armstrong	};
172fb72c03eSNeil Armstrong};
173fb72c03eSNeil Armstrong
174fb72c03eSNeil Armstrong&ir {
175fb72c03eSNeil Armstrong	status = "okay";
176fb72c03eSNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
177fb72c03eSNeil Armstrong	pinctrl-names = "default";
178fb72c03eSNeil Armstrong};
179fb72c03eSNeil Armstrong
180fb72c03eSNeil Armstrong&pwm_ef {
181fb72c03eSNeil Armstrong	status = "okay";
182fb72c03eSNeil Armstrong	pinctrl-0 = <&pwm_e_pins>;
183fb72c03eSNeil Armstrong	pinctrl-names = "default";
184fb72c03eSNeil Armstrong	clocks = <&clkc CLKID_FCLK_DIV4>;
185fb72c03eSNeil Armstrong	clock-names = "clkin0";
186fb72c03eSNeil Armstrong};
187fb72c03eSNeil Armstrong
188dfa8b3cdSChristian Hewitt&saradc {
189dfa8b3cdSChristian Hewitt	status = "okay";
190dfa8b3cdSChristian Hewitt	vref-supply = <&vddio_ao18>;
191dfa8b3cdSChristian Hewitt};
192dfa8b3cdSChristian Hewitt
193fb72c03eSNeil Armstrong/* Wireless SDIO Module */
194fb72c03eSNeil Armstrong&sd_emmc_a {
195fb72c03eSNeil Armstrong	status = "okay";
196fb72c03eSNeil Armstrong	pinctrl-0 = <&sdio_pins>;
197fb72c03eSNeil Armstrong	pinctrl-1 = <&sdio_clk_gate_pins>;
198fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
199fb72c03eSNeil Armstrong	#address-cells = <1>;
200fb72c03eSNeil Armstrong	#size-cells = <0>;
201fb72c03eSNeil Armstrong
202fb72c03eSNeil Armstrong	bus-width = <4>;
203fb72c03eSNeil Armstrong	cap-sd-highspeed;
204adc52bf7SJerome Brunet	max-frequency = <50000000>;
205fb72c03eSNeil Armstrong
206fb72c03eSNeil Armstrong	non-removable;
207fb72c03eSNeil Armstrong	disable-wp;
208fb72c03eSNeil Armstrong
2096b697024SNeil Armstrong	/* WiFi firmware requires power to be kept while in suspend */
2106b697024SNeil Armstrong	keep-power-in-suspend;
2116b697024SNeil Armstrong
212fb72c03eSNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
213fb72c03eSNeil Armstrong
214fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
215fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
216fb72c03eSNeil Armstrong
217fb72c03eSNeil Armstrong	brcmf: wifi@1 {
218fb72c03eSNeil Armstrong		reg = <1>;
219fb72c03eSNeil Armstrong		compatible = "brcm,bcm4329-fmac";
220fb72c03eSNeil Armstrong	};
221fb72c03eSNeil Armstrong};
222fb72c03eSNeil Armstrong
223fb72c03eSNeil Armstrong/* SD card */
224fb72c03eSNeil Armstrong&sd_emmc_b {
225fb72c03eSNeil Armstrong	status = "okay";
226fb72c03eSNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
227fb72c03eSNeil Armstrong	pinctrl-1 = <&sdcard_clk_gate_pins>;
228fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
229fb72c03eSNeil Armstrong
230fb72c03eSNeil Armstrong	bus-width = <4>;
231fb72c03eSNeil Armstrong	cap-sd-highspeed;
232adc52bf7SJerome Brunet	max-frequency = <50000000>;
233fb72c03eSNeil Armstrong	disable-wp;
234fb72c03eSNeil Armstrong
235f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
236fb72c03eSNeil Armstrong
237fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
238fb72c03eSNeil Armstrong	vqmmc-supply = <&vcc_3v3>;
239fb72c03eSNeil Armstrong};
240fb72c03eSNeil Armstrong
241fb72c03eSNeil Armstrong/* eMMC */
242fb72c03eSNeil Armstrong&sd_emmc_c {
243fb72c03eSNeil Armstrong	status = "okay";
244fb72c03eSNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
245fb72c03eSNeil Armstrong	pinctrl-1 = <&emmc_clk_gate_pins>;
246fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
247fb72c03eSNeil Armstrong
248fb72c03eSNeil Armstrong	bus-width = <8>;
249fb72c03eSNeil Armstrong	cap-mmc-highspeed;
250fb72c03eSNeil Armstrong	max-frequency = <200000000>;
251fb72c03eSNeil Armstrong	non-removable;
252fb72c03eSNeil Armstrong	disable-wp;
253fb72c03eSNeil Armstrong	mmc-ddr-1_8v;
254fb72c03eSNeil Armstrong	mmc-hs200-1_8v;
255fb72c03eSNeil Armstrong
256fb72c03eSNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
257fb72c03eSNeil Armstrong	vmmc-supply = <&vcc_3v3>;
258fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
259fb72c03eSNeil Armstrong};
260fb72c03eSNeil Armstrong
26155c2440dSChristian Hewitt/* This is connected to the Bluetooth module: */
26255c2440dSChristian Hewitt&uart_A {
26355c2440dSChristian Hewitt	status = "okay";
26455c2440dSChristian Hewitt	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
26555c2440dSChristian Hewitt	pinctrl-names = "default";
26655c2440dSChristian Hewitt	uart-has-rtscts;
26755c2440dSChristian Hewitt
26855c2440dSChristian Hewitt	bluetooth {
26955c2440dSChristian Hewitt		compatible = "brcm,bcm43438-bt";
27055c2440dSChristian Hewitt		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
27155c2440dSChristian Hewitt	};
27255c2440dSChristian Hewitt};
27355c2440dSChristian Hewitt
274fb72c03eSNeil Armstrong/* This UART is brought out to the DB9 connector */
275fb72c03eSNeil Armstrong&uart_AO {
276fb72c03eSNeil Armstrong	status = "okay";
277fb72c03eSNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
278fb72c03eSNeil Armstrong	pinctrl-names = "default";
279fb72c03eSNeil Armstrong};
280fb72c03eSNeil Armstrong
281fb72c03eSNeil Armstrong&usb0_phy {
282fb72c03eSNeil Armstrong	status = "okay";
283fb72c03eSNeil Armstrong	phy-supply = <&usb_pwr>;
284fb72c03eSNeil Armstrong};
285fb72c03eSNeil Armstrong
286fb72c03eSNeil Armstrong&usb0 {
287fb72c03eSNeil Armstrong	status = "okay";
288fb72c03eSNeil Armstrong};
289