1b7be1449SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2b7be1449SNeil Armstrong/* 3b7be1449SNeil Armstrong * Copyright (c) 2019 BayLibre SAS. All rights reserved. 4b7be1449SNeil Armstrong */ 5b7be1449SNeil Armstrong 6b7be1449SNeil Armstrong/dts-v1/; 7b7be1449SNeil Armstrong 8b7be1449SNeil Armstrong#include "meson-g12a.dtsi" 92297c33cSJerome Brunet#include <dt-bindings/gpio/gpio.h> 10d1c023afSNeil Armstrong#include <dt-bindings/input/input.h> 112297c33cSJerome Brunet#include <dt-bindings/gpio/meson-g12a-gpio.h> 1264c10554SJerome Brunet#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 13b7be1449SNeil Armstrong 14b7be1449SNeil Armstrong/ { 15b7be1449SNeil Armstrong compatible = "seirobotics,sei510", "amlogic,g12a"; 16b7be1449SNeil Armstrong model = "SEI Robotics SEI510"; 17b7be1449SNeil Armstrong 18d1c023afSNeil Armstrong adc_keys { 19d1c023afSNeil Armstrong compatible = "adc-keys"; 20d1c023afSNeil Armstrong io-channels = <&saradc 0>; 21d1c023afSNeil Armstrong io-channel-names = "buttons"; 22d1c023afSNeil Armstrong keyup-threshold-microvolt = <1800000>; 23d1c023afSNeil Armstrong 24d1c023afSNeil Armstrong button-onoff { 25d1c023afSNeil Armstrong label = "On/Off"; 26d1c023afSNeil Armstrong linux,code = <KEY_POWER>; 27d1c023afSNeil Armstrong press-threshold-microvolt = <1700000>; 28d1c023afSNeil Armstrong }; 29d1c023afSNeil Armstrong }; 30d1c023afSNeil Armstrong 3173429cf2SJerome Brunet aliases { 3273429cf2SJerome Brunet serial0 = &uart_AO; 33a1abafb6SJerome Brunet ethernet0 = ðmac; 342297c33cSJerome Brunet }; 352297c33cSJerome Brunet 3664c10554SJerome Brunet mono_dac: audio-codec-0 { 37b06c8c6eSMaxime Jourdan compatible = "maxim,max98357a"; 38b06c8c6eSMaxime Jourdan #sound-dai-cells = <0>; 39b06c8c6eSMaxime Jourdan sound-name-prefix = "U16"; 40b06c8c6eSMaxime Jourdan sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; 41b06c8c6eSMaxime Jourdan }; 42b06c8c6eSMaxime Jourdan 4364c10554SJerome Brunet dmics: audio-codec-1 { 4464c10554SJerome Brunet #sound-dai-cells = <0>; 4564c10554SJerome Brunet compatible = "dmic-codec"; 4664c10554SJerome Brunet num-channels = <2>; 4764c10554SJerome Brunet wakeup-delay-ms = <50>; 4864c10554SJerome Brunet status = "okay"; 4964c10554SJerome Brunet sound-name-prefix = "MIC"; 5064c10554SJerome Brunet }; 5164c10554SJerome Brunet 52b7be1449SNeil Armstrong chosen { 53b7be1449SNeil Armstrong stdout-path = "serial0:115200n8"; 54b7be1449SNeil Armstrong }; 55b7be1449SNeil Armstrong 56912a3395SNeil Armstrong cvbs-connector { 57912a3395SNeil Armstrong compatible = "composite-video-connector"; 58912a3395SNeil Armstrong 59912a3395SNeil Armstrong port { 60912a3395SNeil Armstrong cvbs_connector_in: endpoint { 61912a3395SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 62912a3395SNeil Armstrong }; 63912a3395SNeil Armstrong }; 64912a3395SNeil Armstrong }; 65912a3395SNeil Armstrong 665a2ea2f7SJerome Brunet emmc_pwrseq: emmc-pwrseq { 675a2ea2f7SJerome Brunet compatible = "mmc-pwrseq-emmc"; 685a2ea2f7SJerome Brunet reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 695a2ea2f7SJerome Brunet }; 705a2ea2f7SJerome Brunet 71912a3395SNeil Armstrong hdmi-connector { 72912a3395SNeil Armstrong compatible = "hdmi-connector"; 73912a3395SNeil Armstrong type = "a"; 74912a3395SNeil Armstrong 75912a3395SNeil Armstrong port { 76912a3395SNeil Armstrong hdmi_connector_in: endpoint { 77912a3395SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 78912a3395SNeil Armstrong }; 79912a3395SNeil Armstrong }; 80912a3395SNeil Armstrong }; 81912a3395SNeil Armstrong 82b7be1449SNeil Armstrong memory@0 { 83b7be1449SNeil Armstrong device_type = "memory"; 84b7be1449SNeil Armstrong reg = <0x0 0x0 0x0 0x40000000>; 85b7be1449SNeil Armstrong }; 86b7be1449SNeil Armstrong 8773429cf2SJerome Brunet ao_5v: regulator-ao_5v { 8873429cf2SJerome Brunet compatible = "regulator-fixed"; 8973429cf2SJerome Brunet regulator-name = "AO_5V"; 9073429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 9173429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 9273429cf2SJerome Brunet vin-supply = <&dc_in>; 9373429cf2SJerome Brunet regulator-always-on; 94b7be1449SNeil Armstrong }; 9573429cf2SJerome Brunet 9673429cf2SJerome Brunet dc_in: regulator-dc_in { 9773429cf2SJerome Brunet compatible = "regulator-fixed"; 9873429cf2SJerome Brunet regulator-name = "DC_IN"; 9973429cf2SJerome Brunet regulator-min-microvolt = <5000000>; 10073429cf2SJerome Brunet regulator-max-microvolt = <5000000>; 10173429cf2SJerome Brunet regulator-always-on; 10273429cf2SJerome Brunet }; 10373429cf2SJerome Brunet 10473429cf2SJerome Brunet emmc_1v8: regulator-emmc_1v8 { 10573429cf2SJerome Brunet compatible = "regulator-fixed"; 10673429cf2SJerome Brunet regulator-name = "EMMC_1V8"; 10773429cf2SJerome Brunet regulator-min-microvolt = <1800000>; 10873429cf2SJerome Brunet regulator-max-microvolt = <1800000>; 10973429cf2SJerome Brunet vin-supply = <&vddao_3v3>; 11073429cf2SJerome Brunet regulator-always-on; 111b7be1449SNeil Armstrong }; 1122297c33cSJerome Brunet 1132297c33cSJerome Brunet vddao_3v3: regulator-vddao_3v3 { 1142297c33cSJerome Brunet compatible = "regulator-fixed"; 1152297c33cSJerome Brunet regulator-name = "VDDAO_3V3"; 1162297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1172297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1182297c33cSJerome Brunet vin-supply = <&dc_in>; 1192297c33cSJerome Brunet regulator-always-on; 1202297c33cSJerome Brunet }; 1212297c33cSJerome Brunet 1222297c33cSJerome Brunet vddao_3v3_t: regultor-vddao_3v3_t { 1232297c33cSJerome Brunet compatible = "regulator-fixed"; 1242297c33cSJerome Brunet regulator-name = "VDDAO_3V3_T"; 1252297c33cSJerome Brunet regulator-min-microvolt = <3300000>; 1262297c33cSJerome Brunet regulator-max-microvolt = <3300000>; 1272297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1282297c33cSJerome Brunet gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 1292297c33cSJerome Brunet enable-active-high; 1302297c33cSJerome Brunet }; 1312297c33cSJerome Brunet 1322297c33cSJerome Brunet vddio_ao1v8: regulator-vddio_ao1v8 { 1332297c33cSJerome Brunet compatible = "regulator-fixed"; 1342297c33cSJerome Brunet regulator-name = "VDDIO_AO1V8"; 1352297c33cSJerome Brunet regulator-min-microvolt = <1800000>; 1362297c33cSJerome Brunet regulator-max-microvolt = <1800000>; 1372297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1382297c33cSJerome Brunet regulator-always-on; 1392297c33cSJerome Brunet }; 14073429cf2SJerome Brunet 14173429cf2SJerome Brunet reserved-memory { 14273429cf2SJerome Brunet /* TEE Reserved Memory */ 14373429cf2SJerome Brunet bl32_reserved: bl32@5000000 { 14473429cf2SJerome Brunet reg = <0x0 0x05300000 0x0 0x2000000>; 14573429cf2SJerome Brunet no-map; 14673429cf2SJerome Brunet }; 14773429cf2SJerome Brunet }; 1485f57a09eSNeil Armstrong 1495f57a09eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 1505f57a09eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 1515f57a09eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1525f57a09eSNeil Armstrong clocks = <&wifi32k>; 1535f57a09eSNeil Armstrong clock-names = "ext_clock"; 1545f57a09eSNeil Armstrong }; 1555f57a09eSNeil Armstrong 1565f57a09eSNeil Armstrong wifi32k: wifi32k { 1575f57a09eSNeil Armstrong compatible = "pwm-clock"; 1585f57a09eSNeil Armstrong #clock-cells = <0>; 1595f57a09eSNeil Armstrong clock-frequency = <32768>; 1605f57a09eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1615f57a09eSNeil Armstrong }; 16264c10554SJerome Brunet 16364c10554SJerome Brunet sound { 16464c10554SJerome Brunet compatible = "amlogic,axg-sound-card"; 16564c10554SJerome Brunet model = "G12A-SEI510"; 16664c10554SJerome Brunet audio-aux-devs = <&tdmout_a>, <&tdmout_b>, 16764c10554SJerome Brunet <&tdmin_a>, <&tdmin_b>; 16864c10554SJerome Brunet audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 16964c10554SJerome Brunet "TDMOUT_A IN 1", "FRDDR_B OUT 0", 17064c10554SJerome Brunet "TDMOUT_A IN 2", "FRDDR_C OUT 0", 17164c10554SJerome Brunet "TDM_A Playback", "TDMOUT_A OUT", 17264c10554SJerome Brunet "TDMOUT_B IN 0", "FRDDR_A OUT 1", 17364c10554SJerome Brunet "TDMOUT_B IN 1", "FRDDR_B OUT 1", 17464c10554SJerome Brunet "TDMOUT_B IN 2", "FRDDR_C OUT 1", 17564c10554SJerome Brunet "TDM_B Playback", "TDMOUT_B OUT", 17664c10554SJerome Brunet "TODDR_A IN 4", "PDM Capture", 17764c10554SJerome Brunet "TODDR_B IN 4", "PDM Capture", 17864c10554SJerome Brunet "TODDR_C IN 4", "PDM Capture", 17964c10554SJerome Brunet "TDMIN_A IN 0", "TDM_A Capture", 18064c10554SJerome Brunet "TDMIN_A IN 3", "TDM_A Loopback", 18164c10554SJerome Brunet "TDMIN_B IN 0", "TDM_A Capture", 18264c10554SJerome Brunet "TDMIN_B IN 3", "TDM_A Loopback", 18364c10554SJerome Brunet "TDMIN_A IN 1", "TDM_B Capture", 18464c10554SJerome Brunet "TDMIN_A IN 4", "TDM_B Loopback", 18564c10554SJerome Brunet "TDMIN_B IN 1", "TDM_B Capture", 18664c10554SJerome Brunet "TDMIN_B IN 4", "TDM_B Loopback", 18764c10554SJerome Brunet "TODDR_A IN 0", "TDMIN_A OUT", 18864c10554SJerome Brunet "TODDR_B IN 0", "TDMIN_A OUT", 18964c10554SJerome Brunet "TODDR_C IN 0", "TDMIN_A OUT", 19064c10554SJerome Brunet "TODDR_A IN 1", "TDMIN_B OUT", 19164c10554SJerome Brunet "TODDR_B IN 1", "TDMIN_B OUT", 19264c10554SJerome Brunet "TODDR_C IN 1", "TDMIN_B OUT"; 19364c10554SJerome Brunet 19464c10554SJerome Brunet assigned-clocks = <&clkc CLKID_MPLL2>, 19564c10554SJerome Brunet <&clkc CLKID_MPLL0>, 19664c10554SJerome Brunet <&clkc CLKID_MPLL1>; 19764c10554SJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 19864c10554SJerome Brunet assigned-clock-rates = <294912000>, 19964c10554SJerome Brunet <270950400>, 20064c10554SJerome Brunet <393216000>; 20164c10554SJerome Brunet status = "okay"; 20264c10554SJerome Brunet 20364c10554SJerome Brunet dai-link-0 { 20464c10554SJerome Brunet sound-dai = <&frddr_a>; 20564c10554SJerome Brunet }; 20664c10554SJerome Brunet 20764c10554SJerome Brunet dai-link-1 { 20864c10554SJerome Brunet sound-dai = <&frddr_b>; 20964c10554SJerome Brunet }; 21064c10554SJerome Brunet 21164c10554SJerome Brunet dai-link-2 { 21264c10554SJerome Brunet sound-dai = <&frddr_c>; 21364c10554SJerome Brunet }; 21464c10554SJerome Brunet 21564c10554SJerome Brunet dai-link-3 { 21664c10554SJerome Brunet sound-dai = <&toddr_a>; 21764c10554SJerome Brunet }; 21864c10554SJerome Brunet 21964c10554SJerome Brunet dai-link-4 { 22064c10554SJerome Brunet sound-dai = <&toddr_b>; 22164c10554SJerome Brunet }; 22264c10554SJerome Brunet 22364c10554SJerome Brunet dai-link-5 { 22464c10554SJerome Brunet sound-dai = <&toddr_c>; 22564c10554SJerome Brunet }; 22664c10554SJerome Brunet 22764c10554SJerome Brunet /* internal speaker interface */ 22864c10554SJerome Brunet dai-link-6 { 22964c10554SJerome Brunet sound-dai = <&tdmif_a>; 23064c10554SJerome Brunet dai-format = "i2s"; 23164c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 23264c10554SJerome Brunet mclk-fs = <256>; 23364c10554SJerome Brunet 23464c10554SJerome Brunet codec-0 { 23564c10554SJerome Brunet sound-dai = <&mono_dac>; 23664c10554SJerome Brunet }; 23764c10554SJerome Brunet 23864c10554SJerome Brunet codec-1 { 23964c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 24064c10554SJerome Brunet }; 24164c10554SJerome Brunet }; 24264c10554SJerome Brunet 24364c10554SJerome Brunet /* 8ch hdmi interface */ 24464c10554SJerome Brunet dai-link-7 { 24564c10554SJerome Brunet sound-dai = <&tdmif_b>; 24664c10554SJerome Brunet dai-format = "i2s"; 24764c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 24864c10554SJerome Brunet dai-tdm-slot-tx-mask-1 = <1 1>; 24964c10554SJerome Brunet dai-tdm-slot-tx-mask-2 = <1 1>; 25064c10554SJerome Brunet dai-tdm-slot-tx-mask-3 = <1 1>; 25164c10554SJerome Brunet mclk-fs = <256>; 25264c10554SJerome Brunet 25364c10554SJerome Brunet codec@0 { 25464c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 25564c10554SJerome Brunet }; 25664c10554SJerome Brunet }; 25764c10554SJerome Brunet 25864c10554SJerome Brunet /* internal digital mics */ 25964c10554SJerome Brunet dai-link-8 { 26064c10554SJerome Brunet sound-dai = <&pdm>; 26164c10554SJerome Brunet 26264c10554SJerome Brunet codec { 26364c10554SJerome Brunet sound-dai = <&dmics>; 26464c10554SJerome Brunet }; 26564c10554SJerome Brunet }; 26664c10554SJerome Brunet 26764c10554SJerome Brunet /* hdmi glue */ 26864c10554SJerome Brunet dai-link-9 { 26964c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 27064c10554SJerome Brunet 27164c10554SJerome Brunet codec { 27264c10554SJerome Brunet sound-dai = <&hdmi_tx>; 27364c10554SJerome Brunet }; 27464c10554SJerome Brunet }; 27564c10554SJerome Brunet }; 27664c10554SJerome Brunet}; 27764c10554SJerome Brunet 27864c10554SJerome Brunet&arb { 27964c10554SJerome Brunet status = "okay"; 280d1c023afSNeil Armstrong}; 2812297c33cSJerome Brunet 282912a3395SNeil Armstrong&cec_AO { 283912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 284912a3395SNeil Armstrong pinctrl-names = "default"; 285912a3395SNeil Armstrong status = "disabled"; 286912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 287912a3395SNeil Armstrong}; 288912a3395SNeil Armstrong 289912a3395SNeil Armstrong&cecb_AO { 290912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 291912a3395SNeil Armstrong pinctrl-names = "default"; 292912a3395SNeil Armstrong status = "okay"; 293912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 294912a3395SNeil Armstrong}; 295912a3395SNeil Armstrong 29664c10554SJerome Brunet&clkc_audio { 29764c10554SJerome Brunet status = "okay"; 29864c10554SJerome Brunet}; 29964c10554SJerome Brunet 300912a3395SNeil Armstrong&cvbs_vdac_port { 301912a3395SNeil Armstrong cvbs_vdac_out: endpoint { 302912a3395SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 303912a3395SNeil Armstrong }; 304912a3395SNeil Armstrong}; 305912a3395SNeil Armstrong 306a1abafb6SJerome Brunetðmac { 307a1abafb6SJerome Brunet status = "okay"; 308a1abafb6SJerome Brunet phy-handle = <&internal_ephy>; 309a1abafb6SJerome Brunet phy-mode = "rmii"; 310a1abafb6SJerome Brunet}; 311a1abafb6SJerome Brunet 31264c10554SJerome Brunet&frddr_a { 31364c10554SJerome Brunet status = "okay"; 31464c10554SJerome Brunet}; 31564c10554SJerome Brunet 31664c10554SJerome Brunet&frddr_b { 31764c10554SJerome Brunet status = "okay"; 31864c10554SJerome Brunet}; 31964c10554SJerome Brunet 32064c10554SJerome Brunet&frddr_c { 32164c10554SJerome Brunet status = "okay"; 32264c10554SJerome Brunet}; 32364c10554SJerome Brunet 32473429cf2SJerome Brunet&hdmi_tx { 32573429cf2SJerome Brunet status = "okay"; 32673429cf2SJerome Brunet pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 32773429cf2SJerome Brunet pinctrl-names = "default"; 32873429cf2SJerome Brunet}; 32973429cf2SJerome Brunet 33073429cf2SJerome Brunet&hdmi_tx_tmds_port { 33173429cf2SJerome Brunet hdmi_tx_tmds_out: endpoint { 33273429cf2SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 33373429cf2SJerome Brunet }; 33473429cf2SJerome Brunet}; 33573429cf2SJerome Brunet 33632232316SJerome Brunet&i2c3 { 33732232316SJerome Brunet status = "okay"; 33832232316SJerome Brunet pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 33932232316SJerome Brunet pinctrl-names = "default"; 34032232316SJerome Brunet}; 34132232316SJerome Brunet 3425f57a09eSNeil Armstrong&pwm_ef { 3435f57a09eSNeil Armstrong status = "okay"; 3445f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 3455f57a09eSNeil Armstrong pinctrl-names = "default"; 3465f57a09eSNeil Armstrong clocks = <&xtal>; 3475f57a09eSNeil Armstrong clock-names = "clkin0"; 3485f57a09eSNeil Armstrong}; 3495f57a09eSNeil Armstrong 35064c10554SJerome Brunet&pdm { 35164c10554SJerome Brunet pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, 35264c10554SJerome Brunet <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, 35364c10554SJerome Brunet <&pdm_dclk_z_pins>; 35464c10554SJerome Brunet pinctrl-names = "default"; 35564c10554SJerome Brunet status = "okay"; 35664c10554SJerome Brunet}; 35764c10554SJerome Brunet 358d1c023afSNeil Armstrong&saradc { 359d1c023afSNeil Armstrong status = "okay"; 360d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 361d1c023afSNeil Armstrong}; 362d1c023afSNeil Armstrong 3635f57a09eSNeil Armstrong/* SDIO */ 3645f57a09eSNeil Armstrong&sd_emmc_a { 3655f57a09eSNeil Armstrong status = "okay"; 3665f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 3675f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 3685f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 3695f57a09eSNeil Armstrong #address-cells = <1>; 3705f57a09eSNeil Armstrong #size-cells = <0>; 3715f57a09eSNeil Armstrong 3725f57a09eSNeil Armstrong bus-width = <4>; 3735f57a09eSNeil Armstrong cap-sd-highspeed; 3745f57a09eSNeil Armstrong sd-uhs-sdr50; 3755f57a09eSNeil Armstrong max-frequency = <100000000>; 3765f57a09eSNeil Armstrong 3775f57a09eSNeil Armstrong non-removable; 3785f57a09eSNeil Armstrong disable-wp; 3795f57a09eSNeil Armstrong 3805f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 3815f57a09eSNeil Armstrong 3825f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 3835f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 3845f57a09eSNeil Armstrong 3855f57a09eSNeil Armstrong brcmf: wifi@1 { 3865f57a09eSNeil Armstrong reg = <1>; 3875f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 3885f57a09eSNeil Armstrong }; 3895f57a09eSNeil Armstrong}; 3905f57a09eSNeil Armstrong 3915a2ea2f7SJerome Brunet/* SD card */ 3925a2ea2f7SJerome Brunet&sd_emmc_b { 3935a2ea2f7SJerome Brunet status = "okay"; 3945a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 3955a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 3965a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 3975a2ea2f7SJerome Brunet 3985a2ea2f7SJerome Brunet bus-width = <4>; 3995a2ea2f7SJerome Brunet cap-sd-highspeed; 4005a2ea2f7SJerome Brunet max-frequency = <50000000>; 4015a2ea2f7SJerome Brunet disable-wp; 4025a2ea2f7SJerome Brunet 4035a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4045a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4055a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 4065a2ea2f7SJerome Brunet}; 4075a2ea2f7SJerome Brunet 4085a2ea2f7SJerome Brunet/* eMMC */ 4095a2ea2f7SJerome Brunet&sd_emmc_c { 4105a2ea2f7SJerome Brunet status = "okay"; 4115a2ea2f7SJerome Brunet pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 4125a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 4135a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4145a2ea2f7SJerome Brunet 4155a2ea2f7SJerome Brunet bus-width = <8>; 4165a2ea2f7SJerome Brunet cap-mmc-highspeed; 4175a2ea2f7SJerome Brunet mmc-ddr-1_8v; 4185a2ea2f7SJerome Brunet mmc-hs200-1_8v; 4195a2ea2f7SJerome Brunet max-frequency = <200000000>; 4205a2ea2f7SJerome Brunet non-removable; 4215a2ea2f7SJerome Brunet disable-wp; 4225a2ea2f7SJerome Brunet 4235a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 4245a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4255a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 4265a2ea2f7SJerome Brunet}; 4275a2ea2f7SJerome Brunet 42864c10554SJerome Brunet&tdmif_a { 42964c10554SJerome Brunet pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 43064c10554SJerome Brunet pinctrl-names = "default"; 43164c10554SJerome Brunet status = "okay"; 43264c10554SJerome Brunet 43364c10554SJerome Brunet assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 43464c10554SJerome Brunet <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 43564c10554SJerome Brunet assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 43664c10554SJerome Brunet <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 43764c10554SJerome Brunet assigned-clock-rates = <0>, <0>; 43864c10554SJerome Brunet}; 43964c10554SJerome Brunet 44064c10554SJerome Brunet&tdmif_b { 44164c10554SJerome Brunet status = "okay"; 44264c10554SJerome Brunet}; 44364c10554SJerome Brunet 44464c10554SJerome Brunet&tdmin_a { 44564c10554SJerome Brunet status = "okay"; 44664c10554SJerome Brunet}; 44764c10554SJerome Brunet 44864c10554SJerome Brunet&tdmin_b { 44964c10554SJerome Brunet status = "okay"; 45064c10554SJerome Brunet}; 45164c10554SJerome Brunet 45264c10554SJerome Brunet&tdmout_a { 45364c10554SJerome Brunet status = "okay"; 45464c10554SJerome Brunet}; 45564c10554SJerome Brunet 45664c10554SJerome Brunet&tdmout_b { 45764c10554SJerome Brunet status = "okay"; 45864c10554SJerome Brunet}; 45964c10554SJerome Brunet 46064c10554SJerome Brunet&toddr_a { 46164c10554SJerome Brunet status = "okay"; 46264c10554SJerome Brunet}; 46364c10554SJerome Brunet 46464c10554SJerome Brunet&toddr_b { 46564c10554SJerome Brunet status = "okay"; 46664c10554SJerome Brunet}; 46764c10554SJerome Brunet 46864c10554SJerome Brunet&toddr_c { 46964c10554SJerome Brunet status = "okay"; 47064c10554SJerome Brunet}; 47164c10554SJerome Brunet 47264c10554SJerome Brunet&tohdmitx { 47364c10554SJerome Brunet status = "okay"; 47464c10554SJerome Brunet}; 47564c10554SJerome Brunet 476d1c023afSNeil Armstrong&uart_A { 477d1c023afSNeil Armstrong status = "okay"; 478d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 479d1c023afSNeil Armstrong pinctrl-names = "default"; 480d1c023afSNeil Armstrong uart-has-rtscts; 481d1c023afSNeil Armstrong 482d1c023afSNeil Armstrong bluetooth { 483d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 484d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 485dff60019SNeil Armstrong max-speed = <2000000>; 486faf438e0SNeil Armstrong clocks = <&wifi32k>; 487faf438e0SNeil Armstrong clock-names = "lpo"; 488d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 489d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 490d1c023afSNeil Armstrong }; 491b7be1449SNeil Armstrong}; 492b7be1449SNeil Armstrong 493b7be1449SNeil Armstrong&uart_AO { 494b7be1449SNeil Armstrong status = "okay"; 49551d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 49651d215c1SNeil Armstrong pinctrl-names = "default"; 497b7be1449SNeil Armstrong}; 49841cc4551SNeil Armstrong 49941cc4551SNeil Armstrong&usb { 50041cc4551SNeil Armstrong status = "okay"; 50141cc4551SNeil Armstrong dr_mode = "host"; 50241cc4551SNeil Armstrong}; 503