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"; 70*9b5d2511SNeil Armstrong clocks = <&clkc CLKID_MPLL0>, 71*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL1>, 72*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL2>; 73*9b5d2511SNeil Armstrong 744e0649f4SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 754e0649f4SChristian Hewitt <&clkc CLKID_MPLL1>, 764e0649f4SChristian Hewitt <&clkc CLKID_MPLL2>; 774e0649f4SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 784e0649f4SChristian Hewitt assigned-clock-rates = <294912000>, 794e0649f4SChristian Hewitt <270950400>, 804e0649f4SChristian Hewitt <393216000>; 814e0649f4SChristian Hewitt 824e0649f4SChristian Hewitt dai-link-0 { 834e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 844e0649f4SChristian Hewitt }; 854e0649f4SChristian Hewitt 864e0649f4SChristian Hewitt dai-link-1 { 874e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 884e0649f4SChristian Hewitt dai-format = "i2s"; 894e0649f4SChristian Hewitt mclk-fs = <256>; 904e0649f4SChristian Hewitt 914e0649f4SChristian Hewitt codec-0 { 924e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 934e0649f4SChristian Hewitt }; 944e0649f4SChristian Hewitt }; 954e0649f4SChristian Hewitt 964e0649f4SChristian Hewitt dai-link-2 { 974e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 984e0649f4SChristian Hewitt 994e0649f4SChristian Hewitt codec-0 { 1004e0649f4SChristian Hewitt sound-dai = <&hdmi_tx>; 1014e0649f4SChristian Hewitt }; 1024e0649f4SChristian Hewitt }; 1034e0649f4SChristian Hewitt }; 1044e0649f4SChristian Hewitt}; 1054e0649f4SChristian Hewitt 1064e0649f4SChristian Hewitt&aiu { 1074e0649f4SChristian Hewitt status = "okay"; 108b43186dbSNeil Armstrong}; 109b43186dbSNeil Armstrong 110b16c71c9SNeil Armstrong&cec_AO { 111b16c71c9SNeil Armstrong status = "okay"; 112b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 113b16c71c9SNeil Armstrong pinctrl-names = "default"; 114b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 115b16c71c9SNeil Armstrong}; 116b16c71c9SNeil Armstrong 117b43186dbSNeil Armstrong&hdmi_tx { 118b43186dbSNeil Armstrong status = "okay"; 119b43186dbSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 120b43186dbSNeil Armstrong pinctrl-names = "default"; 121e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 122b43186dbSNeil Armstrong}; 123b43186dbSNeil Armstrong 124b43186dbSNeil Armstrong&hdmi_tx_tmds_port { 125b43186dbSNeil Armstrong hdmi_tx_tmds_out: endpoint { 126b43186dbSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 127b43186dbSNeil Armstrong }; 128e15d2774SMartin Blumenstingl}; 129e15d2774SMartin Blumenstingl 130e15d2774SMartin Blumenstingl&i2c_A { 131e15d2774SMartin Blumenstingl status = "okay"; 132e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_a_pins>; 133e15d2774SMartin Blumenstingl pinctrl-names = "default"; 134e15d2774SMartin Blumenstingl}; 135e15d2774SMartin Blumenstingl 136e15d2774SMartin Blumenstingl&i2c_B { 137e15d2774SMartin Blumenstingl status = "okay"; 138e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_b_pins>; 139e15d2774SMartin Blumenstingl pinctrl-names = "default"; 140e15d2774SMartin Blumenstingl 141e15d2774SMartin Blumenstingl rtc: rtc@51 { 142287eb2beSChristian Hewitt status = "okay"; 143e15d2774SMartin Blumenstingl compatible = "haoyu,hym8563"; 144e15d2774SMartin Blumenstingl reg = <0x51>; 145e15d2774SMartin Blumenstingl #clock-cells = <0>; 146e15d2774SMartin Blumenstingl clock-output-names = "xin32k"; 147e15d2774SMartin Blumenstingl }; 148e15d2774SMartin Blumenstingl}; 149e15d2774SMartin Blumenstingl 150e15d2774SMartin Blumenstingl&ir { 151c9ee1d25SChristian Hewitt linux,rc-map-name = "rc-khadas"; 152e15d2774SMartin Blumenstingl}; 153e15d2774SMartin Blumenstingl 1545b780126SNeil Armstrong&gpio_ao { 15560795933SNeil Armstrong gpio-line-names = "UART TX", 15660795933SNeil Armstrong "UART RX", 15760795933SNeil Armstrong "Power Key In", 15860795933SNeil Armstrong "J9 Header Pin35", 15960795933SNeil Armstrong "J9 Header Pin16", 16060795933SNeil Armstrong "J9 Header Pin15", 16160795933SNeil Armstrong "J9 Header Pin33", 16260795933SNeil Armstrong "IR In", 16360795933SNeil Armstrong "HDMI CEC", 164c6496b47SJerome Brunet "SYS LED", 165c6496b47SJerome Brunet /* GPIO_TEST_N */ 166c6496b47SJerome Brunet ""; 16760795933SNeil Armstrong}; 16860795933SNeil Armstrong 1695b780126SNeil Armstrong&gpio { 17060795933SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 17160795933SNeil Armstrong "", "", "", "", "", "", "", 17260795933SNeil Armstrong "", "", "", "", "", "", "", 17360795933SNeil Armstrong "Power OFF", 17460795933SNeil Armstrong "VCCK Enable", 17560795933SNeil Armstrong /* Bank GPIOH */ 17660795933SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 17760795933SNeil Armstrong "HDMI_5V_EN", "SPDIF", 17860795933SNeil Armstrong "J9 Header Pin37", 17960795933SNeil Armstrong "J9 Header Pin30", 18060795933SNeil Armstrong "J9 Header Pin29", 18160795933SNeil Armstrong "J9 Header Pin32", 18260795933SNeil Armstrong "J9 Header Pin31", 18360795933SNeil Armstrong /* Bank BOOT */ 18460795933SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 18560795933SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 18660795933SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 18760795933SNeil Armstrong "", "BOOT_MODE", "", "", "eMMC Data Strobe", 18860795933SNeil Armstrong /* Bank CARD */ 18960795933SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 19060795933SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 19160795933SNeil Armstrong /* Bank GPIODV */ 19260795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19360795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19460795933SNeil Armstrong "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", 19560795933SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 19660795933SNeil Armstrong /* Bank GPIOX */ 19760795933SNeil Armstrong "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", 19860795933SNeil Armstrong "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", 19960795933SNeil Armstrong "WIFI Power Enable", "WIFI WAKE HOST", 20060795933SNeil Armstrong "Bluetooth PCM DOUT", "Bluetooth PCM DIN", 20160795933SNeil Armstrong "Bluetooth PCM SYNC", "Bluetooth PCM CLK", 20260795933SNeil Armstrong "Bluetooth UART TX", "Bluetooth UART RX", 20360795933SNeil Armstrong "Bluetooth UART CTS", "Bluetooth UART RTS", 20460795933SNeil Armstrong "WIFI 32K", "Bluetooth Enable", 20560795933SNeil Armstrong "Bluetooth WAKE HOST", 20660795933SNeil Armstrong /* Bank GPIOCLK */ 207c6496b47SJerome Brunet "", "J9 Header Pin39"; 20860795933SNeil Armstrong}; 20960795933SNeil Armstrong 210e15d2774SMartin Blumenstingl&pwm_AO_ab { 211e15d2774SMartin Blumenstingl status = "okay"; 212e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 213e15d2774SMartin Blumenstingl pinctrl-names = "default"; 214e15d2774SMartin Blumenstingl}; 215e15d2774SMartin Blumenstingl 216e15d2774SMartin Blumenstingl&pwm_ef { 217e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; 218e15d2774SMartin Blumenstingl}; 219e15d2774SMartin Blumenstingl 220e15d2774SMartin Blumenstingl&sd_emmc_a { 2216b197abeSArtem Lapkin max-frequency = <100000000>; 222dd5297ccSChristian Hewitt}; 223dd5297ccSChristian Hewitt 224e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 225e15d2774SMartin Blumenstingl&uart_AO { 226e15d2774SMartin Blumenstingl status = "okay"; 227e15d2774SMartin Blumenstingl}; 228e15d2774SMartin Blumenstingl 229e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 230e15d2774SMartin Blumenstingl&uart_AO_B { 231e15d2774SMartin Blumenstingl status = "okay"; 232e15d2774SMartin Blumenstingl pinctrl-0 = <&uart_ao_b_pins>; 233e15d2774SMartin Blumenstingl pinctrl-names = "default"; 234e15d2774SMartin Blumenstingl}; 2352f9139c2SMartin Blumenstingl 2362f9139c2SMartin Blumenstingl&usb { 2372f9139c2SMartin Blumenstingl dr_mode = "peripheral"; 2382f9139c2SMartin Blumenstingl}; 239