1*14e14723SChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*14e14723SChristian Hewitt/* 3*14e14723SChristian Hewitt * Copyright (c) 2019 BayLibre, SAS 4*14e14723SChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com> 5*14e14723SChristian Hewitt * Copyright (c) 2023 Christian Hewitt <christianshewitt@gmail.com> 6*14e14723SChristian Hewitt */ 7*14e14723SChristian Hewitt 8*14e14723SChristian Hewitt#include <dt-bindings/input/input.h> 9*14e14723SChristian Hewitt#include <dt-bindings/leds/common.h> 10*14e14723SChristian Hewitt#include <dt-bindings/gpio/meson-g12a-gpio.h> 11*14e14723SChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 12*14e14723SChristian Hewitt 13*14e14723SChristian Hewitt/ { 14*14e14723SChristian Hewitt aliases { 15*14e14723SChristian Hewitt serial0 = &uart_AO; 16*14e14723SChristian Hewitt ethernet0 = ðmac; 17*14e14723SChristian Hewitt rtc1 = &vrtc; 18*14e14723SChristian Hewitt }; 19*14e14723SChristian Hewitt 20*14e14723SChristian Hewitt chosen { 21*14e14723SChristian Hewitt stdout-path = "serial0:115200n8"; 22*14e14723SChristian Hewitt }; 23*14e14723SChristian Hewitt 24*14e14723SChristian Hewitt memory@0 { 25*14e14723SChristian Hewitt device_type = "memory"; 26*14e14723SChristian Hewitt reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 4 GiB */ 27*14e14723SChristian Hewitt }; 28*14e14723SChristian Hewitt 29*14e14723SChristian Hewitt adc-keys { 30*14e14723SChristian Hewitt compatible = "adc-keys"; 31*14e14723SChristian Hewitt io-channels = <&saradc 2>; 32*14e14723SChristian Hewitt io-channel-names = "buttons"; 33*14e14723SChristian Hewitt keyup-threshold-microvolt = <1710000>; 34*14e14723SChristian Hewitt 35*14e14723SChristian Hewitt button-function { 36*14e14723SChristian Hewitt label = "RST"; 37*14e14723SChristian Hewitt linux,code = <KEY_POWER>; 38*14e14723SChristian Hewitt press-threshold-microvolt = <10000>; 39*14e14723SChristian Hewitt }; 40*14e14723SChristian Hewitt }; 41*14e14723SChristian Hewitt 42*14e14723SChristian Hewitt emmc_pwrseq: emmc-pwrseq { 43*14e14723SChristian Hewitt compatible = "mmc-pwrseq-emmc"; 44*14e14723SChristian Hewitt reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 45*14e14723SChristian Hewitt }; 46*14e14723SChristian Hewitt 47*14e14723SChristian Hewitt fan0: pwm-fan { 48*14e14723SChristian Hewitt compatible = "pwm-fan"; 49*14e14723SChristian Hewitt #cooling-cells = <2>; 50*14e14723SChristian Hewitt cooling-min-state = <0>; 51*14e14723SChristian Hewitt cooling-max-state = <3>; 52*14e14723SChristian Hewitt cooling-levels = <0 120 170 220>; 53*14e14723SChristian Hewitt pwms = <&pwm_cd 1 40000 0>; 54*14e14723SChristian Hewitt }; 55*14e14723SChristian Hewitt 56*14e14723SChristian Hewitt hdmi-connector { 57*14e14723SChristian Hewitt compatible = "hdmi-connector"; 58*14e14723SChristian Hewitt type = "a"; 59*14e14723SChristian Hewitt 60*14e14723SChristian Hewitt port { 61*14e14723SChristian Hewitt hdmi_connector_in: endpoint { 62*14e14723SChristian Hewitt remote-endpoint = <&hdmi_tx_tmds_out>; 63*14e14723SChristian Hewitt }; 64*14e14723SChristian Hewitt }; 65*14e14723SChristian Hewitt }; 66*14e14723SChristian Hewitt 67*14e14723SChristian Hewitt leds { 68*14e14723SChristian Hewitt compatible = "gpio-leds"; 69*14e14723SChristian Hewitt 70*14e14723SChristian Hewitt led-0 { 71*14e14723SChristian Hewitt color = <LED_COLOR_ID_BLUE>; 72*14e14723SChristian Hewitt function = LED_FUNCTION_STATUS; 73*14e14723SChristian Hewitt gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_LOW>; 74*14e14723SChristian Hewitt linux,default-trigger = "heartbeat"; 75*14e14723SChristian Hewitt }; 76*14e14723SChristian Hewitt 77*14e14723SChristian Hewitt led-1 { 78*14e14723SChristian Hewitt color = <LED_COLOR_ID_GREEN>; 79*14e14723SChristian Hewitt function = LED_FUNCTION_STATUS; 80*14e14723SChristian Hewitt gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 81*14e14723SChristian Hewitt }; 82*14e14723SChristian Hewitt }; 83*14e14723SChristian Hewitt 84*14e14723SChristian Hewitt sdio_pwrseq: sdio-pwrseq { 85*14e14723SChristian Hewitt compatible = "mmc-pwrseq-simple"; 86*14e14723SChristian Hewitt reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 87*14e14723SChristian Hewitt clocks = <&wifi32k>; 88*14e14723SChristian Hewitt clock-names = "ext_clock"; 89*14e14723SChristian Hewitt }; 90*14e14723SChristian Hewitt 91*14e14723SChristian Hewitt wifi32k: wifi32k { 92*14e14723SChristian Hewitt compatible = "pwm-clock"; 93*14e14723SChristian Hewitt #clock-cells = <0>; 94*14e14723SChristian Hewitt clock-frequency = <32768>; 95*14e14723SChristian Hewitt pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 96*14e14723SChristian Hewitt }; 97*14e14723SChristian Hewitt 98*14e14723SChristian Hewitt dc_in: regulator-dc-in { 99*14e14723SChristian Hewitt compatible = "regulator-fixed"; 100*14e14723SChristian Hewitt regulator-name = "DC_IN"; 101*14e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 102*14e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 103*14e14723SChristian Hewitt regulator-always-on; 104*14e14723SChristian Hewitt }; 105*14e14723SChristian Hewitt 106*14e14723SChristian Hewitt vcc_5v: regulator-vcc-5v { 107*14e14723SChristian Hewitt compatible = "regulator-fixed"; 108*14e14723SChristian Hewitt regulator-name = "VCC_5V"; 109*14e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 110*14e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 111*14e14723SChristian Hewitt vin-supply = <&dc_in>; 112*14e14723SChristian Hewitt 113*14e14723SChristian Hewitt gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 114*14e14723SChristian Hewitt enable-active-high; 115*14e14723SChristian Hewitt }; 116*14e14723SChristian Hewitt 117*14e14723SChristian Hewitt vcc_3v3: regulator-vcc-3v3 { 118*14e14723SChristian Hewitt compatible = "regulator-fixed"; 119*14e14723SChristian Hewitt regulator-name = "VCC_3V3"; 120*14e14723SChristian Hewitt regulator-min-microvolt = <3300000>; 121*14e14723SChristian Hewitt regulator-max-microvolt = <3300000>; 122*14e14723SChristian Hewitt vin-supply = <&vsys_3v3>; 123*14e14723SChristian Hewitt regulator-always-on; 124*14e14723SChristian Hewitt }; 125*14e14723SChristian Hewitt 126*14e14723SChristian Hewitt vcc_1v8: regulator-vcc-1v8 { 127*14e14723SChristian Hewitt compatible = "regulator-fixed"; 128*14e14723SChristian Hewitt regulator-name = "VCC_1V8"; 129*14e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 130*14e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 131*14e14723SChristian Hewitt vin-supply = <&vcc_3v3>; 132*14e14723SChristian Hewitt regulator-always-on; 133*14e14723SChristian Hewitt }; 134*14e14723SChristian Hewitt 135*14e14723SChristian Hewitt vddao_1v8: regulator-vddao-1v8 { 136*14e14723SChristian Hewitt compatible = "regulator-fixed"; 137*14e14723SChristian Hewitt regulator-name = "VDDIO_AO1V8"; 138*14e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 139*14e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 140*14e14723SChristian Hewitt vin-supply = <&vsys_3v3>; 141*14e14723SChristian Hewitt regulator-always-on; 142*14e14723SChristian Hewitt }; 143*14e14723SChristian Hewitt 144*14e14723SChristian Hewitt vddcpu_a: regulator-vddcpu-a { 145*14e14723SChristian Hewitt compatible = "pwm-regulator"; 146*14e14723SChristian Hewitt regulator-name = "VDDCPU_A"; 147*14e14723SChristian Hewitt regulator-min-microvolt = <690000>; 148*14e14723SChristian Hewitt regulator-max-microvolt = <1050000>; 149*14e14723SChristian Hewitt pwm-supply = <&dc_in>; 150*14e14723SChristian Hewitt pwms = <&pwm_ab 0 1250 0>; 151*14e14723SChristian Hewitt pwm-dutycycle-range = <100 0>; 152*14e14723SChristian Hewitt regulator-boot-on; 153*14e14723SChristian Hewitt regulator-always-on; 154*14e14723SChristian Hewitt }; 155*14e14723SChristian Hewitt 156*14e14723SChristian Hewitt vddcpu_b: regulator-vddcpu-b { 157*14e14723SChristian Hewitt compatible = "pwm-regulator"; 158*14e14723SChristian Hewitt regulator-name = "VDDCPU_B"; 159*14e14723SChristian Hewitt regulator-min-microvolt = <690000>; 160*14e14723SChristian Hewitt regulator-max-microvolt = <1050000>; 161*14e14723SChristian Hewitt pwm-supply = <&vsys_3v3>; 162*14e14723SChristian Hewitt pwms = <&pwm_AO_cd 1 1250 0>; 163*14e14723SChristian Hewitt pwm-dutycycle-range = <100 0>; 164*14e14723SChristian Hewitt regulator-boot-on; 165*14e14723SChristian Hewitt regulator-always-on; 166*14e14723SChristian Hewitt }; 167*14e14723SChristian Hewitt 168*14e14723SChristian Hewitt vsys_3v3: regulator-vsys-3v3 { 169*14e14723SChristian Hewitt compatible = "regulator-fixed"; 170*14e14723SChristian Hewitt regulator-name = "VSYS_3V3"; 171*14e14723SChristian Hewitt regulator-min-microvolt = <3300000>; 172*14e14723SChristian Hewitt regulator-max-microvolt = <3300000>; 173*14e14723SChristian Hewitt vin-supply = <&dc_in>; 174*14e14723SChristian Hewitt regulator-always-on; 175*14e14723SChristian Hewitt }; 176*14e14723SChristian Hewitt 177*14e14723SChristian Hewitt emmc_1v8: regulator-emmc-1v8 { 178*14e14723SChristian Hewitt compatible = "regulator-fixed"; 179*14e14723SChristian Hewitt regulator-name = "EMMC_AO1V8"; 180*14e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 181*14e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 182*14e14723SChristian Hewitt vin-supply = <&vcc_3v3>; 183*14e14723SChristian Hewitt regulator-always-on; 184*14e14723SChristian Hewitt }; 185*14e14723SChristian Hewitt 186*14e14723SChristian Hewitt usb_pwr: regulator-usb-pwr { 187*14e14723SChristian Hewitt compatible = "regulator-fixed"; 188*14e14723SChristian Hewitt regulator-name = "USB_PWR"; 189*14e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 190*14e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 191*14e14723SChristian Hewitt vin-supply = <&vcc_5v>; 192*14e14723SChristian Hewitt 193*14e14723SChristian Hewitt gpio = <&gpio GPIOA_6 GPIO_ACTIVE_HIGH>; 194*14e14723SChristian Hewitt enable-active-high; 195*14e14723SChristian Hewitt }; 196*14e14723SChristian Hewitt 197*14e14723SChristian Hewitt sound { 198*14e14723SChristian Hewitt compatible = "amlogic,axg-sound-card"; 199*14e14723SChristian Hewitt model = "BPI-M2S"; 200*14e14723SChristian Hewitt audio-aux-devs = <&tdmout_b>; 201*14e14723SChristian Hewitt audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 202*14e14723SChristian Hewitt "TDMOUT_B IN 1", "FRDDR_B OUT 1", 203*14e14723SChristian Hewitt "TDMOUT_B IN 2", "FRDDR_C OUT 1", 204*14e14723SChristian Hewitt "TDM_B Playback", "TDMOUT_B OUT"; 205*14e14723SChristian Hewitt 206*14e14723SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL2>, 207*14e14723SChristian Hewitt <&clkc CLKID_MPLL0>, 208*14e14723SChristian Hewitt <&clkc CLKID_MPLL1>; 209*14e14723SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 210*14e14723SChristian Hewitt assigned-clock-rates = <294912000>, 211*14e14723SChristian Hewitt <270950400>, 212*14e14723SChristian Hewitt <393216000>; 213*14e14723SChristian Hewitt 214*14e14723SChristian Hewitt dai-link-0 { 215*14e14723SChristian Hewitt sound-dai = <&frddr_a>; 216*14e14723SChristian Hewitt }; 217*14e14723SChristian Hewitt 218*14e14723SChristian Hewitt dai-link-1 { 219*14e14723SChristian Hewitt sound-dai = <&frddr_b>; 220*14e14723SChristian Hewitt }; 221*14e14723SChristian Hewitt 222*14e14723SChristian Hewitt dai-link-2 { 223*14e14723SChristian Hewitt sound-dai = <&frddr_c>; 224*14e14723SChristian Hewitt }; 225*14e14723SChristian Hewitt 226*14e14723SChristian Hewitt /* 8ch hdmi interface */ 227*14e14723SChristian Hewitt dai-link-3 { 228*14e14723SChristian Hewitt sound-dai = <&tdmif_b>; 229*14e14723SChristian Hewitt dai-format = "i2s"; 230*14e14723SChristian Hewitt dai-tdm-slot-tx-mask-0 = <1 1>; 231*14e14723SChristian Hewitt dai-tdm-slot-tx-mask-1 = <1 1>; 232*14e14723SChristian Hewitt dai-tdm-slot-tx-mask-2 = <1 1>; 233*14e14723SChristian Hewitt dai-tdm-slot-tx-mask-3 = <1 1>; 234*14e14723SChristian Hewitt mclk-fs = <256>; 235*14e14723SChristian Hewitt 236*14e14723SChristian Hewitt codec { 237*14e14723SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 238*14e14723SChristian Hewitt }; 239*14e14723SChristian Hewitt }; 240*14e14723SChristian Hewitt 241*14e14723SChristian Hewitt /* hdmi glue */ 242*14e14723SChristian Hewitt dai-link-4 { 243*14e14723SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 244*14e14723SChristian Hewitt 245*14e14723SChristian Hewitt codec { 246*14e14723SChristian Hewitt sound-dai = <&hdmi_tx>; 247*14e14723SChristian Hewitt }; 248*14e14723SChristian Hewitt }; 249*14e14723SChristian Hewitt }; 250*14e14723SChristian Hewitt}; 251*14e14723SChristian Hewitt 252*14e14723SChristian Hewitt&arb { 253*14e14723SChristian Hewitt status = "okay"; 254*14e14723SChristian Hewitt}; 255*14e14723SChristian Hewitt 256*14e14723SChristian Hewitt&clkc_audio { 257*14e14723SChristian Hewitt status = "okay"; 258*14e14723SChristian Hewitt}; 259*14e14723SChristian Hewitt 260*14e14723SChristian Hewitt&cecb_AO { 261*14e14723SChristian Hewitt pinctrl-0 = <&cec_ao_b_h_pins>; 262*14e14723SChristian Hewitt pinctrl-names = "default"; 263*14e14723SChristian Hewitt status = "okay"; 264*14e14723SChristian Hewitt hdmi-phandle = <&hdmi_tx>; 265*14e14723SChristian Hewitt}; 266*14e14723SChristian Hewitt 267*14e14723SChristian Hewitt&cpu0 { 268*14e14723SChristian Hewitt cpu-supply = <&vddcpu_b>; 269*14e14723SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 270*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 271*14e14723SChristian Hewitt clock-latency = <50000>; 272*14e14723SChristian Hewitt}; 273*14e14723SChristian Hewitt 274*14e14723SChristian Hewitt&cpu1 { 275*14e14723SChristian Hewitt cpu-supply = <&vddcpu_b>; 276*14e14723SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 277*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 278*14e14723SChristian Hewitt clock-latency = <50000>; 279*14e14723SChristian Hewitt}; 280*14e14723SChristian Hewitt 281*14e14723SChristian Hewitt&cpu100 { 282*14e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 283*14e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 284*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 285*14e14723SChristian Hewitt clock-latency = <50000>; 286*14e14723SChristian Hewitt}; 287*14e14723SChristian Hewitt 288*14e14723SChristian Hewitt&cpu101 { 289*14e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 290*14e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 291*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 292*14e14723SChristian Hewitt clock-latency = <50000>; 293*14e14723SChristian Hewitt}; 294*14e14723SChristian Hewitt 295*14e14723SChristian Hewitt&cpu102 { 296*14e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 297*14e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 298*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 299*14e14723SChristian Hewitt clock-latency = <50000>; 300*14e14723SChristian Hewitt}; 301*14e14723SChristian Hewitt 302*14e14723SChristian Hewitt&cpu103 { 303*14e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 304*14e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 305*14e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 306*14e14723SChristian Hewitt clock-latency = <50000>; 307*14e14723SChristian Hewitt}; 308*14e14723SChristian Hewitt 309*14e14723SChristian Hewittðmac { 310*14e14723SChristian Hewitt pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 311*14e14723SChristian Hewitt pinctrl-names = "default"; 312*14e14723SChristian Hewitt status = "okay"; 313*14e14723SChristian Hewitt phy-mode = "rgmii"; 314*14e14723SChristian Hewitt phy-handle = <&external_phy>; 315*14e14723SChristian Hewitt amlogic,tx-delay-ns = <2>; 316*14e14723SChristian Hewitt}; 317*14e14723SChristian Hewitt 318*14e14723SChristian Hewitt&ext_mdio { 319*14e14723SChristian Hewitt external_phy: ethernet-phy@0 { 320*14e14723SChristian Hewitt /* Realtek RTL8211F (0x001cc916) */ 321*14e14723SChristian Hewitt reg = <0>; 322*14e14723SChristian Hewitt max-speed = <1000>; 323*14e14723SChristian Hewitt 324*14e14723SChristian Hewitt reset-assert-us = <10000>; 325*14e14723SChristian Hewitt reset-deassert-us = <80000>; 326*14e14723SChristian Hewitt reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 327*14e14723SChristian Hewitt 328*14e14723SChristian Hewitt interrupt-parent = <&gpio_intc>; 329*14e14723SChristian Hewitt /* MAC_INTR on GPIOZ_14 */ 330*14e14723SChristian Hewitt interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 331*14e14723SChristian Hewitt }; 332*14e14723SChristian Hewitt}; 333*14e14723SChristian Hewitt 334*14e14723SChristian Hewitt&frddr_a { 335*14e14723SChristian Hewitt status = "okay"; 336*14e14723SChristian Hewitt}; 337*14e14723SChristian Hewitt 338*14e14723SChristian Hewitt&frddr_b { 339*14e14723SChristian Hewitt status = "okay"; 340*14e14723SChristian Hewitt}; 341*14e14723SChristian Hewitt 342*14e14723SChristian Hewitt&frddr_c { 343*14e14723SChristian Hewitt status = "okay"; 344*14e14723SChristian Hewitt}; 345*14e14723SChristian Hewitt 346*14e14723SChristian Hewitt&hdmi_tx { 347*14e14723SChristian Hewitt status = "okay"; 348*14e14723SChristian Hewitt pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 349*14e14723SChristian Hewitt pinctrl-names = "default"; 350*14e14723SChristian Hewitt hdmi-supply = <&vcc_5v>; 351*14e14723SChristian Hewitt}; 352*14e14723SChristian Hewitt 353*14e14723SChristian Hewitt&hdmi_tx_tmds_port { 354*14e14723SChristian Hewitt hdmi_tx_tmds_out: endpoint { 355*14e14723SChristian Hewitt remote-endpoint = <&hdmi_connector_in>; 356*14e14723SChristian Hewitt }; 357*14e14723SChristian Hewitt}; 358*14e14723SChristian Hewitt 359*14e14723SChristian Hewitt/* Main i2c bus */ 360*14e14723SChristian Hewitt&i2c2 { 361*14e14723SChristian Hewitt status = "okay"; 362*14e14723SChristian Hewitt pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>; 363*14e14723SChristian Hewitt pinctrl-names = "default"; 364*14e14723SChristian Hewitt}; 365*14e14723SChristian Hewitt 366*14e14723SChristian Hewitt&pcie { 367*14e14723SChristian Hewitt status = "okay"; 368*14e14723SChristian Hewitt reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>; 369*14e14723SChristian Hewitt}; 370*14e14723SChristian Hewitt 371*14e14723SChristian Hewitt&pwm_ab { 372*14e14723SChristian Hewitt status = "okay"; 373*14e14723SChristian Hewitt pinctrl-0 = <&pwm_a_e_pins>; 374*14e14723SChristian Hewitt pinctrl-names = "default"; 375*14e14723SChristian Hewitt clocks = <&xtal>; 376*14e14723SChristian Hewitt clock-names = "clkin0"; 377*14e14723SChristian Hewitt}; 378*14e14723SChristian Hewitt 379*14e14723SChristian Hewitt&pwm_cd { 380*14e14723SChristian Hewitt status = "okay"; 381*14e14723SChristian Hewitt pinctrl-0 = <&pwm_d_x6_pins>; 382*14e14723SChristian Hewitt pinctrl-names = "default"; 383*14e14723SChristian Hewitt pwm-gpios = <&gpio GPIOAO_10 GPIO_ACTIVE_HIGH>; 384*14e14723SChristian Hewitt}; 385*14e14723SChristian Hewitt 386*14e14723SChristian Hewitt&pwm_ef { 387*14e14723SChristian Hewitt status = "okay"; 388*14e14723SChristian Hewitt pinctrl-0 = <&pwm_e_pins>; 389*14e14723SChristian Hewitt pinctrl-names = "default"; 390*14e14723SChristian Hewitt}; 391*14e14723SChristian Hewitt 392*14e14723SChristian Hewitt&pwm_AO_cd { 393*14e14723SChristian Hewitt pinctrl-0 = <&pwm_ao_d_e_pins>; 394*14e14723SChristian Hewitt pinctrl-names = "default"; 395*14e14723SChristian Hewitt clocks = <&xtal>; 396*14e14723SChristian Hewitt clock-names = "clkin1"; 397*14e14723SChristian Hewitt status = "okay"; 398*14e14723SChristian Hewitt}; 399*14e14723SChristian Hewitt 400*14e14723SChristian Hewitt&saradc { 401*14e14723SChristian Hewitt status = "okay"; 402*14e14723SChristian Hewitt vref-supply = <&vddao_1v8>; 403*14e14723SChristian Hewitt}; 404*14e14723SChristian Hewitt 405*14e14723SChristian Hewitt/* SDIO */ 406*14e14723SChristian Hewitt&sd_emmc_a { 407*14e14723SChristian Hewitt /* enable if WiFi/BT board connected */ 408*14e14723SChristian Hewitt status = "disabled"; 409*14e14723SChristian Hewitt pinctrl-0 = <&sdio_pins>; 410*14e14723SChristian Hewitt pinctrl-1 = <&sdio_clk_gate_pins>; 411*14e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 412*14e14723SChristian Hewitt #address-cells = <1>; 413*14e14723SChristian Hewitt #size-cells = <0>; 414*14e14723SChristian Hewitt 415*14e14723SChristian Hewitt bus-width = <4>; 416*14e14723SChristian Hewitt sd-uhs-sdr104; 417*14e14723SChristian Hewitt max-frequency = <50000000>; 418*14e14723SChristian Hewitt 419*14e14723SChristian Hewitt non-removable; 420*14e14723SChristian Hewitt disable-wp; 421*14e14723SChristian Hewitt 422*14e14723SChristian Hewitt /* WiFi firmware requires power in suspend */ 423*14e14723SChristian Hewitt keep-power-in-suspend; 424*14e14723SChristian Hewitt 425*14e14723SChristian Hewitt mmc-pwrseq = <&sdio_pwrseq>; 426*14e14723SChristian Hewitt 427*14e14723SChristian Hewitt vmmc-supply = <&vsys_3v3>; 428*14e14723SChristian Hewitt vqmmc-supply = <&vddao_1v8>; 429*14e14723SChristian Hewitt 430*14e14723SChristian Hewitt rtl8822cs: wifi@1 { 431*14e14723SChristian Hewitt reg = <1>; 432*14e14723SChristian Hewitt }; 433*14e14723SChristian Hewitt}; 434*14e14723SChristian Hewitt 435*14e14723SChristian Hewitt/* SD card */ 436*14e14723SChristian Hewitt&sd_emmc_b { 437*14e14723SChristian Hewitt status = "okay"; 438*14e14723SChristian Hewitt pinctrl-0 = <&sdcard_c_pins>; 439*14e14723SChristian Hewitt pinctrl-1 = <&sdcard_clk_gate_c_pins>; 440*14e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 441*14e14723SChristian Hewitt 442*14e14723SChristian Hewitt bus-width = <4>; 443*14e14723SChristian Hewitt cap-sd-highspeed; 444*14e14723SChristian Hewitt max-frequency = <50000000>; 445*14e14723SChristian Hewitt disable-wp; 446*14e14723SChristian Hewitt 447*14e14723SChristian Hewitt cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 448*14e14723SChristian Hewitt vmmc-supply = <&vsys_3v3>; 449*14e14723SChristian Hewitt vqmmc-supply = <&vsys_3v3>; 450*14e14723SChristian Hewitt}; 451*14e14723SChristian Hewitt 452*14e14723SChristian Hewitt/* eMMC */ 453*14e14723SChristian Hewitt&sd_emmc_c { 454*14e14723SChristian Hewitt status = "okay"; 455*14e14723SChristian Hewitt pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 456*14e14723SChristian Hewitt pinctrl-1 = <&emmc_clk_gate_pins>; 457*14e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 458*14e14723SChristian Hewitt 459*14e14723SChristian Hewitt bus-width = <8>; 460*14e14723SChristian Hewitt cap-mmc-highspeed; 461*14e14723SChristian Hewitt mmc-ddr-1_8v; 462*14e14723SChristian Hewitt mmc-hs200-1_8v; 463*14e14723SChristian Hewitt max-frequency = <200000000>; 464*14e14723SChristian Hewitt disable-wp; 465*14e14723SChristian Hewitt 466*14e14723SChristian Hewitt mmc-pwrseq = <&emmc_pwrseq>; 467*14e14723SChristian Hewitt vmmc-supply = <&vcc_3v3>; 468*14e14723SChristian Hewitt vqmmc-supply = <&emmc_1v8>; 469*14e14723SChristian Hewitt}; 470*14e14723SChristian Hewitt 471*14e14723SChristian Hewitt&tdmif_b { 472*14e14723SChristian Hewitt status = "okay"; 473*14e14723SChristian Hewitt}; 474*14e14723SChristian Hewitt 475*14e14723SChristian Hewitt&tdmout_b { 476*14e14723SChristian Hewitt status = "okay"; 477*14e14723SChristian Hewitt}; 478*14e14723SChristian Hewitt 479*14e14723SChristian Hewitt&tohdmitx { 480*14e14723SChristian Hewitt status = "okay"; 481*14e14723SChristian Hewitt}; 482*14e14723SChristian Hewitt 483*14e14723SChristian Hewitt&uart_A { 484*14e14723SChristian Hewitt /* enable if WiFi/BT board connected */ 485*14e14723SChristian Hewitt status = "disabled"; 486*14e14723SChristian Hewitt pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 487*14e14723SChristian Hewitt pinctrl-names = "default"; 488*14e14723SChristian Hewitt uart-has-rtscts; 489*14e14723SChristian Hewitt 490*14e14723SChristian Hewitt bluetooth { 491*14e14723SChristian Hewitt compatible = "realtek,rtl8822cs-bt"; 492*14e14723SChristian Hewitt enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 493*14e14723SChristian Hewitt host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; 494*14e14723SChristian Hewitt device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; 495*14e14723SChristian Hewitt }; 496*14e14723SChristian Hewitt}; 497*14e14723SChristian Hewitt 498*14e14723SChristian Hewitt&uart_AO { 499*14e14723SChristian Hewitt status = "okay"; 500*14e14723SChristian Hewitt pinctrl-0 = <&uart_ao_a_pins>; 501*14e14723SChristian Hewitt pinctrl-names = "default"; 502*14e14723SChristian Hewitt}; 503*14e14723SChristian Hewitt 504*14e14723SChristian Hewitt&usb2_phy0 { 505*14e14723SChristian Hewitt phy-supply = <&dc_in>; 506*14e14723SChristian Hewitt}; 507*14e14723SChristian Hewitt 508*14e14723SChristian Hewitt&usb2_phy1 { 509*14e14723SChristian Hewitt phy-supply = <&usb_pwr>; 510*14e14723SChristian Hewitt}; 511*14e14723SChristian Hewitt 512*14e14723SChristian Hewitt&usb3_pcie_phy { 513*14e14723SChristian Hewitt phy-supply = <&usb_pwr>; 514*14e14723SChristian Hewitt}; 515*14e14723SChristian Hewitt 516*14e14723SChristian Hewitt&usb { 517*14e14723SChristian Hewitt status = "okay"; 518*14e14723SChristian Hewitt dr_mode = "peripheral"; 519*14e14723SChristian Hewitt phys = <&usb2_phy0>, <&usb2_phy1>; 520*14e14723SChristian Hewitt phy-names = "usb2-phy0", "usb2-phy1"; 521*14e14723SChristian Hewitt}; 522