1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 BayLibre SAS. All rights reserved. 4c66ec88fSEmmanuel Vadot */ 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot/dts-v1/; 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadot#include "meson-sm1.dtsi" 9c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 10c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h> 11c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h> 12c66ec88fSEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 13c66ec88fSEmmanuel Vadot 14c66ec88fSEmmanuel Vadot/ { 15c66ec88fSEmmanuel Vadot compatible = "seirobotics,sei610", "amlogic,sm1"; 16c66ec88fSEmmanuel Vadot model = "SEI Robotics SEI610"; 17c66ec88fSEmmanuel Vadot 18c66ec88fSEmmanuel Vadot aliases { 19c66ec88fSEmmanuel Vadot serial0 = &uart_AO; 20c66ec88fSEmmanuel Vadot ethernet0 = ðmac; 21c66ec88fSEmmanuel Vadot }; 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot mono_dac: audio-codec-0 { 24c66ec88fSEmmanuel Vadot compatible = "maxim,max98357a"; 25c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 26c66ec88fSEmmanuel Vadot sound-name-prefix = "U16"; 27c66ec88fSEmmanuel Vadot sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; 28c66ec88fSEmmanuel Vadot }; 29c66ec88fSEmmanuel Vadot 30c66ec88fSEmmanuel Vadot dmics: audio-codec-1 { 31c66ec88fSEmmanuel Vadot #sound-dai-cells = <0>; 32c66ec88fSEmmanuel Vadot compatible = "dmic-codec"; 33c66ec88fSEmmanuel Vadot num-channels = <2>; 34c66ec88fSEmmanuel Vadot wakeup-delay-ms = <50>; 35c66ec88fSEmmanuel Vadot sound-name-prefix = "MIC"; 36c66ec88fSEmmanuel Vadot }; 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot chosen { 39c66ec88fSEmmanuel Vadot stdout-path = "serial0:115200n8"; 40c66ec88fSEmmanuel Vadot }; 41c66ec88fSEmmanuel Vadot 42c66ec88fSEmmanuel Vadot emmc_pwrseq: emmc-pwrseq { 43c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-emmc"; 44c66ec88fSEmmanuel Vadot reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 45c66ec88fSEmmanuel Vadot }; 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot gpio-keys { 48c66ec88fSEmmanuel Vadot compatible = "gpio-keys"; 49c66ec88fSEmmanuel Vadot 50b97ee269SEmmanuel Vadot key-1 { 51c66ec88fSEmmanuel Vadot label = "A"; 52c66ec88fSEmmanuel Vadot linux,code = <BTN_0>; 53c66ec88fSEmmanuel Vadot gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; 54c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 55aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOH_6 IRQ_TYPE_EDGE_BOTH>; 56c66ec88fSEmmanuel Vadot }; 57c66ec88fSEmmanuel Vadot 58b97ee269SEmmanuel Vadot key-2 { 59c66ec88fSEmmanuel Vadot label = "B"; 60c66ec88fSEmmanuel Vadot linux,code = <BTN_1>; 61c66ec88fSEmmanuel Vadot gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>; 62c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 63aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOH_7 IRQ_TYPE_EDGE_BOTH>; 64c66ec88fSEmmanuel Vadot }; 65c66ec88fSEmmanuel Vadot 66b97ee269SEmmanuel Vadot key-3 { 67c66ec88fSEmmanuel Vadot label = "C"; 68c66ec88fSEmmanuel Vadot linux,code = <BTN_2>; 69c66ec88fSEmmanuel Vadot gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; 70c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 71aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOAO_2 IRQ_TYPE_EDGE_BOTH>; 72c66ec88fSEmmanuel Vadot }; 73c66ec88fSEmmanuel Vadot 74b97ee269SEmmanuel Vadot key-mic-mute { 75c66ec88fSEmmanuel Vadot label = "MicMute"; 76c66ec88fSEmmanuel Vadot linux,code = <SW_MUTE_DEVICE>; 77c66ec88fSEmmanuel Vadot linux,input-type = <EV_SW>; 78c66ec88fSEmmanuel Vadot gpios = <&gpio_ao GPIOE_2 GPIO_ACTIVE_LOW>; 79c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 80aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOE_2 IRQ_TYPE_EDGE_BOTH>; 81c66ec88fSEmmanuel Vadot }; 82c66ec88fSEmmanuel Vadot 83b97ee269SEmmanuel Vadot key-power { 84c66ec88fSEmmanuel Vadot label = "PowerKey"; 85c66ec88fSEmmanuel Vadot linux,code = <KEY_POWER>; 86c66ec88fSEmmanuel Vadot gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; 87c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 88aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOAO_3 IRQ_TYPE_EDGE_BOTH>; 89c66ec88fSEmmanuel Vadot }; 90c66ec88fSEmmanuel Vadot }; 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadot hdmi-connector { 93c66ec88fSEmmanuel Vadot compatible = "hdmi-connector"; 94c66ec88fSEmmanuel Vadot type = "a"; 95c66ec88fSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot port { 97c66ec88fSEmmanuel Vadot hdmi_connector_in: endpoint { 98c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_tx_tmds_out>; 99c66ec88fSEmmanuel Vadot }; 100c66ec88fSEmmanuel Vadot }; 101c66ec88fSEmmanuel Vadot }; 102c66ec88fSEmmanuel Vadot 1035def4c47SEmmanuel Vadot led-controller-1 { 104c66ec88fSEmmanuel Vadot compatible = "gpio-leds"; 105c66ec88fSEmmanuel Vadot 1065def4c47SEmmanuel Vadot led-1 { 107c66ec88fSEmmanuel Vadot label = "sei610:blue:bt"; 108c66ec88fSEmmanuel Vadot gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 109c66ec88fSEmmanuel Vadot default-state = "off"; 110c66ec88fSEmmanuel Vadot }; 111c66ec88fSEmmanuel Vadot }; 112c66ec88fSEmmanuel Vadot 1135def4c47SEmmanuel Vadot led-controller-2 { 114c66ec88fSEmmanuel Vadot compatible = "pwm-leds"; 115c66ec88fSEmmanuel Vadot 1165def4c47SEmmanuel Vadot led-2 { 117c66ec88fSEmmanuel Vadot label = "sei610:red:power"; 118c66ec88fSEmmanuel Vadot pwms = <&pwm_AO_ab 0 30518 0>; 119c66ec88fSEmmanuel Vadot max-brightness = <255>; 120c66ec88fSEmmanuel Vadot linux,default-trigger = "default-on"; 121c66ec88fSEmmanuel Vadot active-low; 122c66ec88fSEmmanuel Vadot }; 123c66ec88fSEmmanuel Vadot }; 124c66ec88fSEmmanuel Vadot 125c66ec88fSEmmanuel Vadot memory@0 { 126c66ec88fSEmmanuel Vadot device_type = "memory"; 127c66ec88fSEmmanuel Vadot reg = <0x0 0x0 0x0 0x40000000>; 128c66ec88fSEmmanuel Vadot }; 129c66ec88fSEmmanuel Vadot 13001950c46SEmmanuel Vadot ao_5v: regulator-ao-5v { 131c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 132c66ec88fSEmmanuel Vadot regulator-name = "AO_5V"; 133c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 134c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 135c66ec88fSEmmanuel Vadot vin-supply = <&dc_in>; 136c66ec88fSEmmanuel Vadot regulator-always-on; 137c66ec88fSEmmanuel Vadot }; 138c66ec88fSEmmanuel Vadot 13901950c46SEmmanuel Vadot dc_in: regulator-dc-in { 140c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 141c66ec88fSEmmanuel Vadot regulator-name = "DC_IN"; 142c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 143c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 144c66ec88fSEmmanuel Vadot regulator-always-on; 145c66ec88fSEmmanuel Vadot }; 146c66ec88fSEmmanuel Vadot 14701950c46SEmmanuel Vadot emmc_1v8: regulator-emmc-1v8 { 148c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 149c66ec88fSEmmanuel Vadot regulator-name = "EMMC_1V8"; 150c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 151c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 152c66ec88fSEmmanuel Vadot vin-supply = <&vddao_3v3>; 153c66ec88fSEmmanuel Vadot regulator-always-on; 154c66ec88fSEmmanuel Vadot }; 155c66ec88fSEmmanuel Vadot 15601950c46SEmmanuel Vadot vddao_3v3: regulator-vddao-3v3 { 157c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 158c66ec88fSEmmanuel Vadot regulator-name = "VDDAO_3V3"; 159c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 160c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 161c66ec88fSEmmanuel Vadot vin-supply = <&dc_in>; 162c66ec88fSEmmanuel Vadot regulator-always-on; 163c66ec88fSEmmanuel Vadot }; 164c66ec88fSEmmanuel Vadot 165c66ec88fSEmmanuel Vadot /* Used by Tuner, RGB Led & IR Emitter LED array */ 16601950c46SEmmanuel Vadot vddao_3v3_t: regulator-vddao-3v3-t { 167c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 168c66ec88fSEmmanuel Vadot regulator-name = "VDDAO_3V3_T"; 169c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 170c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 171c66ec88fSEmmanuel Vadot vin-supply = <&vddao_3v3>; 172c66ec88fSEmmanuel Vadot gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 173c66ec88fSEmmanuel Vadot regulator-always-on; 174c66ec88fSEmmanuel Vadot }; 175c66ec88fSEmmanuel Vadot 176c66ec88fSEmmanuel Vadot vddcpu: regulator-vddcpu { 177c66ec88fSEmmanuel Vadot /* 178c66ec88fSEmmanuel Vadot * SY8120B1ABC DC/DC Regulator. 179c66ec88fSEmmanuel Vadot */ 180c66ec88fSEmmanuel Vadot compatible = "pwm-regulator"; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot regulator-name = "VDDCPU"; 183c66ec88fSEmmanuel Vadot regulator-min-microvolt = <690000>; 184c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1050000>; 185c66ec88fSEmmanuel Vadot 1868cc087a1SEmmanuel Vadot pwm-supply = <&dc_in>; 187c66ec88fSEmmanuel Vadot 188c66ec88fSEmmanuel Vadot pwms = <&pwm_AO_cd 1 1500 0>; 189c66ec88fSEmmanuel Vadot pwm-dutycycle-range = <100 0>; 190c66ec88fSEmmanuel Vadot 191c66ec88fSEmmanuel Vadot regulator-boot-on; 192c66ec88fSEmmanuel Vadot regulator-always-on; 193c66ec88fSEmmanuel Vadot }; 194c66ec88fSEmmanuel Vadot 19501950c46SEmmanuel Vadot vddio_ao1v8: regulator-vddio-ao1v8 { 196c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 197c66ec88fSEmmanuel Vadot regulator-name = "VDDIO_AO1V8"; 198c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 199c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 200c66ec88fSEmmanuel Vadot vin-supply = <&vddao_3v3>; 201c66ec88fSEmmanuel Vadot regulator-always-on; 202c66ec88fSEmmanuel Vadot }; 203c66ec88fSEmmanuel Vadot 204c66ec88fSEmmanuel Vadot sdio_pwrseq: sdio-pwrseq { 205c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 206c66ec88fSEmmanuel Vadot reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 207c66ec88fSEmmanuel Vadot clocks = <&wifi32k>; 208c66ec88fSEmmanuel Vadot clock-names = "ext_clock"; 209c66ec88fSEmmanuel Vadot }; 210c66ec88fSEmmanuel Vadot 211c66ec88fSEmmanuel Vadot sound { 212c66ec88fSEmmanuel Vadot compatible = "amlogic,axg-sound-card"; 2135def4c47SEmmanuel Vadot model = "SEI610"; 214c66ec88fSEmmanuel Vadot audio-aux-devs = <&tdmout_a>, <&tdmout_b>, 215c66ec88fSEmmanuel Vadot <&tdmin_a>, <&tdmin_b>; 216c66ec88fSEmmanuel Vadot audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 217c66ec88fSEmmanuel Vadot "TDMOUT_A IN 1", "FRDDR_B OUT 0", 218c66ec88fSEmmanuel Vadot "TDMOUT_A IN 2", "FRDDR_C OUT 0", 219c66ec88fSEmmanuel Vadot "TDM_A Playback", "TDMOUT_A OUT", 220c66ec88fSEmmanuel Vadot "TDMOUT_B IN 0", "FRDDR_A OUT 1", 221c66ec88fSEmmanuel Vadot "TDMOUT_B IN 1", "FRDDR_B OUT 1", 222c66ec88fSEmmanuel Vadot "TDMOUT_B IN 2", "FRDDR_C OUT 1", 223c66ec88fSEmmanuel Vadot "TDM_B Playback", "TDMOUT_B OUT", 224c66ec88fSEmmanuel Vadot "TODDR_A IN 4", "PDM Capture", 225c66ec88fSEmmanuel Vadot "TODDR_B IN 4", "PDM Capture", 226c66ec88fSEmmanuel Vadot "TODDR_C IN 4", "PDM Capture", 227c66ec88fSEmmanuel Vadot "TDMIN_A IN 0", "TDM_A Capture", 228c66ec88fSEmmanuel Vadot "TDMIN_A IN 3", "TDM_A Loopback", 229c66ec88fSEmmanuel Vadot "TDMIN_B IN 0", "TDM_A Capture", 230c66ec88fSEmmanuel Vadot "TDMIN_B IN 3", "TDM_A Loopback", 231c66ec88fSEmmanuel Vadot "TDMIN_A IN 1", "TDM_B Capture", 232c66ec88fSEmmanuel Vadot "TDMIN_A IN 4", "TDM_B Loopback", 233c66ec88fSEmmanuel Vadot "TDMIN_B IN 1", "TDM_B Capture", 234c66ec88fSEmmanuel Vadot "TDMIN_B IN 4", "TDM_B Loopback", 235c66ec88fSEmmanuel Vadot "TODDR_A IN 0", "TDMIN_A OUT", 236c66ec88fSEmmanuel Vadot "TODDR_B IN 0", "TDMIN_A OUT", 237c66ec88fSEmmanuel Vadot "TODDR_C IN 0", "TDMIN_A OUT", 238c66ec88fSEmmanuel Vadot "TODDR_A IN 1", "TDMIN_B OUT", 239c66ec88fSEmmanuel Vadot "TODDR_B IN 1", "TDMIN_B OUT", 240c66ec88fSEmmanuel Vadot "TODDR_C IN 1", "TDMIN_B OUT"; 241c66ec88fSEmmanuel Vadot 242*b2d2a78aSEmmanuel Vadot clocks = <&clkc CLKID_MPLL2>, 243*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL0>, 244*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL1>; 245*b2d2a78aSEmmanuel Vadot 246c66ec88fSEmmanuel Vadot assigned-clocks = <&clkc CLKID_MPLL2>, 247c66ec88fSEmmanuel Vadot <&clkc CLKID_MPLL0>, 248c66ec88fSEmmanuel Vadot <&clkc CLKID_MPLL1>; 249c66ec88fSEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>; 250c66ec88fSEmmanuel Vadot assigned-clock-rates = <294912000>, 251c66ec88fSEmmanuel Vadot <270950400>, 252c66ec88fSEmmanuel Vadot <393216000>; 253c66ec88fSEmmanuel Vadot 254c66ec88fSEmmanuel Vadot dai-link-0 { 255c66ec88fSEmmanuel Vadot sound-dai = <&frddr_a>; 256c66ec88fSEmmanuel Vadot }; 257c66ec88fSEmmanuel Vadot 258c66ec88fSEmmanuel Vadot dai-link-1 { 259c66ec88fSEmmanuel Vadot sound-dai = <&frddr_b>; 260c66ec88fSEmmanuel Vadot }; 261c66ec88fSEmmanuel Vadot 262c66ec88fSEmmanuel Vadot dai-link-2 { 263c66ec88fSEmmanuel Vadot sound-dai = <&frddr_c>; 264c66ec88fSEmmanuel Vadot }; 265c66ec88fSEmmanuel Vadot 266c66ec88fSEmmanuel Vadot dai-link-3 { 267c66ec88fSEmmanuel Vadot sound-dai = <&toddr_a>; 268c66ec88fSEmmanuel Vadot }; 269c66ec88fSEmmanuel Vadot 270c66ec88fSEmmanuel Vadot dai-link-4 { 271c66ec88fSEmmanuel Vadot sound-dai = <&toddr_b>; 272c66ec88fSEmmanuel Vadot }; 273c66ec88fSEmmanuel Vadot 274c66ec88fSEmmanuel Vadot dai-link-5 { 275c66ec88fSEmmanuel Vadot sound-dai = <&toddr_c>; 276c66ec88fSEmmanuel Vadot }; 277c66ec88fSEmmanuel Vadot 278c66ec88fSEmmanuel Vadot /* internal speaker interface */ 279c66ec88fSEmmanuel Vadot dai-link-6 { 280c66ec88fSEmmanuel Vadot sound-dai = <&tdmif_a>; 281c66ec88fSEmmanuel Vadot dai-format = "i2s"; 282c66ec88fSEmmanuel Vadot dai-tdm-slot-tx-mask-0 = <1 1>; 283c66ec88fSEmmanuel Vadot mclk-fs = <256>; 284c66ec88fSEmmanuel Vadot 285c66ec88fSEmmanuel Vadot codec-0 { 286c66ec88fSEmmanuel Vadot sound-dai = <&mono_dac>; 287c66ec88fSEmmanuel Vadot }; 288c66ec88fSEmmanuel Vadot 289c66ec88fSEmmanuel Vadot codec-1 { 290c66ec88fSEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 291c66ec88fSEmmanuel Vadot }; 292c66ec88fSEmmanuel Vadot }; 293c66ec88fSEmmanuel Vadot 294c66ec88fSEmmanuel Vadot /* 8ch hdmi interface */ 295c66ec88fSEmmanuel Vadot dai-link-7 { 296c66ec88fSEmmanuel Vadot sound-dai = <&tdmif_b>; 297c66ec88fSEmmanuel Vadot dai-format = "i2s"; 298c66ec88fSEmmanuel Vadot dai-tdm-slot-tx-mask-0 = <1 1>; 299c66ec88fSEmmanuel Vadot dai-tdm-slot-tx-mask-1 = <1 1>; 300c66ec88fSEmmanuel Vadot dai-tdm-slot-tx-mask-2 = <1 1>; 301c66ec88fSEmmanuel Vadot dai-tdm-slot-tx-mask-3 = <1 1>; 302c66ec88fSEmmanuel Vadot mclk-fs = <256>; 303c66ec88fSEmmanuel Vadot 304c66ec88fSEmmanuel Vadot codec { 305c66ec88fSEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 306c66ec88fSEmmanuel Vadot }; 307c66ec88fSEmmanuel Vadot }; 308c66ec88fSEmmanuel Vadot 309c66ec88fSEmmanuel Vadot /* internal digital mics */ 310c66ec88fSEmmanuel Vadot dai-link-8 { 311c66ec88fSEmmanuel Vadot sound-dai = <&pdm>; 312c66ec88fSEmmanuel Vadot 313c66ec88fSEmmanuel Vadot codec { 314c66ec88fSEmmanuel Vadot sound-dai = <&dmics>; 315c66ec88fSEmmanuel Vadot }; 316c66ec88fSEmmanuel Vadot }; 317c66ec88fSEmmanuel Vadot 318c66ec88fSEmmanuel Vadot /* hdmi glue */ 319c66ec88fSEmmanuel Vadot dai-link-9 { 320c66ec88fSEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 321c66ec88fSEmmanuel Vadot 322c66ec88fSEmmanuel Vadot codec { 323c66ec88fSEmmanuel Vadot sound-dai = <&hdmi_tx>; 324c66ec88fSEmmanuel Vadot }; 325c66ec88fSEmmanuel Vadot }; 326c66ec88fSEmmanuel Vadot }; 327c66ec88fSEmmanuel Vadot 328c66ec88fSEmmanuel Vadot wifi32k: wifi32k { 329c66ec88fSEmmanuel Vadot compatible = "pwm-clock"; 330c66ec88fSEmmanuel Vadot #clock-cells = <0>; 331c66ec88fSEmmanuel Vadot clock-frequency = <32768>; 332c66ec88fSEmmanuel Vadot pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 333c66ec88fSEmmanuel Vadot }; 334c66ec88fSEmmanuel Vadot}; 335c66ec88fSEmmanuel Vadot 336c66ec88fSEmmanuel Vadot&arb { 337c66ec88fSEmmanuel Vadot status = "okay"; 338c66ec88fSEmmanuel Vadot}; 339c66ec88fSEmmanuel Vadot 340c66ec88fSEmmanuel Vadot&cec_AO { 341c66ec88fSEmmanuel Vadot pinctrl-0 = <&cec_ao_a_h_pins>; 342c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 343c66ec88fSEmmanuel Vadot status = "disabled"; 344c66ec88fSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 345c66ec88fSEmmanuel Vadot}; 346c66ec88fSEmmanuel Vadot 347c66ec88fSEmmanuel Vadot&cecb_AO { 348c66ec88fSEmmanuel Vadot pinctrl-0 = <&cec_ao_b_h_pins>; 349c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 350c66ec88fSEmmanuel Vadot status = "okay"; 351c66ec88fSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 352c66ec88fSEmmanuel Vadot}; 353c66ec88fSEmmanuel Vadot 354c66ec88fSEmmanuel Vadot&clkc_audio { 355c66ec88fSEmmanuel Vadot status = "okay"; 356c66ec88fSEmmanuel Vadot}; 357c66ec88fSEmmanuel Vadot 358c66ec88fSEmmanuel Vadot&cpu0 { 359c66ec88fSEmmanuel Vadot cpu-supply = <&vddcpu>; 360c66ec88fSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table>; 361c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_CPU_CLK>; 362c66ec88fSEmmanuel Vadot clock-latency = <50000>; 363c66ec88fSEmmanuel Vadot}; 364c66ec88fSEmmanuel Vadot 365c66ec88fSEmmanuel Vadot&cpu1 { 366c66ec88fSEmmanuel Vadot cpu-supply = <&vddcpu>; 367c66ec88fSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table>; 368c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_CPU1_CLK>; 369c66ec88fSEmmanuel Vadot clock-latency = <50000>; 370c66ec88fSEmmanuel Vadot}; 371c66ec88fSEmmanuel Vadot 372c66ec88fSEmmanuel Vadot&cpu2 { 373c66ec88fSEmmanuel Vadot cpu-supply = <&vddcpu>; 374c66ec88fSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table>; 375c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_CPU2_CLK>; 376c66ec88fSEmmanuel Vadot clock-latency = <50000>; 377c66ec88fSEmmanuel Vadot}; 378c66ec88fSEmmanuel Vadot 379c66ec88fSEmmanuel Vadot&cpu3 { 380c66ec88fSEmmanuel Vadot cpu-supply = <&vddcpu>; 381c66ec88fSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table>; 382c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_CPU3_CLK>; 383c66ec88fSEmmanuel Vadot clock-latency = <50000>; 384c66ec88fSEmmanuel Vadot}; 385c66ec88fSEmmanuel Vadot 386c66ec88fSEmmanuel Vadotðmac { 387c66ec88fSEmmanuel Vadot status = "okay"; 388c66ec88fSEmmanuel Vadot phy-handle = <&internal_ephy>; 389c66ec88fSEmmanuel Vadot phy-mode = "rmii"; 390c66ec88fSEmmanuel Vadot}; 391c66ec88fSEmmanuel Vadot 392c66ec88fSEmmanuel Vadot&frddr_a { 393c66ec88fSEmmanuel Vadot status = "okay"; 394c66ec88fSEmmanuel Vadot}; 395c66ec88fSEmmanuel Vadot 396c66ec88fSEmmanuel Vadot&frddr_b { 397c66ec88fSEmmanuel Vadot status = "okay"; 398c66ec88fSEmmanuel Vadot}; 399c66ec88fSEmmanuel Vadot 400c66ec88fSEmmanuel Vadot&frddr_c { 401c66ec88fSEmmanuel Vadot status = "okay"; 402c66ec88fSEmmanuel Vadot}; 403c66ec88fSEmmanuel Vadot 404c66ec88fSEmmanuel Vadot&hdmi_tx { 405c66ec88fSEmmanuel Vadot status = "okay"; 406c66ec88fSEmmanuel Vadot pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 407c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 408c66ec88fSEmmanuel Vadot}; 409c66ec88fSEmmanuel Vadot 410c66ec88fSEmmanuel Vadot&hdmi_tx_tmds_port { 411c66ec88fSEmmanuel Vadot hdmi_tx_tmds_out: endpoint { 412c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_connector_in>; 413c66ec88fSEmmanuel Vadot }; 414c66ec88fSEmmanuel Vadot}; 415c66ec88fSEmmanuel Vadot 416c66ec88fSEmmanuel Vadot&i2c3 { 417c66ec88fSEmmanuel Vadot status = "okay"; 418c66ec88fSEmmanuel Vadot pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 419c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 420c66ec88fSEmmanuel Vadot}; 421c66ec88fSEmmanuel Vadot 422c66ec88fSEmmanuel Vadot&ir { 423c66ec88fSEmmanuel Vadot status = "okay"; 424c66ec88fSEmmanuel Vadot pinctrl-0 = <&remote_input_ao_pins>; 425c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 426c66ec88fSEmmanuel Vadot}; 427c66ec88fSEmmanuel Vadot 428c66ec88fSEmmanuel Vadot&pdm { 429c66ec88fSEmmanuel Vadot pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_dclk_z_pins>; 430c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 431c66ec88fSEmmanuel Vadot status = "okay"; 432c66ec88fSEmmanuel Vadot}; 433c66ec88fSEmmanuel Vadot 434c66ec88fSEmmanuel Vadot&pwm_AO_ab { 435c66ec88fSEmmanuel Vadot status = "okay"; 436c66ec88fSEmmanuel Vadot pinctrl-0 = <&pwm_ao_a_pins>; 437c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 438c66ec88fSEmmanuel Vadot clocks = <&xtal>; 439c66ec88fSEmmanuel Vadot clock-names = "clkin0"; 440c66ec88fSEmmanuel Vadot}; 441c66ec88fSEmmanuel Vadot 442c66ec88fSEmmanuel Vadot&pwm_AO_cd { 443c66ec88fSEmmanuel Vadot pinctrl-0 = <&pwm_ao_d_e_pins>; 444c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 445c66ec88fSEmmanuel Vadot clocks = <&xtal>; 446c66ec88fSEmmanuel Vadot clock-names = "clkin1"; 447c66ec88fSEmmanuel Vadot status = "okay"; 448c66ec88fSEmmanuel Vadot}; 449c66ec88fSEmmanuel Vadot 450c66ec88fSEmmanuel Vadot&pwm_ef { 451c66ec88fSEmmanuel Vadot status = "okay"; 452c66ec88fSEmmanuel Vadot pinctrl-0 = <&pwm_e_pins>; 453c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 454c66ec88fSEmmanuel Vadot clocks = <&xtal>; 455c66ec88fSEmmanuel Vadot clock-names = "clkin0"; 456c66ec88fSEmmanuel Vadot}; 457c66ec88fSEmmanuel Vadot 458c66ec88fSEmmanuel Vadot&saradc { 459c66ec88fSEmmanuel Vadot status = "okay"; 460c66ec88fSEmmanuel Vadot vref-supply = <&vddio_ao1v8>; 461c66ec88fSEmmanuel Vadot}; 462c66ec88fSEmmanuel Vadot 463c66ec88fSEmmanuel Vadot/* SDIO */ 464c66ec88fSEmmanuel Vadot&sd_emmc_a { 465c66ec88fSEmmanuel Vadot status = "okay"; 466c66ec88fSEmmanuel Vadot pinctrl-0 = <&sdio_pins>; 467c66ec88fSEmmanuel Vadot pinctrl-1 = <&sdio_clk_gate_pins>; 468c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 469c66ec88fSEmmanuel Vadot #address-cells = <1>; 470c66ec88fSEmmanuel Vadot #size-cells = <0>; 471c66ec88fSEmmanuel Vadot 472c66ec88fSEmmanuel Vadot bus-width = <4>; 473c66ec88fSEmmanuel Vadot cap-sd-highspeed; 474c66ec88fSEmmanuel Vadot sd-uhs-sdr50; 475c66ec88fSEmmanuel Vadot max-frequency = <100000000>; 476c66ec88fSEmmanuel Vadot 477c66ec88fSEmmanuel Vadot non-removable; 478c66ec88fSEmmanuel Vadot disable-wp; 479c66ec88fSEmmanuel Vadot 480c66ec88fSEmmanuel Vadot /* WiFi firmware requires power to be kept while in suspend */ 481c66ec88fSEmmanuel Vadot keep-power-in-suspend; 482c66ec88fSEmmanuel Vadot 483c66ec88fSEmmanuel Vadot mmc-pwrseq = <&sdio_pwrseq>; 484c66ec88fSEmmanuel Vadot 485c66ec88fSEmmanuel Vadot vmmc-supply = <&vddao_3v3>; 486c66ec88fSEmmanuel Vadot vqmmc-supply = <&vddio_ao1v8>; 487c66ec88fSEmmanuel Vadot 488c66ec88fSEmmanuel Vadot brcmf: wifi@1 { 489c66ec88fSEmmanuel Vadot reg = <1>; 490c66ec88fSEmmanuel Vadot compatible = "brcm,bcm4329-fmac"; 491c66ec88fSEmmanuel Vadot }; 492c66ec88fSEmmanuel Vadot}; 493c66ec88fSEmmanuel Vadot 494c66ec88fSEmmanuel Vadot/* SD card */ 495c66ec88fSEmmanuel Vadot&sd_emmc_b { 496c66ec88fSEmmanuel Vadot status = "okay"; 497c66ec88fSEmmanuel Vadot pinctrl-0 = <&sdcard_c_pins>; 498c66ec88fSEmmanuel Vadot pinctrl-1 = <&sdcard_clk_gate_c_pins>; 499c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 500c66ec88fSEmmanuel Vadot 501c66ec88fSEmmanuel Vadot bus-width = <4>; 502c66ec88fSEmmanuel Vadot cap-sd-highspeed; 503c66ec88fSEmmanuel Vadot max-frequency = <50000000>; 504c66ec88fSEmmanuel Vadot disable-wp; 505c66ec88fSEmmanuel Vadot 506c66ec88fSEmmanuel Vadot cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 507c66ec88fSEmmanuel Vadot vmmc-supply = <&vddao_3v3>; 508c66ec88fSEmmanuel Vadot vqmmc-supply = <&vddao_3v3>; 509c66ec88fSEmmanuel Vadot}; 510c66ec88fSEmmanuel Vadot 511c66ec88fSEmmanuel Vadot/* eMMC */ 512c66ec88fSEmmanuel Vadot&sd_emmc_c { 513c66ec88fSEmmanuel Vadot status = "okay"; 514c66ec88fSEmmanuel Vadot pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 515c66ec88fSEmmanuel Vadot pinctrl-1 = <&emmc_clk_gate_pins>; 516c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 517c66ec88fSEmmanuel Vadot 518c66ec88fSEmmanuel Vadot bus-width = <8>; 519c66ec88fSEmmanuel Vadot cap-mmc-highspeed; 520c66ec88fSEmmanuel Vadot mmc-ddr-1_8v; 521c66ec88fSEmmanuel Vadot mmc-hs200-1_8v; 522c66ec88fSEmmanuel Vadot max-frequency = <200000000>; 523c66ec88fSEmmanuel Vadot non-removable; 524c66ec88fSEmmanuel Vadot disable-wp; 525c66ec88fSEmmanuel Vadot 526c66ec88fSEmmanuel Vadot mmc-pwrseq = <&emmc_pwrseq>; 527c66ec88fSEmmanuel Vadot vmmc-supply = <&vddao_3v3>; 528c66ec88fSEmmanuel Vadot vqmmc-supply = <&emmc_1v8>; 529c66ec88fSEmmanuel Vadot}; 530c66ec88fSEmmanuel Vadot 531c66ec88fSEmmanuel Vadot&tdmif_a { 532c66ec88fSEmmanuel Vadot pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; 533c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 534c66ec88fSEmmanuel Vadot status = "okay"; 535c66ec88fSEmmanuel Vadot 536c66ec88fSEmmanuel Vadot assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, 537c66ec88fSEmmanuel Vadot <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; 538c66ec88fSEmmanuel Vadot assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 539c66ec88fSEmmanuel Vadot <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 540c66ec88fSEmmanuel Vadot assigned-clock-rates = <0>, <0>; 541c66ec88fSEmmanuel Vadot}; 542c66ec88fSEmmanuel Vadot 543c66ec88fSEmmanuel Vadot&tdmif_b { 544c66ec88fSEmmanuel Vadot status = "okay"; 545c66ec88fSEmmanuel Vadot}; 546c66ec88fSEmmanuel Vadot 547c66ec88fSEmmanuel Vadot&tdmin_a { 548c66ec88fSEmmanuel Vadot status = "okay"; 549c66ec88fSEmmanuel Vadot}; 550c66ec88fSEmmanuel Vadot 551c66ec88fSEmmanuel Vadot&tdmin_b { 552c66ec88fSEmmanuel Vadot status = "okay"; 553c66ec88fSEmmanuel Vadot}; 554c66ec88fSEmmanuel Vadot 555c66ec88fSEmmanuel Vadot&tdmout_a { 556c66ec88fSEmmanuel Vadot status = "okay"; 557c66ec88fSEmmanuel Vadot}; 558c66ec88fSEmmanuel Vadot 559c66ec88fSEmmanuel Vadot&tdmout_b { 560c66ec88fSEmmanuel Vadot status = "okay"; 561c66ec88fSEmmanuel Vadot}; 562c66ec88fSEmmanuel Vadot 563c66ec88fSEmmanuel Vadot&toddr_a { 564c66ec88fSEmmanuel Vadot status = "okay"; 565c66ec88fSEmmanuel Vadot}; 566c66ec88fSEmmanuel Vadot 567c66ec88fSEmmanuel Vadot&toddr_b { 568c66ec88fSEmmanuel Vadot status = "okay"; 569c66ec88fSEmmanuel Vadot}; 570c66ec88fSEmmanuel Vadot 571c66ec88fSEmmanuel Vadot&toddr_c { 572c66ec88fSEmmanuel Vadot status = "okay"; 573c66ec88fSEmmanuel Vadot}; 574c66ec88fSEmmanuel Vadot 575c66ec88fSEmmanuel Vadot&tohdmitx { 576c66ec88fSEmmanuel Vadot status = "okay"; 577c66ec88fSEmmanuel Vadot}; 578c66ec88fSEmmanuel Vadot 579c66ec88fSEmmanuel Vadot&uart_A { 580c66ec88fSEmmanuel Vadot status = "okay"; 581c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 582c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 583c66ec88fSEmmanuel Vadot uart-has-rtscts; 584c66ec88fSEmmanuel Vadot 585c66ec88fSEmmanuel Vadot bluetooth { 586c66ec88fSEmmanuel Vadot compatible = "brcm,bcm43438-bt"; 587c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 588aa1a8ff2SEmmanuel Vadot interrupts = <IRQID_GPIOX_18 IRQ_TYPE_LEVEL_HIGH>; 589c66ec88fSEmmanuel Vadot interrupt-names = "host-wakeup"; 590c66ec88fSEmmanuel Vadot shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 591c66ec88fSEmmanuel Vadot max-speed = <2000000>; 592c66ec88fSEmmanuel Vadot clocks = <&wifi32k>; 593c66ec88fSEmmanuel Vadot clock-names = "lpo"; 594c66ec88fSEmmanuel Vadot vbat-supply = <&vddao_3v3>; 595c66ec88fSEmmanuel Vadot vddio-supply = <&vddio_ao1v8>; 596c66ec88fSEmmanuel Vadot }; 597c66ec88fSEmmanuel Vadot}; 598c66ec88fSEmmanuel Vadot 599c66ec88fSEmmanuel Vadot/* Exposed via the on-board USB to Serial FT232RL IC */ 600c66ec88fSEmmanuel Vadot&uart_AO { 601c66ec88fSEmmanuel Vadot status = "okay"; 602c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart_ao_a_pins>; 603c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 604c66ec88fSEmmanuel Vadot}; 605c66ec88fSEmmanuel Vadot 606c66ec88fSEmmanuel Vadot&usb { 607c66ec88fSEmmanuel Vadot status = "okay"; 608c66ec88fSEmmanuel Vadot dr_mode = "otg"; 609c66ec88fSEmmanuel Vadot}; 610