1*4549e789STom Rini// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
25ff2ee44SNeil Armstrong/*
35ff2ee44SNeil Armstrong * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
45ff2ee44SNeil Armstrong */
55ff2ee44SNeil Armstrong
65ff2ee44SNeil Armstrong/dts-v1/;
75ff2ee44SNeil Armstrong
85ff2ee44SNeil Armstrong#include <dt-bindings/input/input.h>
95ff2ee44SNeil Armstrong
105ff2ee44SNeil Armstrong#include "meson-gxl-s905x-p212.dtsi"
115ff2ee44SNeil Armstrong
125ff2ee44SNeil Armstrong/ {
135ff2ee44SNeil Armstrong	compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl";
145ff2ee44SNeil Armstrong	model = "Khadas VIM";
155ff2ee44SNeil Armstrong
165ff2ee44SNeil Armstrong	adc-keys {
175ff2ee44SNeil Armstrong		compatible = "adc-keys";
185ff2ee44SNeil Armstrong		io-channels = <&saradc 0>;
195ff2ee44SNeil Armstrong		io-channel-names = "buttons";
205ff2ee44SNeil Armstrong		keyup-threshold-microvolt = <1710000>;
215ff2ee44SNeil Armstrong
225ff2ee44SNeil Armstrong		button-function {
235ff2ee44SNeil Armstrong			label = "Function";
245ff2ee44SNeil Armstrong			linux,code = <KEY_FN>;
255ff2ee44SNeil Armstrong			press-threshold-microvolt = <10000>;
265ff2ee44SNeil Armstrong		};
275ff2ee44SNeil Armstrong	};
285ff2ee44SNeil Armstrong
295ff2ee44SNeil Armstrong	aliases {
305ff2ee44SNeil Armstrong		serial2 = &uart_AO_B;
315ff2ee44SNeil Armstrong	};
325ff2ee44SNeil Armstrong
335ff2ee44SNeil Armstrong	gpio-keys-polled {
345ff2ee44SNeil Armstrong		compatible = "gpio-keys-polled";
355ff2ee44SNeil Armstrong		#address-cells = <1>;
365ff2ee44SNeil Armstrong		#size-cells = <0>;
375ff2ee44SNeil Armstrong		poll-interval = <100>;
385ff2ee44SNeil Armstrong
395ff2ee44SNeil Armstrong		button@0 {
405ff2ee44SNeil Armstrong			label = "power";
415ff2ee44SNeil Armstrong			linux,code = <KEY_POWER>;
425ff2ee44SNeil Armstrong			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
435ff2ee44SNeil Armstrong		};
445ff2ee44SNeil Armstrong	};
455ff2ee44SNeil Armstrong
465ff2ee44SNeil Armstrong	pwmleds {
475ff2ee44SNeil Armstrong		compatible = "pwm-leds";
485ff2ee44SNeil Armstrong
495ff2ee44SNeil Armstrong		power {
505ff2ee44SNeil Armstrong			label = "vim:red:power";
515ff2ee44SNeil Armstrong			pwms = <&pwm_AO_ab 1 7812500 0>;
525ff2ee44SNeil Armstrong			max-brightness = <255>;
535ff2ee44SNeil Armstrong			linux,default-trigger = "default-on";
545ff2ee44SNeil Armstrong		};
555ff2ee44SNeil Armstrong	};
565ff2ee44SNeil Armstrong
575ff2ee44SNeil Armstrong	hdmi-connector {
585ff2ee44SNeil Armstrong		compatible = "hdmi-connector";
595ff2ee44SNeil Armstrong		type = "a";
605ff2ee44SNeil Armstrong
615ff2ee44SNeil Armstrong		port {
625ff2ee44SNeil Armstrong			hdmi_connector_in: endpoint {
635ff2ee44SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
645ff2ee44SNeil Armstrong			};
655ff2ee44SNeil Armstrong		};
665ff2ee44SNeil Armstrong	};
675ff2ee44SNeil Armstrong};
685ff2ee44SNeil Armstrong
695ff2ee44SNeil Armstrong&hdmi_tx {
705ff2ee44SNeil Armstrong	status = "okay";
715ff2ee44SNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
725ff2ee44SNeil Armstrong	pinctrl-names = "default";
735ff2ee44SNeil Armstrong};
745ff2ee44SNeil Armstrong
755ff2ee44SNeil Armstrong&hdmi_tx_tmds_port {
765ff2ee44SNeil Armstrong	hdmi_tx_tmds_out: endpoint {
775ff2ee44SNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
785ff2ee44SNeil Armstrong	};
795ff2ee44SNeil Armstrong};
805ff2ee44SNeil Armstrong
815ff2ee44SNeil Armstrong&i2c_A {
825ff2ee44SNeil Armstrong	status = "okay";
835ff2ee44SNeil Armstrong	pinctrl-0 = <&i2c_a_pins>;
845ff2ee44SNeil Armstrong	pinctrl-names = "default";
855ff2ee44SNeil Armstrong};
865ff2ee44SNeil Armstrong
875ff2ee44SNeil Armstrong&i2c_B {
885ff2ee44SNeil Armstrong	status = "okay";
895ff2ee44SNeil Armstrong	pinctrl-0 = <&i2c_b_pins>;
905ff2ee44SNeil Armstrong	pinctrl-names = "default";
915ff2ee44SNeil Armstrong
925ff2ee44SNeil Armstrong	rtc: rtc@51 {
935ff2ee44SNeil Armstrong		/* has to be enabled manually when a battery is connected: */
945ff2ee44SNeil Armstrong		status = "disabled";
955ff2ee44SNeil Armstrong		compatible = "haoyu,hym8563";
965ff2ee44SNeil Armstrong		reg = <0x51>;
975ff2ee44SNeil Armstrong		#clock-cells = <0>;
985ff2ee44SNeil Armstrong		clock-frequency = <32768>;
995ff2ee44SNeil Armstrong		clock-output-names = "xin32k";
1005ff2ee44SNeil Armstrong	};
1015ff2ee44SNeil Armstrong};
1025ff2ee44SNeil Armstrong
1035ff2ee44SNeil Armstrong&ir {
1045ff2ee44SNeil Armstrong	linux,rc-map-name = "rc-geekbox";
1055ff2ee44SNeil Armstrong};
1065ff2ee44SNeil Armstrong
1075ff2ee44SNeil Armstrong&pwm_AO_ab {
1085ff2ee44SNeil Armstrong	status = "okay";
1095ff2ee44SNeil Armstrong	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
1105ff2ee44SNeil Armstrong	pinctrl-names = "default";
1115ff2ee44SNeil Armstrong	clocks = <&xtal> , <&xtal>;
1125ff2ee44SNeil Armstrong	clock-names = "clkin0", "clkin1" ;
1135ff2ee44SNeil Armstrong};
1145ff2ee44SNeil Armstrong
1155ff2ee44SNeil Armstrong&pwm_ef {
1165ff2ee44SNeil Armstrong	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
1175ff2ee44SNeil Armstrong};
1185ff2ee44SNeil Armstrong
1195ff2ee44SNeil Armstrong&sd_emmc_a {
1205ff2ee44SNeil Armstrong	brcmf: wifi@1 {
1215ff2ee44SNeil Armstrong		reg = <1>;
1225ff2ee44SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
1235ff2ee44SNeil Armstrong	};
1245ff2ee44SNeil Armstrong};
1255ff2ee44SNeil Armstrong
1265ff2ee44SNeil Armstrong/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
1275ff2ee44SNeil Armstrong&uart_AO {
1285ff2ee44SNeil Armstrong	status = "okay";
1295ff2ee44SNeil Armstrong};
1305ff2ee44SNeil Armstrong
1315ff2ee44SNeil Armstrong/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
1325ff2ee44SNeil Armstrong&uart_AO_B {
1335ff2ee44SNeil Armstrong	status = "okay";
1345ff2ee44SNeil Armstrong	pinctrl-0 = <&uart_ao_b_pins>;
1355ff2ee44SNeil Armstrong	pinctrl-names = "default";
1365ff2ee44SNeil Armstrong};
137