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"; 69*933b80edSChristian 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 status = "okay"; 784e0649f4SChristian Hewitt 794e0649f4SChristian Hewitt dai-link-0 { 804e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 814e0649f4SChristian Hewitt }; 824e0649f4SChristian Hewitt 834e0649f4SChristian Hewitt dai-link-1 { 844e0649f4SChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 854e0649f4SChristian Hewitt dai-format = "i2s"; 864e0649f4SChristian Hewitt mclk-fs = <256>; 874e0649f4SChristian Hewitt 884e0649f4SChristian Hewitt codec-0 { 894e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 904e0649f4SChristian Hewitt }; 914e0649f4SChristian Hewitt }; 924e0649f4SChristian Hewitt 934e0649f4SChristian Hewitt dai-link-2 { 944e0649f4SChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 954e0649f4SChristian Hewitt 964e0649f4SChristian Hewitt codec-0 { 974e0649f4SChristian Hewitt sound-dai = <&hdmi_tx>; 984e0649f4SChristian Hewitt }; 994e0649f4SChristian Hewitt }; 1004e0649f4SChristian Hewitt }; 1014e0649f4SChristian Hewitt}; 1024e0649f4SChristian Hewitt 1034e0649f4SChristian Hewitt&aiu { 1044e0649f4SChristian Hewitt status = "okay"; 105b43186dbSNeil Armstrong}; 106b43186dbSNeil Armstrong 107b16c71c9SNeil Armstrong&cec_AO { 108b16c71c9SNeil Armstrong status = "okay"; 109b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 110b16c71c9SNeil Armstrong pinctrl-names = "default"; 111b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 112b16c71c9SNeil Armstrong}; 113b16c71c9SNeil Armstrong 114b43186dbSNeil Armstrong&hdmi_tx { 115b43186dbSNeil Armstrong status = "okay"; 116b43186dbSNeil Armstrong pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 117b43186dbSNeil Armstrong pinctrl-names = "default"; 118e1f2163dSNeil Armstrong hdmi-supply = <&hdmi_5v>; 119b43186dbSNeil Armstrong}; 120b43186dbSNeil Armstrong 121b43186dbSNeil Armstrong&hdmi_tx_tmds_port { 122b43186dbSNeil Armstrong hdmi_tx_tmds_out: endpoint { 123b43186dbSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 124b43186dbSNeil Armstrong }; 125e15d2774SMartin Blumenstingl}; 126e15d2774SMartin Blumenstingl 127e15d2774SMartin Blumenstingl&i2c_A { 128e15d2774SMartin Blumenstingl status = "okay"; 129e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_a_pins>; 130e15d2774SMartin Blumenstingl pinctrl-names = "default"; 131e15d2774SMartin Blumenstingl}; 132e15d2774SMartin Blumenstingl 133e15d2774SMartin Blumenstingl&i2c_B { 134e15d2774SMartin Blumenstingl status = "okay"; 135e15d2774SMartin Blumenstingl pinctrl-0 = <&i2c_b_pins>; 136e15d2774SMartin Blumenstingl pinctrl-names = "default"; 137e15d2774SMartin Blumenstingl 138e15d2774SMartin Blumenstingl rtc: rtc@51 { 139287eb2beSChristian Hewitt status = "okay"; 140e15d2774SMartin Blumenstingl compatible = "haoyu,hym8563"; 141e15d2774SMartin Blumenstingl reg = <0x51>; 142e15d2774SMartin Blumenstingl #clock-cells = <0>; 143e15d2774SMartin Blumenstingl clock-frequency = <32768>; 144e15d2774SMartin Blumenstingl clock-output-names = "xin32k"; 145e15d2774SMartin Blumenstingl }; 146e15d2774SMartin Blumenstingl}; 147e15d2774SMartin Blumenstingl 148e15d2774SMartin Blumenstingl&ir { 149c9ee1d25SChristian Hewitt linux,rc-map-name = "rc-khadas"; 150e15d2774SMartin Blumenstingl}; 151e15d2774SMartin Blumenstingl 1525b780126SNeil Armstrong&gpio_ao { 15360795933SNeil Armstrong gpio-line-names = "UART TX", 15460795933SNeil Armstrong "UART RX", 15560795933SNeil Armstrong "Power Key In", 15660795933SNeil Armstrong "J9 Header Pin35", 15760795933SNeil Armstrong "J9 Header Pin16", 15860795933SNeil Armstrong "J9 Header Pin15", 15960795933SNeil Armstrong "J9 Header Pin33", 16060795933SNeil Armstrong "IR In", 16160795933SNeil Armstrong "HDMI CEC", 162c6496b47SJerome Brunet "SYS LED", 163c6496b47SJerome Brunet /* GPIO_TEST_N */ 164c6496b47SJerome Brunet ""; 16560795933SNeil Armstrong}; 16660795933SNeil Armstrong 1675b780126SNeil Armstrong&gpio { 16860795933SNeil Armstrong gpio-line-names = /* Bank GPIOZ */ 16960795933SNeil Armstrong "", "", "", "", "", "", "", 17060795933SNeil Armstrong "", "", "", "", "", "", "", 17160795933SNeil Armstrong "Power OFF", 17260795933SNeil Armstrong "VCCK Enable", 17360795933SNeil Armstrong /* Bank GPIOH */ 17460795933SNeil Armstrong "HDMI HPD", "HDMI SDA", "HDMI SCL", 17560795933SNeil Armstrong "HDMI_5V_EN", "SPDIF", 17660795933SNeil Armstrong "J9 Header Pin37", 17760795933SNeil Armstrong "J9 Header Pin30", 17860795933SNeil Armstrong "J9 Header Pin29", 17960795933SNeil Armstrong "J9 Header Pin32", 18060795933SNeil Armstrong "J9 Header Pin31", 18160795933SNeil Armstrong /* Bank BOOT */ 18260795933SNeil Armstrong "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", 18360795933SNeil Armstrong "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", 18460795933SNeil Armstrong "eMMC Clk", "eMMC Reset", "eMMC CMD", 18560795933SNeil Armstrong "", "BOOT_MODE", "", "", "eMMC Data Strobe", 18660795933SNeil Armstrong /* Bank CARD */ 18760795933SNeil Armstrong "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", 18860795933SNeil Armstrong "SDCard D3", "SDCard D2", "SDCard Det", 18960795933SNeil Armstrong /* Bank GPIODV */ 19060795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19160795933SNeil Armstrong "", "", "", "", "", "", "", "", "", "", "", "", 19260795933SNeil Armstrong "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", 19360795933SNeil Armstrong "VCCK Regulator", "VDDEE Regulator", 19460795933SNeil Armstrong /* Bank GPIOX */ 19560795933SNeil Armstrong "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", 19660795933SNeil Armstrong "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", 19760795933SNeil Armstrong "WIFI Power Enable", "WIFI WAKE HOST", 19860795933SNeil Armstrong "Bluetooth PCM DOUT", "Bluetooth PCM DIN", 19960795933SNeil Armstrong "Bluetooth PCM SYNC", "Bluetooth PCM CLK", 20060795933SNeil Armstrong "Bluetooth UART TX", "Bluetooth UART RX", 20160795933SNeil Armstrong "Bluetooth UART CTS", "Bluetooth UART RTS", 20260795933SNeil Armstrong "WIFI 32K", "Bluetooth Enable", 20360795933SNeil Armstrong "Bluetooth WAKE HOST", 20460795933SNeil Armstrong /* Bank GPIOCLK */ 205c6496b47SJerome Brunet "", "J9 Header Pin39"; 20660795933SNeil Armstrong}; 20760795933SNeil Armstrong 208e15d2774SMartin Blumenstingl&pwm_AO_ab { 209e15d2774SMartin Blumenstingl status = "okay"; 210e15d2774SMartin Blumenstingl pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 211e15d2774SMartin Blumenstingl pinctrl-names = "default"; 2126620f146SJerome Brunet clocks = <&xtal> , <&xtal>; 2136620f146SJerome Brunet clock-names = "clkin0", "clkin1" ; 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 { 221c26db7aaSAndreas Färber brcmf: wifi@1 { 222e15d2774SMartin Blumenstingl reg = <1>; 223e15d2774SMartin Blumenstingl compatible = "brcm,bcm4329-fmac"; 224e15d2774SMartin Blumenstingl }; 225e15d2774SMartin Blumenstingl}; 226e15d2774SMartin Blumenstingl 227dd5297ccSChristian Hewitt&uart_A { 228dd5297ccSChristian Hewitt bluetooth { 229dd5297ccSChristian Hewitt compatible = "brcm,bcm43438-bt"; 230dd5297ccSChristian Hewitt shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 2311c6d5755SChristian Hewitt max-speed = <2000000>; 2321c6d5755SChristian Hewitt clocks = <&wifi32k>; 2331c6d5755SChristian Hewitt clock-names = "lpo"; 234dd5297ccSChristian Hewitt }; 235dd5297ccSChristian Hewitt}; 236dd5297ccSChristian Hewitt 237e15d2774SMartin Blumenstingl/* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ 238e15d2774SMartin Blumenstingl&uart_AO { 239e15d2774SMartin Blumenstingl status = "okay"; 240e15d2774SMartin Blumenstingl}; 241e15d2774SMartin Blumenstingl 242e15d2774SMartin Blumenstingl/* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ 243e15d2774SMartin Blumenstingl&uart_AO_B { 244e15d2774SMartin Blumenstingl status = "okay"; 245e15d2774SMartin Blumenstingl pinctrl-0 = <&uart_ao_b_pins>; 246e15d2774SMartin Blumenstingl pinctrl-names = "default"; 247e15d2774SMartin Blumenstingl}; 2482f9139c2SMartin Blumenstingl 2492f9139c2SMartin Blumenstingl&usb { 2502f9139c2SMartin Blumenstingl dr_mode = "peripheral"; 2512f9139c2SMartin Blumenstingl}; 252