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 34254f374d1SNeil Armstrong&ir { 34354f374d1SNeil Armstrong status = "okay"; 34454f374d1SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 34554f374d1SNeil Armstrong pinctrl-names = "default"; 34654f374d1SNeil Armstrong}; 34754f374d1SNeil Armstrong 3485f57a09eSNeil Armstrong&pwm_ef { 3495f57a09eSNeil Armstrong status = "okay"; 3505f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 3515f57a09eSNeil Armstrong pinctrl-names = "default"; 3525f57a09eSNeil Armstrong clocks = <&xtal>; 3535f57a09eSNeil Armstrong clock-names = "clkin0"; 3545f57a09eSNeil Armstrong}; 3555f57a09eSNeil Armstrong 35664c10554SJerome Brunet&pdm { 35764c10554SJerome Brunet pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, 35864c10554SJerome Brunet <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, 35964c10554SJerome Brunet <&pdm_dclk_z_pins>; 36064c10554SJerome Brunet pinctrl-names = "default"; 36164c10554SJerome Brunet status = "okay"; 36264c10554SJerome Brunet}; 36364c10554SJerome Brunet 364d1c023afSNeil Armstrong&saradc { 365d1c023afSNeil Armstrong status = "okay"; 366d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 367d1c023afSNeil Armstrong}; 368d1c023afSNeil Armstrong 3695f57a09eSNeil Armstrong/* SDIO */ 3705f57a09eSNeil Armstrong&sd_emmc_a { 3715f57a09eSNeil Armstrong status = "okay"; 3725f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 3735f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 3745f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 3755f57a09eSNeil Armstrong #address-cells = <1>; 3765f57a09eSNeil Armstrong #size-cells = <0>; 3775f57a09eSNeil Armstrong 3785f57a09eSNeil Armstrong bus-width = <4>; 3795f57a09eSNeil Armstrong cap-sd-highspeed; 3805f57a09eSNeil Armstrong sd-uhs-sdr50; 3815f57a09eSNeil Armstrong max-frequency = <100000000>; 3825f57a09eSNeil Armstrong 3835f57a09eSNeil Armstrong non-removable; 3845f57a09eSNeil Armstrong disable-wp; 3855f57a09eSNeil Armstrong 3865f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 3875f57a09eSNeil Armstrong 3885f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 3895f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 3905f57a09eSNeil Armstrong 3915f57a09eSNeil Armstrong brcmf: wifi@1 { 3925f57a09eSNeil Armstrong reg = <1>; 3935f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 3945f57a09eSNeil Armstrong }; 3955f57a09eSNeil Armstrong}; 3965f57a09eSNeil Armstrong 3975a2ea2f7SJerome Brunet/* SD card */ 3985a2ea2f7SJerome Brunet&sd_emmc_b { 3995a2ea2f7SJerome Brunet status = "okay"; 4005a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 4015a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 4025a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4035a2ea2f7SJerome Brunet 4045a2ea2f7SJerome Brunet bus-width = <4>; 4055a2ea2f7SJerome Brunet cap-sd-highspeed; 4065a2ea2f7SJerome Brunet max-frequency = <50000000>; 4075a2ea2f7SJerome Brunet disable-wp; 4085a2ea2f7SJerome Brunet 4095a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4105a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4115a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 4125a2ea2f7SJerome Brunet}; 4135a2ea2f7SJerome Brunet 4145a2ea2f7SJerome Brunet/* eMMC */ 4155a2ea2f7SJerome Brunet&sd_emmc_c { 4165a2ea2f7SJerome Brunet status = "okay"; 4175a2ea2f7SJerome Brunet pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 4185a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 4195a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4205a2ea2f7SJerome Brunet 4215a2ea2f7SJerome Brunet bus-width = <8>; 4225a2ea2f7SJerome Brunet cap-mmc-highspeed; 4235a2ea2f7SJerome Brunet mmc-ddr-1_8v; 4245a2ea2f7SJerome Brunet mmc-hs200-1_8v; 4255a2ea2f7SJerome Brunet max-frequency = <200000000>; 4265a2ea2f7SJerome Brunet non-removable; 4275a2ea2f7SJerome Brunet disable-wp; 4285a2ea2f7SJerome Brunet 4295a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 4305a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4315a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 4325a2ea2f7SJerome Brunet}; 4335a2ea2f7SJerome Brunet 43464c10554SJerome Brunet&tdmif_a { 43564c10554SJerome Brunet pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 43664c10554SJerome Brunet pinctrl-names = "default"; 43764c10554SJerome Brunet status = "okay"; 43864c10554SJerome Brunet 43964c10554SJerome Brunet assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 44064c10554SJerome Brunet <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 44164c10554SJerome Brunet assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 44264c10554SJerome Brunet <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 44364c10554SJerome Brunet assigned-clock-rates = <0>, <0>; 44464c10554SJerome Brunet}; 44564c10554SJerome Brunet 44664c10554SJerome Brunet&tdmif_b { 44764c10554SJerome Brunet status = "okay"; 44864c10554SJerome Brunet}; 44964c10554SJerome Brunet 45064c10554SJerome Brunet&tdmin_a { 45164c10554SJerome Brunet status = "okay"; 45264c10554SJerome Brunet}; 45364c10554SJerome Brunet 45464c10554SJerome Brunet&tdmin_b { 45564c10554SJerome Brunet status = "okay"; 45664c10554SJerome Brunet}; 45764c10554SJerome Brunet 45864c10554SJerome Brunet&tdmout_a { 45964c10554SJerome Brunet status = "okay"; 46064c10554SJerome Brunet}; 46164c10554SJerome Brunet 46264c10554SJerome Brunet&tdmout_b { 46364c10554SJerome Brunet status = "okay"; 46464c10554SJerome Brunet}; 46564c10554SJerome Brunet 46664c10554SJerome Brunet&toddr_a { 46764c10554SJerome Brunet status = "okay"; 46864c10554SJerome Brunet}; 46964c10554SJerome Brunet 47064c10554SJerome Brunet&toddr_b { 47164c10554SJerome Brunet status = "okay"; 47264c10554SJerome Brunet}; 47364c10554SJerome Brunet 47464c10554SJerome Brunet&toddr_c { 47564c10554SJerome Brunet status = "okay"; 47664c10554SJerome Brunet}; 47764c10554SJerome Brunet 47864c10554SJerome Brunet&tohdmitx { 47964c10554SJerome Brunet status = "okay"; 48064c10554SJerome Brunet}; 48164c10554SJerome Brunet 482d1c023afSNeil Armstrong&uart_A { 483d1c023afSNeil Armstrong status = "okay"; 484d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 485d1c023afSNeil Armstrong pinctrl-names = "default"; 486d1c023afSNeil Armstrong uart-has-rtscts; 487d1c023afSNeil Armstrong 488d1c023afSNeil Armstrong bluetooth { 489d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 490d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 491dff60019SNeil Armstrong max-speed = <2000000>; 492faf438e0SNeil Armstrong clocks = <&wifi32k>; 493faf438e0SNeil Armstrong clock-names = "lpo"; 494d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 495d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 496d1c023afSNeil Armstrong }; 497b7be1449SNeil Armstrong}; 498b7be1449SNeil Armstrong 499b7be1449SNeil Armstrong&uart_AO { 500b7be1449SNeil Armstrong status = "okay"; 50151d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 50251d215c1SNeil Armstrong pinctrl-names = "default"; 503b7be1449SNeil Armstrong}; 50441cc4551SNeil Armstrong 50541cc4551SNeil Armstrong&usb { 50641cc4551SNeil Armstrong status = "okay"; 50741cc4551SNeil Armstrong dr_mode = "host"; 50841cc4551SNeil Armstrong}; 509