xref: /linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-gxl-s905x-khadas-vim.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
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 "meson-gxl-s905x-p212.dtsi"
9c993c4e8SChristian Hewitt#include <dt-bindings/input/input.h>
104e0649f4SChristian Hewitt#include <dt-bindings/sound/meson-aiu.h>
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
45a74978f3SAlexander Dahl	led-controller {
46e15d2774SMartin Blumenstingl		compatible = "pwm-leds";
47e15d2774SMartin Blumenstingl
48a74978f3SAlexander Dahl		led-1 {
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	};
664e0649f4SChristian Hewitt
674e0649f4SChristian Hewitt	sound {
684e0649f4SChristian Hewitt		compatible = "amlogic,gx-sound-card";
69933b80edSChristian Hewitt		model = "KHADAS-VIM";
70*9b5d2511SNeil Armstrong		clocks = <&clkc CLKID_MPLL0>,
71*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL1>,
72*9b5d2511SNeil Armstrong			 <&clkc CLKID_MPLL2>;
73*9b5d2511SNeil Armstrong
744e0649f4SChristian Hewitt		assigned-clocks = <&clkc CLKID_MPLL0>,
754e0649f4SChristian Hewitt				  <&clkc CLKID_MPLL1>,
764e0649f4SChristian Hewitt				  <&clkc CLKID_MPLL2>;
774e0649f4SChristian Hewitt		assigned-clock-parents = <0>, <0>, <0>;
784e0649f4SChristian Hewitt		assigned-clock-rates = <294912000>,
794e0649f4SChristian Hewitt				       <270950400>,
804e0649f4SChristian Hewitt				       <393216000>;
814e0649f4SChristian Hewitt
824e0649f4SChristian Hewitt		dai-link-0 {
834e0649f4SChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
844e0649f4SChristian Hewitt		};
854e0649f4SChristian Hewitt
864e0649f4SChristian Hewitt		dai-link-1 {
874e0649f4SChristian Hewitt			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
884e0649f4SChristian Hewitt			dai-format = "i2s";
894e0649f4SChristian Hewitt			mclk-fs = <256>;
904e0649f4SChristian Hewitt
914e0649f4SChristian Hewitt			codec-0 {
924e0649f4SChristian Hewitt				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
934e0649f4SChristian Hewitt			};
944e0649f4SChristian Hewitt		};
954e0649f4SChristian Hewitt
964e0649f4SChristian Hewitt		dai-link-2 {
974e0649f4SChristian Hewitt			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
984e0649f4SChristian Hewitt
994e0649f4SChristian Hewitt			codec-0 {
1004e0649f4SChristian Hewitt				sound-dai = <&hdmi_tx>;
1014e0649f4SChristian Hewitt			};
1024e0649f4SChristian Hewitt		};
1034e0649f4SChristian Hewitt	};
1044e0649f4SChristian Hewitt};
1054e0649f4SChristian Hewitt
1064e0649f4SChristian Hewitt&aiu {
1074e0649f4SChristian Hewitt	status = "okay";
108b43186dbSNeil Armstrong};
109b43186dbSNeil Armstrong
110b16c71c9SNeil Armstrong&cec_AO {
111b16c71c9SNeil Armstrong	status = "okay";
112b16c71c9SNeil Armstrong	pinctrl-0 = <&ao_cec_pins>;
113b16c71c9SNeil Armstrong	pinctrl-names = "default";
114b16c71c9SNeil Armstrong	hdmi-phandle = <&hdmi_tx>;
115b16c71c9SNeil Armstrong};
116b16c71c9SNeil Armstrong
117b43186dbSNeil Armstrong&hdmi_tx {
118b43186dbSNeil Armstrong	status = "okay";
119b43186dbSNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
120b43186dbSNeil Armstrong	pinctrl-names = "default";
121e1f2163dSNeil Armstrong	hdmi-supply = <&hdmi_5v>;
122b43186dbSNeil Armstrong};
123b43186dbSNeil Armstrong
124b43186dbSNeil Armstrong&hdmi_tx_tmds_port {
125b43186dbSNeil Armstrong	hdmi_tx_tmds_out: endpoint {
126b43186dbSNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
127b43186dbSNeil Armstrong	};
128e15d2774SMartin Blumenstingl};
129e15d2774SMartin Blumenstingl
130e15d2774SMartin Blumenstingl&i2c_A {
131e15d2774SMartin Blumenstingl	status = "okay";
132e15d2774SMartin Blumenstingl	pinctrl-0 = <&i2c_a_pins>;
133e15d2774SMartin Blumenstingl	pinctrl-names = "default";
134e15d2774SMartin Blumenstingl};
135e15d2774SMartin Blumenstingl
136e15d2774SMartin Blumenstingl&i2c_B {
137e15d2774SMartin Blumenstingl	status = "okay";
138e15d2774SMartin Blumenstingl	pinctrl-0 = <&i2c_b_pins>;
139e15d2774SMartin Blumenstingl	pinctrl-names = "default";
140e15d2774SMartin Blumenstingl
141e15d2774SMartin Blumenstingl	rtc: rtc@51 {
142287eb2beSChristian Hewitt		status = "okay";
143e15d2774SMartin Blumenstingl		compatible = "haoyu,hym8563";
144e15d2774SMartin Blumenstingl		reg = <0x51>;
145e15d2774SMartin Blumenstingl		#clock-cells = <0>;
146e15d2774SMartin Blumenstingl		clock-output-names = "xin32k";
147e15d2774SMartin Blumenstingl	};
148e15d2774SMartin Blumenstingl};
149e15d2774SMartin Blumenstingl
150e15d2774SMartin Blumenstingl&ir {
151c9ee1d25SChristian Hewitt	linux,rc-map-name = "rc-khadas";
152e15d2774SMartin Blumenstingl};
153e15d2774SMartin Blumenstingl
1545b780126SNeil Armstrong&gpio_ao {
15560795933SNeil Armstrong	gpio-line-names = "UART TX",
15660795933SNeil Armstrong			  "UART RX",
15760795933SNeil Armstrong			  "Power Key In",
15860795933SNeil Armstrong			  "J9 Header Pin35",
15960795933SNeil Armstrong			  "J9 Header Pin16",
16060795933SNeil Armstrong			  "J9 Header Pin15",
16160795933SNeil Armstrong			  "J9 Header Pin33",
16260795933SNeil Armstrong			  "IR In",
16360795933SNeil Armstrong			  "HDMI CEC",
164c6496b47SJerome Brunet			  "SYS LED",
165c6496b47SJerome Brunet			  /* GPIO_TEST_N */
166c6496b47SJerome Brunet			  "";
16760795933SNeil Armstrong};
16860795933SNeil Armstrong
1695b780126SNeil Armstrong&gpio {
17060795933SNeil Armstrong	gpio-line-names = /* Bank GPIOZ */
17160795933SNeil Armstrong			  "", "", "", "", "", "", "",
17260795933SNeil Armstrong			  "", "", "", "", "", "", "",
17360795933SNeil Armstrong			  "Power OFF",
17460795933SNeil Armstrong			  "VCCK Enable",
17560795933SNeil Armstrong			  /* Bank GPIOH */
17660795933SNeil Armstrong			  "HDMI HPD", "HDMI SDA", "HDMI SCL",
17760795933SNeil Armstrong			  "HDMI_5V_EN", "SPDIF",
17860795933SNeil Armstrong			  "J9 Header Pin37",
17960795933SNeil Armstrong			  "J9 Header Pin30",
18060795933SNeil Armstrong			  "J9 Header Pin29",
18160795933SNeil Armstrong			  "J9 Header Pin32",
18260795933SNeil Armstrong			  "J9 Header Pin31",
18360795933SNeil Armstrong			  /* Bank BOOT */
18460795933SNeil Armstrong			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
18560795933SNeil Armstrong			  "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
18660795933SNeil Armstrong			  "eMMC Clk", "eMMC Reset", "eMMC CMD",
18760795933SNeil Armstrong			  "", "BOOT_MODE", "", "", "eMMC Data Strobe",
18860795933SNeil Armstrong			  /* Bank CARD */
18960795933SNeil Armstrong			  "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
19060795933SNeil Armstrong			  "SDCard D3", "SDCard D2", "SDCard Det",
19160795933SNeil Armstrong			  /* Bank GPIODV */
19260795933SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "", "",
19360795933SNeil Armstrong			  "", "", "", "", "", "", "", "", "", "", "", "",
19460795933SNeil Armstrong			  "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
19560795933SNeil Armstrong			  "VCCK Regulator", "VDDEE Regulator",
19660795933SNeil Armstrong			  /* Bank GPIOX */
19760795933SNeil Armstrong			  "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
19860795933SNeil Armstrong			  "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
19960795933SNeil Armstrong			  "WIFI Power Enable", "WIFI WAKE HOST",
20060795933SNeil Armstrong			  "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
20160795933SNeil Armstrong			  "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
20260795933SNeil Armstrong			  "Bluetooth UART TX", "Bluetooth UART RX",
20360795933SNeil Armstrong			  "Bluetooth UART CTS", "Bluetooth UART RTS",
20460795933SNeil Armstrong			  "WIFI 32K", "Bluetooth Enable",
20560795933SNeil Armstrong			  "Bluetooth WAKE HOST",
20660795933SNeil Armstrong			  /* Bank GPIOCLK */
207c6496b47SJerome Brunet			  "", "J9 Header Pin39";
20860795933SNeil Armstrong};
20960795933SNeil Armstrong
210e15d2774SMartin Blumenstingl&pwm_AO_ab {
211e15d2774SMartin Blumenstingl	status = "okay";
212e15d2774SMartin Blumenstingl	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
213e15d2774SMartin Blumenstingl	pinctrl-names = "default";
214e15d2774SMartin Blumenstingl};
215e15d2774SMartin Blumenstingl
216e15d2774SMartin Blumenstingl&pwm_ef {
217e15d2774SMartin Blumenstingl	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
218e15d2774SMartin Blumenstingl};
219e15d2774SMartin Blumenstingl
220e15d2774SMartin Blumenstingl&sd_emmc_a {
2216b197abeSArtem Lapkin	max-frequency = <100000000>;
222dd5297ccSChristian Hewitt};
223dd5297ccSChristian Hewitt
224e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
225e15d2774SMartin Blumenstingl&uart_AO {
226e15d2774SMartin Blumenstingl	status = "okay";
227e15d2774SMartin Blumenstingl};
228e15d2774SMartin Blumenstingl
229e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
230e15d2774SMartin Blumenstingl&uart_AO_B {
231e15d2774SMartin Blumenstingl	status = "okay";
232e15d2774SMartin Blumenstingl	pinctrl-0 = <&uart_ao_b_pins>;
233e15d2774SMartin Blumenstingl	pinctrl-names = "default";
234e15d2774SMartin Blumenstingl};
2352f9139c2SMartin Blumenstingl
2362f9139c2SMartin Blumenstingl&usb {
2372f9139c2SMartin Blumenstingl	dr_mode = "peripheral";
2382f9139c2SMartin Blumenstingl};
239