xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/amlogic/meson-gxl-s905x-khadas-vim.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun#include "meson-gxl-s905x-p212.dtsi"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl";
14*4882a593Smuzhiyun	model = "Khadas VIM";
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	adc-keys {
17*4882a593Smuzhiyun		compatible = "adc-keys";
18*4882a593Smuzhiyun		io-channels = <&saradc 0>;
19*4882a593Smuzhiyun		io-channel-names = "buttons";
20*4882a593Smuzhiyun		keyup-threshold-microvolt = <1710000>;
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun		button-function {
23*4882a593Smuzhiyun			label = "Function";
24*4882a593Smuzhiyun			linux,code = <KEY_FN>;
25*4882a593Smuzhiyun			press-threshold-microvolt = <10000>;
26*4882a593Smuzhiyun		};
27*4882a593Smuzhiyun	};
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	aliases {
30*4882a593Smuzhiyun		serial2 = &uart_AO_B;
31*4882a593Smuzhiyun		ethernet0 = &ethmac;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	gpio-keys-polled {
35*4882a593Smuzhiyun		compatible = "gpio-keys-polled";
36*4882a593Smuzhiyun		poll-interval = <100>;
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun		power-button {
39*4882a593Smuzhiyun			label = "power";
40*4882a593Smuzhiyun			linux,code = <KEY_POWER>;
41*4882a593Smuzhiyun			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
42*4882a593Smuzhiyun		};
43*4882a593Smuzhiyun	};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	pwmleds {
46*4882a593Smuzhiyun		compatible = "pwm-leds";
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		power {
49*4882a593Smuzhiyun			label = "vim:red:power";
50*4882a593Smuzhiyun			pwms = <&pwm_AO_ab 1 7812500 0>;
51*4882a593Smuzhiyun			max-brightness = <255>;
52*4882a593Smuzhiyun			linux,default-trigger = "default-on";
53*4882a593Smuzhiyun		};
54*4882a593Smuzhiyun	};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	hdmi-connector {
57*4882a593Smuzhiyun		compatible = "hdmi-connector";
58*4882a593Smuzhiyun		type = "a";
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		port {
61*4882a593Smuzhiyun			hdmi_connector_in: endpoint {
62*4882a593Smuzhiyun				remote-endpoint = <&hdmi_tx_tmds_out>;
63*4882a593Smuzhiyun			};
64*4882a593Smuzhiyun		};
65*4882a593Smuzhiyun	};
66*4882a593Smuzhiyun};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun&cec_AO {
69*4882a593Smuzhiyun	status = "okay";
70*4882a593Smuzhiyun	pinctrl-0 = <&ao_cec_pins>;
71*4882a593Smuzhiyun	pinctrl-names = "default";
72*4882a593Smuzhiyun	hdmi-phandle = <&hdmi_tx>;
73*4882a593Smuzhiyun};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun&hdmi_tx {
76*4882a593Smuzhiyun	status = "okay";
77*4882a593Smuzhiyun	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
78*4882a593Smuzhiyun	pinctrl-names = "default";
79*4882a593Smuzhiyun	hdmi-supply = <&hdmi_5v>;
80*4882a593Smuzhiyun};
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun&hdmi_tx_tmds_port {
83*4882a593Smuzhiyun	hdmi_tx_tmds_out: endpoint {
84*4882a593Smuzhiyun		remote-endpoint = <&hdmi_connector_in>;
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun&i2c_A {
89*4882a593Smuzhiyun	status = "okay";
90*4882a593Smuzhiyun	pinctrl-0 = <&i2c_a_pins>;
91*4882a593Smuzhiyun	pinctrl-names = "default";
92*4882a593Smuzhiyun};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun&i2c_B {
95*4882a593Smuzhiyun	status = "okay";
96*4882a593Smuzhiyun	pinctrl-0 = <&i2c_b_pins>;
97*4882a593Smuzhiyun	pinctrl-names = "default";
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun	rtc: rtc@51 {
100*4882a593Smuzhiyun		/* has to be enabled manually when a battery is connected: */
101*4882a593Smuzhiyun		status = "disabled";
102*4882a593Smuzhiyun		compatible = "haoyu,hym8563";
103*4882a593Smuzhiyun		reg = <0x51>;
104*4882a593Smuzhiyun		#clock-cells = <0>;
105*4882a593Smuzhiyun		clock-frequency = <32768>;
106*4882a593Smuzhiyun		clock-output-names = "xin32k";
107*4882a593Smuzhiyun	};
108*4882a593Smuzhiyun};
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun&ir {
111*4882a593Smuzhiyun	linux,rc-map-name = "rc-khadas";
112*4882a593Smuzhiyun};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun&gpio_ao {
115*4882a593Smuzhiyun	gpio-line-names = "UART TX",
116*4882a593Smuzhiyun			  "UART RX",
117*4882a593Smuzhiyun			  "Power Key In",
118*4882a593Smuzhiyun			  "J9 Header Pin35",
119*4882a593Smuzhiyun			  "J9 Header Pin16",
120*4882a593Smuzhiyun			  "J9 Header Pin15",
121*4882a593Smuzhiyun			  "J9 Header Pin33",
122*4882a593Smuzhiyun			  "IR In",
123*4882a593Smuzhiyun			  "HDMI CEC",
124*4882a593Smuzhiyun			  "SYS LED",
125*4882a593Smuzhiyun			  /* GPIO_TEST_N */
126*4882a593Smuzhiyun			  "";
127*4882a593Smuzhiyun};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun&gpio {
130*4882a593Smuzhiyun	gpio-line-names = /* Bank GPIOZ */
131*4882a593Smuzhiyun			  "", "", "", "", "", "", "",
132*4882a593Smuzhiyun			  "", "", "", "", "", "", "",
133*4882a593Smuzhiyun			  "Power OFF",
134*4882a593Smuzhiyun			  "VCCK Enable",
135*4882a593Smuzhiyun			  /* Bank GPIOH */
136*4882a593Smuzhiyun			  "HDMI HPD", "HDMI SDA", "HDMI SCL",
137*4882a593Smuzhiyun			  "HDMI_5V_EN", "SPDIF",
138*4882a593Smuzhiyun			  "J9 Header Pin37",
139*4882a593Smuzhiyun			  "J9 Header Pin30",
140*4882a593Smuzhiyun			  "J9 Header Pin29",
141*4882a593Smuzhiyun			  "J9 Header Pin32",
142*4882a593Smuzhiyun			  "J9 Header Pin31",
143*4882a593Smuzhiyun			  /* Bank BOOT */
144*4882a593Smuzhiyun			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
145*4882a593Smuzhiyun			  "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
146*4882a593Smuzhiyun			  "eMMC Clk", "eMMC Reset", "eMMC CMD",
147*4882a593Smuzhiyun			  "", "BOOT_MODE", "", "", "eMMC Data Strobe",
148*4882a593Smuzhiyun			  /* Bank CARD */
149*4882a593Smuzhiyun			  "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
150*4882a593Smuzhiyun			  "SDCard D3", "SDCard D2", "SDCard Det",
151*4882a593Smuzhiyun			  /* Bank GPIODV */
152*4882a593Smuzhiyun			  "", "", "", "", "", "", "", "", "", "", "", "",
153*4882a593Smuzhiyun			  "", "", "", "", "", "", "", "", "", "", "", "",
154*4882a593Smuzhiyun			  "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
155*4882a593Smuzhiyun			  "VCCK Regulator", "VDDEE Regulator",
156*4882a593Smuzhiyun			  /* Bank GPIOX */
157*4882a593Smuzhiyun			  "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
158*4882a593Smuzhiyun			  "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
159*4882a593Smuzhiyun			  "WIFI Power Enable", "WIFI WAKE HOST",
160*4882a593Smuzhiyun			  "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
161*4882a593Smuzhiyun			  "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
162*4882a593Smuzhiyun			  "Bluetooth UART TX", "Bluetooth UART RX",
163*4882a593Smuzhiyun			  "Bluetooth UART CTS", "Bluetooth UART RTS",
164*4882a593Smuzhiyun			  "WIFI 32K", "Bluetooth Enable",
165*4882a593Smuzhiyun			  "Bluetooth WAKE HOST",
166*4882a593Smuzhiyun			  /* Bank GPIOCLK */
167*4882a593Smuzhiyun			  "", "J9 Header Pin39";
168*4882a593Smuzhiyun};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun&pwm_AO_ab {
171*4882a593Smuzhiyun	status = "okay";
172*4882a593Smuzhiyun	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
173*4882a593Smuzhiyun	pinctrl-names = "default";
174*4882a593Smuzhiyun	clocks = <&xtal> , <&xtal>;
175*4882a593Smuzhiyun	clock-names = "clkin0", "clkin1" ;
176*4882a593Smuzhiyun};
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun&pwm_ef {
179*4882a593Smuzhiyun	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
180*4882a593Smuzhiyun};
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun&sd_emmc_a {
183*4882a593Smuzhiyun	brcmf: wifi@1 {
184*4882a593Smuzhiyun		reg = <1>;
185*4882a593Smuzhiyun		compatible = "brcm,bcm4329-fmac";
186*4882a593Smuzhiyun	};
187*4882a593Smuzhiyun};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun&uart_A {
190*4882a593Smuzhiyun	bluetooth {
191*4882a593Smuzhiyun		compatible = "brcm,bcm43438-bt";
192*4882a593Smuzhiyun		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
193*4882a593Smuzhiyun		max-speed = <2000000>;
194*4882a593Smuzhiyun		clocks = <&wifi32k>;
195*4882a593Smuzhiyun		clock-names = "lpo";
196*4882a593Smuzhiyun	};
197*4882a593Smuzhiyun};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
200*4882a593Smuzhiyun&uart_AO {
201*4882a593Smuzhiyun	status = "okay";
202*4882a593Smuzhiyun};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
205*4882a593Smuzhiyun&uart_AO_B {
206*4882a593Smuzhiyun	status = "okay";
207*4882a593Smuzhiyun	pinctrl-0 = <&uart_ao_b_pins>;
208*4882a593Smuzhiyun	pinctrl-names = "default";
209*4882a593Smuzhiyun};
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun&usb {
212*4882a593Smuzhiyun	dr_mode = "peripheral";
213*4882a593Smuzhiyun};
214