114e14723SChristian Hewitt// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 214e14723SChristian Hewitt/* 314e14723SChristian Hewitt * Copyright (c) 2019 BayLibre, SAS 414e14723SChristian Hewitt * Author: Neil Armstrong <narmstrong@baylibre.com> 514e14723SChristian Hewitt * Copyright (c) 2023 Christian Hewitt <christianshewitt@gmail.com> 614e14723SChristian Hewitt */ 714e14723SChristian Hewitt 814e14723SChristian Hewitt#include <dt-bindings/input/input.h> 914e14723SChristian Hewitt#include <dt-bindings/leds/common.h> 1014e14723SChristian Hewitt#include <dt-bindings/gpio/meson-g12a-gpio.h> 1114e14723SChristian Hewitt#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 1214e14723SChristian Hewitt 1314e14723SChristian Hewitt/ { 1414e14723SChristian Hewitt aliases { 1514e14723SChristian Hewitt serial0 = &uart_AO; 1614e14723SChristian Hewitt ethernet0 = ðmac; 1714e14723SChristian Hewitt rtc1 = &vrtc; 1814e14723SChristian Hewitt }; 1914e14723SChristian Hewitt 2014e14723SChristian Hewitt chosen { 2114e14723SChristian Hewitt stdout-path = "serial0:115200n8"; 2214e14723SChristian Hewitt }; 2314e14723SChristian Hewitt 2414e14723SChristian Hewitt memory@0 { 2514e14723SChristian Hewitt device_type = "memory"; 2614e14723SChristian Hewitt reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 4 GiB */ 2714e14723SChristian Hewitt }; 2814e14723SChristian Hewitt 2914e14723SChristian Hewitt adc-keys { 3014e14723SChristian Hewitt compatible = "adc-keys"; 3114e14723SChristian Hewitt io-channels = <&saradc 2>; 3214e14723SChristian Hewitt io-channel-names = "buttons"; 3314e14723SChristian Hewitt keyup-threshold-microvolt = <1710000>; 3414e14723SChristian Hewitt 3514e14723SChristian Hewitt button-function { 3614e14723SChristian Hewitt label = "RST"; 3714e14723SChristian Hewitt linux,code = <KEY_POWER>; 3814e14723SChristian Hewitt press-threshold-microvolt = <10000>; 3914e14723SChristian Hewitt }; 4014e14723SChristian Hewitt }; 4114e14723SChristian Hewitt 4214e14723SChristian Hewitt emmc_pwrseq: emmc-pwrseq { 4314e14723SChristian Hewitt compatible = "mmc-pwrseq-emmc"; 4414e14723SChristian Hewitt reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 4514e14723SChristian Hewitt }; 4614e14723SChristian Hewitt 4714e14723SChristian Hewitt fan0: pwm-fan { 4814e14723SChristian Hewitt compatible = "pwm-fan"; 4914e14723SChristian Hewitt #cooling-cells = <2>; 5014e14723SChristian Hewitt cooling-levels = <0 120 170 220>; 5114e14723SChristian Hewitt pwms = <&pwm_cd 1 40000 0>; 5214e14723SChristian Hewitt }; 5314e14723SChristian Hewitt 5414e14723SChristian Hewitt hdmi-connector { 5514e14723SChristian Hewitt compatible = "hdmi-connector"; 5614e14723SChristian Hewitt type = "a"; 5714e14723SChristian Hewitt 5814e14723SChristian Hewitt port { 5914e14723SChristian Hewitt hdmi_connector_in: endpoint { 6014e14723SChristian Hewitt remote-endpoint = <&hdmi_tx_tmds_out>; 6114e14723SChristian Hewitt }; 6214e14723SChristian Hewitt }; 6314e14723SChristian Hewitt }; 6414e14723SChristian Hewitt 6514e14723SChristian Hewitt leds { 6614e14723SChristian Hewitt compatible = "gpio-leds"; 6714e14723SChristian Hewitt 6814e14723SChristian Hewitt led-0 { 6914e14723SChristian Hewitt color = <LED_COLOR_ID_BLUE>; 7014e14723SChristian Hewitt function = LED_FUNCTION_STATUS; 7114e14723SChristian Hewitt gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_LOW>; 7214e14723SChristian Hewitt linux,default-trigger = "heartbeat"; 7314e14723SChristian Hewitt }; 7414e14723SChristian Hewitt 7514e14723SChristian Hewitt led-1 { 7614e14723SChristian Hewitt color = <LED_COLOR_ID_GREEN>; 7714e14723SChristian Hewitt function = LED_FUNCTION_STATUS; 7814e14723SChristian Hewitt gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 7914e14723SChristian Hewitt }; 8014e14723SChristian Hewitt }; 8114e14723SChristian Hewitt 8214e14723SChristian Hewitt sdio_pwrseq: sdio-pwrseq { 8314e14723SChristian Hewitt compatible = "mmc-pwrseq-simple"; 8414e14723SChristian Hewitt reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 8514e14723SChristian Hewitt clocks = <&wifi32k>; 8614e14723SChristian Hewitt clock-names = "ext_clock"; 8714e14723SChristian Hewitt }; 8814e14723SChristian Hewitt 8914e14723SChristian Hewitt wifi32k: wifi32k { 9014e14723SChristian Hewitt compatible = "pwm-clock"; 9114e14723SChristian Hewitt #clock-cells = <0>; 9214e14723SChristian Hewitt clock-frequency = <32768>; 9314e14723SChristian Hewitt pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 9414e14723SChristian Hewitt }; 9514e14723SChristian Hewitt 9614e14723SChristian Hewitt dc_in: regulator-dc-in { 9714e14723SChristian Hewitt compatible = "regulator-fixed"; 9814e14723SChristian Hewitt regulator-name = "DC_IN"; 9914e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 10014e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 10114e14723SChristian Hewitt regulator-always-on; 10214e14723SChristian Hewitt }; 10314e14723SChristian Hewitt 10414e14723SChristian Hewitt vcc_5v: regulator-vcc-5v { 10514e14723SChristian Hewitt compatible = "regulator-fixed"; 10614e14723SChristian Hewitt regulator-name = "VCC_5V"; 10714e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 10814e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 10914e14723SChristian Hewitt vin-supply = <&dc_in>; 11014e14723SChristian Hewitt 11114e14723SChristian Hewitt gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 11214e14723SChristian Hewitt enable-active-high; 11314e14723SChristian Hewitt }; 11414e14723SChristian Hewitt 11514e14723SChristian Hewitt vcc_3v3: regulator-vcc-3v3 { 11614e14723SChristian Hewitt compatible = "regulator-fixed"; 11714e14723SChristian Hewitt regulator-name = "VCC_3V3"; 11814e14723SChristian Hewitt regulator-min-microvolt = <3300000>; 11914e14723SChristian Hewitt regulator-max-microvolt = <3300000>; 12014e14723SChristian Hewitt vin-supply = <&vsys_3v3>; 12114e14723SChristian Hewitt regulator-always-on; 12214e14723SChristian Hewitt }; 12314e14723SChristian Hewitt 12414e14723SChristian Hewitt vcc_1v8: regulator-vcc-1v8 { 12514e14723SChristian Hewitt compatible = "regulator-fixed"; 12614e14723SChristian Hewitt regulator-name = "VCC_1V8"; 12714e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 12814e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 12914e14723SChristian Hewitt vin-supply = <&vcc_3v3>; 13014e14723SChristian Hewitt regulator-always-on; 13114e14723SChristian Hewitt }; 13214e14723SChristian Hewitt 13314e14723SChristian Hewitt vddao_1v8: regulator-vddao-1v8 { 13414e14723SChristian Hewitt compatible = "regulator-fixed"; 13514e14723SChristian Hewitt regulator-name = "VDDIO_AO1V8"; 13614e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 13714e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 13814e14723SChristian Hewitt vin-supply = <&vsys_3v3>; 13914e14723SChristian Hewitt regulator-always-on; 14014e14723SChristian Hewitt }; 14114e14723SChristian Hewitt 14214e14723SChristian Hewitt vddcpu_a: regulator-vddcpu-a { 14314e14723SChristian Hewitt compatible = "pwm-regulator"; 14414e14723SChristian Hewitt regulator-name = "VDDCPU_A"; 14514e14723SChristian Hewitt regulator-min-microvolt = <690000>; 14614e14723SChristian Hewitt regulator-max-microvolt = <1050000>; 14714e14723SChristian Hewitt pwm-supply = <&dc_in>; 14814e14723SChristian Hewitt pwms = <&pwm_ab 0 1250 0>; 14914e14723SChristian Hewitt pwm-dutycycle-range = <100 0>; 15014e14723SChristian Hewitt regulator-boot-on; 15114e14723SChristian Hewitt regulator-always-on; 15214e14723SChristian Hewitt }; 15314e14723SChristian Hewitt 15414e14723SChristian Hewitt vddcpu_b: regulator-vddcpu-b { 15514e14723SChristian Hewitt compatible = "pwm-regulator"; 15614e14723SChristian Hewitt regulator-name = "VDDCPU_B"; 15714e14723SChristian Hewitt regulator-min-microvolt = <690000>; 15814e14723SChristian Hewitt regulator-max-microvolt = <1050000>; 15914e14723SChristian Hewitt pwm-supply = <&vsys_3v3>; 16014e14723SChristian Hewitt pwms = <&pwm_AO_cd 1 1250 0>; 16114e14723SChristian Hewitt pwm-dutycycle-range = <100 0>; 16214e14723SChristian Hewitt regulator-boot-on; 16314e14723SChristian Hewitt regulator-always-on; 16414e14723SChristian Hewitt }; 16514e14723SChristian Hewitt 16614e14723SChristian Hewitt vsys_3v3: regulator-vsys-3v3 { 16714e14723SChristian Hewitt compatible = "regulator-fixed"; 16814e14723SChristian Hewitt regulator-name = "VSYS_3V3"; 16914e14723SChristian Hewitt regulator-min-microvolt = <3300000>; 17014e14723SChristian Hewitt regulator-max-microvolt = <3300000>; 17114e14723SChristian Hewitt vin-supply = <&dc_in>; 17214e14723SChristian Hewitt regulator-always-on; 17314e14723SChristian Hewitt }; 17414e14723SChristian Hewitt 17514e14723SChristian Hewitt emmc_1v8: regulator-emmc-1v8 { 17614e14723SChristian Hewitt compatible = "regulator-fixed"; 17714e14723SChristian Hewitt regulator-name = "EMMC_AO1V8"; 17814e14723SChristian Hewitt regulator-min-microvolt = <1800000>; 17914e14723SChristian Hewitt regulator-max-microvolt = <1800000>; 18014e14723SChristian Hewitt vin-supply = <&vcc_3v3>; 18114e14723SChristian Hewitt regulator-always-on; 18214e14723SChristian Hewitt }; 18314e14723SChristian Hewitt 18414e14723SChristian Hewitt usb_pwr: regulator-usb-pwr { 18514e14723SChristian Hewitt compatible = "regulator-fixed"; 18614e14723SChristian Hewitt regulator-name = "USB_PWR"; 18714e14723SChristian Hewitt regulator-min-microvolt = <5000000>; 18814e14723SChristian Hewitt regulator-max-microvolt = <5000000>; 18914e14723SChristian Hewitt vin-supply = <&vcc_5v>; 19014e14723SChristian Hewitt 19114e14723SChristian Hewitt gpio = <&gpio GPIOA_6 GPIO_ACTIVE_HIGH>; 19214e14723SChristian Hewitt enable-active-high; 19314e14723SChristian Hewitt }; 19414e14723SChristian Hewitt 19514e14723SChristian Hewitt sound { 19614e14723SChristian Hewitt compatible = "amlogic,axg-sound-card"; 19714e14723SChristian Hewitt model = "BPI-M2S"; 19814e14723SChristian Hewitt audio-aux-devs = <&tdmout_b>; 19914e14723SChristian Hewitt audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 20014e14723SChristian Hewitt "TDMOUT_B IN 1", "FRDDR_B OUT 1", 20114e14723SChristian Hewitt "TDMOUT_B IN 2", "FRDDR_C OUT 1", 20214e14723SChristian Hewitt "TDM_B Playback", "TDMOUT_B OUT"; 20314e14723SChristian Hewitt 20414e14723SChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL2>, 20514e14723SChristian Hewitt <&clkc CLKID_MPLL0>, 20614e14723SChristian Hewitt <&clkc CLKID_MPLL1>; 20714e14723SChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 20814e14723SChristian Hewitt assigned-clock-rates = <294912000>, 20914e14723SChristian Hewitt <270950400>, 21014e14723SChristian Hewitt <393216000>; 21114e14723SChristian Hewitt 21214e14723SChristian Hewitt dai-link-0 { 21314e14723SChristian Hewitt sound-dai = <&frddr_a>; 21414e14723SChristian Hewitt }; 21514e14723SChristian Hewitt 21614e14723SChristian Hewitt dai-link-1 { 21714e14723SChristian Hewitt sound-dai = <&frddr_b>; 21814e14723SChristian Hewitt }; 21914e14723SChristian Hewitt 22014e14723SChristian Hewitt dai-link-2 { 22114e14723SChristian Hewitt sound-dai = <&frddr_c>; 22214e14723SChristian Hewitt }; 22314e14723SChristian Hewitt 22414e14723SChristian Hewitt /* 8ch hdmi interface */ 22514e14723SChristian Hewitt dai-link-3 { 22614e14723SChristian Hewitt sound-dai = <&tdmif_b>; 22714e14723SChristian Hewitt dai-format = "i2s"; 22814e14723SChristian Hewitt dai-tdm-slot-tx-mask-0 = <1 1>; 22914e14723SChristian Hewitt dai-tdm-slot-tx-mask-1 = <1 1>; 23014e14723SChristian Hewitt dai-tdm-slot-tx-mask-2 = <1 1>; 23114e14723SChristian Hewitt dai-tdm-slot-tx-mask-3 = <1 1>; 23214e14723SChristian Hewitt mclk-fs = <256>; 23314e14723SChristian Hewitt 23414e14723SChristian Hewitt codec { 23514e14723SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 23614e14723SChristian Hewitt }; 23714e14723SChristian Hewitt }; 23814e14723SChristian Hewitt 23914e14723SChristian Hewitt /* hdmi glue */ 24014e14723SChristian Hewitt dai-link-4 { 24114e14723SChristian Hewitt sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 24214e14723SChristian Hewitt 24314e14723SChristian Hewitt codec { 24414e14723SChristian Hewitt sound-dai = <&hdmi_tx>; 24514e14723SChristian Hewitt }; 24614e14723SChristian Hewitt }; 24714e14723SChristian Hewitt }; 24814e14723SChristian Hewitt}; 24914e14723SChristian Hewitt 25014e14723SChristian Hewitt&arb { 25114e14723SChristian Hewitt status = "okay"; 25214e14723SChristian Hewitt}; 25314e14723SChristian Hewitt 25414e14723SChristian Hewitt&clkc_audio { 25514e14723SChristian Hewitt status = "okay"; 25614e14723SChristian Hewitt}; 25714e14723SChristian Hewitt 25814e14723SChristian Hewitt&cecb_AO { 25914e14723SChristian Hewitt pinctrl-0 = <&cec_ao_b_h_pins>; 26014e14723SChristian Hewitt pinctrl-names = "default"; 26114e14723SChristian Hewitt status = "okay"; 26214e14723SChristian Hewitt hdmi-phandle = <&hdmi_tx>; 26314e14723SChristian Hewitt}; 26414e14723SChristian Hewitt 26514e14723SChristian Hewitt&cpu0 { 26614e14723SChristian Hewitt cpu-supply = <&vddcpu_b>; 26714e14723SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 26814e14723SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 26914e14723SChristian Hewitt clock-latency = <50000>; 27014e14723SChristian Hewitt}; 27114e14723SChristian Hewitt 27214e14723SChristian Hewitt&cpu1 { 27314e14723SChristian Hewitt cpu-supply = <&vddcpu_b>; 27414e14723SChristian Hewitt operating-points-v2 = <&cpu_opp_table_0>; 27514e14723SChristian Hewitt clocks = <&clkc CLKID_CPU_CLK>; 27614e14723SChristian Hewitt clock-latency = <50000>; 27714e14723SChristian Hewitt}; 27814e14723SChristian Hewitt 27914e14723SChristian Hewitt&cpu100 { 28014e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 28114e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 28214e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 28314e14723SChristian Hewitt clock-latency = <50000>; 28414e14723SChristian Hewitt}; 28514e14723SChristian Hewitt 28614e14723SChristian Hewitt&cpu101 { 28714e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 28814e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 28914e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 29014e14723SChristian Hewitt clock-latency = <50000>; 29114e14723SChristian Hewitt}; 29214e14723SChristian Hewitt 29314e14723SChristian Hewitt&cpu102 { 29414e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 29514e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 29614e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 29714e14723SChristian Hewitt clock-latency = <50000>; 29814e14723SChristian Hewitt}; 29914e14723SChristian Hewitt 30014e14723SChristian Hewitt&cpu103 { 30114e14723SChristian Hewitt cpu-supply = <&vddcpu_a>; 30214e14723SChristian Hewitt operating-points-v2 = <&cpub_opp_table_1>; 30314e14723SChristian Hewitt clocks = <&clkc CLKID_CPUB_CLK>; 30414e14723SChristian Hewitt clock-latency = <50000>; 30514e14723SChristian Hewitt}; 30614e14723SChristian Hewitt 30714e14723SChristian Hewittðmac { 30814e14723SChristian Hewitt pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 30914e14723SChristian Hewitt pinctrl-names = "default"; 31014e14723SChristian Hewitt status = "okay"; 31114e14723SChristian Hewitt phy-mode = "rgmii"; 31214e14723SChristian Hewitt phy-handle = <&external_phy>; 31314e14723SChristian Hewitt amlogic,tx-delay-ns = <2>; 31414e14723SChristian Hewitt}; 31514e14723SChristian Hewitt 31614e14723SChristian Hewitt&ext_mdio { 31714e14723SChristian Hewitt external_phy: ethernet-phy@0 { 31814e14723SChristian Hewitt /* Realtek RTL8211F (0x001cc916) */ 31914e14723SChristian Hewitt reg = <0>; 32014e14723SChristian Hewitt max-speed = <1000>; 32114e14723SChristian Hewitt 32214e14723SChristian Hewitt reset-assert-us = <10000>; 32314e14723SChristian Hewitt reset-deassert-us = <80000>; 32414e14723SChristian Hewitt reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 32514e14723SChristian Hewitt 32614e14723SChristian Hewitt interrupt-parent = <&gpio_intc>; 32714e14723SChristian Hewitt /* MAC_INTR on GPIOZ_14 */ 32814e14723SChristian Hewitt interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; 32914e14723SChristian Hewitt }; 330*6387e0aaSHuqiang Qin}; 33114e14723SChristian Hewitt 33214e14723SChristian Hewitt&frddr_a { 33314e14723SChristian Hewitt status = "okay"; 33414e14723SChristian Hewitt}; 33514e14723SChristian Hewitt 33614e14723SChristian Hewitt&frddr_b { 33714e14723SChristian Hewitt status = "okay"; 33814e14723SChristian Hewitt}; 33914e14723SChristian Hewitt 34014e14723SChristian Hewitt&frddr_c { 34114e14723SChristian Hewitt status = "okay"; 34214e14723SChristian Hewitt}; 34314e14723SChristian Hewitt 34414e14723SChristian Hewitt&hdmi_tx { 34514e14723SChristian Hewitt status = "okay"; 34614e14723SChristian Hewitt pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 34714e14723SChristian Hewitt pinctrl-names = "default"; 34814e14723SChristian Hewitt hdmi-supply = <&vcc_5v>; 34914e14723SChristian Hewitt}; 35014e14723SChristian Hewitt 35114e14723SChristian Hewitt&hdmi_tx_tmds_port { 35214e14723SChristian Hewitt hdmi_tx_tmds_out: endpoint { 35314e14723SChristian Hewitt remote-endpoint = <&hdmi_connector_in>; 35414e14723SChristian Hewitt }; 35514e14723SChristian Hewitt}; 35614e14723SChristian Hewitt 35714e14723SChristian Hewitt/* Main i2c bus */ 35814e14723SChristian Hewitt&i2c2 { 35914e14723SChristian Hewitt status = "okay"; 36014e14723SChristian Hewitt pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>; 36114e14723SChristian Hewitt pinctrl-names = "default"; 36214e14723SChristian Hewitt}; 36314e14723SChristian Hewitt 36414e14723SChristian Hewitt&pcie { 36514e14723SChristian Hewitt status = "okay"; 36614e14723SChristian Hewitt reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>; 36714e14723SChristian Hewitt}; 36814e14723SChristian Hewitt 36914e14723SChristian Hewitt&pwm_ab { 37014e14723SChristian Hewitt status = "okay"; 37114e14723SChristian Hewitt pinctrl-0 = <&pwm_a_e_pins>; 37214e14723SChristian Hewitt pinctrl-names = "default"; 37314e14723SChristian Hewitt clocks = <&xtal>; 37414e14723SChristian Hewitt clock-names = "clkin0"; 37514e14723SChristian Hewitt}; 37614e14723SChristian Hewitt 37714e14723SChristian Hewitt&pwm_cd { 37814e14723SChristian Hewitt status = "okay"; 37914e14723SChristian Hewitt pinctrl-0 = <&pwm_d_x6_pins>; 38014e14723SChristian Hewitt pinctrl-names = "default"; 38114e14723SChristian Hewitt pwm-gpios = <&gpio GPIOAO_10 GPIO_ACTIVE_HIGH>; 38214e14723SChristian Hewitt}; 38314e14723SChristian Hewitt 38414e14723SChristian Hewitt&pwm_ef { 38514e14723SChristian Hewitt status = "okay"; 38614e14723SChristian Hewitt pinctrl-0 = <&pwm_e_pins>; 38714e14723SChristian Hewitt pinctrl-names = "default"; 38814e14723SChristian Hewitt}; 38914e14723SChristian Hewitt 39014e14723SChristian Hewitt&pwm_AO_cd { 39114e14723SChristian Hewitt pinctrl-0 = <&pwm_ao_d_e_pins>; 39214e14723SChristian Hewitt pinctrl-names = "default"; 39314e14723SChristian Hewitt clocks = <&xtal>; 39414e14723SChristian Hewitt clock-names = "clkin1"; 39514e14723SChristian Hewitt status = "okay"; 39614e14723SChristian Hewitt}; 39714e14723SChristian Hewitt 39814e14723SChristian Hewitt&saradc { 39914e14723SChristian Hewitt status = "okay"; 40014e14723SChristian Hewitt vref-supply = <&vddao_1v8>; 40114e14723SChristian Hewitt}; 40214e14723SChristian Hewitt 40314e14723SChristian Hewitt/* SDIO */ 40414e14723SChristian Hewitt&sd_emmc_a { 40514e14723SChristian Hewitt /* enable if WiFi/BT board connected */ 40614e14723SChristian Hewitt status = "disabled"; 40714e14723SChristian Hewitt pinctrl-0 = <&sdio_pins>; 40814e14723SChristian Hewitt pinctrl-1 = <&sdio_clk_gate_pins>; 40914e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 41014e14723SChristian Hewitt #address-cells = <1>; 41114e14723SChristian Hewitt #size-cells = <0>; 41214e14723SChristian Hewitt 41314e14723SChristian Hewitt bus-width = <4>; 41414e14723SChristian Hewitt sd-uhs-sdr104; 41514e14723SChristian Hewitt max-frequency = <50000000>; 41614e14723SChristian Hewitt 41714e14723SChristian Hewitt non-removable; 41814e14723SChristian Hewitt disable-wp; 41914e14723SChristian Hewitt 42014e14723SChristian Hewitt /* WiFi firmware requires power in suspend */ 42114e14723SChristian Hewitt keep-power-in-suspend; 42214e14723SChristian Hewitt 42314e14723SChristian Hewitt mmc-pwrseq = <&sdio_pwrseq>; 42414e14723SChristian Hewitt 42514e14723SChristian Hewitt vmmc-supply = <&vsys_3v3>; 42614e14723SChristian Hewitt vqmmc-supply = <&vddao_1v8>; 42714e14723SChristian Hewitt 42814e14723SChristian Hewitt rtl8822cs: wifi@1 { 42914e14723SChristian Hewitt reg = <1>; 43014e14723SChristian Hewitt }; 43114e14723SChristian Hewitt}; 43214e14723SChristian Hewitt 43314e14723SChristian Hewitt/* SD card */ 43414e14723SChristian Hewitt&sd_emmc_b { 43514e14723SChristian Hewitt status = "okay"; 43614e14723SChristian Hewitt pinctrl-0 = <&sdcard_c_pins>; 43714e14723SChristian Hewitt pinctrl-1 = <&sdcard_clk_gate_c_pins>; 43814e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 43914e14723SChristian Hewitt 44014e14723SChristian Hewitt bus-width = <4>; 44114e14723SChristian Hewitt cap-sd-highspeed; 44214e14723SChristian Hewitt max-frequency = <50000000>; 44314e14723SChristian Hewitt disable-wp; 44414e14723SChristian Hewitt 44514e14723SChristian Hewitt cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 44614e14723SChristian Hewitt vmmc-supply = <&vsys_3v3>; 44714e14723SChristian Hewitt vqmmc-supply = <&vsys_3v3>; 44814e14723SChristian Hewitt}; 44914e14723SChristian Hewitt 45014e14723SChristian Hewitt/* eMMC */ 45114e14723SChristian Hewitt&sd_emmc_c { 45214e14723SChristian Hewitt status = "okay"; 45314e14723SChristian Hewitt pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 45414e14723SChristian Hewitt pinctrl-1 = <&emmc_clk_gate_pins>; 45514e14723SChristian Hewitt pinctrl-names = "default", "clk-gate"; 45614e14723SChristian Hewitt 45714e14723SChristian Hewitt bus-width = <8>; 45814e14723SChristian Hewitt cap-mmc-highspeed; 45914e14723SChristian Hewitt mmc-ddr-1_8v; 46014e14723SChristian Hewitt mmc-hs200-1_8v; 46114e14723SChristian Hewitt max-frequency = <200000000>; 46214e14723SChristian Hewitt disable-wp; 46314e14723SChristian Hewitt 46414e14723SChristian Hewitt mmc-pwrseq = <&emmc_pwrseq>; 46514e14723SChristian Hewitt vmmc-supply = <&vcc_3v3>; 46614e14723SChristian Hewitt vqmmc-supply = <&emmc_1v8>; 46714e14723SChristian Hewitt}; 46814e14723SChristian Hewitt 46914e14723SChristian Hewitt&tdmif_b { 47014e14723SChristian Hewitt status = "okay"; 47114e14723SChristian Hewitt}; 47214e14723SChristian Hewitt 47314e14723SChristian Hewitt&tdmout_b { 47414e14723SChristian Hewitt status = "okay"; 47514e14723SChristian Hewitt}; 47614e14723SChristian Hewitt 47714e14723SChristian Hewitt&tohdmitx { 47814e14723SChristian Hewitt status = "okay"; 47914e14723SChristian Hewitt}; 48014e14723SChristian Hewitt 48114e14723SChristian Hewitt&uart_A { 48214e14723SChristian Hewitt /* enable if WiFi/BT board connected */ 48314e14723SChristian Hewitt status = "disabled"; 48414e14723SChristian Hewitt pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 48514e14723SChristian Hewitt pinctrl-names = "default"; 48614e14723SChristian Hewitt uart-has-rtscts; 48714e14723SChristian Hewitt 48814e14723SChristian Hewitt bluetooth { 48914e14723SChristian Hewitt compatible = "realtek,rtl8822cs-bt"; 49014e14723SChristian Hewitt enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 49114e14723SChristian Hewitt host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>; 49214e14723SChristian Hewitt device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; 49314e14723SChristian Hewitt }; 49414e14723SChristian Hewitt}; 49514e14723SChristian Hewitt 49614e14723SChristian Hewitt&uart_AO { 49714e14723SChristian Hewitt status = "okay"; 49814e14723SChristian Hewitt pinctrl-0 = <&uart_ao_a_pins>; 49914e14723SChristian Hewitt pinctrl-names = "default"; 50014e14723SChristian Hewitt}; 50114e14723SChristian Hewitt 50214e14723SChristian Hewitt&usb2_phy0 { 50314e14723SChristian Hewitt phy-supply = <&dc_in>; 50414e14723SChristian Hewitt}; 50514e14723SChristian Hewitt 50614e14723SChristian Hewitt&usb2_phy1 { 50714e14723SChristian Hewitt phy-supply = <&usb_pwr>; 50814e14723SChristian Hewitt}; 50914e14723SChristian Hewitt 51014e14723SChristian Hewitt&usb3_pcie_phy { 51114e14723SChristian Hewitt phy-supply = <&usb_pwr>; 51214e14723SChristian Hewitt}; 51314e14723SChristian Hewitt 51414e14723SChristian Hewitt&usb { 51514e14723SChristian Hewitt status = "okay"; 51614e14723SChristian Hewitt dr_mode = "peripheral"; 51714e14723SChristian Hewitt phys = <&usb2_phy0>, <&usb2_phy1>; 51814e14723SChristian Hewitt phy-names = "usb2-phy0", "usb2-phy1"; 51914e14723SChristian Hewitt}; 52014e14723SChristian Hewitt