1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2020 BayLibre, SAS. 4 * Author: Jerome Brunet <jbrunet@baylibre.com> 5 */ 6 7/dts-v1/; 8 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/sound/meson-aiu.h> 12 13#include "meson-gxl-s905x.dtsi" 14 15/ { 16 compatible = "libretech,aml-s905x-cc-v2", "amlogic,s905x", 17 "amlogic,meson-gxl"; 18 model = "Libre Computer AML-S905X-CC V2"; 19 20 aliases { 21 serial0 = &uart_AO; 22 ethernet0 = ðmac; 23 spi0 = &spifc; 24 }; 25 26 chosen { 27 stdout-path = "serial0:115200n8"; 28 }; 29 30 emmc_pwrseq: emmc-pwrseq { 31 compatible = "mmc-pwrseq-emmc"; 32 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 33 }; 34 35 hdmi-connector { 36 compatible = "hdmi-connector"; 37 type = "a"; 38 39 port { 40 hdmi_connector_in: endpoint { 41 remote-endpoint = <&hdmi_tx_tmds_out>; 42 }; 43 }; 44 }; 45 46 leds { 47 compatible = "gpio-leds"; 48 49 led-blue { 50 color = <LED_COLOR_ID_BLUE>; 51 function = LED_FUNCTION_STATUS; 52 gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 53 linux,default-trigger = "heartbeat"; 54 panic-indicator; 55 }; 56 57 led-green { 58 color = <LED_COLOR_ID_GREEN>; 59 function = LED_FUNCTION_DISK_ACTIVITY; 60 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 61 linux,default-trigger = "disk-activity"; 62 }; 63 }; 64 65 memory@0 { 66 device_type = "memory"; 67 reg = <0x0 0x0 0x0 0x80000000>; 68 }; 69 70 ao_5v: regulator-ao_5v { 71 compatible = "regulator-fixed"; 72 regulator-name = "AO_5V"; 73 regulator-min-microvolt = <5000000>; 74 regulator-max-microvolt = <5000000>; 75 vin-supply = <&dc_in>; 76 regulator-always-on; 77 }; 78 79 dc_in: regulator-dc_in { 80 compatible = "regulator-fixed"; 81 regulator-name = "DC_IN"; 82 regulator-min-microvolt = <5000000>; 83 regulator-max-microvolt = <5000000>; 84 regulator-always-on; 85 }; 86 87 vcck: regulator-vcck { 88 compatible = "regulator-fixed"; 89 regulator-name = "VCCK"; 90 regulator-min-microvolt = <3300000>; 91 regulator-max-microvolt = <3300000>; 92 vin-supply = <&ao_5v>; 93 regulator-always-on; 94 }; 95 96 vcc_card: regulator-vcc_card { 97 compatible = "regulator-fixed"; 98 regulator-name = "VCC_CARD"; 99 regulator-min-microvolt = <3300000>; 100 regulator-max-microvolt = <3300000>; 101 vin-supply = <&vddio_ao3v3>; 102 103 gpio = <&gpio GPIOCLK_1 GPIO_ACTIVE_HIGH>; 104 enable-active-high; 105 }; 106 107 vcc5v: regulator-vcc5v { 108 compatible = "regulator-fixed"; 109 regulator-name = "VCC5V"; 110 regulator-min-microvolt = <5000000>; 111 regulator-max-microvolt = <5000000>; 112 vin-supply = <&ao_5v>; 113 114 gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; 115 }; 116 117 vddio_ao3v3: regulator-vddio_ao3v3 { 118 compatible = "regulator-fixed"; 119 regulator-name = "VDDIO_AO3V3"; 120 regulator-min-microvolt = <3300000>; 121 regulator-max-microvolt = <3300000>; 122 vin-supply = <&ao_5v>; 123 regulator-always-on; 124 }; 125 126 vddio_card: regulator-vddio-card { 127 compatible = "regulator-gpio"; 128 regulator-name = "VDDIO_CARD"; 129 regulator-min-microvolt = <1800000>; 130 regulator-max-microvolt = <3300000>; 131 132 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 133 gpios-states = <0>; 134 135 states = <3300000 0>, 136 <1800000 1>; 137 138 regulator-settling-time-up-us = <200>; 139 regulator-settling-time-down-us = <50000>; 140 }; 141 142 vddio_ao18: regulator-vddio_ao18 { 143 compatible = "regulator-fixed"; 144 regulator-name = "VDDIO_AO18"; 145 regulator-min-microvolt = <1800000>; 146 regulator-max-microvolt = <1800000>; 147 vin-supply = <&vddio_ao3v3>; 148 regulator-always-on; 149 }; 150 151 vcc_1v8: regulator-vcc_1v8 { 152 compatible = "regulator-fixed"; 153 regulator-name = "VCC 1V8"; 154 regulator-min-microvolt = <1800000>; 155 regulator-max-microvolt = <1800000>; 156 vin-supply = <&vddio_ao3v3>; 157 regulator-always-on; 158 }; 159 160 sound { 161 compatible = "amlogic,gx-sound-card"; 162 model = "LIBRETECH-CC-V2"; 163 assigned-clocks = <&clkc CLKID_MPLL0>, 164 <&clkc CLKID_MPLL1>, 165 <&clkc CLKID_MPLL2>; 166 assigned-clock-parents = <0>, <0>, <0>; 167 assigned-clock-rates = <294912000>, 168 <270950400>, 169 <393216000>; 170 status = "okay"; 171 172 dai-link-0 { 173 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 174 }; 175 176 dai-link-1 { 177 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 178 dai-format = "i2s"; 179 mclk-fs = <256>; 180 181 codec-0 { 182 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 183 }; 184 }; 185 186 dai-link-2 { 187 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 188 189 codec-0 { 190 sound-dai = <&hdmi_tx>; 191 }; 192 }; 193 }; 194}; 195 196&aiu { 197 status = "okay"; 198}; 199 200&cec_AO { 201 status = "okay"; 202 pinctrl-0 = <&ao_cec_pins>; 203 pinctrl-names = "default"; 204 hdmi-phandle = <&hdmi_tx>; 205}; 206 207ðmac { 208 status = "okay"; 209}; 210 211&internal_phy { 212 pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 213 pinctrl-names = "default"; 214}; 215 216&ir { 217 status = "okay"; 218 pinctrl-0 = <&remote_input_ao_pins>; 219 pinctrl-names = "default"; 220}; 221 222&hdmi_tx { 223 status = "okay"; 224 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 225 hdmi-supply = <&vcc5v>; 226 pinctrl-names = "default"; 227}; 228 229&hdmi_tx_tmds_port { 230 hdmi_tx_tmds_out: endpoint { 231 remote-endpoint = <&hdmi_connector_in>; 232 }; 233}; 234 235&saradc { 236 status = "okay"; 237 vref-supply = <&vddio_ao18>; 238}; 239 240/* SD card */ 241&sd_emmc_b { 242 pinctrl-0 = <&sdcard_pins>; 243 pinctrl-1 = <&sdcard_clk_gate_pins>; 244 pinctrl-names = "default", "clk-gate"; 245 246 bus-width = <4>; 247 cap-sd-highspeed; 248 sd-uhs-sdr12; 249 sd-uhs-sdr25; 250 sd-uhs-sdr50; 251 sd-uhs-ddr50; 252 max-frequency = <100000000>; 253 disable-wp; 254 255 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 256 257 vmmc-supply = <&vcc_card>; 258 vqmmc-supply = <&vddio_card>; 259 260 status = "okay"; 261}; 262 263/* eMMC */ 264&sd_emmc_c { 265 pinctrl-0 = <&emmc_pins>; 266 pinctrl-1 = <&emmc_clk_gate_pins>; 267 pinctrl-names = "default", "clk-gate"; 268 269 bus-width = <8>; 270 cap-mmc-highspeed; 271 mmc-hs200-1_8v; 272 max-frequency = <200000000>; 273 disable-wp; 274 275 mmc-pwrseq = <&emmc_pwrseq>; 276 vmmc-supply = <&vddio_ao3v3>; 277 vqmmc-supply = <&vcc_1v8>; 278 279 status = "okay"; 280}; 281 282&spifc { 283 status = "okay"; 284 pinctrl-0 = <&nor_pins>; 285 pinctrl-names = "default"; 286 287 nor_4u1: spi-flash@0 { 288 #address-cells = <1>; 289 #size-cells = <1>; 290 compatible = "jedec,spi-nor"; 291 reg = <0>; 292 spi-max-frequency = <3000000>; 293 }; 294}; 295 296&uart_AO { 297 status = "okay"; 298 pinctrl-0 = <&uart_ao_a_pins>; 299 pinctrl-names = "default"; 300}; 301 302&usb { 303 status = "okay"; 304 dr_mode = "host"; 305}; 306 307&usb2_phy0 { 308 pinctrl-names = "default"; 309 phy-supply = <&vcc5v>; 310}; 311 312&usb2_phy1 { 313 phy-supply = <&vcc5v>; 314}; 315