1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2e15d2774SMartin Blumenstingl/*
3e15d2774SMartin Blumenstingl * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4e15d2774SMartin Blumenstingl */
5e15d2774SMartin Blumenstingl
6e15d2774SMartin Blumenstingl/dts-v1/;
7e15d2774SMartin Blumenstingl
8e15d2774SMartin Blumenstingl#include <dt-bindings/input/input.h>
9e15d2774SMartin Blumenstingl
10e15d2774SMartin Blumenstingl#include "meson-gxl-s905x-p212.dtsi"
11e15d2774SMartin Blumenstingl
12e15d2774SMartin Blumenstingl/ {
13e15d2774SMartin Blumenstingl	compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl";
14e15d2774SMartin Blumenstingl	model = "Khadas VIM";
15e15d2774SMartin Blumenstingl
16e15d2774SMartin Blumenstingl	adc-keys {
17e15d2774SMartin Blumenstingl		compatible = "adc-keys";
18e15d2774SMartin Blumenstingl		io-channels = <&saradc 0>;
19e15d2774SMartin Blumenstingl		io-channel-names = "buttons";
20e15d2774SMartin Blumenstingl		keyup-threshold-microvolt = <1710000>;
21e15d2774SMartin Blumenstingl
22e15d2774SMartin Blumenstingl		button-function {
23e15d2774SMartin Blumenstingl			label = "Function";
24e15d2774SMartin Blumenstingl			linux,code = <KEY_FN>;
25e15d2774SMartin Blumenstingl			press-threshold-microvolt = <10000>;
26e15d2774SMartin Blumenstingl		};
27e15d2774SMartin Blumenstingl	};
28e15d2774SMartin Blumenstingl
29e15d2774SMartin Blumenstingl	aliases {
30e15d2774SMartin Blumenstingl		serial2 = &uart_AO_B;
31059a58fcSJorge Ramirez-Ortiz		ethernet0 = &ethmac;
32e15d2774SMartin Blumenstingl	};
33e15d2774SMartin Blumenstingl
34e15d2774SMartin Blumenstingl	gpio-keys-polled {
35e15d2774SMartin Blumenstingl		compatible = "gpio-keys-polled";
36e15d2774SMartin Blumenstingl		poll-interval = <100>;
37e15d2774SMartin Blumenstingl
38d5f6fa90SChristian Hewitt		power-button {
39e15d2774SMartin Blumenstingl			label = "power";
40e15d2774SMartin Blumenstingl			linux,code = <KEY_POWER>;
41e15d2774SMartin Blumenstingl			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
42e15d2774SMartin Blumenstingl		};
43e15d2774SMartin Blumenstingl	};
44e15d2774SMartin Blumenstingl
45e15d2774SMartin Blumenstingl	pwmleds {
46e15d2774SMartin Blumenstingl		compatible = "pwm-leds";
47e15d2774SMartin Blumenstingl
48e15d2774SMartin Blumenstingl		power {
49e15d2774SMartin Blumenstingl			label = "vim:red:power";
50e15d2774SMartin Blumenstingl			pwms = <&pwm_AO_ab 1 7812500 0>;
51e15d2774SMartin Blumenstingl			max-brightness = <255>;
52e15d2774SMartin Blumenstingl			linux,default-trigger = "default-on";
53e15d2774SMartin Blumenstingl		};
54e15d2774SMartin Blumenstingl	};
55b43186dbSNeil Armstrong
56b43186dbSNeil Armstrong	hdmi-connector {
57b43186dbSNeil Armstrong		compatible = "hdmi-connector";
58b43186dbSNeil Armstrong		type = "a";
59b43186dbSNeil Armstrong
60b43186dbSNeil Armstrong		port {
61b43186dbSNeil Armstrong			hdmi_connector_in: endpoint {
62b43186dbSNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
63b43186dbSNeil Armstrong			};
64b43186dbSNeil Armstrong		};
65b43186dbSNeil Armstrong	};
66b43186dbSNeil Armstrong};
67b43186dbSNeil Armstrong
68b16c71c9SNeil Armstrong&cec_AO {
69b16c71c9SNeil Armstrong	status = "okay";
70b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
71b16c71c9SNeil Armstrong	pinctrl-names = "default";
72b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
73b16c71c9SNeil Armstrong};
74b16c71c9SNeil Armstrong
75b43186dbSNeil Armstrong&hdmi_tx {
76b43186dbSNeil Armstrong	status = "okay";
77b43186dbSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
78b43186dbSNeil Armstrong	pinctrl-names = "default";
79e1f2163dSNeil Armstrong	hdmi-supply = <&hdmi_5v>;
80b43186dbSNeil Armstrong};
81b43186dbSNeil Armstrong
82b43186dbSNeil Armstrong&hdmi_tx_tmds_port {
83b43186dbSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
84b43186dbSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
85b43186dbSNeil Armstrong	};
86e15d2774SMartin Blumenstingl};
87e15d2774SMartin Blumenstingl
88e15d2774SMartin Blumenstingl&i2c_A {
89e15d2774SMartin Blumenstingl	status = "okay";
90e15d2774SMartin Blumenstingl	pinctrl-0 = <&i2c_a_pins>;
91e15d2774SMartin Blumenstingl	pinctrl-names = "default";
92e15d2774SMartin Blumenstingl};
93e15d2774SMartin Blumenstingl
94e15d2774SMartin Blumenstingl&i2c_B {
95e15d2774SMartin Blumenstingl	status = "okay";
96e15d2774SMartin Blumenstingl	pinctrl-0 = <&i2c_b_pins>;
97e15d2774SMartin Blumenstingl	pinctrl-names = "default";
98e15d2774SMartin Blumenstingl
99e15d2774SMartin Blumenstingl	rtc: rtc@51 {
100*287eb2beSChristian Hewitt		status = "okay";
101e15d2774SMartin Blumenstingl		compatible = "haoyu,hym8563";
102e15d2774SMartin Blumenstingl		reg = <0x51>;
103e15d2774SMartin Blumenstingl		#clock-cells = <0>;
104e15d2774SMartin Blumenstingl		clock-frequency = <32768>;
105e15d2774SMartin Blumenstingl		clock-output-names = "xin32k";
106e15d2774SMartin Blumenstingl	};
107e15d2774SMartin Blumenstingl};
108e15d2774SMartin Blumenstingl
109e15d2774SMartin Blumenstingl&ir {
110c9ee1d25SChristian Hewitt	linux,rc-map-name = "rc-khadas";
111e15d2774SMartin Blumenstingl};
112e15d2774SMartin Blumenstingl
1135b780126SNeil Armstrong&gpio_ao {
11460795933SNeil Armstrong	gpio-line-names = "UART TX",
11560795933SNeil Armstrong			  "UART RX",
11660795933SNeil Armstrong			  "Power Key In",
11760795933SNeil Armstrong			  "J9 Header Pin35",
11860795933SNeil Armstrong			  "J9 Header Pin16",
11960795933SNeil Armstrong			  "J9 Header Pin15",
12060795933SNeil Armstrong			  "J9 Header Pin33",
12160795933SNeil Armstrong			  "IR In",
12260795933SNeil Armstrong			  "HDMI CEC",
123c6496b47SJerome Brunet			  "SYS LED",
124c6496b47SJerome Brunet			  /* GPIO_TEST_N */
125c6496b47SJerome Brunet			  "";
12660795933SNeil Armstrong};
12760795933SNeil Armstrong
1285b780126SNeil Armstrong&gpio {
12960795933SNeil Armstrong	gpio-line-names = /* Bank GPIOZ */
13060795933SNeil Armstrong			  "", "", "", "", "", "", "",
13160795933SNeil Armstrong			  "", "", "", "", "", "", "",
13260795933SNeil Armstrong			  "Power OFF",
13360795933SNeil Armstrong			  "VCCK Enable",
13460795933SNeil Armstrong			  /* Bank GPIOH */
13560795933SNeil Armstrong			  "HDMI HPD", "HDMI SDA", "HDMI SCL",
13660795933SNeil Armstrong			  "HDMI_5V_EN", "SPDIF",
13760795933SNeil Armstrong			  "J9 Header Pin37",
13860795933SNeil Armstrong			  "J9 Header Pin30",
13960795933SNeil Armstrong			  "J9 Header Pin29",
14060795933SNeil Armstrong			  "J9 Header Pin32",
14160795933SNeil Armstrong			  "J9 Header Pin31",
14260795933SNeil Armstrong			  /* Bank BOOT */
14360795933SNeil Armstrong			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
14460795933SNeil Armstrong			  "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
14560795933SNeil Armstrong			  "eMMC Clk", "eMMC Reset", "eMMC CMD",
14660795933SNeil Armstrong			  "", "BOOT_MODE", "", "", "eMMC Data Strobe",
14760795933SNeil Armstrong			  /* Bank CARD */
14860795933SNeil Armstrong			  "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
14960795933SNeil Armstrong			  "SDCard D3", "SDCard D2", "SDCard Det",
15060795933SNeil Armstrong			  /* Bank GPIODV */
15160795933SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "", "",
15260795933SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "", "",
15360795933SNeil Armstrong			  "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
15460795933SNeil Armstrong			  "VCCK Regulator", "VDDEE Regulator",
15560795933SNeil Armstrong			  /* Bank GPIOX */
15660795933SNeil Armstrong			  "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
15760795933SNeil Armstrong			  "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
15860795933SNeil Armstrong			  "WIFI Power Enable", "WIFI WAKE HOST",
15960795933SNeil Armstrong			  "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
16060795933SNeil Armstrong			  "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
16160795933SNeil Armstrong			  "Bluetooth UART TX", "Bluetooth UART RX",
16260795933SNeil Armstrong			  "Bluetooth UART CTS", "Bluetooth UART RTS",
16360795933SNeil Armstrong			  "WIFI 32K", "Bluetooth Enable",
16460795933SNeil Armstrong			  "Bluetooth WAKE HOST",
16560795933SNeil Armstrong			  /* Bank GPIOCLK */
166c6496b47SJerome Brunet			  "", "J9 Header Pin39";
16760795933SNeil Armstrong};
16860795933SNeil Armstrong
169e15d2774SMartin Blumenstingl&pwm_AO_ab {
170e15d2774SMartin Blumenstingl	status = "okay";
171e15d2774SMartin Blumenstingl	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
172e15d2774SMartin Blumenstingl	pinctrl-names = "default";
1736620f146SJerome Brunet	clocks = <&xtal> , <&xtal>;
1746620f146SJerome Brunet	clock-names = "clkin0", "clkin1" ;
175e15d2774SMartin Blumenstingl};
176e15d2774SMartin Blumenstingl
177e15d2774SMartin Blumenstingl&pwm_ef {
178e15d2774SMartin Blumenstingl	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
179e15d2774SMartin Blumenstingl};
180e15d2774SMartin Blumenstingl
181e15d2774SMartin Blumenstingl&sd_emmc_a {
182c26db7aaSAndreas Färber	brcmf: wifi@1 {
183e15d2774SMartin Blumenstingl		reg = <1>;
184e15d2774SMartin Blumenstingl		compatible = "brcm,bcm4329-fmac";
185e15d2774SMartin Blumenstingl	};
186e15d2774SMartin Blumenstingl};
187e15d2774SMartin Blumenstingl
188dd5297ccSChristian Hewitt&uart_A {
189dd5297ccSChristian Hewitt	bluetooth {
190dd5297ccSChristian Hewitt		compatible = "brcm,bcm43438-bt";
191dd5297ccSChristian Hewitt		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
1921c6d5755SChristian Hewitt		max-speed = <2000000>;
1931c6d5755SChristian Hewitt		clocks = <&wifi32k>;
1941c6d5755SChristian Hewitt		clock-names = "lpo";
195dd5297ccSChristian Hewitt	};
196dd5297ccSChristian Hewitt};
197dd5297ccSChristian Hewitt
198e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
199e15d2774SMartin Blumenstingl&uart_AO {
200e15d2774SMartin Blumenstingl	status = "okay";
201e15d2774SMartin Blumenstingl};
202e15d2774SMartin Blumenstingl
203e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
204e15d2774SMartin Blumenstingl&uart_AO_B {
205e15d2774SMartin Blumenstingl	status = "okay";
206e15d2774SMartin Blumenstingl	pinctrl-0 = <&uart_ao_b_pins>;
207e15d2774SMartin Blumenstingl	pinctrl-names = "default";
208e15d2774SMartin Blumenstingl};
2092f9139c2SMartin Blumenstingl
2102f9139c2SMartin Blumenstingl&usb {
2112f9139c2SMartin Blumenstingl	dr_mode = "peripheral";
2122f9139c2SMartin Blumenstingl};
213