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"
9*c019abb2SChristian Hewitt#include <dt-bindings/gpio/gpio.h>
10fb72c03eSNeil Armstrong
11fb72c03eSNeil Armstrong/ {
12fb72c03eSNeil Armstrong	aliases {
13fb72c03eSNeil Armstrong		serial0 = &uart_AO;
14fb72c03eSNeil Armstrong		ethernet0 = &ethmac;
15fb72c03eSNeil Armstrong	};
16fb72c03eSNeil Armstrong
17fb72c03eSNeil Armstrong	chosen {
18fb72c03eSNeil Armstrong		stdout-path = "serial0:115200n8";
19fb72c03eSNeil Armstrong	};
20fb72c03eSNeil Armstrong
21fb72c03eSNeil Armstrong	memory@0 {
22fb72c03eSNeil Armstrong		device_type = "memory";
23fb72c03eSNeil Armstrong		reg = <0x0 0x0 0x0 0x40000000>;
24fb72c03eSNeil Armstrong	};
25fb72c03eSNeil Armstrong
26fb72c03eSNeil Armstrong	leds {
27fb72c03eSNeil Armstrong		compatible = "gpio-leds";
28fb72c03eSNeil Armstrong
2908dc0e5dSNeil Armstrong		led-system {
30fb72c03eSNeil Armstrong			label = "wetek-play:system-status";
31fb72c03eSNeil Armstrong			gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
32fb72c03eSNeil Armstrong			default-state = "on";
33fb72c03eSNeil Armstrong			panic-indicator;
34fb72c03eSNeil Armstrong		};
35fb72c03eSNeil Armstrong	};
36fb72c03eSNeil Armstrong
37fb72c03eSNeil Armstrong	usb_pwr: regulator-usb-pwrs {
38fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
39fb72c03eSNeil Armstrong
40fb72c03eSNeil Armstrong		regulator-name = "USB_PWR";
41fb72c03eSNeil Armstrong
42fb72c03eSNeil Armstrong		regulator-min-microvolt = <5000000>;
43fb72c03eSNeil Armstrong		regulator-max-microvolt = <5000000>;
44fb72c03eSNeil Armstrong
45fb72c03eSNeil Armstrong		gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
46fb72c03eSNeil Armstrong		enable-active-high;
47fb72c03eSNeil Armstrong	};
48fb72c03eSNeil Armstrong
49fb72c03eSNeil Armstrong	vddio_boot: regulator-vddio_boot {
50fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
51fb72c03eSNeil Armstrong		regulator-name = "VDDIO_BOOT";
52fb72c03eSNeil Armstrong		regulator-min-microvolt = <1800000>;
53fb72c03eSNeil Armstrong		regulator-max-microvolt = <1800000>;
54fb72c03eSNeil Armstrong	};
55fb72c03eSNeil Armstrong
56fb72c03eSNeil Armstrong	vddao_3v3: regulator-vddao_3v3 {
57fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
58fb72c03eSNeil Armstrong		regulator-name = "VDDAO_3V3";
59fb72c03eSNeil Armstrong		regulator-min-microvolt = <3300000>;
60fb72c03eSNeil Armstrong		regulator-max-microvolt = <3300000>;
61fb72c03eSNeil Armstrong	};
62fb72c03eSNeil Armstrong
63dfa8b3cdSChristian Hewitt	vddio_ao18: regulator-vddio_ao18 {
64dfa8b3cdSChristian Hewitt		compatible = "regulator-fixed";
65dfa8b3cdSChristian Hewitt		regulator-name = "VDDIO_AO18";
66dfa8b3cdSChristian Hewitt		regulator-min-microvolt = <1800000>;
67dfa8b3cdSChristian Hewitt		regulator-max-microvolt = <1800000>;
688182a358SChristian Hewitt		regulator-always-on;
69dfa8b3cdSChristian Hewitt	};
70dfa8b3cdSChristian Hewitt
71fb72c03eSNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
72fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
73fb72c03eSNeil Armstrong		regulator-name = "VCC_3V3";
74fb72c03eSNeil Armstrong		regulator-min-microvolt = <3300000>;
75fb72c03eSNeil Armstrong		regulator-max-microvolt = <3300000>;
76fb72c03eSNeil Armstrong	};
77fb72c03eSNeil Armstrong
78fb72c03eSNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
79fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-emmc";
80fb72c03eSNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
81fb72c03eSNeil Armstrong	};
82fb72c03eSNeil Armstrong
83fb72c03eSNeil Armstrong	wifi32k: wifi32k {
84fb72c03eSNeil Armstrong		compatible = "pwm-clock";
85fb72c03eSNeil Armstrong		#clock-cells = <0>;
86fb72c03eSNeil Armstrong		clock-frequency = <32768>;
87fb72c03eSNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
88fb72c03eSNeil Armstrong	};
89fb72c03eSNeil Armstrong
90fb72c03eSNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
91fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-simple";
92fb72c03eSNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
93fb72c03eSNeil Armstrong		clocks = <&wifi32k>;
94fb72c03eSNeil Armstrong		clock-names = "ext_clock";
95fb72c03eSNeil Armstrong	};
96fb72c03eSNeil Armstrong
97fb72c03eSNeil Armstrong	cvbs-connector {
98fb72c03eSNeil Armstrong		compatible = "composite-video-connector";
99fb72c03eSNeil Armstrong
100fb72c03eSNeil Armstrong		port {
101fb72c03eSNeil Armstrong			cvbs_connector_in: endpoint {
102fb72c03eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
103fb72c03eSNeil Armstrong			};
104fb72c03eSNeil Armstrong		};
105fb72c03eSNeil Armstrong	};
106fb72c03eSNeil Armstrong
107fb72c03eSNeil Armstrong	hdmi-connector {
108fb72c03eSNeil Armstrong		compatible = "hdmi-connector";
109fb72c03eSNeil Armstrong		type = "a";
110fb72c03eSNeil Armstrong
111fb72c03eSNeil Armstrong		port {
112fb72c03eSNeil Armstrong			hdmi_connector_in: endpoint {
113fb72c03eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
114fb72c03eSNeil Armstrong			};
115fb72c03eSNeil Armstrong		};
116fb72c03eSNeil Armstrong	};
117fb72c03eSNeil Armstrong};
118fb72c03eSNeil Armstrong
119fb72c03eSNeil Armstrong&cec_AO {
120fb72c03eSNeil Armstrong	status = "okay";
121fb72c03eSNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
122fb72c03eSNeil Armstrong	pinctrl-names = "default";
123fb72c03eSNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
124fb72c03eSNeil Armstrong};
125fb72c03eSNeil Armstrong
126fb72c03eSNeil Armstrong&cvbs_vdac_port {
127fb72c03eSNeil Armstrong	cvbs_vdac_out: endpoint {
128fb72c03eSNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
129fb72c03eSNeil Armstrong	};
130fb72c03eSNeil Armstrong};
131fb72c03eSNeil Armstrong
132fb72c03eSNeil Armstrong&ethmac {
133fb72c03eSNeil Armstrong	status = "okay";
134fb72c03eSNeil Armstrong	pinctrl-0 = <&eth_rgmii_pins>;
135fb72c03eSNeil Armstrong	pinctrl-names = "default";
136fb72c03eSNeil Armstrong
137fb72c03eSNeil Armstrong	phy-handle = <&eth_phy0>;
138fb72c03eSNeil Armstrong	phy-mode = "rgmii";
139fb72c03eSNeil Armstrong
140fb72c03eSNeil Armstrong	amlogic,tx-delay-ns = <2>;
141fb72c03eSNeil Armstrong
142fb72c03eSNeil Armstrong	mdio {
143fb72c03eSNeil Armstrong		compatible = "snps,dwmac-mdio";
144fb72c03eSNeil Armstrong		#address-cells = <1>;
145fb72c03eSNeil Armstrong		#size-cells = <0>;
146fb72c03eSNeil Armstrong
147fb72c03eSNeil Armstrong		eth_phy0: ethernet-phy@0 {
148fb72c03eSNeil Armstrong			/* Realtek RTL8211F (0x001cc916) */
149fb72c03eSNeil Armstrong			reg = <0>;
150f29cabf2SMartin Blumenstingl
151f29cabf2SMartin Blumenstingl			reset-assert-us = <10000>;
152c183c406SStefan Agner			reset-deassert-us = <80000>;
153f29cabf2SMartin Blumenstingl			reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
154647e1643SChristian Hewitt
155647e1643SChristian Hewitt			interrupt-parent = <&gpio_intc>;
156647e1643SChristian Hewitt			/* MAC_INTR on GPIOZ_15 */
157647e1643SChristian Hewitt			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
158fb72c03eSNeil Armstrong		};
159fb72c03eSNeil Armstrong	};
160fb72c03eSNeil Armstrong};
161fb72c03eSNeil Armstrong
162fb72c03eSNeil Armstrong&hdmi_tx {
163fb72c03eSNeil Armstrong	status = "okay";
164fb72c03eSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
165fb72c03eSNeil Armstrong	pinctrl-names = "default";
1668182a358SChristian Hewitt	hdmi-supply = <&vddio_ao18>;
167fb72c03eSNeil Armstrong};
168fb72c03eSNeil Armstrong
169fb72c03eSNeil Armstrong&hdmi_tx_tmds_port {
170fb72c03eSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
171fb72c03eSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
172fb72c03eSNeil Armstrong	};
173fb72c03eSNeil Armstrong};
174fb72c03eSNeil Armstrong
175fb72c03eSNeil Armstrong&ir {
176fb72c03eSNeil Armstrong	status = "okay";
177fb72c03eSNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
178fb72c03eSNeil Armstrong	pinctrl-names = "default";
179fb72c03eSNeil Armstrong};
180fb72c03eSNeil Armstrong
181fb72c03eSNeil Armstrong&pwm_ef {
182fb72c03eSNeil Armstrong	status = "okay";
183fb72c03eSNeil Armstrong	pinctrl-0 = <&pwm_e_pins>;
184fb72c03eSNeil Armstrong	pinctrl-names = "default";
185fb72c03eSNeil Armstrong	clocks = <&clkc CLKID_FCLK_DIV4>;
186fb72c03eSNeil Armstrong	clock-names = "clkin0";
187fb72c03eSNeil Armstrong};
188fb72c03eSNeil Armstrong
189dfa8b3cdSChristian Hewitt&saradc {
190dfa8b3cdSChristian Hewitt	status = "okay";
191dfa8b3cdSChristian Hewitt	vref-supply = <&vddio_ao18>;
192dfa8b3cdSChristian Hewitt};
193dfa8b3cdSChristian Hewitt
194fb72c03eSNeil Armstrong/* Wireless SDIO Module */
195fb72c03eSNeil Armstrong&sd_emmc_a {
196fb72c03eSNeil Armstrong	status = "okay";
197fb72c03eSNeil Armstrong	pinctrl-0 = <&sdio_pins>;
198fb72c03eSNeil Armstrong	pinctrl-1 = <&sdio_clk_gate_pins>;
199fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
200fb72c03eSNeil Armstrong	#address-cells = <1>;
201fb72c03eSNeil Armstrong	#size-cells = <0>;
202fb72c03eSNeil Armstrong
203fb72c03eSNeil Armstrong	bus-width = <4>;
204fb72c03eSNeil Armstrong	cap-sd-highspeed;
205adc52bf7SJerome Brunet	max-frequency = <50000000>;
206fb72c03eSNeil Armstrong
207fb72c03eSNeil Armstrong	non-removable;
208fb72c03eSNeil Armstrong	disable-wp;
209fb72c03eSNeil Armstrong
2106b697024SNeil Armstrong	/* WiFi firmware requires power to be kept while in suspend */
2116b697024SNeil Armstrong	keep-power-in-suspend;
2126b697024SNeil Armstrong
213fb72c03eSNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
214fb72c03eSNeil Armstrong
215fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
216fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
217fb72c03eSNeil Armstrong
218fb72c03eSNeil Armstrong	brcmf: wifi@1 {
219fb72c03eSNeil Armstrong		reg = <1>;
220fb72c03eSNeil Armstrong		compatible = "brcm,bcm4329-fmac";
221fb72c03eSNeil Armstrong	};
222fb72c03eSNeil Armstrong};
223fb72c03eSNeil Armstrong
224fb72c03eSNeil Armstrong/* SD card */
225fb72c03eSNeil Armstrong&sd_emmc_b {
226fb72c03eSNeil Armstrong	status = "okay";
227fb72c03eSNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
228fb72c03eSNeil Armstrong	pinctrl-1 = <&sdcard_clk_gate_pins>;
229fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
230fb72c03eSNeil Armstrong
231fb72c03eSNeil Armstrong	bus-width = <4>;
232fb72c03eSNeil Armstrong	cap-sd-highspeed;
233adc52bf7SJerome Brunet	max-frequency = <50000000>;
234fb72c03eSNeil Armstrong	disable-wp;
235fb72c03eSNeil Armstrong
236f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
237fb72c03eSNeil Armstrong
238fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
239fb72c03eSNeil Armstrong	vqmmc-supply = <&vcc_3v3>;
240fb72c03eSNeil Armstrong};
241fb72c03eSNeil Armstrong
242fb72c03eSNeil Armstrong/* eMMC */
243fb72c03eSNeil Armstrong&sd_emmc_c {
244fb72c03eSNeil Armstrong	status = "okay";
245fb72c03eSNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
246fb72c03eSNeil Armstrong	pinctrl-1 = <&emmc_clk_gate_pins>;
247fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
248fb72c03eSNeil Armstrong
249fb72c03eSNeil Armstrong	bus-width = <8>;
250fb72c03eSNeil Armstrong	cap-mmc-highspeed;
251fb72c03eSNeil Armstrong	max-frequency = <200000000>;
252fb72c03eSNeil Armstrong	non-removable;
253fb72c03eSNeil Armstrong	disable-wp;
254fb72c03eSNeil Armstrong	mmc-ddr-1_8v;
255fb72c03eSNeil Armstrong	mmc-hs200-1_8v;
256fb72c03eSNeil Armstrong
257fb72c03eSNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
258fb72c03eSNeil Armstrong	vmmc-supply = <&vcc_3v3>;
259fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
260fb72c03eSNeil Armstrong};
261fb72c03eSNeil Armstrong
26255c2440dSChristian Hewitt/* This is connected to the Bluetooth module: */
26355c2440dSChristian Hewitt&uart_A {
26455c2440dSChristian Hewitt	status = "okay";
26555c2440dSChristian Hewitt	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
26655c2440dSChristian Hewitt	pinctrl-names = "default";
26755c2440dSChristian Hewitt	uart-has-rtscts;
26855c2440dSChristian Hewitt
26955c2440dSChristian Hewitt	bluetooth {
27055c2440dSChristian Hewitt		compatible = "brcm,bcm43438-bt";
27155c2440dSChristian Hewitt		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
27255c2440dSChristian Hewitt	};
27355c2440dSChristian Hewitt};
27455c2440dSChristian Hewitt
275fb72c03eSNeil Armstrong/* This UART is brought out to the DB9 connector */
276fb72c03eSNeil Armstrong&uart_AO {
277fb72c03eSNeil Armstrong	status = "okay";
278fb72c03eSNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
279fb72c03eSNeil Armstrong	pinctrl-names = "default";
280fb72c03eSNeil Armstrong};
281fb72c03eSNeil Armstrong
282fb72c03eSNeil Armstrong&usb0_phy {
283fb72c03eSNeil Armstrong	status = "okay";
284fb72c03eSNeil Armstrong	phy-supply = <&usb_pwr>;
285fb72c03eSNeil Armstrong};
286fb72c03eSNeil Armstrong
287fb72c03eSNeil Armstrong&usb0 {
288fb72c03eSNeil Armstrong	status = "okay";
289fb72c03eSNeil Armstrong};
290