// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org> */ /dts-v1/; #include "meson-g12b-bananapi-cm4.dtsi" #include <dt-bindings/input/input.h> #include <dt-bindings/leds/common.h> #include <dt-bindings/sound/meson-g12a-tohdmitx.h> / { compatible = "bananapi,bpi-cm4io", "bananapi,bpi-cm4", "amlogic,a311d", "amlogic,g12b"; model = "BananaPi BPI-CM4IO Baseboard with BPI-CM4 Module"; aliases { ethernet0 = ðmac; i2c0 = &i2c1; i2c1 = &i2c3; }; adc-keys { compatible = "adc-keys"; io-channels = <&saradc 2>; io-channel-names = "buttons"; keyup-threshold-microvolt = <1710000>; button-function { label = "Function"; linux,code = <KEY_FN>; press-threshold-microvolt = <10000>; }; }; hdmi_connector: hdmi-connector { compatible = "hdmi-connector"; type = "a"; port { hdmi_connector_in: endpoint { remote-endpoint = <&hdmi_tx_tmds_out>; }; }; }; leds { compatible = "gpio-leds"; led-blue { color = <LED_COLOR_ID_BLUE>; function = LED_FUNCTION_STATUS; gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; led-green { color = <LED_COLOR_ID_GREEN>; function = LED_FUNCTION_STATUS; gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; }; }; sound { compatible = "amlogic,axg-sound-card"; model = "BPI-CM4IO"; audio-aux-devs = <&tdmout_b>; audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", "TDMOUT_B IN 1", "FRDDR_B OUT 1", "TDMOUT_B IN 2", "FRDDR_C OUT 1", "TDM_B Playback", "TDMOUT_B OUT"; assigned-clocks = <&clkc CLKID_MPLL2>, <&clkc CLKID_MPLL0>, <&clkc CLKID_MPLL1>; assigned-clock-parents = <0>, <0>, <0>; assigned-clock-rates = <294912000>, <270950400>, <393216000>; dai-link-0 { sound-dai = <&frddr_a>; }; dai-link-1 { sound-dai = <&frddr_b>; }; dai-link-2 { sound-dai = <&frddr_c>; }; /* 8ch hdmi interface */ dai-link-3 { sound-dai = <&tdmif_b>; dai-format = "i2s"; dai-tdm-slot-tx-mask-0 = <1 1>; dai-tdm-slot-tx-mask-1 = <1 1>; dai-tdm-slot-tx-mask-2 = <1 1>; dai-tdm-slot-tx-mask-3 = <1 1>; mclk-fs = <256>; codec { sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; }; }; /* hdmi glue */ dai-link-4 { sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; codec { sound-dai = <&hdmi_tx>; }; }; }; }; &cecb_AO { status = "okay"; }; ðmac { status = "okay"; }; &hdmi_tx { status = "okay"; }; &hdmi_tx_tmds_port { hdmi_tx_tmds_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; /* CSI port */ &i2c1 { status = "okay"; }; /* DSI port for touchscreen */ &i2c3 { status = "okay"; }; /* miniPCIe port with USB + SIM slot */ &pcie { status = "okay"; }; &sd_emmc_b { status = "okay"; }; &tohdmitx { status = "okay"; }; /* Peripheral Only USB-C port */ &usb { dr_mode = "peripheral"; status = "okay"; };