| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>. |
| */ |
| |
| /dts-v1/; |
| |
| #include "meson-gxl-s905x-p212.dtsi" |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/sound/meson-aiu.h> |
| |
| / { |
| compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl"; |
| model = "Khadas VIM"; |
| |
| adc-keys { |
| compatible = "adc-keys"; |
| io-channels = <&saradc 0>; |
| io-channel-names = "buttons"; |
| keyup-threshold-microvolt = <1710000>; |
| |
| button-function { |
| label = "Function"; |
| linux,code = <KEY_FN>; |
| press-threshold-microvolt = <10000>; |
| }; |
| }; |
| |
| aliases { |
| serial2 = &uart_AO_B; |
| ethernet0 = ðmac; |
| }; |
| |
| gpio-keys-polled { |
| compatible = "gpio-keys-polled"; |
| poll-interval = <100>; |
| |
| power-button { |
| label = "power"; |
| linux,code = <KEY_POWER>; |
| gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| led-controller { |
| compatible = "pwm-leds"; |
| |
| led-1 { |
| label = "vim:red:power"; |
| pwms = <&pwm_AO_ab 1 7812500 0>; |
| max-brightness = <255>; |
| linux,default-trigger = "default-on"; |
| }; |
| }; |
| |
| hdmi-connector { |
| compatible = "hdmi-connector"; |
| type = "a"; |
| |
| port { |
| hdmi_connector_in: endpoint { |
| remote-endpoint = <&hdmi_tx_tmds_out>; |
| }; |
| }; |
| }; |
| |
| sound { |
| compatible = "amlogic,gx-sound-card"; |
| model = "KHADAS-VIM"; |
| assigned-clocks = <&clkc CLKID_MPLL0>, |
| <&clkc CLKID_MPLL1>, |
| <&clkc CLKID_MPLL2>; |
| assigned-clock-parents = <0>, <0>, <0>; |
| assigned-clock-rates = <294912000>, |
| <270950400>, |
| <393216000>; |
| status = "okay"; |
| |
| dai-link-0 { |
| sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; |
| }; |
| |
| dai-link-1 { |
| sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; |
| dai-format = "i2s"; |
| mclk-fs = <256>; |
| |
| codec-0 { |
| sound-dai = <&aiu AIU_HDMI CTRL_I2S>; |
| }; |
| }; |
| |
| dai-link-2 { |
| sound-dai = <&aiu AIU_HDMI CTRL_OUT>; |
| |
| codec-0 { |
| sound-dai = <&hdmi_tx>; |
| }; |
| }; |
| }; |
| }; |
| |
| &aiu { |
| status = "okay"; |
| }; |
| |
| &cec_AO { |
| status = "okay"; |
| pinctrl-0 = <&ao_cec_pins>; |
| pinctrl-names = "default"; |
| hdmi-phandle = <&hdmi_tx>; |
| }; |
| |
| &hdmi_tx { |
| status = "okay"; |
| pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; |
| pinctrl-names = "default"; |
| hdmi-supply = <&hdmi_5v>; |
| }; |
| |
| &hdmi_tx_tmds_port { |
| hdmi_tx_tmds_out: endpoint { |
| remote-endpoint = <&hdmi_connector_in>; |
| }; |
| }; |
| |
| &i2c_A { |
| status = "okay"; |
| pinctrl-0 = <&i2c_a_pins>; |
| pinctrl-names = "default"; |
| }; |
| |
| &i2c_B { |
| status = "okay"; |
| pinctrl-0 = <&i2c_b_pins>; |
| pinctrl-names = "default"; |
| |
| rtc: rtc@51 { |
| status = "okay"; |
| compatible = "haoyu,hym8563"; |
| reg = <0x51>; |
| #clock-cells = <0>; |
| clock-frequency = <32768>; |
| clock-output-names = "xin32k"; |
| }; |
| }; |
| |
| &ir { |
| linux,rc-map-name = "rc-khadas"; |
| }; |
| |
| &gpio_ao { |
| gpio-line-names = "UART TX", |
| "UART RX", |
| "Power Key In", |
| "J9 Header Pin35", |
| "J9 Header Pin16", |
| "J9 Header Pin15", |
| "J9 Header Pin33", |
| "IR In", |
| "HDMI CEC", |
| "SYS LED", |
| /* GPIO_TEST_N */ |
| ""; |
| }; |
| |
| &gpio { |
| gpio-line-names = /* Bank GPIOZ */ |
| "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", |
| "Power OFF", |
| "VCCK Enable", |
| /* Bank GPIOH */ |
| "HDMI HPD", "HDMI SDA", "HDMI SCL", |
| "HDMI_5V_EN", "SPDIF", |
| "J9 Header Pin37", |
| "J9 Header Pin30", |
| "J9 Header Pin29", |
| "J9 Header Pin32", |
| "J9 Header Pin31", |
| /* Bank BOOT */ |
| "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", |
| "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", |
| "eMMC Clk", "eMMC Reset", "eMMC CMD", |
| "", "BOOT_MODE", "", "", "eMMC Data Strobe", |
| /* Bank CARD */ |
| "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", |
| "SDCard D3", "SDCard D2", "SDCard Det", |
| /* Bank GPIODV */ |
| "", "", "", "", "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", "", "", "", "", "", |
| "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", |
| "VCCK Regulator", "VDDEE Regulator", |
| /* Bank GPIOX */ |
| "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2", |
| "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD", |
| "WIFI Power Enable", "WIFI WAKE HOST", |
| "Bluetooth PCM DOUT", "Bluetooth PCM DIN", |
| "Bluetooth PCM SYNC", "Bluetooth PCM CLK", |
| "Bluetooth UART TX", "Bluetooth UART RX", |
| "Bluetooth UART CTS", "Bluetooth UART RTS", |
| "WIFI 32K", "Bluetooth Enable", |
| "Bluetooth WAKE HOST", |
| /* Bank GPIOCLK */ |
| "", "J9 Header Pin39"; |
| }; |
| |
| &pwm_AO_ab { |
| status = "okay"; |
| pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; |
| pinctrl-names = "default"; |
| clocks = <&xtal> , <&xtal>; |
| clock-names = "clkin0", "clkin1" ; |
| }; |
| |
| &pwm_ef { |
| pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; |
| }; |
| |
| &sd_emmc_a { |
| max-frequency = <100000000>; |
| |
| brcmf: wifi@1 { |
| reg = <1>; |
| compatible = "brcm,bcm4329-fmac"; |
| }; |
| }; |
| |
| &uart_A { |
| bluetooth { |
| compatible = "brcm,bcm43438-bt"; |
| shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; |
| max-speed = <2000000>; |
| clocks = <&wifi32k>; |
| clock-names = "lpo"; |
| }; |
| }; |
| |
| /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ |
| &uart_AO { |
| status = "okay"; |
| }; |
| |
| /* This is brought out on the UART_RX_AO_B (15) and UART_TX_AO_B (16) pins: */ |
| &uart_AO_B { |
| status = "okay"; |
| pinctrl-0 = <&uart_ao_b_pins>; |
| pinctrl-names = "default"; |
| }; |
| |
| &usb { |
| dr_mode = "peripheral"; |
| }; |