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