1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com> 4 */ 5 6/dts-v1/; 7 8#include "meson-gxl-s905x-p212.dtsi" 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/sound/meson-aiu.h> 12 13/ { 14 compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl"; 15 model = "OSMC Vero 4K"; 16 17 reserved-memory { 18 /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ 19 secmon_reserved_bl32: secmon@5300000 { 20 reg = <0x0 0x05300000 0x0 0x2000000>; 21 no-map; 22 }; 23 }; 24 25 gpio-keys-polled { 26 compatible = "gpio-keys-polled"; 27 poll-interval = <20>; 28 29 button { 30 label = "power"; 31 linux,code = <KEY_POWER>; 32 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 33 }; 34 }; 35 36 leds { 37 compatible = "gpio-leds"; 38 39 led-standby { 40 color = <LED_COLOR_ID_RED>; 41 function = LED_FUNCTION_POWER; 42 gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>; 43 default-state = "off"; 44 panic-indicator; 45 }; 46 }; 47 48 dio2133: analog-amplifier { 49 compatible = "simple-audio-amplifier"; 50 sound-name-prefix = "AU2"; 51 VCC-supply = <&hdmi_5v>; 52 enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 53 }; 54 55 spdif_dit: audio-codec-0 { 56 #sound-dai-cells = <0>; 57 compatible = "linux,spdif-dit"; 58 sound-name-prefix = "DIT"; 59 }; 60 61 cvbs-connector { 62 compatible = "composite-video-connector"; 63 64 port { 65 cvbs_connector_in: endpoint { 66 remote-endpoint = <&cvbs_vdac_out>; 67 }; 68 }; 69 }; 70 71 hdmi-connector { 72 compatible = "hdmi-connector"; 73 type = "a"; 74 75 port { 76 hdmi_connector_in: endpoint { 77 remote-endpoint = <&hdmi_tx_tmds_out>; 78 }; 79 }; 80 }; 81 82 sound { 83 compatible = "amlogic,gx-sound-card"; 84 model = "VERO4K"; 85 audio-aux-devs = <&dio2133>; 86 audio-widgets = "Line", "Lineout"; 87 audio-routing = "AU2 INL", "ACODEC LOLP", 88 "AU2 INR", "ACODEC LORP", 89 "AU2 INL", "ACODEC LOLN", 90 "AU2 INR", "ACODEC LORN", 91 "Lineout", "AU2 OUTL", 92 "Lineout", "AU2 OUTR"; 93 assigned-clocks = <&clkc CLKID_MPLL0>, 94 <&clkc CLKID_MPLL1>, 95 <&clkc CLKID_MPLL2>; 96 assigned-clock-parents = <0>, <0>, <0>; 97 assigned-clock-rates = <294912000>, 98 <270950400>, 99 <393216000>; 100 101 dai-link-0 { 102 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 103 }; 104 105 dai-link-1 { 106 sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 107 }; 108 109 dai-link-2 { 110 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 111 dai-format = "i2s"; 112 mclk-fs = <256>; 113 114 codec-0 { 115 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 116 }; 117 118 codec-1 { 119 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 120 }; 121 }; 122 123 dai-link-3 { 124 sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 125 126 codec-0 { 127 sound-dai = <&spdif_dit>; 128 }; 129 }; 130 131 dai-link-4 { 132 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 133 134 codec-0 { 135 sound-dai = <&hdmi_tx>; 136 }; 137 }; 138 139 dai-link-5 { 140 sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 141 142 codec-0 { 143 sound-dai = <&acodec>; 144 }; 145 }; 146 }; 147}; 148 149&acodec { 150 AVDD-supply = <&vddio_ao18>; 151 status = "okay"; 152}; 153 154&aiu { 155 status = "okay"; 156 pinctrl-0 = <&spdif_out_h_pins>; 157 pinctrl-names = "default"; 158}; 159 160&cec_AO { 161 status = "okay"; 162 pinctrl-0 = <&ao_cec_pins>; 163 pinctrl-names = "default"; 164 hdmi-phandle = <&hdmi_tx>; 165}; 166 167&cvbs_vdac_port { 168 cvbs_vdac_out: endpoint { 169 remote-endpoint = <&cvbs_connector_in>; 170 }; 171}; 172 173ðmac { 174 phy-mode = "rmii"; 175 phy-handle = <&internal_phy>; 176}; 177 178&hdmi_tx { 179 status = "okay"; 180 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 181 pinctrl-names = "default"; 182 hdmi-supply = <&hdmi_5v>; 183}; 184 185&hdmi_tx_tmds_port { 186 hdmi_tx_tmds_out: endpoint { 187 remote-endpoint = <&hdmi_connector_in>; 188 }; 189}; 190 191&internal_phy { 192 pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 193 pinctrl-names = "default"; 194}; 195 196/* This UART is brought out to the DB9 connector */ 197&uart_AO { 198 status = "okay"; 199}; 200