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 132e9bc0765SNeil Armstrong vddcpu: regulator-vddcpu { 133e9bc0765SNeil Armstrong /* 134e9bc0765SNeil Armstrong * SY8120B1ABC DC/DC Regulator. 135e9bc0765SNeil Armstrong */ 136e9bc0765SNeil Armstrong compatible = "pwm-regulator"; 137e9bc0765SNeil Armstrong 138e9bc0765SNeil Armstrong regulator-name = "VDDCPU"; 139e9bc0765SNeil Armstrong regulator-min-microvolt = <721000>; 140e9bc0765SNeil Armstrong regulator-max-microvolt = <1022000>; 141e9bc0765SNeil Armstrong 142*08567511SAnand Moon pwm-supply = <&dc_in>; 143e9bc0765SNeil Armstrong 144e9bc0765SNeil Armstrong pwms = <&pwm_AO_cd 1 1250 0>; 145e9bc0765SNeil Armstrong pwm-dutycycle-range = <100 0>; 146e9bc0765SNeil Armstrong 147e9bc0765SNeil Armstrong regulator-boot-on; 148e9bc0765SNeil Armstrong regulator-always-on; 149e9bc0765SNeil Armstrong }; 150e9bc0765SNeil Armstrong 1512297c33cSJerome Brunet vddio_ao1v8: regulator-vddio_ao1v8 { 1522297c33cSJerome Brunet compatible = "regulator-fixed"; 1532297c33cSJerome Brunet regulator-name = "VDDIO_AO1V8"; 1542297c33cSJerome Brunet regulator-min-microvolt = <1800000>; 1552297c33cSJerome Brunet regulator-max-microvolt = <1800000>; 1562297c33cSJerome Brunet vin-supply = <&vddao_3v3>; 1572297c33cSJerome Brunet regulator-always-on; 1582297c33cSJerome Brunet }; 15973429cf2SJerome Brunet 1605f57a09eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 1615f57a09eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 1625f57a09eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1635f57a09eSNeil Armstrong clocks = <&wifi32k>; 1645f57a09eSNeil Armstrong clock-names = "ext_clock"; 1655f57a09eSNeil Armstrong }; 1665f57a09eSNeil Armstrong 1675f57a09eSNeil Armstrong wifi32k: wifi32k { 1685f57a09eSNeil Armstrong compatible = "pwm-clock"; 1695f57a09eSNeil Armstrong #clock-cells = <0>; 1705f57a09eSNeil Armstrong clock-frequency = <32768>; 1715f57a09eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1725f57a09eSNeil Armstrong }; 17364c10554SJerome Brunet 17464c10554SJerome Brunet sound { 17564c10554SJerome Brunet compatible = "amlogic,axg-sound-card"; 176933b80edSChristian Hewitt model = "SEI510"; 17764c10554SJerome Brunet audio-aux-devs = <&tdmout_a>, <&tdmout_b>, 17864c10554SJerome Brunet <&tdmin_a>, <&tdmin_b>; 17964c10554SJerome Brunet audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 18064c10554SJerome Brunet "TDMOUT_A IN 1", "FRDDR_B OUT 0", 18164c10554SJerome Brunet "TDMOUT_A IN 2", "FRDDR_C OUT 0", 18264c10554SJerome Brunet "TDM_A Playback", "TDMOUT_A OUT", 18364c10554SJerome Brunet "TDMOUT_B IN 0", "FRDDR_A OUT 1", 18464c10554SJerome Brunet "TDMOUT_B IN 1", "FRDDR_B OUT 1", 18564c10554SJerome Brunet "TDMOUT_B IN 2", "FRDDR_C OUT 1", 18664c10554SJerome Brunet "TDM_B Playback", "TDMOUT_B OUT", 18764c10554SJerome Brunet "TODDR_A IN 4", "PDM Capture", 18864c10554SJerome Brunet "TODDR_B IN 4", "PDM Capture", 18964c10554SJerome Brunet "TODDR_C IN 4", "PDM Capture", 19064c10554SJerome Brunet "TDMIN_A IN 0", "TDM_A Capture", 19164c10554SJerome Brunet "TDMIN_A IN 3", "TDM_A Loopback", 19264c10554SJerome Brunet "TDMIN_B IN 0", "TDM_A Capture", 19364c10554SJerome Brunet "TDMIN_B IN 3", "TDM_A Loopback", 19464c10554SJerome Brunet "TDMIN_A IN 1", "TDM_B Capture", 19564c10554SJerome Brunet "TDMIN_A IN 4", "TDM_B Loopback", 19664c10554SJerome Brunet "TDMIN_B IN 1", "TDM_B Capture", 19764c10554SJerome Brunet "TDMIN_B IN 4", "TDM_B Loopback", 19864c10554SJerome Brunet "TODDR_A IN 0", "TDMIN_A OUT", 19964c10554SJerome Brunet "TODDR_B IN 0", "TDMIN_A OUT", 20064c10554SJerome Brunet "TODDR_C IN 0", "TDMIN_A OUT", 20164c10554SJerome Brunet "TODDR_A IN 1", "TDMIN_B OUT", 20264c10554SJerome Brunet "TODDR_B IN 1", "TDMIN_B OUT", 20364c10554SJerome Brunet "TODDR_C IN 1", "TDMIN_B OUT"; 20464c10554SJerome Brunet 20564c10554SJerome Brunet assigned-clocks = <&clkc CLKID_MPLL2>, 20664c10554SJerome Brunet <&clkc CLKID_MPLL0>, 20764c10554SJerome Brunet <&clkc CLKID_MPLL1>; 20864c10554SJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 20964c10554SJerome Brunet assigned-clock-rates = <294912000>, 21064c10554SJerome Brunet <270950400>, 21164c10554SJerome Brunet <393216000>; 21264c10554SJerome Brunet 21364c10554SJerome Brunet dai-link-0 { 21464c10554SJerome Brunet sound-dai = <&frddr_a>; 21564c10554SJerome Brunet }; 21664c10554SJerome Brunet 21764c10554SJerome Brunet dai-link-1 { 21864c10554SJerome Brunet sound-dai = <&frddr_b>; 21964c10554SJerome Brunet }; 22064c10554SJerome Brunet 22164c10554SJerome Brunet dai-link-2 { 22264c10554SJerome Brunet sound-dai = <&frddr_c>; 22364c10554SJerome Brunet }; 22464c10554SJerome Brunet 22564c10554SJerome Brunet dai-link-3 { 22664c10554SJerome Brunet sound-dai = <&toddr_a>; 22764c10554SJerome Brunet }; 22864c10554SJerome Brunet 22964c10554SJerome Brunet dai-link-4 { 23064c10554SJerome Brunet sound-dai = <&toddr_b>; 23164c10554SJerome Brunet }; 23264c10554SJerome Brunet 23364c10554SJerome Brunet dai-link-5 { 23464c10554SJerome Brunet sound-dai = <&toddr_c>; 23564c10554SJerome Brunet }; 23664c10554SJerome Brunet 23764c10554SJerome Brunet /* internal speaker interface */ 23864c10554SJerome Brunet dai-link-6 { 23964c10554SJerome Brunet sound-dai = <&tdmif_a>; 24064c10554SJerome Brunet dai-format = "i2s"; 24164c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 24264c10554SJerome Brunet mclk-fs = <256>; 24364c10554SJerome Brunet 24464c10554SJerome Brunet codec-0 { 24564c10554SJerome Brunet sound-dai = <&mono_dac>; 24664c10554SJerome Brunet }; 24764c10554SJerome Brunet 24864c10554SJerome Brunet codec-1 { 24964c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 25064c10554SJerome Brunet }; 25164c10554SJerome Brunet }; 25264c10554SJerome Brunet 25364c10554SJerome Brunet /* 8ch hdmi interface */ 25464c10554SJerome Brunet dai-link-7 { 25564c10554SJerome Brunet sound-dai = <&tdmif_b>; 25664c10554SJerome Brunet dai-format = "i2s"; 25764c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 25864c10554SJerome Brunet dai-tdm-slot-tx-mask-1 = <1 1>; 25964c10554SJerome Brunet dai-tdm-slot-tx-mask-2 = <1 1>; 26064c10554SJerome Brunet dai-tdm-slot-tx-mask-3 = <1 1>; 26164c10554SJerome Brunet mclk-fs = <256>; 26264c10554SJerome Brunet 26365b41849SJerome Brunet codec { 26464c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 26564c10554SJerome Brunet }; 26664c10554SJerome Brunet }; 26764c10554SJerome Brunet 26864c10554SJerome Brunet /* internal digital mics */ 26964c10554SJerome Brunet dai-link-8 { 27064c10554SJerome Brunet sound-dai = <&pdm>; 27164c10554SJerome Brunet 27264c10554SJerome Brunet codec { 27364c10554SJerome Brunet sound-dai = <&dmics>; 27464c10554SJerome Brunet }; 27564c10554SJerome Brunet }; 27664c10554SJerome Brunet 27764c10554SJerome Brunet /* hdmi glue */ 27864c10554SJerome Brunet dai-link-9 { 27964c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 28064c10554SJerome Brunet 28164c10554SJerome Brunet codec { 28264c10554SJerome Brunet sound-dai = <&hdmi_tx>; 28364c10554SJerome Brunet }; 28464c10554SJerome Brunet }; 28564c10554SJerome Brunet }; 28664c10554SJerome Brunet}; 28764c10554SJerome Brunet 28864c10554SJerome Brunet&arb { 28964c10554SJerome Brunet status = "okay"; 290d1c023afSNeil Armstrong}; 2912297c33cSJerome Brunet 292912a3395SNeil Armstrong&cec_AO { 293912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 294912a3395SNeil Armstrong pinctrl-names = "default"; 295912a3395SNeil Armstrong status = "disabled"; 296912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 297912a3395SNeil Armstrong}; 298912a3395SNeil Armstrong 299912a3395SNeil Armstrong&cecb_AO { 300912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 301912a3395SNeil Armstrong pinctrl-names = "default"; 302912a3395SNeil Armstrong status = "okay"; 303912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 304912a3395SNeil Armstrong}; 305912a3395SNeil Armstrong 30664c10554SJerome Brunet&clkc_audio { 30764c10554SJerome Brunet status = "okay"; 30864c10554SJerome Brunet}; 30964c10554SJerome Brunet 310e9bc0765SNeil Armstrong&cpu0 { 311e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 312e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 313e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 314e9bc0765SNeil Armstrong clock-latency = <50000>; 315e9bc0765SNeil Armstrong}; 316e9bc0765SNeil Armstrong 317e9bc0765SNeil Armstrong&cpu1 { 318e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 319e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 320e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 321e9bc0765SNeil Armstrong clock-latency = <50000>; 322e9bc0765SNeil Armstrong}; 323e9bc0765SNeil Armstrong 324e9bc0765SNeil Armstrong&cpu2 { 325e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 326e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 327e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 328e9bc0765SNeil Armstrong clock-latency = <50000>; 329e9bc0765SNeil Armstrong}; 330e9bc0765SNeil Armstrong 331e9bc0765SNeil Armstrong&cpu3 { 332e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 333e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 334e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 335e9bc0765SNeil Armstrong clock-latency = <50000>; 336e9bc0765SNeil Armstrong}; 337e9bc0765SNeil Armstrong 338912a3395SNeil Armstrong&cvbs_vdac_port { 339912a3395SNeil Armstrong cvbs_vdac_out: endpoint { 340912a3395SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 341912a3395SNeil Armstrong }; 342912a3395SNeil Armstrong}; 343912a3395SNeil Armstrong 344a1abafb6SJerome Brunetðmac { 345a1abafb6SJerome Brunet status = "okay"; 346a1abafb6SJerome Brunet phy-handle = <&internal_ephy>; 347a1abafb6SJerome Brunet phy-mode = "rmii"; 348a1abafb6SJerome Brunet}; 349a1abafb6SJerome Brunet 35064c10554SJerome Brunet&frddr_a { 35164c10554SJerome Brunet status = "okay"; 35264c10554SJerome Brunet}; 35364c10554SJerome Brunet 35464c10554SJerome Brunet&frddr_b { 35564c10554SJerome Brunet status = "okay"; 35664c10554SJerome Brunet}; 35764c10554SJerome Brunet 35864c10554SJerome Brunet&frddr_c { 35964c10554SJerome Brunet status = "okay"; 36064c10554SJerome Brunet}; 36164c10554SJerome Brunet 36273429cf2SJerome Brunet&hdmi_tx { 36373429cf2SJerome Brunet status = "okay"; 36473429cf2SJerome Brunet pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 36573429cf2SJerome Brunet pinctrl-names = "default"; 36673429cf2SJerome Brunet}; 36773429cf2SJerome Brunet 36873429cf2SJerome Brunet&hdmi_tx_tmds_port { 36973429cf2SJerome Brunet hdmi_tx_tmds_out: endpoint { 37073429cf2SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 37173429cf2SJerome Brunet }; 37273429cf2SJerome Brunet}; 37373429cf2SJerome Brunet 37432232316SJerome Brunet&i2c3 { 37532232316SJerome Brunet status = "okay"; 37632232316SJerome Brunet pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 37732232316SJerome Brunet pinctrl-names = "default"; 37832232316SJerome Brunet}; 37932232316SJerome Brunet 38054f374d1SNeil Armstrong&ir { 38154f374d1SNeil Armstrong status = "okay"; 38254f374d1SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 38354f374d1SNeil Armstrong pinctrl-names = "default"; 38454f374d1SNeil Armstrong}; 38554f374d1SNeil Armstrong 386e9bc0765SNeil Armstrong&pwm_AO_cd { 387e9bc0765SNeil Armstrong pinctrl-0 = <&pwm_ao_d_e_pins>; 388e9bc0765SNeil Armstrong pinctrl-names = "default"; 389e9bc0765SNeil Armstrong clocks = <&xtal>; 390e9bc0765SNeil Armstrong clock-names = "clkin1"; 391e9bc0765SNeil Armstrong status = "okay"; 392e9bc0765SNeil Armstrong}; 393e9bc0765SNeil Armstrong 3945f57a09eSNeil Armstrong&pwm_ef { 3955f57a09eSNeil Armstrong status = "okay"; 3965f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 3975f57a09eSNeil Armstrong pinctrl-names = "default"; 3985f57a09eSNeil Armstrong clocks = <&xtal>; 3995f57a09eSNeil Armstrong clock-names = "clkin0"; 4005f57a09eSNeil Armstrong}; 4015f57a09eSNeil Armstrong 40264c10554SJerome Brunet&pdm { 40364c10554SJerome Brunet pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, 40464c10554SJerome Brunet <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, 40564c10554SJerome Brunet <&pdm_dclk_z_pins>; 40664c10554SJerome Brunet pinctrl-names = "default"; 40764c10554SJerome Brunet status = "okay"; 40864c10554SJerome Brunet}; 40964c10554SJerome Brunet 410d1c023afSNeil Armstrong&saradc { 411d1c023afSNeil Armstrong status = "okay"; 412d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 413d1c023afSNeil Armstrong}; 414d1c023afSNeil Armstrong 4155f57a09eSNeil Armstrong/* SDIO */ 4165f57a09eSNeil Armstrong&sd_emmc_a { 4175f57a09eSNeil Armstrong status = "okay"; 4185f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 4195f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 4205f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 4215f57a09eSNeil Armstrong #address-cells = <1>; 4225f57a09eSNeil Armstrong #size-cells = <0>; 4235f57a09eSNeil Armstrong 4245f57a09eSNeil Armstrong bus-width = <4>; 4255f57a09eSNeil Armstrong cap-sd-highspeed; 4265f57a09eSNeil Armstrong sd-uhs-sdr50; 4275f57a09eSNeil Armstrong max-frequency = <100000000>; 4285f57a09eSNeil Armstrong 4295f57a09eSNeil Armstrong non-removable; 4305f57a09eSNeil Armstrong disable-wp; 4315f57a09eSNeil Armstrong 43211ad4dfaSNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 43311ad4dfaSNeil Armstrong keep-power-in-suspend; 43411ad4dfaSNeil Armstrong 4355f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 4365f57a09eSNeil Armstrong 4375f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 4385f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 4395f57a09eSNeil Armstrong 4405f57a09eSNeil Armstrong brcmf: wifi@1 { 4415f57a09eSNeil Armstrong reg = <1>; 4425f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 4435f57a09eSNeil Armstrong }; 4445f57a09eSNeil Armstrong}; 4455f57a09eSNeil Armstrong 4465a2ea2f7SJerome Brunet/* SD card */ 4475a2ea2f7SJerome Brunet&sd_emmc_b { 4485a2ea2f7SJerome Brunet status = "okay"; 4495a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 4505a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 4515a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4525a2ea2f7SJerome Brunet 4535a2ea2f7SJerome Brunet bus-width = <4>; 4545a2ea2f7SJerome Brunet cap-sd-highspeed; 4555a2ea2f7SJerome Brunet max-frequency = <50000000>; 4565a2ea2f7SJerome Brunet disable-wp; 4575a2ea2f7SJerome Brunet 4585a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4595a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4605a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 4615a2ea2f7SJerome Brunet}; 4625a2ea2f7SJerome Brunet 4635a2ea2f7SJerome Brunet/* eMMC */ 4645a2ea2f7SJerome Brunet&sd_emmc_c { 4655a2ea2f7SJerome Brunet status = "okay"; 4664d2cb376SNeil Armstrong pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 4675a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 4685a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4695a2ea2f7SJerome Brunet 4705a2ea2f7SJerome Brunet bus-width = <8>; 4715a2ea2f7SJerome Brunet cap-mmc-highspeed; 4725a2ea2f7SJerome Brunet mmc-ddr-1_8v; 4735a2ea2f7SJerome Brunet mmc-hs200-1_8v; 4745a2ea2f7SJerome Brunet max-frequency = <200000000>; 4755a2ea2f7SJerome Brunet non-removable; 4765a2ea2f7SJerome Brunet disable-wp; 4775a2ea2f7SJerome Brunet 4785a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 4795a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4805a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 4815a2ea2f7SJerome Brunet}; 4825a2ea2f7SJerome Brunet 48364c10554SJerome Brunet&tdmif_a { 48464c10554SJerome Brunet pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 48564c10554SJerome Brunet pinctrl-names = "default"; 48664c10554SJerome Brunet status = "okay"; 48764c10554SJerome Brunet 48864c10554SJerome Brunet assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 48964c10554SJerome Brunet <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 49064c10554SJerome Brunet assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 49164c10554SJerome Brunet <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 49264c10554SJerome Brunet assigned-clock-rates = <0>, <0>; 49364c10554SJerome Brunet}; 49464c10554SJerome Brunet 49564c10554SJerome Brunet&tdmif_b { 49664c10554SJerome Brunet status = "okay"; 49764c10554SJerome Brunet}; 49864c10554SJerome Brunet 49964c10554SJerome Brunet&tdmin_a { 50064c10554SJerome Brunet status = "okay"; 50164c10554SJerome Brunet}; 50264c10554SJerome Brunet 50364c10554SJerome Brunet&tdmin_b { 50464c10554SJerome Brunet status = "okay"; 50564c10554SJerome Brunet}; 50664c10554SJerome Brunet 50764c10554SJerome Brunet&tdmout_a { 50864c10554SJerome Brunet status = "okay"; 50964c10554SJerome Brunet}; 51064c10554SJerome Brunet 51164c10554SJerome Brunet&tdmout_b { 51264c10554SJerome Brunet status = "okay"; 51364c10554SJerome Brunet}; 51464c10554SJerome Brunet 51564c10554SJerome Brunet&toddr_a { 51664c10554SJerome Brunet status = "okay"; 51764c10554SJerome Brunet}; 51864c10554SJerome Brunet 51964c10554SJerome Brunet&toddr_b { 52064c10554SJerome Brunet status = "okay"; 52164c10554SJerome Brunet}; 52264c10554SJerome Brunet 52364c10554SJerome Brunet&toddr_c { 52464c10554SJerome Brunet status = "okay"; 52564c10554SJerome Brunet}; 52664c10554SJerome Brunet 52764c10554SJerome Brunet&tohdmitx { 52864c10554SJerome Brunet status = "okay"; 52964c10554SJerome Brunet}; 53064c10554SJerome Brunet 531d1c023afSNeil Armstrong&uart_A { 532d1c023afSNeil Armstrong status = "okay"; 533d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 534d1c023afSNeil Armstrong pinctrl-names = "default"; 535d1c023afSNeil Armstrong uart-has-rtscts; 536d1c023afSNeil Armstrong 537d1c023afSNeil Armstrong bluetooth { 538d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 539d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 540dff60019SNeil Armstrong max-speed = <2000000>; 541faf438e0SNeil Armstrong clocks = <&wifi32k>; 542faf438e0SNeil Armstrong clock-names = "lpo"; 543d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 544d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 545d1c023afSNeil Armstrong }; 546b7be1449SNeil Armstrong}; 547b7be1449SNeil Armstrong 548b7be1449SNeil Armstrong&uart_AO { 549b7be1449SNeil Armstrong status = "okay"; 55051d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 55151d215c1SNeil Armstrong pinctrl-names = "default"; 552b7be1449SNeil Armstrong}; 55341cc4551SNeil Armstrong 55441cc4551SNeil Armstrong&usb { 55541cc4551SNeil Armstrong status = "okay"; 55641cc4551SNeil Armstrong dr_mode = "host"; 55741cc4551SNeil Armstrong}; 558