18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci/dts-v1/;
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#include "meson-gxl-s905x-p212.dtsi"
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/ {
138c2ecf20Sopenharmony_ci	compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl";
148c2ecf20Sopenharmony_ci	model = "Khadas VIM";
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	adc-keys {
178c2ecf20Sopenharmony_ci		compatible = "adc-keys";
188c2ecf20Sopenharmony_ci		io-channels = <&saradc 0>;
198c2ecf20Sopenharmony_ci		io-channel-names = "buttons";
208c2ecf20Sopenharmony_ci		keyup-threshold-microvolt = <1710000>;
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci		button-function {
238c2ecf20Sopenharmony_ci			label = "Function";
248c2ecf20Sopenharmony_ci			linux,code = <KEY_FN>;
258c2ecf20Sopenharmony_ci			press-threshold-microvolt = <10000>;
268c2ecf20Sopenharmony_ci		};
278c2ecf20Sopenharmony_ci	};
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	aliases {
308c2ecf20Sopenharmony_ci		serial2 = &uart_AO_B;
318c2ecf20Sopenharmony_ci		ethernet0 = &ethmac;
328c2ecf20Sopenharmony_ci	};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	gpio-keys-polled {
358c2ecf20Sopenharmony_ci		compatible = "gpio-keys-polled";
368c2ecf20Sopenharmony_ci		poll-interval = <100>;
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci		power-button {
398c2ecf20Sopenharmony_ci			label = "power";
408c2ecf20Sopenharmony_ci			linux,code = <KEY_POWER>;
418c2ecf20Sopenharmony_ci			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
428c2ecf20Sopenharmony_ci		};
438c2ecf20Sopenharmony_ci	};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	pwmleds {
468c2ecf20Sopenharmony_ci		compatible = "pwm-leds";
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci		power {
498c2ecf20Sopenharmony_ci			label = "vim:red:power";
508c2ecf20Sopenharmony_ci			pwms = <&pwm_AO_ab 1 7812500 0>;
518c2ecf20Sopenharmony_ci			max-brightness = <255>;
528c2ecf20Sopenharmony_ci			linux,default-trigger = "default-on";
538c2ecf20Sopenharmony_ci		};
548c2ecf20Sopenharmony_ci	};
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	hdmi-connector {
578c2ecf20Sopenharmony_ci		compatible = "hdmi-connector";
588c2ecf20Sopenharmony_ci		type = "a";
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci		port {
618c2ecf20Sopenharmony_ci			hdmi_connector_in: endpoint {
628c2ecf20Sopenharmony_ci				remote-endpoint = <&hdmi_tx_tmds_out>;
638c2ecf20Sopenharmony_ci			};
648c2ecf20Sopenharmony_ci		};
658c2ecf20Sopenharmony_ci	};
668c2ecf20Sopenharmony_ci};
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci&cec_AO {
698c2ecf20Sopenharmony_ci	status = "okay";
708c2ecf20Sopenharmony_ci	pinctrl-0 = <&ao_cec_pins>;
718c2ecf20Sopenharmony_ci	pinctrl-names = "default";
728c2ecf20Sopenharmony_ci	hdmi-phandle = <&hdmi_tx>;
738c2ecf20Sopenharmony_ci};
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci&hdmi_tx {
768c2ecf20Sopenharmony_ci	status = "okay";
778c2ecf20Sopenharmony_ci	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
788c2ecf20Sopenharmony_ci	pinctrl-names = "default";
798c2ecf20Sopenharmony_ci	hdmi-supply = <&hdmi_5v>;
808c2ecf20Sopenharmony_ci};
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci&hdmi_tx_tmds_port {
838c2ecf20Sopenharmony_ci	hdmi_tx_tmds_out: endpoint {
848c2ecf20Sopenharmony_ci		remote-endpoint = <&hdmi_connector_in>;
858c2ecf20Sopenharmony_ci	};
868c2ecf20Sopenharmony_ci};
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci&i2c_A {
898c2ecf20Sopenharmony_ci	status = "okay";
908c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c_a_pins>;
918c2ecf20Sopenharmony_ci	pinctrl-names = "default";
928c2ecf20Sopenharmony_ci};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci&i2c_B {
958c2ecf20Sopenharmony_ci	status = "okay";
968c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c_b_pins>;
978c2ecf20Sopenharmony_ci	pinctrl-names = "default";
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci	rtc: rtc@51 {
1008c2ecf20Sopenharmony_ci		/* has to be enabled manually when a battery is connected: */
1018c2ecf20Sopenharmony_ci		status = "disabled";
1028c2ecf20Sopenharmony_ci		compatible = "haoyu,hym8563";
1038c2ecf20Sopenharmony_ci		reg = <0x51>;
1048c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1058c2ecf20Sopenharmony_ci		clock-frequency = <32768>;
1068c2ecf20Sopenharmony_ci		clock-output-names = "xin32k";
1078c2ecf20Sopenharmony_ci	};
1088c2ecf20Sopenharmony_ci};
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci&ir {
1118c2ecf20Sopenharmony_ci	linux,rc-map-name = "rc-khadas";
1128c2ecf20Sopenharmony_ci};
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci&gpio_ao {
1158c2ecf20Sopenharmony_ci	gpio-line-names = "UART TX",
1168c2ecf20Sopenharmony_ci			  "UART RX",
1178c2ecf20Sopenharmony_ci			  "Power Key In",
1188c2ecf20Sopenharmony_ci			  "J9 Header Pin35",
1198c2ecf20Sopenharmony_ci			  "J9 Header Pin16",
1208c2ecf20Sopenharmony_ci			  "J9 Header Pin15",
1218c2ecf20Sopenharmony_ci			  "J9 Header Pin33",
1228c2ecf20Sopenharmony_ci			  "IR In",
1238c2ecf20Sopenharmony_ci			  "HDMI CEC",
1248c2ecf20Sopenharmony_ci			  "SYS LED",
1258c2ecf20Sopenharmony_ci			  /* GPIO_TEST_N */
1268c2ecf20Sopenharmony_ci			  "";
1278c2ecf20Sopenharmony_ci};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci&gpio {
1308c2ecf20Sopenharmony_ci	gpio-line-names = /* Bank GPIOZ */
1318c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "",
1328c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "",
1338c2ecf20Sopenharmony_ci			  "Power OFF",
1348c2ecf20Sopenharmony_ci			  "VCCK Enable",
1358c2ecf20Sopenharmony_ci			  /* Bank GPIOH */
1368c2ecf20Sopenharmony_ci			  "HDMI HPD", "HDMI SDA", "HDMI SCL",
1378c2ecf20Sopenharmony_ci			  "HDMI_5V_EN", "SPDIF",
1388c2ecf20Sopenharmony_ci			  "J9 Header Pin37",
1398c2ecf20Sopenharmony_ci			  "J9 Header Pin30",
1408c2ecf20Sopenharmony_ci			  "J9 Header Pin29",
1418c2ecf20Sopenharmony_ci			  "J9 Header Pin32",
1428c2ecf20Sopenharmony_ci			  "J9 Header Pin31",
1438c2ecf20Sopenharmony_ci			  /* Bank BOOT */
1448c2ecf20Sopenharmony_ci			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
1458c2ecf20Sopenharmony_ci			  "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
1468c2ecf20Sopenharmony_ci			  "eMMC Clk", "eMMC Reset", "eMMC CMD",
1478c2ecf20Sopenharmony_ci			  "", "BOOT_MODE", "", "", "eMMC Data Strobe",
1488c2ecf20Sopenharmony_ci			  /* Bank CARD */
1498c2ecf20Sopenharmony_ci			  "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
1508c2ecf20Sopenharmony_ci			  "SDCard D3", "SDCard D2", "SDCard Det",
1518c2ecf20Sopenharmony_ci			  /* Bank GPIODV */
1528c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "", "", "",
1538c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "", "", "",
1548c2ecf20Sopenharmony_ci			  "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
1558c2ecf20Sopenharmony_ci			  "VCCK Regulator", "VDDEE Regulator",
1568c2ecf20Sopenharmony_ci			  /* Bank GPIOX */
1578c2ecf20Sopenharmony_ci			  "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
1588c2ecf20Sopenharmony_ci			  "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
1598c2ecf20Sopenharmony_ci			  "WIFI Power Enable", "WIFI WAKE HOST",
1608c2ecf20Sopenharmony_ci			  "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
1618c2ecf20Sopenharmony_ci			  "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
1628c2ecf20Sopenharmony_ci			  "Bluetooth UART TX", "Bluetooth UART RX",
1638c2ecf20Sopenharmony_ci			  "Bluetooth UART CTS", "Bluetooth UART RTS",
1648c2ecf20Sopenharmony_ci			  "WIFI 32K", "Bluetooth Enable",
1658c2ecf20Sopenharmony_ci			  "Bluetooth WAKE HOST",
1668c2ecf20Sopenharmony_ci			  /* Bank GPIOCLK */
1678c2ecf20Sopenharmony_ci			  "", "J9 Header Pin39";
1688c2ecf20Sopenharmony_ci};
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci&pwm_AO_ab {
1718c2ecf20Sopenharmony_ci	status = "okay";
1728c2ecf20Sopenharmony_ci	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
1738c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1748c2ecf20Sopenharmony_ci	clocks = <&xtal> , <&xtal>;
1758c2ecf20Sopenharmony_ci	clock-names = "clkin0", "clkin1" ;
1768c2ecf20Sopenharmony_ci};
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci&pwm_ef {
1798c2ecf20Sopenharmony_ci	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
1808c2ecf20Sopenharmony_ci};
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci&sd_emmc_a {
1838c2ecf20Sopenharmony_ci	brcmf: wifi@1 {
1848c2ecf20Sopenharmony_ci		reg = <1>;
1858c2ecf20Sopenharmony_ci		compatible = "brcm,bcm4329-fmac";
1868c2ecf20Sopenharmony_ci	};
1878c2ecf20Sopenharmony_ci};
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci&uart_A {
1908c2ecf20Sopenharmony_ci	bluetooth {
1918c2ecf20Sopenharmony_ci		compatible = "brcm,bcm43438-bt";
1928c2ecf20Sopenharmony_ci		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
1938c2ecf20Sopenharmony_ci		max-speed = <2000000>;
1948c2ecf20Sopenharmony_ci		clocks = <&wifi32k>;
1958c2ecf20Sopenharmony_ci		clock-names = "lpo";
1968c2ecf20Sopenharmony_ci	};
1978c2ecf20Sopenharmony_ci};
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
2008c2ecf20Sopenharmony_ci&uart_AO {
2018c2ecf20Sopenharmony_ci	status = "okay";
2028c2ecf20Sopenharmony_ci};
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
2058c2ecf20Sopenharmony_ci&uart_AO_B {
2068c2ecf20Sopenharmony_ci	status = "okay";
2078c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart_ao_b_pins>;
2088c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2098c2ecf20Sopenharmony_ci};
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci&usb {
2128c2ecf20Sopenharmony_ci	dr_mode = "peripheral";
2138c2ecf20Sopenharmony_ci};
214