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 clocks = <&clkc CLKID_MPLL0>, 164 <&clkc CLKID_MPLL1>, 165 <&clkc CLKID_MPLL2>; 166 167 assigned-clocks = <&clkc CLKID_MPLL0>, 168 <&clkc CLKID_MPLL1>, 169 <&clkc CLKID_MPLL2>; 170 assigned-clock-parents = <0>, <0>, <0>; 171 assigned-clock-rates = <294912000>, 172 <270950400>, 173 <393216000>; 174 175 dai-link-0 { 176 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 177 }; 178 179 dai-link-1 { 180 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 181 dai-format = "i2s"; 182 mclk-fs = <256>; 183 184 codec-0 { 185 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 186 }; 187 }; 188 189 dai-link-2 { 190 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 191 192 codec-0 { 193 sound-dai = <&hdmi_tx>; 194 }; 195 }; 196 }; 197}; 198 199&aiu { 200 status = "okay"; 201}; 202 203&cec_AO { 204 status = "okay"; 205 pinctrl-0 = <&ao_cec_pins>; 206 pinctrl-names = "default"; 207 hdmi-phandle = <&hdmi_tx>; 208}; 209 210ðmac { 211 status = "okay"; 212}; 213 214&internal_phy { 215 pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 216 pinctrl-names = "default"; 217}; 218 219&ir { 220 status = "okay"; 221 pinctrl-0 = <&remote_input_ao_pins>; 222 pinctrl-names = "default"; 223}; 224 225&hdmi_tx { 226 status = "okay"; 227 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 228 hdmi-supply = <&vcc5v>; 229 pinctrl-names = "default"; 230}; 231 232&hdmi_tx_tmds_port { 233 hdmi_tx_tmds_out: endpoint { 234 remote-endpoint = <&hdmi_connector_in>; 235 }; 236}; 237 238&saradc { 239 status = "okay"; 240 vref-supply = <&vddio_ao18>; 241}; 242 243/* SD card */ 244&sd_emmc_b { 245 pinctrl-0 = <&sdcard_pins>; 246 pinctrl-1 = <&sdcard_clk_gate_pins>; 247 pinctrl-names = "default", "clk-gate"; 248 249 bus-width = <4>; 250 cap-sd-highspeed; 251 sd-uhs-sdr12; 252 sd-uhs-sdr25; 253 sd-uhs-sdr50; 254 sd-uhs-ddr50; 255 max-frequency = <100000000>; 256 disable-wp; 257 258 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 259 260 vmmc-supply = <&vcc_card>; 261 vqmmc-supply = <&vddio_card>; 262 263 status = "okay"; 264}; 265 266/* eMMC */ 267&sd_emmc_c { 268 pinctrl-0 = <&emmc_pins>; 269 pinctrl-1 = <&emmc_clk_gate_pins>; 270 pinctrl-names = "default", "clk-gate"; 271 272 bus-width = <8>; 273 cap-mmc-highspeed; 274 mmc-hs200-1_8v; 275 max-frequency = <200000000>; 276 disable-wp; 277 278 mmc-pwrseq = <&emmc_pwrseq>; 279 vmmc-supply = <&vddio_ao3v3>; 280 vqmmc-supply = <&vcc_1v8>; 281 282 status = "okay"; 283}; 284 285&spifc { 286 status = "okay"; 287 pinctrl-0 = <&nor_pins>; 288 pinctrl-names = "default"; 289 290 nor_4u1: flash@0 { 291 #address-cells = <1>; 292 #size-cells = <1>; 293 compatible = "jedec,spi-nor"; 294 reg = <0>; 295 spi-max-frequency = <3000000>; 296 }; 297}; 298 299&uart_AO { 300 status = "okay"; 301 pinctrl-0 = <&uart_ao_a_pins>; 302 pinctrl-names = "default"; 303}; 304 305&usb { 306 status = "okay"; 307 dr_mode = "host"; 308}; 309 310&usb2_phy0 { 311 phy-supply = <&vcc5v>; 312}; 313 314&usb2_phy1 { 315 phy-supply = <&vcc5v>; 316}; 317