1*abfaae24SVyacheslav Bocharov// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*abfaae24SVyacheslav Bocharov/*
3*abfaae24SVyacheslav Bocharov * Copyright (c) 2021 Vyacheslav Bocharov <adeep@lexina.in>
4*abfaae24SVyacheslav Bocharov * Copyright (c) 2020 JetHome
5*abfaae24SVyacheslav Bocharov * Author: Aleksandr Kazantsev <ak@tvip.ru>
6*abfaae24SVyacheslav Bocharov * Author: Alexey Shevelkin <ash@tvip.ru>
7*abfaae24SVyacheslav Bocharov * Author: Vyacheslav Bocharov <adeep@lexina.in>
8*abfaae24SVyacheslav Bocharov */
9*abfaae24SVyacheslav Bocharov
10*abfaae24SVyacheslav Bocharov/dts-v1/;
11*abfaae24SVyacheslav Bocharov
12*abfaae24SVyacheslav Bocharov#include "meson-gxl.dtsi"
13*abfaae24SVyacheslav Bocharov
14*abfaae24SVyacheslav Bocharov/ {
15*abfaae24SVyacheslav Bocharov	compatible = "jethome,jethub-j80", "amlogic,s905w", "amlogic,meson-gxl";
16*abfaae24SVyacheslav Bocharov	model = "JetHome JetHub J80";
17*abfaae24SVyacheslav Bocharov	memory@0 {
18*abfaae24SVyacheslav Bocharov		device_type = "memory";
19*abfaae24SVyacheslav Bocharov		reg = <0x0 0x0 0x0 0x40000000>;
20*abfaae24SVyacheslav Bocharov	};
21*abfaae24SVyacheslav Bocharov
22*abfaae24SVyacheslav Bocharov	reserved-memory {
23*abfaae24SVyacheslav Bocharov		linux,cma {
24*abfaae24SVyacheslav Bocharov			size = <0x0 0x1000000>;
25*abfaae24SVyacheslav Bocharov		};
26*abfaae24SVyacheslav Bocharov	};
27*abfaae24SVyacheslav Bocharov
28*abfaae24SVyacheslav Bocharov	aliases {
29*abfaae24SVyacheslav Bocharov		serial0 = &uart_AO;   /* Console */
30*abfaae24SVyacheslav Bocharov		serial1 = &uart_A;    /* Bluetooth */
31*abfaae24SVyacheslav Bocharov		serial2 = &uart_AO_B; /* Wireless module 1 */
32*abfaae24SVyacheslav Bocharov		serial3 = &uart_C;    /* Wireless module 2 */
33*abfaae24SVyacheslav Bocharov		ethernet0 = &ethmac;
34*abfaae24SVyacheslav Bocharov	};
35*abfaae24SVyacheslav Bocharov
36*abfaae24SVyacheslav Bocharov	chosen {
37*abfaae24SVyacheslav Bocharov		stdout-path = "serial0:115200n8";
38*abfaae24SVyacheslav Bocharov	};
39*abfaae24SVyacheslav Bocharov
40*abfaae24SVyacheslav Bocharov	vddio_ao18: regulator-vddio_ao18 {
41*abfaae24SVyacheslav Bocharov		compatible = "regulator-fixed";
42*abfaae24SVyacheslav Bocharov		regulator-name = "VDDIO_AO18";
43*abfaae24SVyacheslav Bocharov		regulator-min-microvolt = <1800000>;
44*abfaae24SVyacheslav Bocharov		regulator-max-microvolt = <1800000>;
45*abfaae24SVyacheslav Bocharov	};
46*abfaae24SVyacheslav Bocharov
47*abfaae24SVyacheslav Bocharov	vddio_boot: regulator-vddio_boot {
48*abfaae24SVyacheslav Bocharov		compatible = "regulator-fixed";
49*abfaae24SVyacheslav Bocharov		regulator-name = "VDDIO_BOOT";
50*abfaae24SVyacheslav Bocharov		regulator-min-microvolt = <1800000>;
51*abfaae24SVyacheslav Bocharov		regulator-max-microvolt = <1800000>;
52*abfaae24SVyacheslav Bocharov	};
53*abfaae24SVyacheslav Bocharov
54*abfaae24SVyacheslav Bocharov	vddao_3v3: regulator-vddao_3v3 {
55*abfaae24SVyacheslav Bocharov		compatible = "regulator-fixed";
56*abfaae24SVyacheslav Bocharov		regulator-name = "VDDAO_3V3";
57*abfaae24SVyacheslav Bocharov		regulator-min-microvolt = <3300000>;
58*abfaae24SVyacheslav Bocharov		regulator-max-microvolt = <3300000>;
59*abfaae24SVyacheslav Bocharov	};
60*abfaae24SVyacheslav Bocharov
61*abfaae24SVyacheslav Bocharov	vcc_3v3: regulator-vcc_3v3 {
62*abfaae24SVyacheslav Bocharov		compatible = "regulator-fixed";
63*abfaae24SVyacheslav Bocharov		regulator-name = "VCC_3V3";
64*abfaae24SVyacheslav Bocharov		regulator-min-microvolt = <3300000>;
65*abfaae24SVyacheslav Bocharov		regulator-max-microvolt = <3300000>;
66*abfaae24SVyacheslav Bocharov	};
67*abfaae24SVyacheslav Bocharov
68*abfaae24SVyacheslav Bocharov	emmc_pwrseq: emmc-pwrseq {
69*abfaae24SVyacheslav Bocharov		compatible = "mmc-pwrseq-emmc";
70*abfaae24SVyacheslav Bocharov		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
71*abfaae24SVyacheslav Bocharov	};
72*abfaae24SVyacheslav Bocharov
73*abfaae24SVyacheslav Bocharov	wifi32k: wifi32k {
74*abfaae24SVyacheslav Bocharov		compatible = "pwm-clock";
75*abfaae24SVyacheslav Bocharov		#clock-cells = <0>;
76*abfaae24SVyacheslav Bocharov		clock-frequency = <32768>;
77*abfaae24SVyacheslav Bocharov		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
78*abfaae24SVyacheslav Bocharov	};
79*abfaae24SVyacheslav Bocharov
80*abfaae24SVyacheslav Bocharov	sdio_pwrseq: sdio-pwrseq {
81*abfaae24SVyacheslav Bocharov		compatible = "mmc-pwrseq-simple";
82*abfaae24SVyacheslav Bocharov		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
83*abfaae24SVyacheslav Bocharov		clocks = <&wifi32k>;
84*abfaae24SVyacheslav Bocharov		clock-names = "ext_clock";
85*abfaae24SVyacheslav Bocharov	};
86*abfaae24SVyacheslav Bocharov};
87*abfaae24SVyacheslav Bocharov
88*abfaae24SVyacheslav Bocharov&efuse {
89*abfaae24SVyacheslav Bocharov	bt_mac: bt_mac@6 {
90*abfaae24SVyacheslav Bocharov		reg = <0x6 0x6>;
91*abfaae24SVyacheslav Bocharov	};
92*abfaae24SVyacheslav Bocharov
93*abfaae24SVyacheslav Bocharov	wifi_mac: wifi_mac@C {
94*abfaae24SVyacheslav Bocharov		reg = <0xc 0x6>;
95*abfaae24SVyacheslav Bocharov	};
96*abfaae24SVyacheslav Bocharov};
97*abfaae24SVyacheslav Bocharov
98*abfaae24SVyacheslav Bocharov&sn {
99*abfaae24SVyacheslav Bocharov	reg = <0x32 0x20>;
100*abfaae24SVyacheslav Bocharov};
101*abfaae24SVyacheslav Bocharov
102*abfaae24SVyacheslav Bocharov&eth_mac {
103*abfaae24SVyacheslav Bocharov	reg = <0x0 0x6>;
104*abfaae24SVyacheslav Bocharov};
105*abfaae24SVyacheslav Bocharov
106*abfaae24SVyacheslav Bocharov&bid {
107*abfaae24SVyacheslav Bocharov	reg = <0x12 0x20>;
108*abfaae24SVyacheslav Bocharov};
109*abfaae24SVyacheslav Bocharov
110*abfaae24SVyacheslav Bocharov&usb {
111*abfaae24SVyacheslav Bocharov	status = "okay";
112*abfaae24SVyacheslav Bocharov	dr_mode = "host";
113*abfaae24SVyacheslav Bocharov};
114*abfaae24SVyacheslav Bocharov
115*abfaae24SVyacheslav Bocharov&pwm_ef {
116*abfaae24SVyacheslav Bocharov	status = "okay";
117*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&pwm_e_pins>;
118*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
119*abfaae24SVyacheslav Bocharov	clocks = <&clkc CLKID_FCLK_DIV4>;
120*abfaae24SVyacheslav Bocharov	clock-names = "clkin0";
121*abfaae24SVyacheslav Bocharov};
122*abfaae24SVyacheslav Bocharov
123*abfaae24SVyacheslav Bocharov&saradc {
124*abfaae24SVyacheslav Bocharov	status = "okay";
125*abfaae24SVyacheslav Bocharov	vref-supply = <&vddio_ao18>;
126*abfaae24SVyacheslav Bocharov};
127*abfaae24SVyacheslav Bocharov
128*abfaae24SVyacheslav Bocharov/* Wireless SDIO Module */
129*abfaae24SVyacheslav Bocharov&sd_emmc_a {
130*abfaae24SVyacheslav Bocharov	status = "okay";
131*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&sdio_pins>;
132*abfaae24SVyacheslav Bocharov	pinctrl-1 = <&sdio_clk_gate_pins>;
133*abfaae24SVyacheslav Bocharov	pinctrl-names = "default", "clk-gate";
134*abfaae24SVyacheslav Bocharov	#address-cells = <1>;
135*abfaae24SVyacheslav Bocharov	#size-cells = <0>;
136*abfaae24SVyacheslav Bocharov
137*abfaae24SVyacheslav Bocharov	bus-width = <4>;
138*abfaae24SVyacheslav Bocharov	cap-sd-highspeed;
139*abfaae24SVyacheslav Bocharov	max-frequency = <50000000>;
140*abfaae24SVyacheslav Bocharov
141*abfaae24SVyacheslav Bocharov	non-removable;
142*abfaae24SVyacheslav Bocharov	disable-wp;
143*abfaae24SVyacheslav Bocharov
144*abfaae24SVyacheslav Bocharov	/* WiFi firmware requires power to be kept while in suspend */
145*abfaae24SVyacheslav Bocharov	keep-power-in-suspend;
146*abfaae24SVyacheslav Bocharov
147*abfaae24SVyacheslav Bocharov	mmc-pwrseq = <&sdio_pwrseq>;
148*abfaae24SVyacheslav Bocharov
149*abfaae24SVyacheslav Bocharov	vmmc-supply = <&vddao_3v3>;
150*abfaae24SVyacheslav Bocharov	vqmmc-supply = <&vddio_boot>;
151*abfaae24SVyacheslav Bocharov};
152*abfaae24SVyacheslav Bocharov
153*abfaae24SVyacheslav Bocharov/* SD card */
154*abfaae24SVyacheslav Bocharov&sd_emmc_b {
155*abfaae24SVyacheslav Bocharov	status = "okay";
156*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&sdcard_pins>;
157*abfaae24SVyacheslav Bocharov	pinctrl-1 = <&sdcard_clk_gate_pins>;
158*abfaae24SVyacheslav Bocharov	pinctrl-names = "default", "clk-gate";
159*abfaae24SVyacheslav Bocharov
160*abfaae24SVyacheslav Bocharov	bus-width = <4>;
161*abfaae24SVyacheslav Bocharov	cap-sd-highspeed;
162*abfaae24SVyacheslav Bocharov	max-frequency = <50000000>;
163*abfaae24SVyacheslav Bocharov	disable-wp;
164*abfaae24SVyacheslav Bocharov
165*abfaae24SVyacheslav Bocharov	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
166*abfaae24SVyacheslav Bocharov
167*abfaae24SVyacheslav Bocharov	vmmc-supply = <&vddao_3v3>;
168*abfaae24SVyacheslav Bocharov	vqmmc-supply = <&vddio_boot>;
169*abfaae24SVyacheslav Bocharov};
170*abfaae24SVyacheslav Bocharov
171*abfaae24SVyacheslav Bocharov/* eMMC */
172*abfaae24SVyacheslav Bocharov&sd_emmc_c {
173*abfaae24SVyacheslav Bocharov	status = "okay";
174*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
175*abfaae24SVyacheslav Bocharov	pinctrl-1 = <&emmc_clk_gate_pins>;
176*abfaae24SVyacheslav Bocharov	pinctrl-names = "default", "clk-gate";
177*abfaae24SVyacheslav Bocharov
178*abfaae24SVyacheslav Bocharov	bus-width = <8>;
179*abfaae24SVyacheslav Bocharov	cap-mmc-highspeed;
180*abfaae24SVyacheslav Bocharov	max-frequency = <200000000>;
181*abfaae24SVyacheslav Bocharov	non-removable;
182*abfaae24SVyacheslav Bocharov	disable-wp;
183*abfaae24SVyacheslav Bocharov	mmc-ddr-1_8v;
184*abfaae24SVyacheslav Bocharov	mmc-hs200-1_8v;
185*abfaae24SVyacheslav Bocharov
186*abfaae24SVyacheslav Bocharov	mmc-pwrseq = <&emmc_pwrseq>;
187*abfaae24SVyacheslav Bocharov	vmmc-supply = <&vcc_3v3>;
188*abfaae24SVyacheslav Bocharov	vqmmc-supply = <&vddio_boot>;
189*abfaae24SVyacheslav Bocharov};
190*abfaae24SVyacheslav Bocharov
191*abfaae24SVyacheslav Bocharov/* Console UART */
192*abfaae24SVyacheslav Bocharov&uart_AO {
193*abfaae24SVyacheslav Bocharov	status = "okay";
194*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&uart_ao_a_pins>;
195*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
196*abfaae24SVyacheslav Bocharov};
197*abfaae24SVyacheslav Bocharov
198*abfaae24SVyacheslav Bocharov/* S905W only has access to its internal PHY */
199*abfaae24SVyacheslav Bocharov&ethmac {
200*abfaae24SVyacheslav Bocharov	status = "okay";
201*abfaae24SVyacheslav Bocharov	phy-mode = "rmii";
202*abfaae24SVyacheslav Bocharov	phy-handle = <&internal_phy>;
203*abfaae24SVyacheslav Bocharov};
204*abfaae24SVyacheslav Bocharov
205*abfaae24SVyacheslav Bocharov&internal_phy {
206*abfaae24SVyacheslav Bocharov	status = "okay";
207*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
208*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
209*abfaae24SVyacheslav Bocharov};
210*abfaae24SVyacheslav Bocharov
211*abfaae24SVyacheslav Bocharov&uart_A {
212*abfaae24SVyacheslav Bocharov	status = "okay";
213*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
214*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
215*abfaae24SVyacheslav Bocharov	uart-has-rtscts;
216*abfaae24SVyacheslav Bocharov};
217*abfaae24SVyacheslav Bocharov
218*abfaae24SVyacheslav Bocharov&uart_C {
219*abfaae24SVyacheslav Bocharov	status = "okay";
220*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&uart_c_pins>;
221*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
222*abfaae24SVyacheslav Bocharov};
223*abfaae24SVyacheslav Bocharov
224*abfaae24SVyacheslav Bocharov&uart_AO_B {
225*abfaae24SVyacheslav Bocharov	status = "okay";
226*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&uart_ao_b_pins>, <&uart_ao_b_cts_rts_pins>;
227*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
228*abfaae24SVyacheslav Bocharov	uart-has-rtscts;
229*abfaae24SVyacheslav Bocharov};
230*abfaae24SVyacheslav Bocharov
231*abfaae24SVyacheslav Bocharov&i2c_B {
232*abfaae24SVyacheslav Bocharov	status = "okay";
233*abfaae24SVyacheslav Bocharov	pinctrl-names = "default";
234*abfaae24SVyacheslav Bocharov	pinctrl-0 = <&i2c_b_pins>;
235*abfaae24SVyacheslav Bocharov
236*abfaae24SVyacheslav Bocharov	pcf8563: pcf8563@51 {
237*abfaae24SVyacheslav Bocharov		compatible = "nxp,pcf8563";
238*abfaae24SVyacheslav Bocharov		reg = <0x51>;
239*abfaae24SVyacheslav Bocharov		status = "okay";
240*abfaae24SVyacheslav Bocharov	};
241*abfaae24SVyacheslav Bocharov};
242