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" 11*4e0649f4SChristian Hewitt#include <dt-bindings/sound/meson-aiu.h> 12e15d2774SMartin Blumenstingl 13e15d2774SMartin Blumenstingl/ { 14e15d2774SMartin Blumenstingl compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl"; 15e15d2774SMartin Blumenstingl model = "Khadas VIM"; 16e15d2774SMartin Blumenstingl 17e15d2774SMartin Blumenstingl adc-keys { 18e15d2774SMartin Blumenstingl compatible = "adc-keys"; 19e15d2774SMartin Blumenstingl io-channels = <&saradc 0>; 20e15d2774SMartin Blumenstingl io-channel-names = "buttons"; 21e15d2774SMartin Blumenstingl keyup-threshold-microvolt = <1710000>; 22e15d2774SMartin Blumenstingl 23e15d2774SMartin Blumenstingl button-function { 24e15d2774SMartin Blumenstingl label = "Function"; 25e15d2774SMartin Blumenstingl linux,code = <KEY_FN>; 26e15d2774SMartin Blumenstingl press-threshold-microvolt = <10000>; 27e15d2774SMartin Blumenstingl }; 28e15d2774SMartin Blumenstingl }; 29e15d2774SMartin Blumenstingl 30e15d2774SMartin Blumenstingl aliases { 31e15d2774SMartin Blumenstingl serial2 = &uart_AO_B; 32059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 33e15d2774SMartin Blumenstingl }; 34e15d2774SMartin Blumenstingl 35e15d2774SMartin Blumenstingl gpio-keys-polled { 36e15d2774SMartin Blumenstingl compatible = "gpio-keys-polled"; 37e15d2774SMartin Blumenstingl poll-interval = <100>; 38e15d2774SMartin Blumenstingl 39d5f6fa90SChristian Hewitt power-button { 40e15d2774SMartin Blumenstingl label = "power"; 41e15d2774SMartin Blumenstingl linux,code = <KEY_POWER>; 42e15d2774SMartin Blumenstingl gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 43e15d2774SMartin Blumenstingl }; 44e15d2774SMartin Blumenstingl }; 45e15d2774SMartin Blumenstingl 46e15d2774SMartin Blumenstingl pwmleds { 47e15d2774SMartin Blumenstingl compatible = "pwm-leds"; 48e15d2774SMartin Blumenstingl 49e15d2774SMartin Blumenstingl power { 50e15d2774SMartin Blumenstingl label = "vim:red:power"; 51e15d2774SMartin Blumenstingl pwms = <&pwm_AO_ab 1 7812500 0>; 52e15d2774SMartin Blumenstingl max-brightness = <255>; 53e15d2774SMartin Blumenstingl linux,default-trigger = "default-on"; 54e15d2774SMartin Blumenstingl }; 55e15d2774SMartin Blumenstingl }; 56b43186dbSNeil Armstrong 57b43186dbSNeil Armstrong hdmi-connector { 58b43186dbSNeil Armstrong compatible = "hdmi-connector"; 59b43186dbSNeil Armstrong type = "a"; 60b43186dbSNeil Armstrong 61b43186dbSNeil Armstrong port { 62b43186dbSNeil Armstrong hdmi_connector_in: endpoint { 63b43186dbSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 64b43186dbSNeil Armstrong }; 65b43186dbSNeil Armstrong }; 66b43186dbSNeil Armstrong }; 67*4e0649f4SChristian Hewitt 68*4e0649f4SChristian Hewitt sound { 69*4e0649f4SChristian Hewitt compatible = "amlogic,gx-sound-card"; 70*4e0649f4SChristian Hewitt model = "GXL-KHADAS-VIM1"; 71*4e0649f4SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 72*4e0649f4SChristian Hewitt <&clkc CLKID_MPLL1>, 73*4e0649f4SChristian Hewitt <&clkc CLKID_MPLL2>; 74*4e0649f4SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 75*4e0649f4SChristian Hewitt assigned-clock-rates = <294912000>, 76*4e0649f4SChristian Hewitt <270950400>, 77*4e0649f4SChristian Hewitt <393216000>; 78*4e0649f4SChristian Hewitt status = "okay"; 79*4e0649f4SChristian Hewitt 80*4e0649f4SChristian Hewitt dai-link-0 { 81*4e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 82*4e0649f4SChristian Hewitt }; 83*4e0649f4SChristian Hewitt 84*4e0649f4SChristian Hewitt dai-link-1 { 85*4e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 86*4e0649f4SChristian Hewitt dai-format = "i2s"; 87*4e0649f4SChristian Hewitt mclk-fs = <256>; 88*4e0649f4SChristian Hewitt 89*4e0649f4SChristian Hewitt codec-0 { 90*4e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 91*4e0649f4SChristian Hewitt }; 92*4e0649f4SChristian Hewitt }; 93*4e0649f4SChristian Hewitt 94*4e0649f4SChristian Hewitt dai-link-2 { 95*4e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 96*4e0649f4SChristian Hewitt 97*4e0649f4SChristian Hewitt codec-0 { 98*4e0649f4SChristian Hewitt sound-dai = <&hdmi_tx>; 99*4e0649f4SChristian Hewitt }; 100*4e0649f4SChristian Hewitt }; 101*4e0649f4SChristian Hewitt }; 102*4e0649f4SChristian Hewitt}; 103*4e0649f4SChristian Hewitt 104*4e0649f4SChristian Hewitt&aiu { 105*4e0649f4SChristian Hewitt status = "okay"; 106b43186dbSNeil Armstrong}; 107b43186dbSNeil Armstrong 108b16c71c9SNeil Armstrong&cec_AO { 109b16c71c9SNeil Armstrong status = "okay"; 110b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 111b16c71c9SNeil Armstrong pinctrl-names = "default"; 112b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 113b16c71c9SNeil Armstrong}; 114b16c71c9SNeil Armstrong 115b43186dbSNeil Armstrong&hdmi_tx { 116b43186dbSNeil Armstrong status = "okay"; 117b43186dbSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 118b43186dbSNeil Armstrong pinctrl-names = "default"; 119e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 120b43186dbSNeil Armstrong}; 121b43186dbSNeil Armstrong 122b43186dbSNeil Armstrong&hdmi_tx_tmds_port { 123b43186dbSNeil Armstrong hdmi_tx_tmds_out: endpoint { 124b43186dbSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 125b43186dbSNeil Armstrong }; 126e15d2774SMartin Blumenstingl}; 127e15d2774SMartin Blumenstingl 128e15d2774SMartin Blumenstingl&i2c_A { 129e15d2774SMartin Blumenstingl status = "okay"; 130e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_a_pins>; 131e15d2774SMartin Blumenstingl pinctrl-names = "default"; 132e15d2774SMartin Blumenstingl}; 133e15d2774SMartin Blumenstingl 134e15d2774SMartin Blumenstingl&i2c_B { 135e15d2774SMartin Blumenstingl status = "okay"; 136e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_b_pins>; 137e15d2774SMartin Blumenstingl pinctrl-names = "default"; 138e15d2774SMartin Blumenstingl 139e15d2774SMartin Blumenstingl rtc: rtc@51 { 140287eb2beSChristian Hewitt status = "okay"; 141e15d2774SMartin Blumenstingl compatible = "haoyu,hym8563"; 142e15d2774SMartin Blumenstingl reg = <0x51>; 143e15d2774SMartin Blumenstingl #clock-cells = <0>; 144e15d2774SMartin Blumenstingl clock-frequency = <32768>; 145e15d2774SMartin Blumenstingl clock-output-names = "xin32k"; 146e15d2774SMartin Blumenstingl }; 147e15d2774SMartin Blumenstingl}; 148e15d2774SMartin Blumenstingl 149e15d2774SMartin Blumenstingl&ir { 150c9ee1d25SChristian Hewitt linux,rc-map-name = "rc-khadas"; 151e15d2774SMartin Blumenstingl}; 152e15d2774SMartin Blumenstingl 1535b780126SNeil Armstrong&gpio_ao { 15460795933SNeil Armstrong gpio-line-names = "UART TX", 15560795933SNeil Armstrong "UART RX", 15660795933SNeil Armstrong "Power Key In", 15760795933SNeil Armstrong "J9 Header Pin35", 15860795933SNeil Armstrong "J9 Header Pin16", 15960795933SNeil Armstrong "J9 Header Pin15", 16060795933SNeil Armstrong "J9 Header Pin33", 16160795933SNeil Armstrong "IR In", 16260795933SNeil Armstrong "HDMI CEC", 163c6496b47SJerome Brunet "SYS LED", 164c6496b47SJerome Brunet /* GPIO_TEST_N */ 165c6496b47SJerome Brunet ""; 16660795933SNeil Armstrong}; 16760795933SNeil Armstrong 1685b780126SNeil Armstrong&gpio { 16960795933SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 17060795933SNeil Armstrong "", "", "", "", "", "", "", 17160795933SNeil Armstrong "", "", "", "", "", "", "", 17260795933SNeil Armstrong "Power OFF", 17360795933SNeil Armstrong "VCCK Enable", 17460795933SNeil Armstrong /* Bank GPIOH */ 17560795933SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 17660795933SNeil Armstrong "HDMI_5V_EN", "SPDIF", 17760795933SNeil Armstrong "J9 Header Pin37", 17860795933SNeil Armstrong "J9 Header Pin30", 17960795933SNeil Armstrong "J9 Header Pin29", 18060795933SNeil Armstrong "J9 Header Pin32", 18160795933SNeil Armstrong "J9 Header Pin31", 18260795933SNeil Armstrong /* Bank BOOT */ 18360795933SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 18460795933SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 18560795933SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 18660795933SNeil Armstrong "", "BOOT_MODE", "", "", "eMMC Data Strobe", 18760795933SNeil Armstrong /* Bank CARD */ 18860795933SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 18960795933SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 19060795933SNeil Armstrong /* Bank GPIODV */ 19160795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19260795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19360795933SNeil Armstrong "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", 19460795933SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 19560795933SNeil Armstrong /* Bank GPIOX */ 19660795933SNeil Armstrong "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", 19760795933SNeil Armstrong "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", 19860795933SNeil Armstrong "WIFI Power Enable", "WIFI WAKE HOST", 19960795933SNeil Armstrong "Bluetooth PCM DOUT", "Bluetooth PCM DIN", 20060795933SNeil Armstrong "Bluetooth PCM SYNC", "Bluetooth PCM CLK", 20160795933SNeil Armstrong "Bluetooth UART TX", "Bluetooth UART RX", 20260795933SNeil Armstrong "Bluetooth UART CTS", "Bluetooth UART RTS", 20360795933SNeil Armstrong "WIFI 32K", "Bluetooth Enable", 20460795933SNeil Armstrong "Bluetooth WAKE HOST", 20560795933SNeil Armstrong /* Bank GPIOCLK */ 206c6496b47SJerome Brunet "", "J9 Header Pin39"; 20760795933SNeil Armstrong}; 20860795933SNeil Armstrong 209e15d2774SMartin Blumenstingl&pwm_AO_ab { 210e15d2774SMartin Blumenstingl status = "okay"; 211e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 212e15d2774SMartin Blumenstingl pinctrl-names = "default"; 2136620f146SJerome Brunet clocks = <&xtal> , <&xtal>; 2146620f146SJerome Brunet clock-names = "clkin0", "clkin1" ; 215e15d2774SMartin Blumenstingl}; 216e15d2774SMartin Blumenstingl 217e15d2774SMartin Blumenstingl&pwm_ef { 218e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; 219e15d2774SMartin Blumenstingl}; 220e15d2774SMartin Blumenstingl 221e15d2774SMartin Blumenstingl&sd_emmc_a { 222c26db7aaSAndreas Färber brcmf: wifi@1 { 223e15d2774SMartin Blumenstingl reg = <1>; 224e15d2774SMartin Blumenstingl compatible = "brcm,bcm4329-fmac"; 225e15d2774SMartin Blumenstingl }; 226e15d2774SMartin Blumenstingl}; 227e15d2774SMartin Blumenstingl 228dd5297ccSChristian Hewitt&uart_A { 229dd5297ccSChristian Hewitt bluetooth { 230dd5297ccSChristian Hewitt compatible = "brcm,bcm43438-bt"; 231dd5297ccSChristian Hewitt shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 2321c6d5755SChristian Hewitt max-speed = <2000000>; 2331c6d5755SChristian Hewitt clocks = <&wifi32k>; 2341c6d5755SChristian Hewitt clock-names = "lpo"; 235dd5297ccSChristian Hewitt }; 236dd5297ccSChristian Hewitt}; 237dd5297ccSChristian Hewitt 238e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 239e15d2774SMartin Blumenstingl&uart_AO { 240e15d2774SMartin Blumenstingl status = "okay"; 241e15d2774SMartin Blumenstingl}; 242e15d2774SMartin Blumenstingl 243e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 244e15d2774SMartin Blumenstingl&uart_AO_B { 245e15d2774SMartin Blumenstingl status = "okay"; 246e15d2774SMartin Blumenstingl pinctrl-0 = <&uart_ao_b_pins>; 247e15d2774SMartin Blumenstingl pinctrl-names = "default"; 248e15d2774SMartin Blumenstingl}; 2492f9139c2SMartin Blumenstingl 2502f9139c2SMartin Blumenstingl&usb { 2512f9139c2SMartin Blumenstingl dr_mode = "peripheral"; 2522f9139c2SMartin Blumenstingl}; 253