1d3aa4ce8SKevin Hilman// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2d3aa4ce8SKevin Hilman/* 3d3aa4ce8SKevin Hilman * Copyright (c) 2018 BayLibre SAS. All rights reserved. 4d3aa4ce8SKevin Hilman */ 5d3aa4ce8SKevin Hilman 6d3aa4ce8SKevin Hilman/dts-v1/; 7d3aa4ce8SKevin Hilman 8d3aa4ce8SKevin Hilman#include "meson-g12a.dtsi" 9c9206b42SGuillaume La Roque#include <dt-bindings/gpio/gpio.h> 10c9206b42SGuillaume La Roque#include <dt-bindings/gpio/meson-g12a-gpio.h> 11cd0727aaSNeil Armstrong#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 12d3aa4ce8SKevin Hilman 13d3aa4ce8SKevin Hilman/ { 14b167b473SNeil Armstrong compatible = "amediatech,x96-max", "amlogic,g12a"; 15d3aa4ce8SKevin Hilman model = "Shenzhen Amediatech Technology Co., Ltd X96 Max"; 16d3aa4ce8SKevin Hilman 17d3aa4ce8SKevin Hilman aliases { 18d3aa4ce8SKevin Hilman serial0 = &uart_AO; 19e8e7037cSNeil Armstrong ethernet0 = ðmac; 20d3aa4ce8SKevin Hilman }; 21cd0727aaSNeil Armstrong 22cd0727aaSNeil Armstrong spdif_dit: audio-codec-1 { 23cd0727aaSNeil Armstrong #sound-dai-cells = <0>; 24cd0727aaSNeil Armstrong compatible = "linux,spdif-dit"; 25cd0727aaSNeil Armstrong status = "okay"; 26cd0727aaSNeil Armstrong sound-name-prefix = "DIT"; 27cd0727aaSNeil Armstrong }; 28cd0727aaSNeil Armstrong 29d3aa4ce8SKevin Hilman chosen { 30d3aa4ce8SKevin Hilman stdout-path = "serial0:115200n8"; 31d3aa4ce8SKevin Hilman }; 32d3aa4ce8SKevin Hilman memory@0 { 33d3aa4ce8SKevin Hilman device_type = "memory"; 34d3aa4ce8SKevin Hilman reg = <0x0 0x0 0x0 0x40000000>; 35d3aa4ce8SKevin Hilman }; 36c9206b42SGuillaume La Roque 37b0be9616SNeil Armstrong cvbs-connector { 38b0be9616SNeil Armstrong compatible = "composite-video-connector"; 39b0be9616SNeil Armstrong 40b0be9616SNeil Armstrong port { 41b0be9616SNeil Armstrong cvbs_connector_in: endpoint { 42b0be9616SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 43b0be9616SNeil Armstrong }; 44b0be9616SNeil Armstrong }; 45b0be9616SNeil Armstrong }; 46b0be9616SNeil Armstrong 47b0be9616SNeil Armstrong hdmi-connector { 48b0be9616SNeil Armstrong compatible = "hdmi-connector"; 49b0be9616SNeil Armstrong type = "a"; 50b0be9616SNeil Armstrong 51b0be9616SNeil Armstrong port { 52b0be9616SNeil Armstrong hdmi_connector_in: endpoint { 53b0be9616SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 54b0be9616SNeil Armstrong }; 55b0be9616SNeil Armstrong }; 56b0be9616SNeil Armstrong }; 57b0be9616SNeil Armstrong 5845380009SGuillaume La Roque emmc_pwrseq: emmc-pwrseq { 5945380009SGuillaume La Roque compatible = "mmc-pwrseq-emmc"; 6045380009SGuillaume La Roque reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 6145380009SGuillaume La Roque }; 6245380009SGuillaume La Roque 63b497ad38SNeil Armstrong sdio_pwrseq: sdio-pwrseq { 64b497ad38SNeil Armstrong compatible = "mmc-pwrseq-simple"; 65b497ad38SNeil Armstrong reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 66b497ad38SNeil Armstrong clocks = <&wifi32k>; 67b497ad38SNeil Armstrong clock-names = "ext_clock"; 68b497ad38SNeil Armstrong }; 69b497ad38SNeil Armstrong 70c9206b42SGuillaume La Roque flash_1v8: regulator-flash_1v8 { 71c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 72c9206b42SGuillaume La Roque regulator-name = "FLASH_1V8"; 73c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 74c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 75c9206b42SGuillaume La Roque vin-supply = <&vcc_3v3>; 76c9206b42SGuillaume La Roque regulator-always-on; 77c9206b42SGuillaume La Roque }; 78c9206b42SGuillaume La Roque 79c9206b42SGuillaume La Roque dc_in: regulator-dc_in { 80c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 81c9206b42SGuillaume La Roque regulator-name = "DC_IN"; 82c9206b42SGuillaume La Roque regulator-min-microvolt = <5000000>; 83c9206b42SGuillaume La Roque regulator-max-microvolt = <5000000>; 84c9206b42SGuillaume La Roque regulator-always-on; 85c9206b42SGuillaume La Roque }; 86c9206b42SGuillaume La Roque 87c9206b42SGuillaume La Roque vcc_1v8: regulator-vcc_1v8 { 88c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 89c9206b42SGuillaume La Roque regulator-name = "VCC_1V8"; 90c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 91c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 92c9206b42SGuillaume La Roque vin-supply = <&vcc_3v3>; 93c9206b42SGuillaume La Roque regulator-always-on; 94c9206b42SGuillaume La Roque }; 95c9206b42SGuillaume La Roque 96c9206b42SGuillaume La Roque vcc_3v3: regulator-vcc_3v3 { 97c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 98c9206b42SGuillaume La Roque regulator-name = "VCC_3V3"; 99c9206b42SGuillaume La Roque regulator-min-microvolt = <3300000>; 100c9206b42SGuillaume La Roque regulator-max-microvolt = <3300000>; 101c9206b42SGuillaume La Roque vin-supply = <&vddao_3v3>; 102c9206b42SGuillaume La Roque regulator-always-on; 103c9206b42SGuillaume La Roque /* FIXME: actually controlled by VDDCPU_B_EN */ 104c9206b42SGuillaume La Roque }; 105c9206b42SGuillaume La Roque 106c9206b42SGuillaume La Roque vcc_5v: regulator-vcc_5v { 107c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 108c9206b42SGuillaume La Roque regulator-name = "VCC_5V"; 109c9206b42SGuillaume La Roque regulator-min-microvolt = <5000000>; 110c9206b42SGuillaume La Roque regulator-max-microvolt = <5000000>; 111c9206b42SGuillaume La Roque vin-supply = <&dc_in>; 112c9206b42SGuillaume La Roque 113c9206b42SGuillaume La Roque gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 114c9206b42SGuillaume La Roque }; 115c9206b42SGuillaume La Roque 116c9206b42SGuillaume La Roque vddao_1v8: regulator-vddao_1v8 { 117c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 118c9206b42SGuillaume La Roque regulator-name = "VDDAO_1V8"; 119c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 120c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 121c9206b42SGuillaume La Roque vin-supply = <&vddao_3v3>; 122c9206b42SGuillaume La Roque regulator-always-on; 123c9206b42SGuillaume La Roque }; 124c9206b42SGuillaume La Roque 125c9206b42SGuillaume La Roque vddao_3v3: regulator-vddao_3v3 { 126c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 127c9206b42SGuillaume La Roque regulator-name = "VDDAO_3V3"; 128c9206b42SGuillaume La Roque regulator-min-microvolt = <3300000>; 129c9206b42SGuillaume La Roque regulator-max-microvolt = <3300000>; 130c9206b42SGuillaume La Roque vin-supply = <&dc_in>; 131c9206b42SGuillaume La Roque regulator-always-on; 132c9206b42SGuillaume La Roque }; 133b497ad38SNeil Armstrong 134e9bc0765SNeil Armstrong vddcpu: regulator-vddcpu { 135e9bc0765SNeil Armstrong compatible = "pwm-regulator"; 136e9bc0765SNeil Armstrong 137e9bc0765SNeil Armstrong regulator-name = "VDDCPU"; 138e9bc0765SNeil Armstrong regulator-min-microvolt = <721000>; 139e9bc0765SNeil Armstrong regulator-max-microvolt = <1022000>; 140e9bc0765SNeil Armstrong 14108567511SAnand Moon pwm-supply = <&dc_in>; 142e9bc0765SNeil Armstrong 143e9bc0765SNeil Armstrong pwms = <&pwm_AO_cd 1 1250 0>; 144e9bc0765SNeil Armstrong pwm-dutycycle-range = <100 0>; 145e9bc0765SNeil Armstrong 146e9bc0765SNeil Armstrong regulator-boot-on; 147e9bc0765SNeil Armstrong regulator-always-on; 148e9bc0765SNeil Armstrong }; 149e9bc0765SNeil Armstrong 150cd0727aaSNeil Armstrong sound { 151cd0727aaSNeil Armstrong compatible = "amlogic,axg-sound-card"; 152933b80edSChristian Hewitt model = "X96-MAX"; 153cd0727aaSNeil Armstrong audio-aux-devs = <&tdmout_b>; 154cd0727aaSNeil Armstrong audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 155cd0727aaSNeil Armstrong "TDMOUT_B IN 1", "FRDDR_B OUT 1", 156cd0727aaSNeil Armstrong "TDMOUT_B IN 2", "FRDDR_C OUT 1", 157cd0727aaSNeil Armstrong "TDM_B Playback", "TDMOUT_B OUT", 158cd0727aaSNeil Armstrong "SPDIFOUT IN 0", "FRDDR_A OUT 3", 159cd0727aaSNeil Armstrong "SPDIFOUT IN 1", "FRDDR_B OUT 3", 160cd0727aaSNeil Armstrong "SPDIFOUT IN 2", "FRDDR_C OUT 3"; 161cd0727aaSNeil Armstrong 162cd0727aaSNeil Armstrong assigned-clocks = <&clkc CLKID_MPLL2>, 163cd0727aaSNeil Armstrong <&clkc CLKID_MPLL0>, 164cd0727aaSNeil Armstrong <&clkc CLKID_MPLL1>; 165cd0727aaSNeil Armstrong assigned-clock-parents = <0>, <0>, <0>; 166cd0727aaSNeil Armstrong assigned-clock-rates = <294912000>, 167cd0727aaSNeil Armstrong <270950400>, 168cd0727aaSNeil Armstrong <393216000>; 169cd0727aaSNeil Armstrong 170cd0727aaSNeil Armstrong dai-link-0 { 171cd0727aaSNeil Armstrong sound-dai = <&frddr_a>; 172cd0727aaSNeil Armstrong }; 173cd0727aaSNeil Armstrong 174cd0727aaSNeil Armstrong dai-link-1 { 175cd0727aaSNeil Armstrong sound-dai = <&frddr_b>; 176cd0727aaSNeil Armstrong }; 177cd0727aaSNeil Armstrong 178cd0727aaSNeil Armstrong dai-link-2 { 179cd0727aaSNeil Armstrong sound-dai = <&frddr_c>; 180cd0727aaSNeil Armstrong }; 181cd0727aaSNeil Armstrong 182cd0727aaSNeil Armstrong /* 8ch hdmi interface */ 183cd0727aaSNeil Armstrong dai-link-3 { 184cd0727aaSNeil Armstrong sound-dai = <&tdmif_b>; 185cd0727aaSNeil Armstrong dai-format = "i2s"; 186cd0727aaSNeil Armstrong dai-tdm-slot-tx-mask-0 = <1 1>; 187cd0727aaSNeil Armstrong dai-tdm-slot-tx-mask-1 = <1 1>; 188cd0727aaSNeil Armstrong dai-tdm-slot-tx-mask-2 = <1 1>; 189cd0727aaSNeil Armstrong dai-tdm-slot-tx-mask-3 = <1 1>; 190cd0727aaSNeil Armstrong mclk-fs = <256>; 191cd0727aaSNeil Armstrong 192cd0727aaSNeil Armstrong codec { 193cd0727aaSNeil Armstrong sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 194cd0727aaSNeil Armstrong }; 195cd0727aaSNeil Armstrong }; 196cd0727aaSNeil Armstrong 197cd0727aaSNeil Armstrong /* spdif hdmi or toslink interface */ 198cd0727aaSNeil Armstrong dai-link-4 { 199cd0727aaSNeil Armstrong sound-dai = <&spdifout>; 200cd0727aaSNeil Armstrong 201cd0727aaSNeil Armstrong codec-0 { 202cd0727aaSNeil Armstrong sound-dai = <&spdif_dit>; 203cd0727aaSNeil Armstrong }; 204cd0727aaSNeil Armstrong 205cd0727aaSNeil Armstrong codec-1 { 206cd0727aaSNeil Armstrong sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>; 207cd0727aaSNeil Armstrong }; 208cd0727aaSNeil Armstrong }; 209cd0727aaSNeil Armstrong 210cd0727aaSNeil Armstrong /* spdif hdmi interface */ 211cd0727aaSNeil Armstrong dai-link-5 { 212cd0727aaSNeil Armstrong sound-dai = <&spdifout_b>; 213cd0727aaSNeil Armstrong 214cd0727aaSNeil Armstrong codec { 215cd0727aaSNeil Armstrong sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>; 216cd0727aaSNeil Armstrong }; 217cd0727aaSNeil Armstrong }; 218cd0727aaSNeil Armstrong 219cd0727aaSNeil Armstrong /* hdmi glue */ 220cd0727aaSNeil Armstrong dai-link-6 { 221cd0727aaSNeil Armstrong sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 222cd0727aaSNeil Armstrong 223cd0727aaSNeil Armstrong codec { 224cd0727aaSNeil Armstrong sound-dai = <&hdmi_tx>; 225cd0727aaSNeil Armstrong }; 226cd0727aaSNeil Armstrong }; 227cd0727aaSNeil Armstrong }; 228cd0727aaSNeil Armstrong 229b497ad38SNeil Armstrong wifi32k: wifi32k { 230b497ad38SNeil Armstrong compatible = "pwm-clock"; 231b497ad38SNeil Armstrong #clock-cells = <0>; 232b497ad38SNeil Armstrong clock-frequency = <32768>; 233b497ad38SNeil Armstrong pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 234b497ad38SNeil Armstrong }; 235d3aa4ce8SKevin Hilman}; 236d3aa4ce8SKevin Hilman 237cd0727aaSNeil Armstrong&arb { 238cd0727aaSNeil Armstrong status = "okay"; 239cd0727aaSNeil Armstrong}; 240cd0727aaSNeil Armstrong 241b0be9616SNeil Armstrong&cec_AO { 242b0be9616SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 243b0be9616SNeil Armstrong pinctrl-names = "default"; 244b0be9616SNeil Armstrong status = "disabled"; 245b0be9616SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 246b0be9616SNeil Armstrong}; 247b0be9616SNeil Armstrong 248b0be9616SNeil Armstrong&cecb_AO { 249b0be9616SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 250b0be9616SNeil Armstrong pinctrl-names = "default"; 251b0be9616SNeil Armstrong status = "okay"; 252b0be9616SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 253b0be9616SNeil Armstrong}; 254b0be9616SNeil Armstrong 255cd0727aaSNeil Armstrong&clkc_audio { 256cd0727aaSNeil Armstrong status = "okay"; 257cd0727aaSNeil Armstrong}; 258cd0727aaSNeil Armstrong 259e9bc0765SNeil Armstrong&cpu0 { 260e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 261e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 262e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 263e9bc0765SNeil Armstrong clock-latency = <50000>; 264e9bc0765SNeil Armstrong}; 265e9bc0765SNeil Armstrong 266e9bc0765SNeil Armstrong&cpu1 { 267e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 268e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 269e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 270e9bc0765SNeil Armstrong clock-latency = <50000>; 271e9bc0765SNeil Armstrong}; 272e9bc0765SNeil Armstrong 273e9bc0765SNeil Armstrong&cpu2 { 274e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 275e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 276e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 277e9bc0765SNeil Armstrong clock-latency = <50000>; 278e9bc0765SNeil Armstrong}; 279e9bc0765SNeil Armstrong 280e9bc0765SNeil Armstrong&cpu3 { 281e9bc0765SNeil Armstrong cpu-supply = <&vddcpu>; 282e9bc0765SNeil Armstrong operating-points-v2 = <&cpu_opp_table>; 283e9bc0765SNeil Armstrong clocks = <&clkc CLKID_CPU_CLK>; 284e9bc0765SNeil Armstrong clock-latency = <50000>; 285e9bc0765SNeil Armstrong}; 286e9bc0765SNeil Armstrong 287b0be9616SNeil Armstrong&cvbs_vdac_port { 288b0be9616SNeil Armstrong cvbs_vdac_out: endpoint { 289b0be9616SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 290b0be9616SNeil Armstrong }; 291b0be9616SNeil Armstrong}; 292b0be9616SNeil Armstrong 293cd0727aaSNeil Armstrong&frddr_a { 294cd0727aaSNeil Armstrong status = "okay"; 295cd0727aaSNeil Armstrong}; 296cd0727aaSNeil Armstrong 297cd0727aaSNeil Armstrong&frddr_b { 298cd0727aaSNeil Armstrong status = "okay"; 299cd0727aaSNeil Armstrong}; 300cd0727aaSNeil Armstrong 301cd0727aaSNeil Armstrong&frddr_c { 302cd0727aaSNeil Armstrong status = "okay"; 303cd0727aaSNeil Armstrong}; 304cd0727aaSNeil Armstrong 305b0be9616SNeil Armstrong&hdmi_tx { 306b0be9616SNeil Armstrong status = "okay"; 307b0be9616SNeil Armstrong pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 308b0be9616SNeil Armstrong pinctrl-names = "default"; 309b0be9616SNeil Armstrong hdmi-supply = <&vcc_5v>; 310b0be9616SNeil Armstrong}; 311b0be9616SNeil Armstrong 312b0be9616SNeil Armstrong&hdmi_tx_tmds_port { 313b0be9616SNeil Armstrong hdmi_tx_tmds_out: endpoint { 314b0be9616SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 315b0be9616SNeil Armstrong }; 316b0be9616SNeil Armstrong}; 317b0be9616SNeil Armstrong 318fff6e9d3SNeil Armstrong&ir { 319fff6e9d3SNeil Armstrong status = "okay"; 320fff6e9d3SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 321fff6e9d3SNeil Armstrong pinctrl-names = "default"; 3223e14618bSChristian Hewitt linux,rc-map-name = "rc-x96max"; 323fff6e9d3SNeil Armstrong}; 324fff6e9d3SNeil Armstrong 325e9bc0765SNeil Armstrong&pwm_AO_cd { 326e9bc0765SNeil Armstrong pinctrl-0 = <&pwm_ao_d_e_pins>; 327e9bc0765SNeil Armstrong pinctrl-names = "default"; 328e9bc0765SNeil Armstrong clocks = <&xtal>; 329e9bc0765SNeil Armstrong clock-names = "clkin1"; 330e9bc0765SNeil Armstrong status = "okay"; 331e9bc0765SNeil Armstrong}; 332e9bc0765SNeil Armstrong 333e8e7037cSNeil Armstrong&ext_mdio { 334e8e7037cSNeil Armstrong external_phy: ethernet-phy@0 { 335e8e7037cSNeil Armstrong /* Realtek RTL8211F (0x001cc916) */ 336e8e7037cSNeil Armstrong reg = <0>; 337e8e7037cSNeil Armstrong max-speed = <1000>; 338e8e7037cSNeil Armstrong eee-broken-1000t; 339ed5e8f68SMartin Blumenstingl 340ed5e8f68SMartin Blumenstingl reset-assert-us = <10000>; 3413d07c3b3SStefan Agner reset-deassert-us = <80000>; 342ed5e8f68SMartin Blumenstingl reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 34350b617a6SMartin Blumenstingl 34450b617a6SMartin Blumenstingl interrupt-parent = <&gpio_intc>; 34550b617a6SMartin Blumenstingl /* MAC_INTR on GPIOZ_14 */ 346*6387e0aaSHuqiang Qin interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; 347e8e7037cSNeil Armstrong }; 348e8e7037cSNeil Armstrong}; 349e8e7037cSNeil Armstrong 350e8e7037cSNeil Armstrongðmac { 351e8e7037cSNeil Armstrong pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 352e8e7037cSNeil Armstrong pinctrl-names = "default"; 353e8e7037cSNeil Armstrong status = "okay"; 354e8e7037cSNeil Armstrong phy-mode = "rgmii"; 355e8e7037cSNeil Armstrong phy-handle = <&external_phy>; 356e8e7037cSNeil Armstrong amlogic,tx-delay-ns = <2>; 357e8e7037cSNeil Armstrong}; 358e8e7037cSNeil Armstrong 359b497ad38SNeil Armstrong&pwm_ef { 360b497ad38SNeil Armstrong status = "okay"; 361b497ad38SNeil Armstrong pinctrl-0 = <&pwm_e_pins>; 362b497ad38SNeil Armstrong pinctrl-names = "default"; 363b497ad38SNeil Armstrong clocks = <&xtal>; 364b497ad38SNeil Armstrong clock-names = "clkin0"; 365b497ad38SNeil Armstrong}; 366b497ad38SNeil Armstrong 367c5c9c7cfSNeil Armstrong&uart_A { 368c5c9c7cfSNeil Armstrong status = "okay"; 369c5c9c7cfSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 370c5c9c7cfSNeil Armstrong pinctrl-names = "default"; 371c5c9c7cfSNeil Armstrong uart-has-rtscts; 372c5c9c7cfSNeil Armstrong 373c5c9c7cfSNeil Armstrong bluetooth { 374c5c9c7cfSNeil Armstrong compatible = "brcm,bcm43438-bt"; 375c5c9c7cfSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 376e4998f48SNeil Armstrong max-speed = <2000000>; 377524595ecSNeil Armstrong clocks = <&wifi32k>; 378524595ecSNeil Armstrong clock-names = "lpo"; 379c5c9c7cfSNeil Armstrong }; 380c5c9c7cfSNeil Armstrong}; 381c5c9c7cfSNeil Armstrong 382d3aa4ce8SKevin Hilman&uart_AO { 383d3aa4ce8SKevin Hilman status = "okay"; 3840b7aed33SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 3850b7aed33SNeil Armstrong pinctrl-names = "default"; 386d3aa4ce8SKevin Hilman}; 38745b72126SNeil Armstrong 38845b72126SNeil Armstrong&usb { 38945b72126SNeil Armstrong status = "okay"; 39045b72126SNeil Armstrong dr_mode = "host"; 39145b72126SNeil Armstrong}; 39245380009SGuillaume La Roque 393b497ad38SNeil Armstrong/* SDIO */ 394b497ad38SNeil Armstrong&sd_emmc_a { 395b497ad38SNeil Armstrong status = "okay"; 396b497ad38SNeil Armstrong pinctrl-0 = <&sdio_pins>; 397b497ad38SNeil Armstrong pinctrl-1 = <&sdio_clk_gate_pins>; 398b497ad38SNeil Armstrong pinctrl-names = "default", "clk-gate"; 399b497ad38SNeil Armstrong #address-cells = <1>; 400b497ad38SNeil Armstrong #size-cells = <0>; 401b497ad38SNeil Armstrong 402b497ad38SNeil Armstrong bus-width = <4>; 403b497ad38SNeil Armstrong cap-sd-highspeed; 404b497ad38SNeil Armstrong sd-uhs-sdr50; 405b497ad38SNeil Armstrong max-frequency = <100000000>; 406b497ad38SNeil Armstrong 407b497ad38SNeil Armstrong non-removable; 408b497ad38SNeil Armstrong disable-wp; 409b497ad38SNeil Armstrong 4109a9ffc69SNeil Armstrong /* WiFi firmware requires power to be kept while in suspend */ 4119a9ffc69SNeil Armstrong keep-power-in-suspend; 4129a9ffc69SNeil Armstrong 413b497ad38SNeil Armstrong mmc-pwrseq = <&sdio_pwrseq>; 414b497ad38SNeil Armstrong 415b497ad38SNeil Armstrong vmmc-supply = <&vddao_3v3>; 416b497ad38SNeil Armstrong vqmmc-supply = <&vddao_1v8>; 417b497ad38SNeil Armstrong 418b497ad38SNeil Armstrong brcmf: wifi@1 { 419b497ad38SNeil Armstrong reg = <1>; 420b497ad38SNeil Armstrong compatible = "brcm,bcm4329-fmac"; 421b497ad38SNeil Armstrong }; 422b497ad38SNeil Armstrong}; 423b497ad38SNeil Armstrong 42445380009SGuillaume La Roque/* SD card */ 42545380009SGuillaume La Roque&sd_emmc_b { 42645380009SGuillaume La Roque status = "okay"; 42745380009SGuillaume La Roque pinctrl-0 = <&sdcard_c_pins>; 42845380009SGuillaume La Roque pinctrl-1 = <&sdcard_clk_gate_c_pins>; 42945380009SGuillaume La Roque pinctrl-names = "default", "clk-gate"; 43045380009SGuillaume La Roque 43145380009SGuillaume La Roque bus-width = <4>; 43245380009SGuillaume La Roque cap-sd-highspeed; 43345380009SGuillaume La Roque max-frequency = <100000000>; 43445380009SGuillaume La Roque disable-wp; 43545380009SGuillaume La Roque 43645380009SGuillaume La Roque cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 43745380009SGuillaume La Roque vmmc-supply = <&vddao_3v3>; 43845380009SGuillaume La Roque vqmmc-supply = <&vddao_3v3>; 43945380009SGuillaume La Roque}; 44045380009SGuillaume La Roque 44145380009SGuillaume La Roque/* eMMC */ 44245380009SGuillaume La Roque&sd_emmc_c { 44345380009SGuillaume La Roque status = "okay"; 4444d2cb376SNeil Armstrong pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 44545380009SGuillaume La Roque pinctrl-1 = <&emmc_clk_gate_pins>; 44645380009SGuillaume La Roque pinctrl-names = "default", "clk-gate"; 44745380009SGuillaume La Roque 44845380009SGuillaume La Roque bus-width = <8>; 44945380009SGuillaume La Roque cap-mmc-highspeed; 45045380009SGuillaume La Roque max-frequency = <100000000>; 45145380009SGuillaume La Roque non-removable; 45245380009SGuillaume La Roque disable-wp; 45345380009SGuillaume La Roque 45445380009SGuillaume La Roque mmc-pwrseq = <&emmc_pwrseq>; 45545380009SGuillaume La Roque vmmc-supply = <&vcc_3v3>; 45645380009SGuillaume La Roque vqmmc-supply = <&flash_1v8>; 45745380009SGuillaume La Roque}; 458cd0727aaSNeil Armstrong 459cd0727aaSNeil Armstrong&spdifout { 460cd0727aaSNeil Armstrong pinctrl-0 = <&spdif_out_h_pins>; 461cd0727aaSNeil Armstrong pinctrl-names = "default"; 462cd0727aaSNeil Armstrong status = "okay"; 463cd0727aaSNeil Armstrong}; 464cd0727aaSNeil Armstrong 465cd0727aaSNeil Armstrong&spdifout_b { 466cd0727aaSNeil Armstrong status = "okay"; 467cd0727aaSNeil Armstrong}; 468cd0727aaSNeil Armstrong 469cd0727aaSNeil Armstrong&tdmif_b { 470cd0727aaSNeil Armstrong status = "okay"; 471cd0727aaSNeil Armstrong}; 472cd0727aaSNeil Armstrong 473cd0727aaSNeil Armstrong&tdmout_b { 474cd0727aaSNeil Armstrong status = "okay"; 475cd0727aaSNeil Armstrong}; 476cd0727aaSNeil Armstrong 477cd0727aaSNeil Armstrong&tohdmitx { 478cd0727aaSNeil Armstrong status = "okay"; 479cd0727aaSNeil Armstrong}; 480