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
62fb72c03eSNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
63fb72c03eSNeil Armstrong		compatible = "regulator-fixed";
64fb72c03eSNeil Armstrong		regulator-name = "VCC_3V3";
65fb72c03eSNeil Armstrong		regulator-min-microvolt = <3300000>;
66fb72c03eSNeil Armstrong		regulator-max-microvolt = <3300000>;
67fb72c03eSNeil Armstrong	};
68fb72c03eSNeil Armstrong
69fb72c03eSNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
70fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-emmc";
71fb72c03eSNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
72fb72c03eSNeil Armstrong	};
73fb72c03eSNeil Armstrong
74fb72c03eSNeil Armstrong	wifi32k: wifi32k {
75fb72c03eSNeil Armstrong		compatible = "pwm-clock";
76fb72c03eSNeil Armstrong		#clock-cells = <0>;
77fb72c03eSNeil Armstrong		clock-frequency = <32768>;
78fb72c03eSNeil Armstrong		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
79fb72c03eSNeil Armstrong	};
80fb72c03eSNeil Armstrong
81fb72c03eSNeil Armstrong	sdio_pwrseq: sdio-pwrseq {
82fb72c03eSNeil Armstrong		compatible = "mmc-pwrseq-simple";
83fb72c03eSNeil Armstrong		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
84fb72c03eSNeil Armstrong		clocks = <&wifi32k>;
85fb72c03eSNeil Armstrong		clock-names = "ext_clock";
86fb72c03eSNeil Armstrong	};
87fb72c03eSNeil Armstrong
88fb72c03eSNeil Armstrong	cvbs-connector {
89fb72c03eSNeil Armstrong		compatible = "composite-video-connector";
90fb72c03eSNeil Armstrong
91fb72c03eSNeil Armstrong		port {
92fb72c03eSNeil Armstrong			cvbs_connector_in: endpoint {
93fb72c03eSNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
94fb72c03eSNeil Armstrong			};
95fb72c03eSNeil Armstrong		};
96fb72c03eSNeil Armstrong	};
97fb72c03eSNeil Armstrong
98fb72c03eSNeil Armstrong	hdmi-connector {
99fb72c03eSNeil Armstrong		compatible = "hdmi-connector";
100fb72c03eSNeil Armstrong		type = "a";
101fb72c03eSNeil Armstrong
102fb72c03eSNeil Armstrong		port {
103fb72c03eSNeil Armstrong			hdmi_connector_in: endpoint {
104fb72c03eSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
105fb72c03eSNeil Armstrong			};
106fb72c03eSNeil Armstrong		};
107fb72c03eSNeil Armstrong	};
108fb72c03eSNeil Armstrong};
109fb72c03eSNeil Armstrong
110fb72c03eSNeil Armstrong&cec_AO {
111fb72c03eSNeil Armstrong	status = "okay";
112fb72c03eSNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
113fb72c03eSNeil Armstrong	pinctrl-names = "default";
114fb72c03eSNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
115fb72c03eSNeil Armstrong};
116fb72c03eSNeil Armstrong
117fb72c03eSNeil Armstrong&cvbs_vdac_port {
118fb72c03eSNeil Armstrong	cvbs_vdac_out: endpoint {
119fb72c03eSNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
120fb72c03eSNeil Armstrong	};
121fb72c03eSNeil Armstrong};
122fb72c03eSNeil Armstrong
123fb72c03eSNeil Armstrong&ethmac {
124fb72c03eSNeil Armstrong	status = "okay";
125fb72c03eSNeil Armstrong	pinctrl-0 = <&eth_rgmii_pins>;
126fb72c03eSNeil Armstrong	pinctrl-names = "default";
127fb72c03eSNeil Armstrong
128fb72c03eSNeil Armstrong	phy-handle = <&eth_phy0>;
129fb72c03eSNeil Armstrong	phy-mode = "rgmii";
130fb72c03eSNeil Armstrong
131fb72c03eSNeil Armstrong	amlogic,tx-delay-ns = <2>;
132fb72c03eSNeil Armstrong
133fb72c03eSNeil Armstrong	snps,reset-gpio = <&gpio GPIOZ_14 0>;
134fb72c03eSNeil Armstrong	snps,reset-delays-us = <0 10000 1000000>;
135fb72c03eSNeil Armstrong	snps,reset-active-low;
136fb72c03eSNeil Armstrong
137fb72c03eSNeil Armstrong	mdio {
138fb72c03eSNeil Armstrong		compatible = "snps,dwmac-mdio";
139fb72c03eSNeil Armstrong		#address-cells = <1>;
140fb72c03eSNeil Armstrong		#size-cells = <0>;
141fb72c03eSNeil Armstrong
142fb72c03eSNeil Armstrong		eth_phy0: ethernet-phy@0 {
143fb72c03eSNeil Armstrong			/* Realtek RTL8211F (0x001cc916) */
144fb72c03eSNeil Armstrong			reg = <0>;
145fb72c03eSNeil Armstrong		};
146fb72c03eSNeil Armstrong	};
147fb72c03eSNeil Armstrong};
148fb72c03eSNeil Armstrong
149fb72c03eSNeil Armstrong&hdmi_tx {
150fb72c03eSNeil Armstrong	status = "okay";
151fb72c03eSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
152fb72c03eSNeil Armstrong	pinctrl-names = "default";
153fb72c03eSNeil Armstrong};
154fb72c03eSNeil Armstrong
155fb72c03eSNeil Armstrong&hdmi_tx_tmds_port {
156fb72c03eSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
157fb72c03eSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
158fb72c03eSNeil Armstrong	};
159fb72c03eSNeil Armstrong};
160fb72c03eSNeil Armstrong
161fb72c03eSNeil Armstrong&ir {
162fb72c03eSNeil Armstrong	status = "okay";
163fb72c03eSNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
164fb72c03eSNeil Armstrong	pinctrl-names = "default";
165fb72c03eSNeil Armstrong};
166fb72c03eSNeil Armstrong
167fb72c03eSNeil Armstrong&pwm_ef {
168fb72c03eSNeil Armstrong	status = "okay";
169fb72c03eSNeil Armstrong	pinctrl-0 = <&pwm_e_pins>;
170fb72c03eSNeil Armstrong	pinctrl-names = "default";
171fb72c03eSNeil Armstrong	clocks = <&clkc CLKID_FCLK_DIV4>;
172fb72c03eSNeil Armstrong	clock-names = "clkin0";
173fb72c03eSNeil Armstrong};
174fb72c03eSNeil Armstrong
175fb72c03eSNeil Armstrong/* Wireless SDIO Module */
176fb72c03eSNeil Armstrong&sd_emmc_a {
177fb72c03eSNeil Armstrong	status = "okay";
178fb72c03eSNeil Armstrong	pinctrl-0 = <&sdio_pins>;
179fb72c03eSNeil Armstrong	pinctrl-1 = <&sdio_clk_gate_pins>;
180fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
181fb72c03eSNeil Armstrong	#address-cells = <1>;
182fb72c03eSNeil Armstrong	#size-cells = <0>;
183fb72c03eSNeil Armstrong
184fb72c03eSNeil Armstrong	bus-width = <4>;
185fb72c03eSNeil Armstrong	cap-sd-highspeed;
186adc52bf7SJerome Brunet	max-frequency = <50000000>;
187fb72c03eSNeil Armstrong
188fb72c03eSNeil Armstrong	non-removable;
189fb72c03eSNeil Armstrong	disable-wp;
190fb72c03eSNeil Armstrong
191fb72c03eSNeil Armstrong	mmc-pwrseq = <&sdio_pwrseq>;
192fb72c03eSNeil Armstrong
193fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
194fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
195fb72c03eSNeil Armstrong
196fb72c03eSNeil Armstrong	brcmf: wifi@1 {
197fb72c03eSNeil Armstrong		reg = <1>;
198fb72c03eSNeil Armstrong		compatible = "brcm,bcm4329-fmac";
199fb72c03eSNeil Armstrong	};
200fb72c03eSNeil Armstrong};
201fb72c03eSNeil Armstrong
202fb72c03eSNeil Armstrong/* SD card */
203fb72c03eSNeil Armstrong&sd_emmc_b {
204fb72c03eSNeil Armstrong	status = "okay";
205fb72c03eSNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
206fb72c03eSNeil Armstrong	pinctrl-1 = <&sdcard_clk_gate_pins>;
207fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
208fb72c03eSNeil Armstrong
209fb72c03eSNeil Armstrong	bus-width = <4>;
210fb72c03eSNeil Armstrong	cap-sd-highspeed;
211adc52bf7SJerome Brunet	max-frequency = <50000000>;
212fb72c03eSNeil Armstrong	disable-wp;
213fb72c03eSNeil Armstrong
214f29200c8SLoys Ollivier	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
215fb72c03eSNeil Armstrong
216fb72c03eSNeil Armstrong	vmmc-supply = <&vddao_3v3>;
217fb72c03eSNeil Armstrong	vqmmc-supply = <&vcc_3v3>;
218fb72c03eSNeil Armstrong};
219fb72c03eSNeil Armstrong
220fb72c03eSNeil Armstrong/* eMMC */
221fb72c03eSNeil Armstrong&sd_emmc_c {
222fb72c03eSNeil Armstrong	status = "okay";
223fb72c03eSNeil Armstrong	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
224fb72c03eSNeil Armstrong	pinctrl-1 = <&emmc_clk_gate_pins>;
225fb72c03eSNeil Armstrong	pinctrl-names = "default", "clk-gate";
226fb72c03eSNeil Armstrong
227fb72c03eSNeil Armstrong	bus-width = <8>;
228fb72c03eSNeil Armstrong	cap-mmc-highspeed;
229fb72c03eSNeil Armstrong	max-frequency = <200000000>;
230fb72c03eSNeil Armstrong	non-removable;
231fb72c03eSNeil Armstrong	disable-wp;
232fb72c03eSNeil Armstrong	mmc-ddr-1_8v;
233fb72c03eSNeil Armstrong	mmc-hs200-1_8v;
234fb72c03eSNeil Armstrong
235fb72c03eSNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
236fb72c03eSNeil Armstrong	vmmc-supply = <&vcc_3v3>;
237fb72c03eSNeil Armstrong	vqmmc-supply = <&vddio_boot>;
238fb72c03eSNeil Armstrong};
239fb72c03eSNeil Armstrong
240fb72c03eSNeil Armstrong/* This UART is brought out to the DB9 connector */
241fb72c03eSNeil Armstrong&uart_AO {
242fb72c03eSNeil Armstrong	status = "okay";
243fb72c03eSNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
244fb72c03eSNeil Armstrong	pinctrl-names = "default";
245fb72c03eSNeil Armstrong};
246fb72c03eSNeil Armstrong
247fb72c03eSNeil Armstrong&usb0_phy {
248fb72c03eSNeil Armstrong	status = "okay";
249fb72c03eSNeil Armstrong	phy-supply = <&usb_pwr>;
250fb72c03eSNeil Armstrong};
251fb72c03eSNeil Armstrong
252fb72c03eSNeil Armstrong&usb0 {
253fb72c03eSNeil Armstrong	status = "okay";
254fb72c03eSNeil Armstrong};
255