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 "meson-gxl-s905x-p212.dtsi" 9c993c4e8SChristian Hewitt#include <dt-bindings/input/input.h> 104e0649f4SChristian Hewitt#include <dt-bindings/sound/meson-aiu.h> 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 poll-interval = <100>; 37e15d2774SMartin Blumenstingl 38d5f6fa90SChristian Hewitt power-button { 39e15d2774SMartin Blumenstingl label = "power"; 40e15d2774SMartin Blumenstingl linux,code = <KEY_POWER>; 41e15d2774SMartin Blumenstingl gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 42e15d2774SMartin Blumenstingl }; 43e15d2774SMartin Blumenstingl }; 44e15d2774SMartin Blumenstingl 45a74978f3SAlexander Dahl led-controller { 46e15d2774SMartin Blumenstingl compatible = "pwm-leds"; 47e15d2774SMartin Blumenstingl 48a74978f3SAlexander Dahl led-1 { 49e15d2774SMartin Blumenstingl label = "vim:red:power"; 50e15d2774SMartin Blumenstingl pwms = <&pwm_AO_ab 1 7812500 0>; 51e15d2774SMartin Blumenstingl max-brightness = <255>; 52e15d2774SMartin Blumenstingl linux,default-trigger = "default-on"; 53e15d2774SMartin Blumenstingl }; 54e15d2774SMartin Blumenstingl }; 55b43186dbSNeil Armstrong 56b43186dbSNeil Armstrong hdmi-connector { 57b43186dbSNeil Armstrong compatible = "hdmi-connector"; 58b43186dbSNeil Armstrong type = "a"; 59b43186dbSNeil Armstrong 60b43186dbSNeil Armstrong port { 61b43186dbSNeil Armstrong hdmi_connector_in: endpoint { 62b43186dbSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 63b43186dbSNeil Armstrong }; 64b43186dbSNeil Armstrong }; 65b43186dbSNeil Armstrong }; 664e0649f4SChristian Hewitt 674e0649f4SChristian Hewitt sound { 684e0649f4SChristian Hewitt compatible = "amlogic,gx-sound-card"; 69933b80edSChristian Hewitt model = "KHADAS-VIM"; 704e0649f4SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 714e0649f4SChristian Hewitt <&clkc CLKID_MPLL1>, 724e0649f4SChristian Hewitt <&clkc CLKID_MPLL2>; 734e0649f4SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 744e0649f4SChristian Hewitt assigned-clock-rates = <294912000>, 754e0649f4SChristian Hewitt <270950400>, 764e0649f4SChristian Hewitt <393216000>; 774e0649f4SChristian Hewitt 784e0649f4SChristian Hewitt dai-link-0 { 794e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 804e0649f4SChristian Hewitt }; 814e0649f4SChristian Hewitt 824e0649f4SChristian Hewitt dai-link-1 { 834e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 844e0649f4SChristian Hewitt dai-format = "i2s"; 854e0649f4SChristian Hewitt mclk-fs = <256>; 864e0649f4SChristian Hewitt 874e0649f4SChristian Hewitt codec-0 { 884e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 894e0649f4SChristian Hewitt }; 904e0649f4SChristian Hewitt }; 914e0649f4SChristian Hewitt 924e0649f4SChristian Hewitt dai-link-2 { 934e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 944e0649f4SChristian Hewitt 954e0649f4SChristian Hewitt codec-0 { 964e0649f4SChristian Hewitt sound-dai = <&hdmi_tx>; 974e0649f4SChristian Hewitt }; 984e0649f4SChristian Hewitt }; 994e0649f4SChristian Hewitt }; 1004e0649f4SChristian Hewitt}; 1014e0649f4SChristian Hewitt 1024e0649f4SChristian Hewitt&aiu { 1034e0649f4SChristian Hewitt status = "okay"; 104b43186dbSNeil Armstrong}; 105b43186dbSNeil Armstrong 106b16c71c9SNeil Armstrong&cec_AO { 107b16c71c9SNeil Armstrong status = "okay"; 108b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 109b16c71c9SNeil Armstrong pinctrl-names = "default"; 110b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 111b16c71c9SNeil Armstrong}; 112b16c71c9SNeil Armstrong 113b43186dbSNeil Armstrong&hdmi_tx { 114b43186dbSNeil Armstrong status = "okay"; 115b43186dbSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 116b43186dbSNeil Armstrong pinctrl-names = "default"; 117e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 118b43186dbSNeil Armstrong}; 119b43186dbSNeil Armstrong 120b43186dbSNeil Armstrong&hdmi_tx_tmds_port { 121b43186dbSNeil Armstrong hdmi_tx_tmds_out: endpoint { 122b43186dbSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 123b43186dbSNeil Armstrong }; 124e15d2774SMartin Blumenstingl}; 125e15d2774SMartin Blumenstingl 126e15d2774SMartin Blumenstingl&i2c_A { 127e15d2774SMartin Blumenstingl status = "okay"; 128e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_a_pins>; 129e15d2774SMartin Blumenstingl pinctrl-names = "default"; 130e15d2774SMartin Blumenstingl}; 131e15d2774SMartin Blumenstingl 132e15d2774SMartin Blumenstingl&i2c_B { 133e15d2774SMartin Blumenstingl status = "okay"; 134e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_b_pins>; 135e15d2774SMartin Blumenstingl pinctrl-names = "default"; 136e15d2774SMartin Blumenstingl 137e15d2774SMartin Blumenstingl rtc: rtc@51 { 138287eb2beSChristian Hewitt status = "okay"; 139e15d2774SMartin Blumenstingl compatible = "haoyu,hym8563"; 140e15d2774SMartin Blumenstingl reg = <0x51>; 141e15d2774SMartin Blumenstingl #clock-cells = <0>; 142e15d2774SMartin Blumenstingl clock-output-names = "xin32k"; 143e15d2774SMartin Blumenstingl }; 144e15d2774SMartin Blumenstingl}; 145e15d2774SMartin Blumenstingl 146e15d2774SMartin Blumenstingl&ir { 147c9ee1d25SChristian Hewitt linux,rc-map-name = "rc-khadas"; 148e15d2774SMartin Blumenstingl}; 149e15d2774SMartin Blumenstingl 1505b780126SNeil Armstrong&gpio_ao { 15160795933SNeil Armstrong gpio-line-names = "UART TX", 15260795933SNeil Armstrong "UART RX", 15360795933SNeil Armstrong "Power Key In", 15460795933SNeil Armstrong "J9 Header Pin35", 15560795933SNeil Armstrong "J9 Header Pin16", 15660795933SNeil Armstrong "J9 Header Pin15", 15760795933SNeil Armstrong "J9 Header Pin33", 15860795933SNeil Armstrong "IR In", 15960795933SNeil Armstrong "HDMI CEC", 160c6496b47SJerome Brunet "SYS LED", 161c6496b47SJerome Brunet /* GPIO_TEST_N */ 162c6496b47SJerome Brunet ""; 16360795933SNeil Armstrong}; 16460795933SNeil Armstrong 1655b780126SNeil Armstrong&gpio { 16660795933SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 16760795933SNeil Armstrong "", "", "", "", "", "", "", 16860795933SNeil Armstrong "", "", "", "", "", "", "", 16960795933SNeil Armstrong "Power OFF", 17060795933SNeil Armstrong "VCCK Enable", 17160795933SNeil Armstrong /* Bank GPIOH */ 17260795933SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 17360795933SNeil Armstrong "HDMI_5V_EN", "SPDIF", 17460795933SNeil Armstrong "J9 Header Pin37", 17560795933SNeil Armstrong "J9 Header Pin30", 17660795933SNeil Armstrong "J9 Header Pin29", 17760795933SNeil Armstrong "J9 Header Pin32", 17860795933SNeil Armstrong "J9 Header Pin31", 17960795933SNeil Armstrong /* Bank BOOT */ 18060795933SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 18160795933SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 18260795933SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 18360795933SNeil Armstrong "", "BOOT_MODE", "", "", "eMMC Data Strobe", 18460795933SNeil Armstrong /* Bank CARD */ 18560795933SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 18660795933SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 18760795933SNeil Armstrong /* Bank GPIODV */ 18860795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 18960795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19060795933SNeil Armstrong "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", 19160795933SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 19260795933SNeil Armstrong /* Bank GPIOX */ 19360795933SNeil Armstrong "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", 19460795933SNeil Armstrong "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", 19560795933SNeil Armstrong "WIFI Power Enable", "WIFI WAKE HOST", 19660795933SNeil Armstrong "Bluetooth PCM DOUT", "Bluetooth PCM DIN", 19760795933SNeil Armstrong "Bluetooth PCM SYNC", "Bluetooth PCM CLK", 19860795933SNeil Armstrong "Bluetooth UART TX", "Bluetooth UART RX", 19960795933SNeil Armstrong "Bluetooth UART CTS", "Bluetooth UART RTS", 20060795933SNeil Armstrong "WIFI 32K", "Bluetooth Enable", 20160795933SNeil Armstrong "Bluetooth WAKE HOST", 20260795933SNeil Armstrong /* Bank GPIOCLK */ 203c6496b47SJerome Brunet "", "J9 Header Pin39"; 20460795933SNeil Armstrong}; 20560795933SNeil Armstrong 206e15d2774SMartin Blumenstingl&pwm_AO_ab { 207e15d2774SMartin Blumenstingl status = "okay"; 208e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 209e15d2774SMartin Blumenstingl pinctrl-names = "default"; 2106620f146SJerome Brunet clocks = <&xtal> , <&xtal>; 2116620f146SJerome Brunet clock-names = "clkin0", "clkin1" ; 212e15d2774SMartin Blumenstingl}; 213e15d2774SMartin Blumenstingl 214e15d2774SMartin Blumenstingl&pwm_ef { 215e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; 216e15d2774SMartin Blumenstingl}; 217e15d2774SMartin Blumenstingl 218e15d2774SMartin Blumenstingl&sd_emmc_a { 219*6b197abeSArtem Lapkin max-frequency = <100000000>; 220dd5297ccSChristian Hewitt}; 221dd5297ccSChristian Hewitt 222e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 223e15d2774SMartin Blumenstingl&uart_AO { 224e15d2774SMartin Blumenstingl status = "okay"; 225e15d2774SMartin Blumenstingl}; 226e15d2774SMartin Blumenstingl 227e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 228e15d2774SMartin Blumenstingl&uart_AO_B { 229e15d2774SMartin Blumenstingl status = "okay"; 230e15d2774SMartin Blumenstingl pinctrl-0 = <&uart_ao_b_pins>; 231e15d2774SMartin Blumenstingl pinctrl-names = "default"; 232e15d2774SMartin Blumenstingl}; 2332f9139c2SMartin Blumenstingl 2342f9139c2SMartin Blumenstingl&usb { 2352f9139c2SMartin Blumenstingl dr_mode = "peripheral"; 2362f9139c2SMartin Blumenstingl}; 237