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