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 142e9bc0765SNeil Armstrong vin-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 16073429cf2SJerome Brunet reserved-memory { 16173429cf2SJerome Brunet /* TEE Reserved Memory */ 16273429cf2SJerome Brunet bl32_reserved: bl32@5000000 { 16373429cf2SJerome Brunet reg = <0x0 0x05300000 0x0 0x2000000>; 16473429cf2SJerome Brunet no-map; 16573429cf2SJerome Brunet }; 16673429cf2SJerome Brunet }; 1675f57a09eSNeil Armstrong 1685f57a09eSNeil Armstrong sdio_pwrseq: sdio-pwrseq { 1695f57a09eSNeil Armstrong compatible = "mmc-pwrseq-simple"; 1705f57a09eSNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1715f57a09eSNeil Armstrong clocks = <&wifi32k>; 1725f57a09eSNeil Armstrong clock-names = "ext_clock"; 1735f57a09eSNeil Armstrong }; 1745f57a09eSNeil Armstrong 1755f57a09eSNeil Armstrong wifi32k: wifi32k { 1765f57a09eSNeil Armstrong compatible = "pwm-clock"; 1775f57a09eSNeil Armstrong #clock-cells = <0>; 1785f57a09eSNeil Armstrong clock-frequency = <32768>; 1795f57a09eSNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1805f57a09eSNeil Armstrong }; 18164c10554SJerome Brunet 18264c10554SJerome Brunet sound { 18364c10554SJerome Brunet compatible = "amlogic,axg-sound-card"; 184*933b80edSChristian Hewitt model = "SEI510"; 18564c10554SJerome Brunet audio-aux-devs = <&tdmout_a>, <&tdmout_b>, 18664c10554SJerome Brunet <&tdmin_a>, <&tdmin_b>; 18764c10554SJerome Brunet audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 18864c10554SJerome Brunet "TDMOUT_A IN 1", "FRDDR_B OUT 0", 18964c10554SJerome Brunet "TDMOUT_A IN 2", "FRDDR_C OUT 0", 19064c10554SJerome Brunet "TDM_A Playback", "TDMOUT_A OUT", 19164c10554SJerome Brunet "TDMOUT_B IN 0", "FRDDR_A OUT 1", 19264c10554SJerome Brunet "TDMOUT_B IN 1", "FRDDR_B OUT 1", 19364c10554SJerome Brunet "TDMOUT_B IN 2", "FRDDR_C OUT 1", 19464c10554SJerome Brunet "TDM_B Playback", "TDMOUT_B OUT", 19564c10554SJerome Brunet "TODDR_A IN 4", "PDM Capture", 19664c10554SJerome Brunet "TODDR_B IN 4", "PDM Capture", 19764c10554SJerome Brunet "TODDR_C IN 4", "PDM Capture", 19864c10554SJerome Brunet "TDMIN_A IN 0", "TDM_A Capture", 19964c10554SJerome Brunet "TDMIN_A IN 3", "TDM_A Loopback", 20064c10554SJerome Brunet "TDMIN_B IN 0", "TDM_A Capture", 20164c10554SJerome Brunet "TDMIN_B IN 3", "TDM_A Loopback", 20264c10554SJerome Brunet "TDMIN_A IN 1", "TDM_B Capture", 20364c10554SJerome Brunet "TDMIN_A IN 4", "TDM_B Loopback", 20464c10554SJerome Brunet "TDMIN_B IN 1", "TDM_B Capture", 20564c10554SJerome Brunet "TDMIN_B IN 4", "TDM_B Loopback", 20664c10554SJerome Brunet "TODDR_A IN 0", "TDMIN_A OUT", 20764c10554SJerome Brunet "TODDR_B IN 0", "TDMIN_A OUT", 20864c10554SJerome Brunet "TODDR_C IN 0", "TDMIN_A OUT", 20964c10554SJerome Brunet "TODDR_A IN 1", "TDMIN_B OUT", 21064c10554SJerome Brunet "TODDR_B IN 1", "TDMIN_B OUT", 21164c10554SJerome Brunet "TODDR_C IN 1", "TDMIN_B OUT"; 21264c10554SJerome Brunet 21364c10554SJerome Brunet assigned-clocks = <&clkc CLKID_MPLL2>, 21464c10554SJerome Brunet <&clkc CLKID_MPLL0>, 21564c10554SJerome Brunet <&clkc CLKID_MPLL1>; 21664c10554SJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 21764c10554SJerome Brunet assigned-clock-rates = <294912000>, 21864c10554SJerome Brunet <270950400>, 21964c10554SJerome Brunet <393216000>; 22064c10554SJerome Brunet status = "okay"; 22164c10554SJerome Brunet 22264c10554SJerome Brunet dai-link-0 { 22364c10554SJerome Brunet sound-dai = <&frddr_a>; 22464c10554SJerome Brunet }; 22564c10554SJerome Brunet 22664c10554SJerome Brunet dai-link-1 { 22764c10554SJerome Brunet sound-dai = <&frddr_b>; 22864c10554SJerome Brunet }; 22964c10554SJerome Brunet 23064c10554SJerome Brunet dai-link-2 { 23164c10554SJerome Brunet sound-dai = <&frddr_c>; 23264c10554SJerome Brunet }; 23364c10554SJerome Brunet 23464c10554SJerome Brunet dai-link-3 { 23564c10554SJerome Brunet sound-dai = <&toddr_a>; 23664c10554SJerome Brunet }; 23764c10554SJerome Brunet 23864c10554SJerome Brunet dai-link-4 { 23964c10554SJerome Brunet sound-dai = <&toddr_b>; 24064c10554SJerome Brunet }; 24164c10554SJerome Brunet 24264c10554SJerome Brunet dai-link-5 { 24364c10554SJerome Brunet sound-dai = <&toddr_c>; 24464c10554SJerome Brunet }; 24564c10554SJerome Brunet 24664c10554SJerome Brunet /* internal speaker interface */ 24764c10554SJerome Brunet dai-link-6 { 24864c10554SJerome Brunet sound-dai = <&tdmif_a>; 24964c10554SJerome Brunet dai-format = "i2s"; 25064c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 25164c10554SJerome Brunet mclk-fs = <256>; 25264c10554SJerome Brunet 25364c10554SJerome Brunet codec-0 { 25464c10554SJerome Brunet sound-dai = <&mono_dac>; 25564c10554SJerome Brunet }; 25664c10554SJerome Brunet 25764c10554SJerome Brunet codec-1 { 25864c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 25964c10554SJerome Brunet }; 26064c10554SJerome Brunet }; 26164c10554SJerome Brunet 26264c10554SJerome Brunet /* 8ch hdmi interface */ 26364c10554SJerome Brunet dai-link-7 { 26464c10554SJerome Brunet sound-dai = <&tdmif_b>; 26564c10554SJerome Brunet dai-format = "i2s"; 26664c10554SJerome Brunet dai-tdm-slot-tx-mask-0 = <1 1>; 26764c10554SJerome Brunet dai-tdm-slot-tx-mask-1 = <1 1>; 26864c10554SJerome Brunet dai-tdm-slot-tx-mask-2 = <1 1>; 26964c10554SJerome Brunet dai-tdm-slot-tx-mask-3 = <1 1>; 27064c10554SJerome Brunet mclk-fs = <256>; 27164c10554SJerome Brunet 27265b41849SJerome Brunet codec { 27364c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 27464c10554SJerome Brunet }; 27564c10554SJerome Brunet }; 27664c10554SJerome Brunet 27764c10554SJerome Brunet /* internal digital mics */ 27864c10554SJerome Brunet dai-link-8 { 27964c10554SJerome Brunet sound-dai = <&pdm>; 28064c10554SJerome Brunet 28164c10554SJerome Brunet codec { 28264c10554SJerome Brunet sound-dai = <&dmics>; 28364c10554SJerome Brunet }; 28464c10554SJerome Brunet }; 28564c10554SJerome Brunet 28664c10554SJerome Brunet /* hdmi glue */ 28764c10554SJerome Brunet dai-link-9 { 28864c10554SJerome Brunet sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 28964c10554SJerome Brunet 29064c10554SJerome Brunet codec { 29164c10554SJerome Brunet sound-dai = <&hdmi_tx>; 29264c10554SJerome Brunet }; 29364c10554SJerome Brunet }; 29464c10554SJerome Brunet }; 29564c10554SJerome Brunet}; 29664c10554SJerome Brunet 29764c10554SJerome Brunet&arb { 29864c10554SJerome Brunet status = "okay"; 299d1c023afSNeil Armstrong}; 3002297c33cSJerome Brunet 301912a3395SNeil Armstrong&cec_AO { 302912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 303912a3395SNeil Armstrong pinctrl-names = "default"; 304912a3395SNeil Armstrong status = "disabled"; 305912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 306912a3395SNeil Armstrong}; 307912a3395SNeil Armstrong 308912a3395SNeil Armstrong&cecb_AO { 309912a3395SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 310912a3395SNeil Armstrong pinctrl-names = "default"; 311912a3395SNeil Armstrong status = "okay"; 312912a3395SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 313912a3395SNeil Armstrong}; 314912a3395SNeil Armstrong 31564c10554SJerome Brunet&clkc_audio { 31664c10554SJerome Brunet status = "okay"; 31764c10554SJerome Brunet}; 31864c10554SJerome Brunet 319e9bc0765SNeil Armstrong&cpu0 { 320e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 321e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 322e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 323e9bc0765SNeil Armstrong clock-latency = <50000>; 324e9bc0765SNeil Armstrong}; 325e9bc0765SNeil Armstrong 326e9bc0765SNeil Armstrong&cpu1 { 327e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 328e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 329e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 330e9bc0765SNeil Armstrong clock-latency = <50000>; 331e9bc0765SNeil Armstrong}; 332e9bc0765SNeil Armstrong 333e9bc0765SNeil Armstrong&cpu2 { 334e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 335e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 336e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 337e9bc0765SNeil Armstrong clock-latency = <50000>; 338e9bc0765SNeil Armstrong}; 339e9bc0765SNeil Armstrong 340e9bc0765SNeil Armstrong&cpu3 { 341e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 342e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 343e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 344e9bc0765SNeil Armstrong clock-latency = <50000>; 345e9bc0765SNeil Armstrong}; 346e9bc0765SNeil Armstrong 347912a3395SNeil Armstrong&cvbs_vdac_port { 348912a3395SNeil Armstrong cvbs_vdac_out: endpoint { 349912a3395SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 350912a3395SNeil Armstrong }; 351912a3395SNeil Armstrong}; 352912a3395SNeil Armstrong 353a1abafb6SJerome Brunetðmac { 354a1abafb6SJerome Brunet status = "okay"; 355a1abafb6SJerome Brunet phy-handle = <&internal_ephy>; 356a1abafb6SJerome Brunet phy-mode = "rmii"; 357a1abafb6SJerome Brunet}; 358a1abafb6SJerome Brunet 35964c10554SJerome Brunet&frddr_a { 36064c10554SJerome Brunet status = "okay"; 36164c10554SJerome Brunet}; 36264c10554SJerome Brunet 36364c10554SJerome Brunet&frddr_b { 36464c10554SJerome Brunet status = "okay"; 36564c10554SJerome Brunet}; 36664c10554SJerome Brunet 36764c10554SJerome Brunet&frddr_c { 36864c10554SJerome Brunet status = "okay"; 36964c10554SJerome Brunet}; 37064c10554SJerome Brunet 37173429cf2SJerome Brunet&hdmi_tx { 37273429cf2SJerome Brunet status = "okay"; 37373429cf2SJerome Brunet pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 37473429cf2SJerome Brunet pinctrl-names = "default"; 37573429cf2SJerome Brunet}; 37673429cf2SJerome Brunet 37773429cf2SJerome Brunet&hdmi_tx_tmds_port { 37873429cf2SJerome Brunet hdmi_tx_tmds_out: endpoint { 37973429cf2SJerome Brunet remote-endpoint = <&hdmi_connector_in>; 38073429cf2SJerome Brunet }; 38173429cf2SJerome Brunet}; 38273429cf2SJerome Brunet 38332232316SJerome Brunet&i2c3 { 38432232316SJerome Brunet status = "okay"; 38532232316SJerome Brunet pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 38632232316SJerome Brunet pinctrl-names = "default"; 38732232316SJerome Brunet}; 38832232316SJerome Brunet 38954f374d1SNeil Armstrong&ir { 39054f374d1SNeil Armstrong status = "okay"; 39154f374d1SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 39254f374d1SNeil Armstrong pinctrl-names = "default"; 39354f374d1SNeil Armstrong}; 39454f374d1SNeil Armstrong 395e9bc0765SNeil Armstrong&pwm_AO_cd { 396e9bc0765SNeil Armstrong pinctrl-0 = <&pwm_ao_d_e_pins>; 397e9bc0765SNeil Armstrong pinctrl-names = "default"; 398e9bc0765SNeil Armstrong clocks = <&xtal>; 399e9bc0765SNeil Armstrong clock-names = "clkin1"; 400e9bc0765SNeil Armstrong status = "okay"; 401e9bc0765SNeil Armstrong}; 402e9bc0765SNeil Armstrong 4035f57a09eSNeil Armstrong&pwm_ef { 4045f57a09eSNeil Armstrong status = "okay"; 4055f57a09eSNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 4065f57a09eSNeil Armstrong pinctrl-names = "default"; 4075f57a09eSNeil Armstrong clocks = <&xtal>; 4085f57a09eSNeil Armstrong clock-names = "clkin0"; 4095f57a09eSNeil Armstrong}; 4105f57a09eSNeil Armstrong 41164c10554SJerome Brunet&pdm { 41264c10554SJerome Brunet pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, 41364c10554SJerome Brunet <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, 41464c10554SJerome Brunet <&pdm_dclk_z_pins>; 41564c10554SJerome Brunet pinctrl-names = "default"; 41664c10554SJerome Brunet status = "okay"; 41764c10554SJerome Brunet}; 41864c10554SJerome Brunet 419d1c023afSNeil Armstrong&saradc { 420d1c023afSNeil Armstrong status = "okay"; 421d1c023afSNeil Armstrong vref-supply = <&vddio_ao1v8>; 422d1c023afSNeil Armstrong}; 423d1c023afSNeil Armstrong 4245f57a09eSNeil Armstrong/* SDIO */ 4255f57a09eSNeil Armstrong&sd_emmc_a { 4265f57a09eSNeil Armstrong status = "okay"; 4275f57a09eSNeil Armstrong pinctrl-0 = <&sdio_pins>; 4285f57a09eSNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 4295f57a09eSNeil Armstrong pinctrl-names = "default", "clk-gate"; 4305f57a09eSNeil Armstrong #address-cells = <1>; 4315f57a09eSNeil Armstrong #size-cells = <0>; 4325f57a09eSNeil Armstrong 4335f57a09eSNeil Armstrong bus-width = <4>; 4345f57a09eSNeil Armstrong cap-sd-highspeed; 4355f57a09eSNeil Armstrong sd-uhs-sdr50; 4365f57a09eSNeil Armstrong max-frequency = <100000000>; 4375f57a09eSNeil Armstrong 4385f57a09eSNeil Armstrong non-removable; 4395f57a09eSNeil Armstrong disable-wp; 4405f57a09eSNeil Armstrong 44111ad4dfaSNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 44211ad4dfaSNeil Armstrong keep-power-in-suspend; 44311ad4dfaSNeil Armstrong 4445f57a09eSNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 4455f57a09eSNeil Armstrong 4465f57a09eSNeil Armstrong vmmc-supply = <&vddao_3v3>; 4475f57a09eSNeil Armstrong vqmmc-supply = <&vddio_ao1v8>; 4485f57a09eSNeil Armstrong 4495f57a09eSNeil Armstrong brcmf: wifi@1 { 4505f57a09eSNeil Armstrong reg = <1>; 4515f57a09eSNeil Armstrong compatible = "brcm,bcm4329-fmac"; 4525f57a09eSNeil Armstrong }; 4535f57a09eSNeil Armstrong}; 4545f57a09eSNeil Armstrong 4555a2ea2f7SJerome Brunet/* SD card */ 4565a2ea2f7SJerome Brunet&sd_emmc_b { 4575a2ea2f7SJerome Brunet status = "okay"; 4585a2ea2f7SJerome Brunet pinctrl-0 = <&sdcard_c_pins>; 4595a2ea2f7SJerome Brunet pinctrl-1 = <&sdcard_clk_gate_c_pins>; 4605a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4615a2ea2f7SJerome Brunet 4625a2ea2f7SJerome Brunet bus-width = <4>; 4635a2ea2f7SJerome Brunet cap-sd-highspeed; 4645a2ea2f7SJerome Brunet max-frequency = <50000000>; 4655a2ea2f7SJerome Brunet disable-wp; 4665a2ea2f7SJerome Brunet 4675a2ea2f7SJerome Brunet cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 4685a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4695a2ea2f7SJerome Brunet vqmmc-supply = <&vddao_3v3>; 4705a2ea2f7SJerome Brunet}; 4715a2ea2f7SJerome Brunet 4725a2ea2f7SJerome Brunet/* eMMC */ 4735a2ea2f7SJerome Brunet&sd_emmc_c { 4745a2ea2f7SJerome Brunet status = "okay"; 4754d2cb376SNeil Armstrong pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 4765a2ea2f7SJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 4775a2ea2f7SJerome Brunet pinctrl-names = "default", "clk-gate"; 4785a2ea2f7SJerome Brunet 4795a2ea2f7SJerome Brunet bus-width = <8>; 4805a2ea2f7SJerome Brunet cap-mmc-highspeed; 4815a2ea2f7SJerome Brunet mmc-ddr-1_8v; 4825a2ea2f7SJerome Brunet mmc-hs200-1_8v; 4835a2ea2f7SJerome Brunet max-frequency = <200000000>; 4845a2ea2f7SJerome Brunet non-removable; 4855a2ea2f7SJerome Brunet disable-wp; 4865a2ea2f7SJerome Brunet 4875a2ea2f7SJerome Brunet mmc-pwrseq = <&emmc_pwrseq>; 4885a2ea2f7SJerome Brunet vmmc-supply = <&vddao_3v3>; 4895a2ea2f7SJerome Brunet vqmmc-supply = <&emmc_1v8>; 4905a2ea2f7SJerome Brunet}; 4915a2ea2f7SJerome Brunet 49264c10554SJerome Brunet&tdmif_a { 49364c10554SJerome Brunet pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 49464c10554SJerome Brunet pinctrl-names = "default"; 49564c10554SJerome Brunet status = "okay"; 49664c10554SJerome Brunet 49764c10554SJerome Brunet assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 49864c10554SJerome Brunet <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 49964c10554SJerome Brunet assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 50064c10554SJerome Brunet <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 50164c10554SJerome Brunet assigned-clock-rates = <0>, <0>; 50264c10554SJerome Brunet}; 50364c10554SJerome Brunet 50464c10554SJerome Brunet&tdmif_b { 50564c10554SJerome Brunet status = "okay"; 50664c10554SJerome Brunet}; 50764c10554SJerome Brunet 50864c10554SJerome Brunet&tdmin_a { 50964c10554SJerome Brunet status = "okay"; 51064c10554SJerome Brunet}; 51164c10554SJerome Brunet 51264c10554SJerome Brunet&tdmin_b { 51364c10554SJerome Brunet status = "okay"; 51464c10554SJerome Brunet}; 51564c10554SJerome Brunet 51664c10554SJerome Brunet&tdmout_a { 51764c10554SJerome Brunet status = "okay"; 51864c10554SJerome Brunet}; 51964c10554SJerome Brunet 52064c10554SJerome Brunet&tdmout_b { 52164c10554SJerome Brunet status = "okay"; 52264c10554SJerome Brunet}; 52364c10554SJerome Brunet 52464c10554SJerome Brunet&toddr_a { 52564c10554SJerome Brunet status = "okay"; 52664c10554SJerome Brunet}; 52764c10554SJerome Brunet 52864c10554SJerome Brunet&toddr_b { 52964c10554SJerome Brunet status = "okay"; 53064c10554SJerome Brunet}; 53164c10554SJerome Brunet 53264c10554SJerome Brunet&toddr_c { 53364c10554SJerome Brunet status = "okay"; 53464c10554SJerome Brunet}; 53564c10554SJerome Brunet 53664c10554SJerome Brunet&tohdmitx { 53764c10554SJerome Brunet status = "okay"; 53864c10554SJerome Brunet}; 53964c10554SJerome Brunet 540d1c023afSNeil Armstrong&uart_A { 541d1c023afSNeil Armstrong status = "okay"; 542d1c023afSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 543d1c023afSNeil Armstrong pinctrl-names = "default"; 544d1c023afSNeil Armstrong uart-has-rtscts; 545d1c023afSNeil Armstrong 546d1c023afSNeil Armstrong bluetooth { 547d1c023afSNeil Armstrong compatible = "brcm,bcm43438-bt"; 548d1c023afSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 549dff60019SNeil Armstrong max-speed = <2000000>; 550faf438e0SNeil Armstrong clocks = <&wifi32k>; 551faf438e0SNeil Armstrong clock-names = "lpo"; 552d272c534SJerome Brunet vbat-supply = <&vddao_3v3>; 553d272c534SJerome Brunet vddio-supply = <&vddio_ao1v8>; 554d1c023afSNeil Armstrong }; 555b7be1449SNeil Armstrong}; 556b7be1449SNeil Armstrong 557b7be1449SNeil Armstrong&uart_AO { 558b7be1449SNeil Armstrong status = "okay"; 55951d215c1SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 56051d215c1SNeil Armstrong pinctrl-names = "default"; 561b7be1449SNeil Armstrong}; 56241cc4551SNeil Armstrong 56341cc4551SNeil Armstrong&usb { 56441cc4551SNeil Armstrong status = "okay"; 56541cc4551SNeil Armstrong dr_mode = "host"; 56641cc4551SNeil Armstrong}; 567