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 <dt-bindings/input/input.h> 9e15d2774SMartin Blumenstingl 10e15d2774SMartin Blumenstingl#include "meson-gxl-s905x-p212.dtsi" 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 = ðmac; 32e15d2774SMartin Blumenstingl }; 33e15d2774SMartin Blumenstingl 34e15d2774SMartin Blumenstingl gpio-keys-polled { 35e15d2774SMartin Blumenstingl compatible = "gpio-keys-polled"; 36e15d2774SMartin Blumenstingl #address-cells = <1>; 37e15d2774SMartin Blumenstingl #size-cells = <0>; 38e15d2774SMartin Blumenstingl poll-interval = <100>; 39e15d2774SMartin Blumenstingl 40e15d2774SMartin Blumenstingl button@0 { 41e15d2774SMartin Blumenstingl label = "power"; 42e15d2774SMartin Blumenstingl linux,code = <KEY_POWER>; 43e15d2774SMartin Blumenstingl gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 44e15d2774SMartin Blumenstingl }; 45e15d2774SMartin Blumenstingl }; 46e15d2774SMartin Blumenstingl 47e15d2774SMartin Blumenstingl pwmleds { 48e15d2774SMartin Blumenstingl compatible = "pwm-leds"; 49e15d2774SMartin Blumenstingl 50e15d2774SMartin Blumenstingl power { 51e15d2774SMartin Blumenstingl label = "vim:red:power"; 52e15d2774SMartin Blumenstingl pwms = <&pwm_AO_ab 1 7812500 0>; 53e15d2774SMartin Blumenstingl max-brightness = <255>; 54e15d2774SMartin Blumenstingl linux,default-trigger = "default-on"; 55e15d2774SMartin Blumenstingl }; 56e15d2774SMartin Blumenstingl }; 57b43186dbSNeil Armstrong 58b43186dbSNeil Armstrong hdmi-connector { 59b43186dbSNeil Armstrong compatible = "hdmi-connector"; 60b43186dbSNeil Armstrong type = "a"; 61b43186dbSNeil Armstrong 62b43186dbSNeil Armstrong port { 63b43186dbSNeil Armstrong hdmi_connector_in: endpoint { 64b43186dbSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 65b43186dbSNeil Armstrong }; 66b43186dbSNeil Armstrong }; 67b43186dbSNeil Armstrong }; 68b43186dbSNeil Armstrong}; 69b43186dbSNeil Armstrong 70b16c71c9SNeil Armstrong&cec_AO { 71b16c71c9SNeil Armstrong status = "okay"; 72b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 73b16c71c9SNeil Armstrong pinctrl-names = "default"; 74b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 75b16c71c9SNeil Armstrong}; 76b16c71c9SNeil Armstrong 77b43186dbSNeil Armstrong&hdmi_tx { 78b43186dbSNeil Armstrong status = "okay"; 79b43186dbSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 80b43186dbSNeil Armstrong pinctrl-names = "default"; 81b43186dbSNeil Armstrong}; 82b43186dbSNeil Armstrong 83b43186dbSNeil Armstrong&hdmi_tx_tmds_port { 84b43186dbSNeil Armstrong hdmi_tx_tmds_out: endpoint { 85b43186dbSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 86b43186dbSNeil Armstrong }; 87e15d2774SMartin Blumenstingl}; 88e15d2774SMartin Blumenstingl 89e15d2774SMartin Blumenstingl&i2c_A { 90e15d2774SMartin Blumenstingl status = "okay"; 91e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_a_pins>; 92e15d2774SMartin Blumenstingl pinctrl-names = "default"; 93e15d2774SMartin Blumenstingl}; 94e15d2774SMartin Blumenstingl 95e15d2774SMartin Blumenstingl&i2c_B { 96e15d2774SMartin Blumenstingl status = "okay"; 97e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_b_pins>; 98e15d2774SMartin Blumenstingl pinctrl-names = "default"; 99e15d2774SMartin Blumenstingl 100e15d2774SMartin Blumenstingl rtc: rtc@51 { 101e15d2774SMartin Blumenstingl /* has to be enabled manually when a battery is connected: */ 102e15d2774SMartin Blumenstingl status = "disabled"; 103e15d2774SMartin Blumenstingl compatible = "haoyu,hym8563"; 104e15d2774SMartin Blumenstingl reg = <0x51>; 105e15d2774SMartin Blumenstingl #clock-cells = <0>; 106e15d2774SMartin Blumenstingl clock-frequency = <32768>; 107e15d2774SMartin Blumenstingl clock-output-names = "xin32k"; 108e15d2774SMartin Blumenstingl }; 109e15d2774SMartin Blumenstingl}; 110e15d2774SMartin Blumenstingl 111e15d2774SMartin Blumenstingl&ir { 112e15d2774SMartin Blumenstingl linux,rc-map-name = "rc-geekbox"; 113e15d2774SMartin Blumenstingl}; 114e15d2774SMartin Blumenstingl 11560795933SNeil Armstrong&pinctrl_aobus { 11660795933SNeil Armstrong gpio-line-names = "UART TX", 11760795933SNeil Armstrong "UART RX", 11860795933SNeil Armstrong "Power Key In", 11960795933SNeil Armstrong "J9 Header Pin35", 12060795933SNeil Armstrong "J9 Header Pin16", 12160795933SNeil Armstrong "J9 Header Pin15", 12260795933SNeil Armstrong "J9 Header Pin33", 12360795933SNeil Armstrong "IR In", 12460795933SNeil Armstrong "HDMI CEC", 125c6496b47SJerome Brunet "SYS LED", 126c6496b47SJerome Brunet /* GPIO_TEST_N */ 127c6496b47SJerome Brunet ""; 12860795933SNeil Armstrong}; 12960795933SNeil Armstrong 13060795933SNeil Armstrong&pinctrl_periphs { 13160795933SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 13260795933SNeil Armstrong "", "", "", "", "", "", "", 13360795933SNeil Armstrong "", "", "", "", "", "", "", 13460795933SNeil Armstrong "Power OFF", 13560795933SNeil Armstrong "VCCK Enable", 13660795933SNeil Armstrong /* Bank GPIOH */ 13760795933SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 13860795933SNeil Armstrong "HDMI_5V_EN", "SPDIF", 13960795933SNeil Armstrong "J9 Header Pin37", 14060795933SNeil Armstrong "J9 Header Pin30", 14160795933SNeil Armstrong "J9 Header Pin29", 14260795933SNeil Armstrong "J9 Header Pin32", 14360795933SNeil Armstrong "J9 Header Pin31", 14460795933SNeil Armstrong /* Bank BOOT */ 14560795933SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 14660795933SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 14760795933SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 14860795933SNeil Armstrong "", "BOOT_MODE", "", "", "eMMC Data Strobe", 14960795933SNeil Armstrong /* Bank CARD */ 15060795933SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 15160795933SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 15260795933SNeil Armstrong /* Bank GPIODV */ 15360795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 15460795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 15560795933SNeil Armstrong "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", 15660795933SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 15760795933SNeil Armstrong /* Bank GPIOX */ 15860795933SNeil Armstrong "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", 15960795933SNeil Armstrong "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", 16060795933SNeil Armstrong "WIFI Power Enable", "WIFI WAKE HOST", 16160795933SNeil Armstrong "Bluetooth PCM DOUT", "Bluetooth PCM DIN", 16260795933SNeil Armstrong "Bluetooth PCM SYNC", "Bluetooth PCM CLK", 16360795933SNeil Armstrong "Bluetooth UART TX", "Bluetooth UART RX", 16460795933SNeil Armstrong "Bluetooth UART CTS", "Bluetooth UART RTS", 16560795933SNeil Armstrong "WIFI 32K", "Bluetooth Enable", 16660795933SNeil Armstrong "Bluetooth WAKE HOST", 16760795933SNeil Armstrong /* Bank GPIOCLK */ 168c6496b47SJerome Brunet "", "J9 Header Pin39"; 16960795933SNeil Armstrong}; 17060795933SNeil Armstrong 171e15d2774SMartin Blumenstingl&pwm_AO_ab { 172e15d2774SMartin Blumenstingl status = "okay"; 173e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 174e15d2774SMartin Blumenstingl pinctrl-names = "default"; 1756620f146SJerome Brunet clocks = <&xtal> , <&xtal>; 1766620f146SJerome Brunet clock-names = "clkin0", "clkin1" ; 177e15d2774SMartin Blumenstingl}; 178e15d2774SMartin Blumenstingl 179e15d2774SMartin Blumenstingl&pwm_ef { 180e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; 181e15d2774SMartin Blumenstingl}; 182e15d2774SMartin Blumenstingl 183e15d2774SMartin Blumenstingl&sd_emmc_a { 184c26db7aaSAndreas Färber brcmf: wifi@1 { 185e15d2774SMartin Blumenstingl reg = <1>; 186e15d2774SMartin Blumenstingl compatible = "brcm,bcm4329-fmac"; 187e15d2774SMartin Blumenstingl }; 188e15d2774SMartin Blumenstingl}; 189e15d2774SMartin Blumenstingl 190dd5297ccSChristian Hewitt&uart_A { 191dd5297ccSChristian Hewitt bluetooth { 192dd5297ccSChristian Hewitt compatible = "brcm,bcm43438-bt"; 193dd5297ccSChristian Hewitt shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 194dd5297ccSChristian Hewitt }; 195dd5297ccSChristian Hewitt}; 196dd5297ccSChristian Hewitt 197e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 198e15d2774SMartin Blumenstingl&uart_AO { 199e15d2774SMartin Blumenstingl status = "okay"; 200e15d2774SMartin Blumenstingl}; 201e15d2774SMartin Blumenstingl 202e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 203e15d2774SMartin Blumenstingl&uart_AO_B { 204e15d2774SMartin Blumenstingl status = "okay"; 205e15d2774SMartin Blumenstingl pinctrl-0 = <&uart_ao_b_pins>; 206e15d2774SMartin Blumenstingl pinctrl-names = "default"; 207e15d2774SMartin Blumenstingl}; 208