1*5ff2ee44SNeil Armstrong/*
2*5ff2ee44SNeil Armstrong * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
3*5ff2ee44SNeil Armstrong *
4*5ff2ee44SNeil Armstrong * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5*5ff2ee44SNeil Armstrong */
6*5ff2ee44SNeil Armstrong
7*5ff2ee44SNeil Armstrong/dts-v1/;
8*5ff2ee44SNeil Armstrong
9*5ff2ee44SNeil Armstrong#include <dt-bindings/input/input.h>
10*5ff2ee44SNeil Armstrong
11*5ff2ee44SNeil Armstrong#include "meson-gxl-s905x-p212.dtsi"
12*5ff2ee44SNeil Armstrong
13*5ff2ee44SNeil Armstrong/ {
14*5ff2ee44SNeil Armstrong	compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl";
15*5ff2ee44SNeil Armstrong	model = "Khadas VIM";
16*5ff2ee44SNeil Armstrong
17*5ff2ee44SNeil Armstrong	adc-keys {
18*5ff2ee44SNeil Armstrong		compatible = "adc-keys";
19*5ff2ee44SNeil Armstrong		io-channels = <&saradc 0>;
20*5ff2ee44SNeil Armstrong		io-channel-names = "buttons";
21*5ff2ee44SNeil Armstrong		keyup-threshold-microvolt = <1710000>;
22*5ff2ee44SNeil Armstrong
23*5ff2ee44SNeil Armstrong		button-function {
24*5ff2ee44SNeil Armstrong			label = "Function";
25*5ff2ee44SNeil Armstrong			linux,code = <KEY_FN>;
26*5ff2ee44SNeil Armstrong			press-threshold-microvolt = <10000>;
27*5ff2ee44SNeil Armstrong		};
28*5ff2ee44SNeil Armstrong	};
29*5ff2ee44SNeil Armstrong
30*5ff2ee44SNeil Armstrong	aliases {
31*5ff2ee44SNeil Armstrong		serial2 = &uart_AO_B;
32*5ff2ee44SNeil Armstrong	};
33*5ff2ee44SNeil Armstrong
34*5ff2ee44SNeil Armstrong	gpio-keys-polled {
35*5ff2ee44SNeil Armstrong		compatible = "gpio-keys-polled";
36*5ff2ee44SNeil Armstrong		#address-cells = <1>;
37*5ff2ee44SNeil Armstrong		#size-cells = <0>;
38*5ff2ee44SNeil Armstrong		poll-interval = <100>;
39*5ff2ee44SNeil Armstrong
40*5ff2ee44SNeil Armstrong		button@0 {
41*5ff2ee44SNeil Armstrong			label = "power";
42*5ff2ee44SNeil Armstrong			linux,code = <KEY_POWER>;
43*5ff2ee44SNeil Armstrong			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
44*5ff2ee44SNeil Armstrong		};
45*5ff2ee44SNeil Armstrong	};
46*5ff2ee44SNeil Armstrong
47*5ff2ee44SNeil Armstrong	pwmleds {
48*5ff2ee44SNeil Armstrong		compatible = "pwm-leds";
49*5ff2ee44SNeil Armstrong
50*5ff2ee44SNeil Armstrong		power {
51*5ff2ee44SNeil Armstrong			label = "vim:red:power";
52*5ff2ee44SNeil Armstrong			pwms = <&pwm_AO_ab 1 7812500 0>;
53*5ff2ee44SNeil Armstrong			max-brightness = <255>;
54*5ff2ee44SNeil Armstrong			linux,default-trigger = "default-on";
55*5ff2ee44SNeil Armstrong		};
56*5ff2ee44SNeil Armstrong	};
57*5ff2ee44SNeil Armstrong
58*5ff2ee44SNeil Armstrong	hdmi-connector {
59*5ff2ee44SNeil Armstrong		compatible = "hdmi-connector";
60*5ff2ee44SNeil Armstrong		type = "a";
61*5ff2ee44SNeil Armstrong
62*5ff2ee44SNeil Armstrong		port {
63*5ff2ee44SNeil Armstrong			hdmi_connector_in: endpoint {
64*5ff2ee44SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
65*5ff2ee44SNeil Armstrong			};
66*5ff2ee44SNeil Armstrong		};
67*5ff2ee44SNeil Armstrong	};
68*5ff2ee44SNeil Armstrong};
69*5ff2ee44SNeil Armstrong
70*5ff2ee44SNeil Armstrong&hdmi_tx {
71*5ff2ee44SNeil Armstrong	status = "okay";
72*5ff2ee44SNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
73*5ff2ee44SNeil Armstrong	pinctrl-names = "default";
74*5ff2ee44SNeil Armstrong};
75*5ff2ee44SNeil Armstrong
76*5ff2ee44SNeil Armstrong&hdmi_tx_tmds_port {
77*5ff2ee44SNeil Armstrong	hdmi_tx_tmds_out: endpoint {
78*5ff2ee44SNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
79*5ff2ee44SNeil Armstrong	};
80*5ff2ee44SNeil Armstrong};
81*5ff2ee44SNeil Armstrong
82*5ff2ee44SNeil Armstrong&i2c_A {
83*5ff2ee44SNeil Armstrong	status = "okay";
84*5ff2ee44SNeil Armstrong	pinctrl-0 = <&i2c_a_pins>;
85*5ff2ee44SNeil Armstrong	pinctrl-names = "default";
86*5ff2ee44SNeil Armstrong};
87*5ff2ee44SNeil Armstrong
88*5ff2ee44SNeil Armstrong&i2c_B {
89*5ff2ee44SNeil Armstrong	status = "okay";
90*5ff2ee44SNeil Armstrong	pinctrl-0 = <&i2c_b_pins>;
91*5ff2ee44SNeil Armstrong	pinctrl-names = "default";
92*5ff2ee44SNeil Armstrong
93*5ff2ee44SNeil Armstrong	rtc: rtc@51 {
94*5ff2ee44SNeil Armstrong		/* has to be enabled manually when a battery is connected: */
95*5ff2ee44SNeil Armstrong		status = "disabled";
96*5ff2ee44SNeil Armstrong		compatible = "haoyu,hym8563";
97*5ff2ee44SNeil Armstrong		reg = <0x51>;
98*5ff2ee44SNeil Armstrong		#clock-cells = <0>;
99*5ff2ee44SNeil Armstrong		clock-frequency = <32768>;
100*5ff2ee44SNeil Armstrong		clock-output-names = "xin32k";
101*5ff2ee44SNeil Armstrong	};
102*5ff2ee44SNeil Armstrong};
103*5ff2ee44SNeil Armstrong
104*5ff2ee44SNeil Armstrong&ir {
105*5ff2ee44SNeil Armstrong	linux,rc-map-name = "rc-geekbox";
106*5ff2ee44SNeil Armstrong};
107*5ff2ee44SNeil Armstrong
108*5ff2ee44SNeil Armstrong&pwm_AO_ab {
109*5ff2ee44SNeil Armstrong	status = "okay";
110*5ff2ee44SNeil Armstrong	pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
111*5ff2ee44SNeil Armstrong	pinctrl-names = "default";
112*5ff2ee44SNeil Armstrong	clocks = <&xtal> , <&xtal>;
113*5ff2ee44SNeil Armstrong	clock-names = "clkin0", "clkin1" ;
114*5ff2ee44SNeil Armstrong};
115*5ff2ee44SNeil Armstrong
116*5ff2ee44SNeil Armstrong&pwm_ef {
117*5ff2ee44SNeil Armstrong	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
118*5ff2ee44SNeil Armstrong};
119*5ff2ee44SNeil Armstrong
120*5ff2ee44SNeil Armstrong&sd_emmc_a {
121*5ff2ee44SNeil Armstrong	brcmf: wifi@1 {
122*5ff2ee44SNeil Armstrong		reg = <1>;
123*5ff2ee44SNeil Armstrong		compatible = "brcm,bcm4329-fmac";
124*5ff2ee44SNeil Armstrong	};
125*5ff2ee44SNeil Armstrong};
126*5ff2ee44SNeil Armstrong
127*5ff2ee44SNeil Armstrong/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */
128*5ff2ee44SNeil Armstrong&uart_AO {
129*5ff2ee44SNeil Armstrong	status = "okay";
130*5ff2ee44SNeil Armstrong};
131*5ff2ee44SNeil Armstrong
132*5ff2ee44SNeil Armstrong/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */
133*5ff2ee44SNeil Armstrong&uart_AO_B {
134*5ff2ee44SNeil Armstrong	status = "okay";
135*5ff2ee44SNeil Armstrong	pinctrl-0 = <&uart_ao_b_pins>;
136*5ff2ee44SNeil Armstrong	pinctrl-names = "default";
137*5ff2ee44SNeil Armstrong};
138