1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 BayLibre, SAS 4c66ec88fSEmmanuel Vadot * Author: Neil Armstrong <narmstrong@baylibre.com> 5c66ec88fSEmmanuel Vadot * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 6c66ec88fSEmmanuel Vadot */ 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h> 95def4c47SEmmanuel Vadot#include <dt-bindings/leds/common.h> 10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-g12a-gpio.h> 116be33864SEmmanuel Vadot#include <dt-bindings/sound/meson-g12a-tohdmitx.h> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot/ { 14c66ec88fSEmmanuel Vadot aliases { 15c66ec88fSEmmanuel Vadot serial0 = &uart_AO; 16c66ec88fSEmmanuel Vadot ethernet0 = ðmac; 175def4c47SEmmanuel Vadot rtc0 = &rtc; 185def4c47SEmmanuel Vadot rtc1 = &vrtc; 19c66ec88fSEmmanuel Vadot }; 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot chosen { 22c66ec88fSEmmanuel Vadot stdout-path = "serial0:115200n8"; 23c66ec88fSEmmanuel Vadot }; 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot memory@0 { 26c66ec88fSEmmanuel Vadot device_type = "memory"; 27c66ec88fSEmmanuel Vadot reg = <0x0 0x0 0x0 0x80000000>; 28c66ec88fSEmmanuel Vadot }; 29c66ec88fSEmmanuel Vadot 30c66ec88fSEmmanuel Vadot adc-keys { 31c66ec88fSEmmanuel Vadot compatible = "adc-keys"; 32c66ec88fSEmmanuel Vadot io-channels = <&saradc 2>; 33c66ec88fSEmmanuel Vadot io-channel-names = "buttons"; 34c66ec88fSEmmanuel Vadot keyup-threshold-microvolt = <1710000>; 35c66ec88fSEmmanuel Vadot 36c66ec88fSEmmanuel Vadot button-function { 37c66ec88fSEmmanuel Vadot label = "Function"; 38c66ec88fSEmmanuel Vadot linux,code = <KEY_FN>; 39c66ec88fSEmmanuel Vadot press-threshold-microvolt = <10000>; 40c66ec88fSEmmanuel Vadot }; 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot 43c66ec88fSEmmanuel Vadot leds { 44c66ec88fSEmmanuel Vadot compatible = "gpio-leds"; 45c66ec88fSEmmanuel Vadot 462eb4d8dcSEmmanuel Vadot led-white { 475def4c47SEmmanuel Vadot color = <LED_COLOR_ID_WHITE>; 485def4c47SEmmanuel Vadot function = LED_FUNCTION_STATUS; 496be33864SEmmanuel Vadot gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; 50c66ec88fSEmmanuel Vadot linux,default-trigger = "heartbeat"; 51c66ec88fSEmmanuel Vadot }; 52c66ec88fSEmmanuel Vadot 532eb4d8dcSEmmanuel Vadot led-red { 545def4c47SEmmanuel Vadot color = <LED_COLOR_ID_RED>; 555def4c47SEmmanuel Vadot function = LED_FUNCTION_STATUS; 566be33864SEmmanuel Vadot gpios = <&gpio_expander 5 GPIO_ACTIVE_HIGH>; 57c66ec88fSEmmanuel Vadot }; 58c66ec88fSEmmanuel Vadot }; 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel Vadot emmc_pwrseq: emmc-pwrseq { 61c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-emmc"; 62c66ec88fSEmmanuel Vadot reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 63c66ec88fSEmmanuel Vadot }; 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot gpio-keys-polled { 66c66ec88fSEmmanuel Vadot compatible = "gpio-keys-polled"; 67c66ec88fSEmmanuel Vadot poll-interval = <100>; 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel Vadot power-button { 70c66ec88fSEmmanuel Vadot label = "power"; 71c66ec88fSEmmanuel Vadot linux,code = <KEY_POWER>; 72c66ec88fSEmmanuel Vadot gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_LOW>; 73c66ec88fSEmmanuel Vadot }; 74c66ec88fSEmmanuel Vadot }; 75c66ec88fSEmmanuel Vadot 76c66ec88fSEmmanuel Vadot sdio_pwrseq: sdio-pwrseq { 77c66ec88fSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 78c66ec88fSEmmanuel Vadot reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 79c66ec88fSEmmanuel Vadot clocks = <&wifi32k>; 80c66ec88fSEmmanuel Vadot clock-names = "ext_clock"; 81c66ec88fSEmmanuel Vadot }; 82c66ec88fSEmmanuel Vadot 8301950c46SEmmanuel Vadot dc_in: regulator-dc-in { 84c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 85c66ec88fSEmmanuel Vadot regulator-name = "DC_IN"; 86c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 87c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 88c66ec88fSEmmanuel Vadot regulator-always-on; 89c66ec88fSEmmanuel Vadot }; 90c66ec88fSEmmanuel Vadot 9101950c46SEmmanuel Vadot vcc_5v: regulator-vcc-5v { 92c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 93c66ec88fSEmmanuel Vadot regulator-name = "VCC_5V"; 94c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 95c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 96c66ec88fSEmmanuel Vadot vin-supply = <&dc_in>; 97c66ec88fSEmmanuel Vadot 98c66ec88fSEmmanuel Vadot gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 99c66ec88fSEmmanuel Vadot enable-active-high; 100c66ec88fSEmmanuel Vadot }; 101c66ec88fSEmmanuel Vadot 10201950c46SEmmanuel Vadot vcc_1v8: regulator-vcc-1v8 { 103c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 104c66ec88fSEmmanuel Vadot regulator-name = "VCC_1V8"; 105c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 106c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 107c66ec88fSEmmanuel Vadot vin-supply = <&vcc_3v3>; 108c66ec88fSEmmanuel Vadot regulator-always-on; 109c66ec88fSEmmanuel Vadot }; 110c66ec88fSEmmanuel Vadot 11101950c46SEmmanuel Vadot vcc_3v3: regulator-vcc-3v3 { 112c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 113c66ec88fSEmmanuel Vadot regulator-name = "VCC_3V3"; 114c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 115c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 116c66ec88fSEmmanuel Vadot vin-supply = <&vsys_3v3>; 117c66ec88fSEmmanuel Vadot regulator-always-on; 118c66ec88fSEmmanuel Vadot /* FIXME: actually controlled by VDDCPU_B_EN */ 119c66ec88fSEmmanuel Vadot }; 120c66ec88fSEmmanuel Vadot 12101950c46SEmmanuel Vadot vddao_1v8: regulator-vddao-1v8 { 122c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 123c66ec88fSEmmanuel Vadot regulator-name = "VDDIO_AO1V8"; 124c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 125c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 126c66ec88fSEmmanuel Vadot vin-supply = <&vsys_3v3>; 127c66ec88fSEmmanuel Vadot regulator-always-on; 128c66ec88fSEmmanuel Vadot }; 129c66ec88fSEmmanuel Vadot 13001950c46SEmmanuel Vadot emmc_1v8: regulator-emmc-1v8 { 131c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 132c66ec88fSEmmanuel Vadot regulator-name = "EMMC_AO1V8"; 133c66ec88fSEmmanuel Vadot regulator-min-microvolt = <1800000>; 134c66ec88fSEmmanuel Vadot regulator-max-microvolt = <1800000>; 135c66ec88fSEmmanuel Vadot vin-supply = <&vcc_3v3>; 136c66ec88fSEmmanuel Vadot regulator-always-on; 137c66ec88fSEmmanuel Vadot }; 138c66ec88fSEmmanuel Vadot 13901950c46SEmmanuel Vadot vsys_3v3: regulator-vsys-3v3 { 140c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 141c66ec88fSEmmanuel Vadot regulator-name = "VSYS_3V3"; 142c66ec88fSEmmanuel Vadot regulator-min-microvolt = <3300000>; 143c66ec88fSEmmanuel Vadot regulator-max-microvolt = <3300000>; 144c66ec88fSEmmanuel Vadot vin-supply = <&dc_in>; 145c66ec88fSEmmanuel Vadot regulator-always-on; 146c66ec88fSEmmanuel Vadot }; 147c66ec88fSEmmanuel Vadot 14801950c46SEmmanuel Vadot usb_pwr: regulator-usb-pwr { 149c66ec88fSEmmanuel Vadot compatible = "regulator-fixed"; 150c66ec88fSEmmanuel Vadot regulator-name = "USB_PWR"; 151c66ec88fSEmmanuel Vadot regulator-min-microvolt = <5000000>; 152c66ec88fSEmmanuel Vadot regulator-max-microvolt = <5000000>; 153c66ec88fSEmmanuel Vadot vin-supply = <&vcc_5v>; 154c66ec88fSEmmanuel Vadot 155c66ec88fSEmmanuel Vadot gpio = <&gpio GPIOA_6 GPIO_ACTIVE_HIGH>; 156c66ec88fSEmmanuel Vadot enable-active-high; 157c66ec88fSEmmanuel Vadot }; 158c66ec88fSEmmanuel Vadot 159c66ec88fSEmmanuel Vadot hdmi-connector { 160c66ec88fSEmmanuel Vadot compatible = "hdmi-connector"; 161c66ec88fSEmmanuel Vadot type = "a"; 162c66ec88fSEmmanuel Vadot 163c66ec88fSEmmanuel Vadot port { 164c66ec88fSEmmanuel Vadot hdmi_connector_in: endpoint { 165c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_tx_tmds_out>; 166c66ec88fSEmmanuel Vadot }; 167c66ec88fSEmmanuel Vadot }; 168c66ec88fSEmmanuel Vadot }; 169c66ec88fSEmmanuel Vadot 1706be33864SEmmanuel Vadot 1716be33864SEmmanuel Vadot sound { 1726be33864SEmmanuel Vadot compatible = "amlogic,axg-sound-card"; 1735def4c47SEmmanuel Vadot model = "KHADAS-VIM3"; 1745956d97fSEmmanuel Vadot audio-aux-devs = <&tdmin_a>, <&tdmout_a>; 1756be33864SEmmanuel Vadot audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", 1766be33864SEmmanuel Vadot "TDMOUT_A IN 1", "FRDDR_B OUT 0", 1776be33864SEmmanuel Vadot "TDMOUT_A IN 2", "FRDDR_C OUT 0", 1785956d97fSEmmanuel Vadot "TDM_A Playback", "TDMOUT_A OUT", 1795956d97fSEmmanuel Vadot "TDMIN_A IN 0", "TDM_A Capture", 1805956d97fSEmmanuel Vadot "TDMIN_A IN 3", "TDM_A Loopback", 1815956d97fSEmmanuel Vadot "TODDR_A IN 0", "TDMIN_A OUT", 1825956d97fSEmmanuel Vadot "TODDR_B IN 0", "TDMIN_A OUT", 1835956d97fSEmmanuel Vadot "TODDR_C IN 0", "TDMIN_A OUT"; 1846be33864SEmmanuel Vadot 185*b2d2a78aSEmmanuel Vadot clocks = <&clkc CLKID_MPLL2>, 186*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL0>, 187*b2d2a78aSEmmanuel Vadot <&clkc CLKID_MPLL1>; 188*b2d2a78aSEmmanuel Vadot 1896be33864SEmmanuel Vadot assigned-clocks = <&clkc CLKID_MPLL2>, 1906be33864SEmmanuel Vadot <&clkc CLKID_MPLL0>, 1916be33864SEmmanuel Vadot <&clkc CLKID_MPLL1>; 1926be33864SEmmanuel Vadot assigned-clock-parents = <0>, <0>, <0>; 1936be33864SEmmanuel Vadot assigned-clock-rates = <294912000>, 1946be33864SEmmanuel Vadot <270950400>, 1956be33864SEmmanuel Vadot <393216000>; 1966be33864SEmmanuel Vadot 1976be33864SEmmanuel Vadot dai-link-0 { 1986be33864SEmmanuel Vadot sound-dai = <&frddr_a>; 1996be33864SEmmanuel Vadot }; 2006be33864SEmmanuel Vadot 2016be33864SEmmanuel Vadot dai-link-1 { 2026be33864SEmmanuel Vadot sound-dai = <&frddr_b>; 2036be33864SEmmanuel Vadot }; 2046be33864SEmmanuel Vadot 2056be33864SEmmanuel Vadot dai-link-2 { 2066be33864SEmmanuel Vadot sound-dai = <&frddr_c>; 2076be33864SEmmanuel Vadot }; 2086be33864SEmmanuel Vadot 2096be33864SEmmanuel Vadot dai-link-3 { 2105956d97fSEmmanuel Vadot sound-dai = <&toddr_a>; 2115956d97fSEmmanuel Vadot }; 2125956d97fSEmmanuel Vadot 2135956d97fSEmmanuel Vadot dai-link-4 { 2145956d97fSEmmanuel Vadot sound-dai = <&toddr_b>; 2155956d97fSEmmanuel Vadot }; 2165956d97fSEmmanuel Vadot 2175956d97fSEmmanuel Vadot dai-link-5 { 2185956d97fSEmmanuel Vadot sound-dai = <&toddr_c>; 2195956d97fSEmmanuel Vadot }; 2205956d97fSEmmanuel Vadot 2215956d97fSEmmanuel Vadot /* 8ch hdmi interface */ 2225956d97fSEmmanuel Vadot dai-link-6 { 2236be33864SEmmanuel Vadot sound-dai = <&tdmif_a>; 2246be33864SEmmanuel Vadot dai-format = "i2s"; 2256be33864SEmmanuel Vadot dai-tdm-slot-tx-mask-0 = <1 1>; 2266be33864SEmmanuel Vadot dai-tdm-slot-tx-mask-1 = <1 1>; 2276be33864SEmmanuel Vadot dai-tdm-slot-tx-mask-2 = <1 1>; 2286be33864SEmmanuel Vadot dai-tdm-slot-tx-mask-3 = <1 1>; 2296be33864SEmmanuel Vadot mclk-fs = <256>; 2306be33864SEmmanuel Vadot 2316be33864SEmmanuel Vadot codec { 2326be33864SEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; 2336be33864SEmmanuel Vadot }; 2346be33864SEmmanuel Vadot }; 2356be33864SEmmanuel Vadot 2366be33864SEmmanuel Vadot /* hdmi glue */ 2375956d97fSEmmanuel Vadot dai-link-7 { 2386be33864SEmmanuel Vadot sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 2396be33864SEmmanuel Vadot 2406be33864SEmmanuel Vadot codec { 2416be33864SEmmanuel Vadot sound-dai = <&hdmi_tx>; 2426be33864SEmmanuel Vadot }; 2436be33864SEmmanuel Vadot }; 2446be33864SEmmanuel Vadot }; 2456be33864SEmmanuel Vadot 246c66ec88fSEmmanuel Vadot wifi32k: wifi32k { 247c66ec88fSEmmanuel Vadot compatible = "pwm-clock"; 248c66ec88fSEmmanuel Vadot #clock-cells = <0>; 249c66ec88fSEmmanuel Vadot clock-frequency = <32768>; 250c66ec88fSEmmanuel Vadot pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 251c66ec88fSEmmanuel Vadot }; 252c66ec88fSEmmanuel Vadot}; 253c66ec88fSEmmanuel Vadot 2546be33864SEmmanuel Vadot&arb { 2556be33864SEmmanuel Vadot status = "okay"; 2566be33864SEmmanuel Vadot}; 2576be33864SEmmanuel Vadot 2586be33864SEmmanuel Vadot&clkc_audio { 2596be33864SEmmanuel Vadot status = "okay"; 2606be33864SEmmanuel Vadot}; 2616be33864SEmmanuel Vadot 262c66ec88fSEmmanuel Vadot&cec_AO { 263c66ec88fSEmmanuel Vadot pinctrl-0 = <&cec_ao_a_h_pins>; 264c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 265c66ec88fSEmmanuel Vadot status = "disabled"; 266c66ec88fSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 267c66ec88fSEmmanuel Vadot}; 268c66ec88fSEmmanuel Vadot 269c66ec88fSEmmanuel Vadot&cecb_AO { 270c66ec88fSEmmanuel Vadot pinctrl-0 = <&cec_ao_b_h_pins>; 271c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 272c66ec88fSEmmanuel Vadot status = "okay"; 273c66ec88fSEmmanuel Vadot hdmi-phandle = <&hdmi_tx>; 274c66ec88fSEmmanuel Vadot}; 275c66ec88fSEmmanuel Vadot 276c66ec88fSEmmanuel Vadot&cpu_thermal { 277c66ec88fSEmmanuel Vadot trips { 278c66ec88fSEmmanuel Vadot cpu_active: cpu-active { 279c66ec88fSEmmanuel Vadot temperature = <80000>; /* millicelsius */ 280c66ec88fSEmmanuel Vadot hysteresis = <2000>; /* millicelsius */ 281c66ec88fSEmmanuel Vadot type = "active"; 282c66ec88fSEmmanuel Vadot }; 283c66ec88fSEmmanuel Vadot }; 284c66ec88fSEmmanuel Vadot 285c66ec88fSEmmanuel Vadot cooling-maps { 286c66ec88fSEmmanuel Vadot map { 287c66ec88fSEmmanuel Vadot trip = <&cpu_active>; 288c66ec88fSEmmanuel Vadot cooling-device = <&khadas_mcu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 289c66ec88fSEmmanuel Vadot }; 290c66ec88fSEmmanuel Vadot }; 291c66ec88fSEmmanuel Vadot}; 292c66ec88fSEmmanuel Vadot 293c66ec88fSEmmanuel Vadot&ext_mdio { 294c66ec88fSEmmanuel Vadot external_phy: ethernet-phy@0 { 295c66ec88fSEmmanuel Vadot /* Realtek RTL8211F (0x001cc916) */ 296c66ec88fSEmmanuel Vadot reg = <0>; 297c66ec88fSEmmanuel Vadot max-speed = <1000>; 298c66ec88fSEmmanuel Vadot 299c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio_intc>; 300c66ec88fSEmmanuel Vadot /* MAC_INTR on GPIOZ_14 */ 301c66ec88fSEmmanuel Vadot interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 302c66ec88fSEmmanuel Vadot }; 303c66ec88fSEmmanuel Vadot}; 304c66ec88fSEmmanuel Vadot 305c66ec88fSEmmanuel Vadotðmac { 306c66ec88fSEmmanuel Vadot pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 307c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 308c66ec88fSEmmanuel Vadot status = "okay"; 309c66ec88fSEmmanuel Vadot phy-mode = "rgmii"; 310c66ec88fSEmmanuel Vadot phy-handle = <&external_phy>; 311c66ec88fSEmmanuel Vadot amlogic,tx-delay-ns = <2>; 312c66ec88fSEmmanuel Vadot}; 313c66ec88fSEmmanuel Vadot 3146be33864SEmmanuel Vadot&frddr_a { 3156be33864SEmmanuel Vadot status = "okay"; 3166be33864SEmmanuel Vadot}; 3176be33864SEmmanuel Vadot 3186be33864SEmmanuel Vadot&frddr_b { 3196be33864SEmmanuel Vadot status = "okay"; 3206be33864SEmmanuel Vadot}; 3216be33864SEmmanuel Vadot 3226be33864SEmmanuel Vadot&frddr_c { 3236be33864SEmmanuel Vadot status = "okay"; 3246be33864SEmmanuel Vadot}; 3256be33864SEmmanuel Vadot 326c66ec88fSEmmanuel Vadot&hdmi_tx { 327c66ec88fSEmmanuel Vadot status = "okay"; 328c66ec88fSEmmanuel Vadot pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 329c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 330c66ec88fSEmmanuel Vadot hdmi-supply = <&vcc_5v>; 331c66ec88fSEmmanuel Vadot}; 332c66ec88fSEmmanuel Vadot 333c66ec88fSEmmanuel Vadot&hdmi_tx_tmds_port { 334c66ec88fSEmmanuel Vadot hdmi_tx_tmds_out: endpoint { 335c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_connector_in>; 336c66ec88fSEmmanuel Vadot }; 337c66ec88fSEmmanuel Vadot}; 338c66ec88fSEmmanuel Vadot 339c66ec88fSEmmanuel Vadot&i2c_AO { 340c66ec88fSEmmanuel Vadot status = "okay"; 341c66ec88fSEmmanuel Vadot pinctrl-0 = <&i2c_ao_sck_pins>, <&i2c_ao_sda_pins>; 342c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 343c66ec88fSEmmanuel Vadot 344c66ec88fSEmmanuel Vadot khadas_mcu: system-controller@18 { 345c66ec88fSEmmanuel Vadot compatible = "khadas,mcu"; 346c66ec88fSEmmanuel Vadot reg = <0x18>; 347c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 348c66ec88fSEmmanuel Vadot }; 349c66ec88fSEmmanuel Vadot 350c66ec88fSEmmanuel Vadot gpio_expander: gpio-controller@20 { 351c66ec88fSEmmanuel Vadot compatible = "ti,tca6408"; 352c66ec88fSEmmanuel Vadot reg = <0x20>; 353c66ec88fSEmmanuel Vadot vcc-supply = <&vcc_3v3>; 354c66ec88fSEmmanuel Vadot gpio-controller; 355c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 356c66ec88fSEmmanuel Vadot }; 357c66ec88fSEmmanuel Vadot 3585def4c47SEmmanuel Vadot rtc: rtc@51 { 359c66ec88fSEmmanuel Vadot compatible = "haoyu,hym8563"; 360c66ec88fSEmmanuel Vadot reg = <0x51>; 361c66ec88fSEmmanuel Vadot #clock-cells = <0>; 362c66ec88fSEmmanuel Vadot }; 363c66ec88fSEmmanuel Vadot}; 364c66ec88fSEmmanuel Vadot 365c66ec88fSEmmanuel Vadot&ir { 366c66ec88fSEmmanuel Vadot status = "okay"; 367c66ec88fSEmmanuel Vadot pinctrl-0 = <&remote_input_ao_pins>; 368c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 369c66ec88fSEmmanuel Vadot linux,rc-map-name = "rc-khadas"; 370c66ec88fSEmmanuel Vadot}; 371c66ec88fSEmmanuel Vadot 372c66ec88fSEmmanuel Vadot&pcie { 373c66ec88fSEmmanuel Vadot reset-gpios = <&gpio GPIOA_8 GPIO_ACTIVE_LOW>; 374c66ec88fSEmmanuel Vadot}; 375c66ec88fSEmmanuel Vadot 376c66ec88fSEmmanuel Vadot&pwm_ef { 377c66ec88fSEmmanuel Vadot status = "okay"; 378c66ec88fSEmmanuel Vadot pinctrl-0 = <&pwm_e_pins>; 379c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 380c66ec88fSEmmanuel Vadot}; 381c66ec88fSEmmanuel Vadot 382c66ec88fSEmmanuel Vadot&saradc { 383c66ec88fSEmmanuel Vadot status = "okay"; 384c66ec88fSEmmanuel Vadot vref-supply = <&vddao_1v8>; 385c66ec88fSEmmanuel Vadot}; 386c66ec88fSEmmanuel Vadot 387c66ec88fSEmmanuel Vadot/* SDIO */ 388c66ec88fSEmmanuel Vadot&sd_emmc_a { 389c66ec88fSEmmanuel Vadot status = "okay"; 390c66ec88fSEmmanuel Vadot pinctrl-0 = <&sdio_pins>; 391c66ec88fSEmmanuel Vadot pinctrl-1 = <&sdio_clk_gate_pins>; 392c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 393c66ec88fSEmmanuel Vadot #address-cells = <1>; 394c66ec88fSEmmanuel Vadot #size-cells = <0>; 395c66ec88fSEmmanuel Vadot 396c66ec88fSEmmanuel Vadot bus-width = <4>; 397c66ec88fSEmmanuel Vadot cap-sd-highspeed; 398c66ec88fSEmmanuel Vadot max-frequency = <100000000>; 399c66ec88fSEmmanuel Vadot 400c66ec88fSEmmanuel Vadot non-removable; 401c66ec88fSEmmanuel Vadot disable-wp; 402c66ec88fSEmmanuel Vadot 403c66ec88fSEmmanuel Vadot /* WiFi firmware requires power to be kept while in suspend */ 404c66ec88fSEmmanuel Vadot keep-power-in-suspend; 405c66ec88fSEmmanuel Vadot 406c66ec88fSEmmanuel Vadot mmc-pwrseq = <&sdio_pwrseq>; 407c66ec88fSEmmanuel Vadot 408c66ec88fSEmmanuel Vadot vmmc-supply = <&vsys_3v3>; 409c66ec88fSEmmanuel Vadot vqmmc-supply = <&vddao_1v8>; 410c66ec88fSEmmanuel Vadot 411c66ec88fSEmmanuel Vadot brcmf: wifi@1 { 412c66ec88fSEmmanuel Vadot reg = <1>; 413c66ec88fSEmmanuel Vadot compatible = "brcm,bcm4329-fmac"; 414c66ec88fSEmmanuel Vadot }; 415c66ec88fSEmmanuel Vadot}; 416c66ec88fSEmmanuel Vadot 417c66ec88fSEmmanuel Vadot/* SD card */ 418c66ec88fSEmmanuel Vadot&sd_emmc_b { 419c66ec88fSEmmanuel Vadot status = "okay"; 420c66ec88fSEmmanuel Vadot pinctrl-0 = <&sdcard_c_pins>; 421c66ec88fSEmmanuel Vadot pinctrl-1 = <&sdcard_clk_gate_c_pins>; 422c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 423c66ec88fSEmmanuel Vadot 424c66ec88fSEmmanuel Vadot bus-width = <4>; 425c66ec88fSEmmanuel Vadot cap-sd-highspeed; 426c66ec88fSEmmanuel Vadot max-frequency = <50000000>; 427c66ec88fSEmmanuel Vadot disable-wp; 428c66ec88fSEmmanuel Vadot 429c66ec88fSEmmanuel Vadot cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 430c66ec88fSEmmanuel Vadot vmmc-supply = <&vsys_3v3>; 431c66ec88fSEmmanuel Vadot vqmmc-supply = <&vsys_3v3>; 432c66ec88fSEmmanuel Vadot}; 433c66ec88fSEmmanuel Vadot 434c66ec88fSEmmanuel Vadot/* eMMC */ 435c66ec88fSEmmanuel Vadot&sd_emmc_c { 436c66ec88fSEmmanuel Vadot status = "okay"; 437c66ec88fSEmmanuel Vadot pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 438c66ec88fSEmmanuel Vadot pinctrl-1 = <&emmc_clk_gate_pins>; 439c66ec88fSEmmanuel Vadot pinctrl-names = "default", "clk-gate"; 440c66ec88fSEmmanuel Vadot 441c66ec88fSEmmanuel Vadot bus-width = <8>; 442c66ec88fSEmmanuel Vadot cap-mmc-highspeed; 443c66ec88fSEmmanuel Vadot mmc-ddr-1_8v; 444c66ec88fSEmmanuel Vadot mmc-hs200-1_8v; 445c66ec88fSEmmanuel Vadot max-frequency = <200000000>; 446c66ec88fSEmmanuel Vadot disable-wp; 447c66ec88fSEmmanuel Vadot 448c66ec88fSEmmanuel Vadot mmc-pwrseq = <&emmc_pwrseq>; 449c66ec88fSEmmanuel Vadot vmmc-supply = <&vcc_3v3>; 450c66ec88fSEmmanuel Vadot vqmmc-supply = <&emmc_1v8>; 451c66ec88fSEmmanuel Vadot}; 452c66ec88fSEmmanuel Vadot 453c66ec88fSEmmanuel Vadot/* 454c66ec88fSEmmanuel Vadot * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR CS 455c66ec88fSEmmanuel Vadot * and eMMC Data 4 to 7 pins. 456c66ec88fSEmmanuel Vadot * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0, 457c66ec88fSEmmanuel Vadot * and change bus-width to 4 then spifc can be enabled. 458c66ec88fSEmmanuel Vadot */ 459c66ec88fSEmmanuel Vadot&spifc { 460c66ec88fSEmmanuel Vadot status = "disabled"; 461c66ec88fSEmmanuel Vadot pinctrl-0 = <&nor_pins>; 462c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 463c66ec88fSEmmanuel Vadot 464d5b0e70fSEmmanuel Vadot w25q128: flash@0 { 465c66ec88fSEmmanuel Vadot #address-cells = <1>; 466c66ec88fSEmmanuel Vadot #size-cells = <1>; 467c66ec88fSEmmanuel Vadot compatible = "winbond,w25q128fw", "jedec,spi-nor"; 468c66ec88fSEmmanuel Vadot reg = <0>; 469c66ec88fSEmmanuel Vadot spi-max-frequency = <104000000>; 470c66ec88fSEmmanuel Vadot }; 471c66ec88fSEmmanuel Vadot}; 472c66ec88fSEmmanuel Vadot 4736be33864SEmmanuel Vadot&tdmif_a { 4746be33864SEmmanuel Vadot status = "okay"; 4756be33864SEmmanuel Vadot}; 4766be33864SEmmanuel Vadot 4775956d97fSEmmanuel Vadot&tdmin_a { 4785956d97fSEmmanuel Vadot status = "okay"; 4795956d97fSEmmanuel Vadot}; 4805956d97fSEmmanuel Vadot 4816be33864SEmmanuel Vadot&tdmout_a { 4826be33864SEmmanuel Vadot status = "okay"; 4836be33864SEmmanuel Vadot}; 4846be33864SEmmanuel Vadot 4855956d97fSEmmanuel Vadot&toddr_a { 4865956d97fSEmmanuel Vadot status = "okay"; 4875956d97fSEmmanuel Vadot}; 4885956d97fSEmmanuel Vadot 4895956d97fSEmmanuel Vadot&toddr_b { 4905956d97fSEmmanuel Vadot status = "okay"; 4915956d97fSEmmanuel Vadot}; 4925956d97fSEmmanuel Vadot 4935956d97fSEmmanuel Vadot&toddr_c { 4945956d97fSEmmanuel Vadot status = "okay"; 4955956d97fSEmmanuel Vadot}; 4965956d97fSEmmanuel Vadot 4976be33864SEmmanuel Vadot&tohdmitx { 4986be33864SEmmanuel Vadot status = "okay"; 4996be33864SEmmanuel Vadot}; 5006be33864SEmmanuel Vadot 501c66ec88fSEmmanuel Vadot&uart_A { 502c66ec88fSEmmanuel Vadot status = "okay"; 503c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 504c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 505c66ec88fSEmmanuel Vadot uart-has-rtscts; 506c66ec88fSEmmanuel Vadot 507c66ec88fSEmmanuel Vadot bluetooth { 508c66ec88fSEmmanuel Vadot compatible = "brcm,bcm43438-bt"; 509c66ec88fSEmmanuel Vadot shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 510c66ec88fSEmmanuel Vadot max-speed = <2000000>; 511c66ec88fSEmmanuel Vadot clocks = <&wifi32k>; 512c66ec88fSEmmanuel Vadot clock-names = "lpo"; 513c66ec88fSEmmanuel Vadot }; 514c66ec88fSEmmanuel Vadot}; 515c66ec88fSEmmanuel Vadot 516c66ec88fSEmmanuel Vadot&uart_AO { 517c66ec88fSEmmanuel Vadot status = "okay"; 518c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart_ao_a_pins>; 519c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 520c66ec88fSEmmanuel Vadot}; 521c66ec88fSEmmanuel Vadot 522c66ec88fSEmmanuel Vadot&usb2_phy0 { 523c66ec88fSEmmanuel Vadot phy-supply = <&dc_in>; 524c66ec88fSEmmanuel Vadot}; 525c66ec88fSEmmanuel Vadot 526c66ec88fSEmmanuel Vadot&usb2_phy1 { 527c66ec88fSEmmanuel Vadot phy-supply = <&usb_pwr>; 528c66ec88fSEmmanuel Vadot}; 529c66ec88fSEmmanuel Vadot 530c66ec88fSEmmanuel Vadot&usb3_pcie_phy { 531c66ec88fSEmmanuel Vadot phy-supply = <&usb_pwr>; 532c66ec88fSEmmanuel Vadot}; 533c66ec88fSEmmanuel Vadot 534c66ec88fSEmmanuel Vadot&usb { 535c66ec88fSEmmanuel Vadot status = "okay"; 536c66ec88fSEmmanuel Vadot dr_mode = "peripheral"; 537c66ec88fSEmmanuel Vadot}; 538