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