1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cb7aa33aSEmmanuel Vadot/* 3cb7aa33aSEmmanuel Vadot * Copyright (c) 2019 BayLibre, SAS 4cb7aa33aSEmmanuel Vadot * Author: Neil Armstrong <narmstrong@baylibre.com> 5cb7aa33aSEmmanuel Vadot * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 6cb7aa33aSEmmanuel Vadot * Copyright (c) 2022 Radxa Limited 7cb7aa33aSEmmanuel Vadot * Author: Yuntian Zhang <yt@radxa.com> 8cb7aa33aSEmmanuel Vadot */ 9cb7aa33aSEmmanuel Vadot 10cb7aa33aSEmmanuel Vadot/dts-v1/; 11cb7aa33aSEmmanuel Vadot 12cb7aa33aSEmmanuel Vadot#include "meson-g12b-a311d.dtsi" 13cb7aa33aSEmmanuel Vadot#include <dt-bindings/input/input.h> 14cb7aa33aSEmmanuel Vadot#include <dt-bindings/leds/common.h> 15cb7aa33aSEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h> 16cb7aa33aSEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 17cb7aa33aSEmmanuel Vadot 18cb7aa33aSEmmanuel Vadot/ { 19cb7aa33aSEmmanuel Vadot compatible = "radxa,zero2", "amlogic,a311d", "amlogic,g12b"; 20cb7aa33aSEmmanuel Vadot model = "Radxa Zero2"; 21cb7aa33aSEmmanuel Vadot 22cb7aa33aSEmmanuel Vadot aliases { 23cb7aa33aSEmmanuel Vadot serial0 = &uart_AO; 24cb7aa33aSEmmanuel Vadot serial2 = &uart_A; 25cb7aa33aSEmmanuel Vadot }; 26cb7aa33aSEmmanuel Vadot 27cb7aa33aSEmmanuel Vadot chosen { 28cb7aa33aSEmmanuel Vadot stdout-path = "serial0:115200n8"; 29cb7aa33aSEmmanuel Vadot }; 30cb7aa33aSEmmanuel Vadot 31cb7aa33aSEmmanuel Vadot memory@0 { 32cb7aa33aSEmmanuel Vadot device_type = "memory"; 33cb7aa33aSEmmanuel Vadot reg = <0x0 0x0 0x0 0x80000000>; 34cb7aa33aSEmmanuel Vadot }; 35cb7aa33aSEmmanuel Vadot 360e8011faSEmmanuel Vadot fan0: pwm-fan { 370e8011faSEmmanuel Vadot compatible = "pwm-fan"; 380e8011faSEmmanuel Vadot #cooling-cells = <2>; 390e8011faSEmmanuel Vadot cooling-levels = <0 64 128 192 255>; 400e8011faSEmmanuel Vadot pwms = <&pwm_AO_ab 0 40000 0>; 410e8011faSEmmanuel Vadot }; 420e8011faSEmmanuel Vadot 43cb7aa33aSEmmanuel Vadot gpio-keys-polled { 44cb7aa33aSEmmanuel Vadot compatible = "gpio-keys-polled"; 45cb7aa33aSEmmanuel Vadot poll-interval = <100>; 46cb7aa33aSEmmanuel Vadot power-button { 47cb7aa33aSEmmanuel Vadot label = "power"; 48cb7aa33aSEmmanuel Vadot linux,code = <KEY_POWER>; 49cb7aa33aSEmmanuel Vadot gpios = <&gpio_ao GPIOAO_3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 50cb7aa33aSEmmanuel Vadot }; 51cb7aa33aSEmmanuel Vadot }; 52cb7aa33aSEmmanuel Vadot 53cb7aa33aSEmmanuel Vadot leds { 54cb7aa33aSEmmanuel Vadot compatible = "gpio-leds"; 55cb7aa33aSEmmanuel Vadot 56cb7aa33aSEmmanuel Vadot led-green { 57cb7aa33aSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 58cb7aa33aSEmmanuel Vadot function = LED_FUNCTION_STATUS; 59cb7aa33aSEmmanuel Vadot gpios = <&gpio GPIOA_12 GPIO_ACTIVE_HIGH>; 60cb7aa33aSEmmanuel Vadot linux,default-trigger = "heartbeat"; 61cb7aa33aSEmmanuel Vadot }; 62cb7aa33aSEmmanuel Vadot }; 63cb7aa33aSEmmanuel Vadot 64cb7aa33aSEmmanuel Vadot hdmi-connector { 65cb7aa33aSEmmanuel Vadot compatible = "hdmi-connector"; 66cb7aa33aSEmmanuel Vadot type = "a"; 67cb7aa33aSEmmanuel Vadot 68cb7aa33aSEmmanuel Vadot port { 69cb7aa33aSEmmanuel Vadot hdmi_connector_in: endpoint { 70cb7aa33aSEmmanuel Vadot remote-endpoint = <&hdmi_tx_tmds_out>; 71cb7aa33aSEmmanuel Vadot }; 72cb7aa33aSEmmanuel Vadot }; 73cb7aa33aSEmmanuel Vadot }; 74cb7aa33aSEmmanuel Vadot 75cb7aa33aSEmmanuel Vadot emmc_pwrseq: emmc-pwrseq { 76cb7aa33aSEmmanuel Vadot compatible = "mmc-pwrseq-emmc"; 77cb7aa33aSEmmanuel Vadot reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 78cb7aa33aSEmmanuel Vadot }; 79cb7aa33aSEmmanuel Vadot 80cb7aa33aSEmmanuel Vadot sdio_pwrseq: sdio-pwrseq { 81cb7aa33aSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 82cb7aa33aSEmmanuel Vadot reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 83cb7aa33aSEmmanuel Vadot clocks = <&wifi32k>; 84cb7aa33aSEmmanuel Vadot clock-names = "ext_clock"; 85cb7aa33aSEmmanuel Vadot }; 86cb7aa33aSEmmanuel Vadot 87cb7aa33aSEmmanuel Vadot ao_5v: regulator-ao-5v { 88cb7aa33aSEmmanuel Vadot compatible = "regulator-fixed"; 89cb7aa33aSEmmanuel Vadot regulator-name = "AO_5V"; 90cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <5000000>; 91cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <5000000>; 92cb7aa33aSEmmanuel Vadot regulator-always-on; 93cb7aa33aSEmmanuel Vadot }; 94cb7aa33aSEmmanuel Vadot 95cb7aa33aSEmmanuel Vadot vcc_1v8: regulator-vcc-1v8 { 96cb7aa33aSEmmanuel Vadot compatible = "regulator-fixed"; 97cb7aa33aSEmmanuel Vadot regulator-name = "VCC_1V8"; 98cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 99cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 100cb7aa33aSEmmanuel Vadot vin-supply = <&vcc_3v3>; 101cb7aa33aSEmmanuel Vadot regulator-always-on; 102cb7aa33aSEmmanuel Vadot }; 103cb7aa33aSEmmanuel Vadot 104cb7aa33aSEmmanuel Vadot vcc_3v3: regulator-vcc-3v3 { 105cb7aa33aSEmmanuel Vadot compatible = "regulator-fixed"; 106cb7aa33aSEmmanuel Vadot regulator-name = "VCC_3V3"; 107cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 108cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 109cb7aa33aSEmmanuel Vadot vin-supply = <&vddao_3v3>; 110cb7aa33aSEmmanuel Vadot regulator-always-on; 111cb7aa33aSEmmanuel Vadot /* FIXME: actually controlled by VDDCPU_B_EN */ 112cb7aa33aSEmmanuel Vadot }; 113cb7aa33aSEmmanuel Vadot 114cb7aa33aSEmmanuel Vadot vddao_1v8: regulator-vddao-1v8 { 115cb7aa33aSEmmanuel Vadot compatible = "regulator-fixed"; 116cb7aa33aSEmmanuel Vadot regulator-name = "VDDIO_AO1V8"; 117cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 118cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 119cb7aa33aSEmmanuel Vadot vin-supply = <&vddao_3v3>; 120cb7aa33aSEmmanuel Vadot regulator-always-on; 121cb7aa33aSEmmanuel Vadot }; 122cb7aa33aSEmmanuel Vadot 123cb7aa33aSEmmanuel Vadot vddao_3v3: regulator-vddao-3v3 { 124cb7aa33aSEmmanuel Vadot compatible = "regulator-fixed"; 125cb7aa33aSEmmanuel Vadot regulator-name = "VDDAO_3V3"; 126cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 127cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 128cb7aa33aSEmmanuel Vadot vin-supply = <&ao_5v>; 129cb7aa33aSEmmanuel Vadot regulator-always-on; 130cb7aa33aSEmmanuel Vadot }; 131cb7aa33aSEmmanuel Vadot 132cb7aa33aSEmmanuel Vadot vddcpu_a: regulator-vddcpu-a { 133cb7aa33aSEmmanuel Vadot /* 134cb7aa33aSEmmanuel Vadot * MP8756GD Regulator. 135cb7aa33aSEmmanuel Vadot */ 136cb7aa33aSEmmanuel Vadot compatible = "pwm-regulator"; 137cb7aa33aSEmmanuel Vadot 138cb7aa33aSEmmanuel Vadot regulator-name = "VDDCPU_A"; 139cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <730000>; 140cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1022000>; 141cb7aa33aSEmmanuel Vadot 142cb7aa33aSEmmanuel Vadot pwm-supply = <&ao_5v>; 143cb7aa33aSEmmanuel Vadot 144cb7aa33aSEmmanuel Vadot pwms = <&pwm_ab 0 1250 0>; 145cb7aa33aSEmmanuel Vadot pwm-dutycycle-range = <100 0>; 146cb7aa33aSEmmanuel Vadot 147cb7aa33aSEmmanuel Vadot regulator-boot-on; 148cb7aa33aSEmmanuel Vadot regulator-always-on; 149cb7aa33aSEmmanuel Vadot }; 150cb7aa33aSEmmanuel Vadot 151cb7aa33aSEmmanuel Vadot vddcpu_b: regulator-vddcpu-b { 152cb7aa33aSEmmanuel Vadot /* 153cb7aa33aSEmmanuel Vadot * Silergy SY8120B1ABC Regulator. 154cb7aa33aSEmmanuel Vadot */ 155cb7aa33aSEmmanuel Vadot compatible = "pwm-regulator"; 156cb7aa33aSEmmanuel Vadot 157cb7aa33aSEmmanuel Vadot regulator-name = "VDDCPU_B"; 158cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <730000>; 159cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1022000>; 160cb7aa33aSEmmanuel Vadot 161cb7aa33aSEmmanuel Vadot pwm-supply = <&ao_5v>; 162cb7aa33aSEmmanuel Vadot 163cb7aa33aSEmmanuel Vadot pwms = <&pwm_AO_cd 1 1250 0>; 164cb7aa33aSEmmanuel Vadot pwm-dutycycle-range = <100 0>; 165cb7aa33aSEmmanuel Vadot 166cb7aa33aSEmmanuel Vadot regulator-boot-on; 167cb7aa33aSEmmanuel Vadot regulator-always-on; 168cb7aa33aSEmmanuel Vadot }; 169cb7aa33aSEmmanuel Vadot 170cb7aa33aSEmmanuel Vadot sound { 171cb7aa33aSEmmanuel Vadot compatible = "amlogic,axg-sound-card"; 172cb7aa33aSEmmanuel Vadot model = "RADXA-ZERO2"; 173cb7aa33aSEmmanuel Vadot audio-aux-devs = <&tdmout_b>; 174cb7aa33aSEmmanuel Vadot audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 175cb7aa33aSEmmanuel Vadot "TDMOUT_B IN 1", "FRDDR_B OUT 1", 176cb7aa33aSEmmanuel Vadot "TDMOUT_B IN 2", "FRDDR_C OUT 1", 177cb7aa33aSEmmanuel Vadot "TDM_B Playback", "TDMOUT_B OUT"; 178cb7aa33aSEmmanuel Vadot 179*b2d2a78aSEmmanuel Vadot clocks = <&clkc CLKID_MPLL2>, 180*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL0>, 181*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL1>; 182*b2d2a78aSEmmanuel Vadot 183cb7aa33aSEmmanuel Vadot assigned-clocks = <&clkc CLKID_MPLL2>, 184cb7aa33aSEmmanuel Vadot <&clkc CLKID_MPLL0>, 185cb7aa33aSEmmanuel Vadot <&clkc CLKID_MPLL1>; 186cb7aa33aSEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>; 187cb7aa33aSEmmanuel Vadot assigned-clock-rates = <294912000>, 188cb7aa33aSEmmanuel Vadot <270950400>, 189cb7aa33aSEmmanuel Vadot <393216000>; 190cb7aa33aSEmmanuel Vadot 191cb7aa33aSEmmanuel Vadot dai-link-0 { 192cb7aa33aSEmmanuel Vadot sound-dai = <&frddr_a>; 193cb7aa33aSEmmanuel Vadot }; 194cb7aa33aSEmmanuel Vadot 195cb7aa33aSEmmanuel Vadot dai-link-1 { 196cb7aa33aSEmmanuel Vadot sound-dai = <&frddr_b>; 197cb7aa33aSEmmanuel Vadot }; 198cb7aa33aSEmmanuel Vadot 199cb7aa33aSEmmanuel Vadot dai-link-2 { 200cb7aa33aSEmmanuel Vadot sound-dai = <&frddr_c>; 201cb7aa33aSEmmanuel Vadot }; 202cb7aa33aSEmmanuel Vadot 203cb7aa33aSEmmanuel Vadot /* 8ch hdmi interface */ 204cb7aa33aSEmmanuel Vadot dai-link-3 { 205cb7aa33aSEmmanuel Vadot sound-dai = <&tdmif_b>; 206cb7aa33aSEmmanuel Vadot dai-format = "i2s"; 207cb7aa33aSEmmanuel Vadot dai-tdm-slot-tx-mask-0 = <1 1>; 208cb7aa33aSEmmanuel Vadot dai-tdm-slot-tx-mask-1 = <1 1>; 209cb7aa33aSEmmanuel Vadot dai-tdm-slot-tx-mask-2 = <1 1>; 210cb7aa33aSEmmanuel Vadot dai-tdm-slot-tx-mask-3 = <1 1>; 211cb7aa33aSEmmanuel Vadot mclk-fs = <256>; 212cb7aa33aSEmmanuel Vadot 213cb7aa33aSEmmanuel Vadot codec { 214cb7aa33aSEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 215cb7aa33aSEmmanuel Vadot }; 216cb7aa33aSEmmanuel Vadot }; 217cb7aa33aSEmmanuel Vadot 218cb7aa33aSEmmanuel Vadot /* hdmi glue */ 219cb7aa33aSEmmanuel Vadot dai-link-4 { 220cb7aa33aSEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 221cb7aa33aSEmmanuel Vadot 222cb7aa33aSEmmanuel Vadot codec { 223cb7aa33aSEmmanuel Vadot sound-dai = <&hdmi_tx>; 224cb7aa33aSEmmanuel Vadot }; 225cb7aa33aSEmmanuel Vadot }; 226cb7aa33aSEmmanuel Vadot }; 227cb7aa33aSEmmanuel Vadot 228cb7aa33aSEmmanuel Vadot wifi32k: clock-0 { 229cb7aa33aSEmmanuel Vadot compatible = "pwm-clock"; 230cb7aa33aSEmmanuel Vadot #clock-cells = <0>; 231cb7aa33aSEmmanuel Vadot clock-frequency = <32768>; 232cb7aa33aSEmmanuel Vadot pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 233cb7aa33aSEmmanuel Vadot }; 234cb7aa33aSEmmanuel Vadot}; 235cb7aa33aSEmmanuel Vadot 236cb7aa33aSEmmanuel Vadot&arb { 237cb7aa33aSEmmanuel Vadot status = "okay"; 238cb7aa33aSEmmanuel Vadot}; 239cb7aa33aSEmmanuel Vadot 240cb7aa33aSEmmanuel Vadot&cec_AO { 241cb7aa33aSEmmanuel Vadot pinctrl-0 = <&cec_ao_a_h_pins>; 242cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 243cb7aa33aSEmmanuel Vadot status = "disabled"; 244cb7aa33aSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 245cb7aa33aSEmmanuel Vadot}; 246cb7aa33aSEmmanuel Vadot 247cb7aa33aSEmmanuel Vadot&cecb_AO { 248cb7aa33aSEmmanuel Vadot pinctrl-0 = <&cec_ao_b_h_pins>; 249cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 250cb7aa33aSEmmanuel Vadot status = "okay"; 251cb7aa33aSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 252cb7aa33aSEmmanuel Vadot}; 253cb7aa33aSEmmanuel Vadot 254cb7aa33aSEmmanuel Vadot&clkc_audio { 255cb7aa33aSEmmanuel Vadot status = "okay"; 256cb7aa33aSEmmanuel Vadot}; 257cb7aa33aSEmmanuel Vadot 258cb7aa33aSEmmanuel Vadot&cpu0 { 259cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_b>; 260cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table_0>; 261cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPU_CLK>; 262cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 263cb7aa33aSEmmanuel Vadot}; 264cb7aa33aSEmmanuel Vadot 265cb7aa33aSEmmanuel Vadot&cpu1 { 266cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_b>; 267cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpu_opp_table_0>; 268cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPU_CLK>; 269cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 270cb7aa33aSEmmanuel Vadot}; 271cb7aa33aSEmmanuel Vadot 272cb7aa33aSEmmanuel Vadot&cpu100 { 273cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_a>; 274cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpub_opp_table_1>; 275cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPUB_CLK>; 276cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 277cb7aa33aSEmmanuel Vadot}; 278cb7aa33aSEmmanuel Vadot 279cb7aa33aSEmmanuel Vadot&cpu101 { 280cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_a>; 281cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpub_opp_table_1>; 282cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPUB_CLK>; 283cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 284cb7aa33aSEmmanuel Vadot}; 285cb7aa33aSEmmanuel Vadot 286cb7aa33aSEmmanuel Vadot&cpu102 { 287cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_a>; 288cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpub_opp_table_1>; 289cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPUB_CLK>; 290cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 291cb7aa33aSEmmanuel Vadot}; 292cb7aa33aSEmmanuel Vadot 293cb7aa33aSEmmanuel Vadot&cpu103 { 294cb7aa33aSEmmanuel Vadot cpu-supply = <&vddcpu_a>; 295cb7aa33aSEmmanuel Vadot operating-points-v2 = <&cpub_opp_table_1>; 296cb7aa33aSEmmanuel Vadot clocks = <&clkc CLKID_CPUB_CLK>; 297cb7aa33aSEmmanuel Vadot clock-latency = <50000>; 298cb7aa33aSEmmanuel Vadot}; 299cb7aa33aSEmmanuel Vadot 3000e8011faSEmmanuel Vadot&cpu_thermal { 3010e8011faSEmmanuel Vadot trips { 3020e8011faSEmmanuel Vadot cpu_active: cpu-active { 3030e8011faSEmmanuel Vadot temperature = <70000>; /* millicelsius */ 3040e8011faSEmmanuel Vadot hysteresis = <2000>; /* millicelsius */ 3050e8011faSEmmanuel Vadot type = "active"; 3060e8011faSEmmanuel Vadot }; 3070e8011faSEmmanuel Vadot }; 3080e8011faSEmmanuel Vadot 3090e8011faSEmmanuel Vadot cooling-maps { 3100e8011faSEmmanuel Vadot map2 { 3110e8011faSEmmanuel Vadot trip = <&cpu_active>; 3120e8011faSEmmanuel Vadot cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 3130e8011faSEmmanuel Vadot }; 3140e8011faSEmmanuel Vadot }; 3150e8011faSEmmanuel Vadot}; 3160e8011faSEmmanuel Vadot 317cb7aa33aSEmmanuel Vadot&frddr_a { 318cb7aa33aSEmmanuel Vadot status = "okay"; 319cb7aa33aSEmmanuel Vadot}; 320cb7aa33aSEmmanuel Vadot 321cb7aa33aSEmmanuel Vadot&frddr_b { 322cb7aa33aSEmmanuel Vadot status = "okay"; 323cb7aa33aSEmmanuel Vadot}; 324cb7aa33aSEmmanuel Vadot 325cb7aa33aSEmmanuel Vadot&frddr_c { 326cb7aa33aSEmmanuel Vadot status = "okay"; 327cb7aa33aSEmmanuel Vadot}; 328cb7aa33aSEmmanuel Vadot 329cb7aa33aSEmmanuel Vadot&gpio { 330cb7aa33aSEmmanuel Vadot gpio-line-names = 331cb7aa33aSEmmanuel Vadot /* GPIOZ */ 332cb7aa33aSEmmanuel Vadot "PIN_27", "PIN_28", "PIN_7", "PIN_11", "PIN_13", "PIN_15", "PIN_18", "PIN_40", 333cb7aa33aSEmmanuel Vadot "", "", "", "", "", "", "", "", 334cb7aa33aSEmmanuel Vadot /* GPIOH */ 335cb7aa33aSEmmanuel Vadot "", "", "", "", "PIN_19", "PIN_21", "PIN_24", "PIN_23", 336cb7aa33aSEmmanuel Vadot "", 337cb7aa33aSEmmanuel Vadot /* BOOT */ 338cb7aa33aSEmmanuel Vadot "", "", "", "", "", "", "", "", 339cb7aa33aSEmmanuel Vadot "", "", "", "", "EMMC_PWRSEQ", "", "", "", 340cb7aa33aSEmmanuel Vadot /* GPIOC */ 341cb7aa33aSEmmanuel Vadot "", "", "", "", "", "", "SD_CD", "PIN_36", 342cb7aa33aSEmmanuel Vadot /* GPIOA */ 343cb7aa33aSEmmanuel Vadot "PIN_32", "PIN_12", "PIN_35", "", "", "PIN_38", "", "", 344cb7aa33aSEmmanuel Vadot "", "", "", "", "LED_GREEN", "PIN_31", "PIN_3", "PIN_5", 345cb7aa33aSEmmanuel Vadot /* GPIOX */ 346cb7aa33aSEmmanuel Vadot "", "", "", "", "", "", "SDIO_PWRSEQ", "", 347cb7aa33aSEmmanuel Vadot "", "", "", "", "", "", "", "", 348cb7aa33aSEmmanuel Vadot "", "BT_SHUTDOWN", "", ""; 349cb7aa33aSEmmanuel Vadot}; 350cb7aa33aSEmmanuel Vadot 351cb7aa33aSEmmanuel Vadot&gpio_ao { 352cb7aa33aSEmmanuel Vadot gpio-line-names = 353cb7aa33aSEmmanuel Vadot /* GPIOAO */ 354cb7aa33aSEmmanuel Vadot "PIN_8", "PIN_10", "", "BTN_POWER", "", "", "", "PIN_29", 355cb7aa33aSEmmanuel Vadot "PIN_33", "PIN_37", "FAN", "", 356cb7aa33aSEmmanuel Vadot /* GPIOE */ 357cb7aa33aSEmmanuel Vadot "", "", ""; 358cb7aa33aSEmmanuel Vadot}; 359cb7aa33aSEmmanuel Vadot 360cb7aa33aSEmmanuel Vadot&hdmi_tx { 361cb7aa33aSEmmanuel Vadot status = "okay"; 362cb7aa33aSEmmanuel Vadot pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 363cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 364cb7aa33aSEmmanuel Vadot hdmi-supply = <&ao_5v>; 365cb7aa33aSEmmanuel Vadot}; 366cb7aa33aSEmmanuel Vadot 367cb7aa33aSEmmanuel Vadot&hdmi_tx_tmds_port { 368cb7aa33aSEmmanuel Vadot hdmi_tx_tmds_out: endpoint { 369cb7aa33aSEmmanuel Vadot remote-endpoint = <&hdmi_connector_in>; 370cb7aa33aSEmmanuel Vadot }; 371cb7aa33aSEmmanuel Vadot}; 372cb7aa33aSEmmanuel Vadot 373cb7aa33aSEmmanuel Vadot&ir { 374cb7aa33aSEmmanuel Vadot status = "disabled"; 375cb7aa33aSEmmanuel Vadot pinctrl-0 = <&remote_input_ao_pins>; 376cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 377cb7aa33aSEmmanuel Vadot}; 378cb7aa33aSEmmanuel Vadot 379cb7aa33aSEmmanuel Vadot&pwm_ab { 380cb7aa33aSEmmanuel Vadot pinctrl-0 = <&pwm_a_e_pins>; 381cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 382cb7aa33aSEmmanuel Vadot clocks = <&xtal>; 383cb7aa33aSEmmanuel Vadot clock-names = "clkin0"; 384cb7aa33aSEmmanuel Vadot status = "okay"; 385cb7aa33aSEmmanuel Vadot}; 386cb7aa33aSEmmanuel Vadot 387cb7aa33aSEmmanuel Vadot&pwm_ef { 388cb7aa33aSEmmanuel Vadot pinctrl-0 = <&pwm_e_pins>; 389cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 390cb7aa33aSEmmanuel Vadot clocks = <&xtal>; 391fac71e4eSEmmanuel Vadot clock-names = "clkin0"; 392cb7aa33aSEmmanuel Vadot status = "okay"; 393cb7aa33aSEmmanuel Vadot}; 394cb7aa33aSEmmanuel Vadot 395cb7aa33aSEmmanuel Vadot&pwm_AO_ab { 396cb7aa33aSEmmanuel Vadot pinctrl-0 = <&pwm_ao_a_pins>; 397cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 398cb7aa33aSEmmanuel Vadot clocks = <&xtal>; 399fac71e4eSEmmanuel Vadot clock-names = "clkin0"; 400cb7aa33aSEmmanuel Vadot status = "okay"; 401cb7aa33aSEmmanuel Vadot}; 402cb7aa33aSEmmanuel Vadot 403cb7aa33aSEmmanuel Vadot&pwm_AO_cd { 404cb7aa33aSEmmanuel Vadot pinctrl-0 = <&pwm_ao_d_e_pins>; 405cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 406cb7aa33aSEmmanuel Vadot clocks = <&xtal>; 407fac71e4eSEmmanuel Vadot clock-names = "clkin1"; 408cb7aa33aSEmmanuel Vadot status = "okay"; 409cb7aa33aSEmmanuel Vadot}; 410cb7aa33aSEmmanuel Vadot 411cb7aa33aSEmmanuel Vadot&saradc { 412cb7aa33aSEmmanuel Vadot status = "okay"; 413cb7aa33aSEmmanuel Vadot vref-supply = <&vddao_1v8>; 414cb7aa33aSEmmanuel Vadot}; 415cb7aa33aSEmmanuel Vadot 416cb7aa33aSEmmanuel Vadot/* SDIO */ 417cb7aa33aSEmmanuel Vadot&sd_emmc_a { 418cb7aa33aSEmmanuel Vadot status = "okay"; 419cb7aa33aSEmmanuel Vadot pinctrl-0 = <&sdio_pins>; 420cb7aa33aSEmmanuel Vadot pinctrl-1 = <&sdio_clk_gate_pins>; 421cb7aa33aSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 422cb7aa33aSEmmanuel Vadot #address-cells = <1>; 423cb7aa33aSEmmanuel Vadot #size-cells = <0>; 424cb7aa33aSEmmanuel Vadot 425cb7aa33aSEmmanuel Vadot bus-width = <4>; 426cb7aa33aSEmmanuel Vadot cap-sd-highspeed; 427cb7aa33aSEmmanuel Vadot max-frequency = <100000000>; 428cb7aa33aSEmmanuel Vadot 429cb7aa33aSEmmanuel Vadot non-removable; 430cb7aa33aSEmmanuel Vadot disable-wp; 431cb7aa33aSEmmanuel Vadot 432cb7aa33aSEmmanuel Vadot /* WiFi firmware requires power to be kept while in suspend */ 433cb7aa33aSEmmanuel Vadot keep-power-in-suspend; 434cb7aa33aSEmmanuel Vadot 435cb7aa33aSEmmanuel Vadot mmc-pwrseq = <&sdio_pwrseq>; 436cb7aa33aSEmmanuel Vadot 437cb7aa33aSEmmanuel Vadot vmmc-supply = <&vddao_3v3>; 438cb7aa33aSEmmanuel Vadot vqmmc-supply = <&vddao_1v8>; 439cb7aa33aSEmmanuel Vadot 440cb7aa33aSEmmanuel Vadot brcmf: wifi@1 { 441cb7aa33aSEmmanuel Vadot reg = <1>; 442cb7aa33aSEmmanuel Vadot compatible = "brcm,bcm4329-fmac"; 443cb7aa33aSEmmanuel Vadot }; 444cb7aa33aSEmmanuel Vadot}; 445cb7aa33aSEmmanuel Vadot 446cb7aa33aSEmmanuel Vadot/* SD card */ 447cb7aa33aSEmmanuel Vadot&sd_emmc_b { 448cb7aa33aSEmmanuel Vadot status = "okay"; 449cb7aa33aSEmmanuel Vadot pinctrl-0 = <&sdcard_c_pins>; 450cb7aa33aSEmmanuel Vadot pinctrl-1 = <&sdcard_clk_gate_c_pins>; 451cb7aa33aSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 452cb7aa33aSEmmanuel Vadot 453cb7aa33aSEmmanuel Vadot bus-width = <4>; 454cb7aa33aSEmmanuel Vadot cap-sd-highspeed; 455cb7aa33aSEmmanuel Vadot max-frequency = <50000000>; 456cb7aa33aSEmmanuel Vadot disable-wp; 457cb7aa33aSEmmanuel Vadot 458cb7aa33aSEmmanuel Vadot cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 459cb7aa33aSEmmanuel Vadot vmmc-supply = <&vddao_3v3>; 460cb7aa33aSEmmanuel Vadot vqmmc-supply = <&vddao_3v3>; 461cb7aa33aSEmmanuel Vadot}; 462cb7aa33aSEmmanuel Vadot 463cb7aa33aSEmmanuel Vadot/* eMMC */ 464cb7aa33aSEmmanuel Vadot&sd_emmc_c { 465cb7aa33aSEmmanuel Vadot status = "okay"; 466cb7aa33aSEmmanuel Vadot pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 467cb7aa33aSEmmanuel Vadot pinctrl-1 = <&emmc_clk_gate_pins>; 468cb7aa33aSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 469cb7aa33aSEmmanuel Vadot 470cb7aa33aSEmmanuel Vadot bus-width = <8>; 471cb7aa33aSEmmanuel Vadot cap-mmc-highspeed; 472cb7aa33aSEmmanuel Vadot mmc-ddr-1_8v; 473cb7aa33aSEmmanuel Vadot mmc-hs200-1_8v; 474cb7aa33aSEmmanuel Vadot max-frequency = <200000000>; 475cb7aa33aSEmmanuel Vadot disable-wp; 476cb7aa33aSEmmanuel Vadot 477cb7aa33aSEmmanuel Vadot mmc-pwrseq = <&emmc_pwrseq>; 478cb7aa33aSEmmanuel Vadot vmmc-supply = <&vcc_3v3>; 479cb7aa33aSEmmanuel Vadot vqmmc-supply = <&vcc_1v8>; 480cb7aa33aSEmmanuel Vadot}; 481cb7aa33aSEmmanuel Vadot 482cb7aa33aSEmmanuel Vadot&tdmif_b { 483cb7aa33aSEmmanuel Vadot status = "okay"; 484cb7aa33aSEmmanuel Vadot}; 485cb7aa33aSEmmanuel Vadot 486cb7aa33aSEmmanuel Vadot&tdmout_b { 487cb7aa33aSEmmanuel Vadot status = "okay"; 488cb7aa33aSEmmanuel Vadot}; 489cb7aa33aSEmmanuel Vadot 490cb7aa33aSEmmanuel Vadot&tohdmitx { 491cb7aa33aSEmmanuel Vadot status = "okay"; 492cb7aa33aSEmmanuel Vadot}; 493cb7aa33aSEmmanuel Vadot 494cb7aa33aSEmmanuel Vadot&uart_A { 495cb7aa33aSEmmanuel Vadot status = "okay"; 496cb7aa33aSEmmanuel Vadot pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 497cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 498cb7aa33aSEmmanuel Vadot uart-has-rtscts; 499cb7aa33aSEmmanuel Vadot 500cb7aa33aSEmmanuel Vadot bluetooth { 501cb7aa33aSEmmanuel Vadot compatible = "brcm,bcm43438-bt"; 502cb7aa33aSEmmanuel Vadot shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 503cb7aa33aSEmmanuel Vadot max-speed = <2000000>; 504cb7aa33aSEmmanuel Vadot clocks = <&wifi32k>; 505cb7aa33aSEmmanuel Vadot clock-names = "lpo"; 506cb7aa33aSEmmanuel Vadot }; 507cb7aa33aSEmmanuel Vadot}; 508cb7aa33aSEmmanuel Vadot 509cb7aa33aSEmmanuel Vadot&uart_AO { 510cb7aa33aSEmmanuel Vadot status = "okay"; 511cb7aa33aSEmmanuel Vadot pinctrl-0 = <&uart_ao_a_pins>; 512cb7aa33aSEmmanuel Vadot pinctrl-names = "default"; 513cb7aa33aSEmmanuel Vadot}; 514cb7aa33aSEmmanuel Vadot 515cb7aa33aSEmmanuel Vadot&usb { 516cb7aa33aSEmmanuel Vadot status = "okay"; 517cb7aa33aSEmmanuel Vadot}; 518