1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 29d59b708SYixun Lan/* 39d59b708SYixun Lan * Copyright (c) 2017 Amlogic, Inc. All rights reserved. 49d59b708SYixun Lan */ 59d59b708SYixun Lan 69d59b708SYixun Lan/dts-v1/; 79d59b708SYixun Lan 89d59b708SYixun Lan#include "meson-axg.dtsi" 9aabe5d2dSJerome Brunet#include <dt-bindings/input/input.h> 109d59b708SYixun Lan 119d59b708SYixun Lan/ { 129d59b708SYixun Lan compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg"; 139d59b708SYixun Lan model = "Amlogic Meson AXG S400 Development Board"; 149d59b708SYixun Lan 15aabe5d2dSJerome Brunet adc_keys { 16aabe5d2dSJerome Brunet compatible = "adc-keys"; 17aabe5d2dSJerome Brunet io-channels = <&saradc 0>; 18aabe5d2dSJerome Brunet io-channel-names = "buttons"; 19aabe5d2dSJerome Brunet keyup-threshold-microvolt = <1800000>; 20aabe5d2dSJerome Brunet 21aabe5d2dSJerome Brunet button-next { 22aabe5d2dSJerome Brunet label = "Next"; 23aabe5d2dSJerome Brunet linux,code = <KEY_NEXT>; 24aabe5d2dSJerome Brunet press-threshold-microvolt = <1116000>; /* 62% */ 25aabe5d2dSJerome Brunet }; 26aabe5d2dSJerome Brunet 27aabe5d2dSJerome Brunet button-prev { 28aabe5d2dSJerome Brunet label = "Previous"; 29aabe5d2dSJerome Brunet linux,code = <KEY_PREVIOUS>; 30aabe5d2dSJerome Brunet press-threshold-microvolt = <900000>; /* 50% */ 31aabe5d2dSJerome Brunet }; 32aabe5d2dSJerome Brunet 33aabe5d2dSJerome Brunet button-wifi { 34aabe5d2dSJerome Brunet label = "Wifi"; 35aabe5d2dSJerome Brunet linux,code = <KEY_WLAN>; 36aabe5d2dSJerome Brunet press-threshold-microvolt = <684000>; /* 38% */ 37aabe5d2dSJerome Brunet }; 38aabe5d2dSJerome Brunet 39aabe5d2dSJerome Brunet button-up { 40aabe5d2dSJerome Brunet label = "Volume Up"; 41aabe5d2dSJerome Brunet linux,code = <KEY_VOLUMEUP>; 42aabe5d2dSJerome Brunet press-threshold-microvolt = <468000>; /* 26% */ 43aabe5d2dSJerome Brunet }; 44aabe5d2dSJerome Brunet 45aabe5d2dSJerome Brunet button-down { 46aabe5d2dSJerome Brunet label = "Volume Down"; 47aabe5d2dSJerome Brunet linux,code = <KEY_VOLUMEDOWN>; 48aabe5d2dSJerome Brunet press-threshold-microvolt = <252000>; /* 14% */ 49aabe5d2dSJerome Brunet }; 50aabe5d2dSJerome Brunet 51aabe5d2dSJerome Brunet button-voice { 52aabe5d2dSJerome Brunet label = "Voice"; 53aabe5d2dSJerome Brunet linux,code = <KEY_VOICECOMMAND>; 54aabe5d2dSJerome Brunet press-threshold-microvolt = <0>; /* 0% */ 55aabe5d2dSJerome Brunet }; 56aabe5d2dSJerome Brunet }; 57aabe5d2dSJerome Brunet 589d59b708SYixun Lan aliases { 599d59b708SYixun Lan serial0 = &uart_AO; 603e5925c6SYixun Lan serial1 = &uart_A; 619d59b708SYixun Lan }; 62221cf34bSNan Li 638c0cf40fSJerome Brunet linein: audio-codec@0 { 648c0cf40fSJerome Brunet #sound-dai-cells = <0>; 658c0cf40fSJerome Brunet compatible = "everest,es7241"; 668c0cf40fSJerome Brunet VDDA-supply = <&vcc_3v3>; 678c0cf40fSJerome Brunet VDDP-supply = <&vcc_3v3>; 688c0cf40fSJerome Brunet VDDD-supply = <&vcc_3v3>; 698c0cf40fSJerome Brunet status = "okay"; 708c0cf40fSJerome Brunet sound-name-prefix = "Linein"; 718c0cf40fSJerome Brunet }; 728c0cf40fSJerome Brunet 738c0cf40fSJerome Brunet lineout: audio-codec@1 { 748c0cf40fSJerome Brunet #sound-dai-cells = <0>; 758c0cf40fSJerome Brunet compatible = "everest,es7154"; 768c0cf40fSJerome Brunet VDD-supply = <&vcc_3v3>; 778c0cf40fSJerome Brunet PVDD-supply = <&vcc_5v>; 788c0cf40fSJerome Brunet status = "okay"; 798c0cf40fSJerome Brunet sound-name-prefix = "Lineout"; 808c0cf40fSJerome Brunet }; 818c0cf40fSJerome Brunet 828c0cf40fSJerome Brunet spdif_dit: audio-codec@2 { 838c0cf40fSJerome Brunet #sound-dai-cells = <0>; 848c0cf40fSJerome Brunet compatible = "linux,spdif-dit"; 858c0cf40fSJerome Brunet status = "okay"; 868c0cf40fSJerome Brunet sound-name-prefix = "DIT"; 878c0cf40fSJerome Brunet }; 888c0cf40fSJerome Brunet 898c0cf40fSJerome Brunet emmc_pwrseq: emmc-pwrseq { 908c0cf40fSJerome Brunet compatible = "mmc-pwrseq-emmc"; 918c0cf40fSJerome Brunet reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 928c0cf40fSJerome Brunet }; 938c0cf40fSJerome Brunet 94e120289cSJerome Brunet main_12v: regulator-main_12v { 95e120289cSJerome Brunet compatible = "regulator-fixed"; 96e120289cSJerome Brunet regulator-name = "12V"; 97e120289cSJerome Brunet regulator-min-microvolt = <12000000>; 98e120289cSJerome Brunet regulator-max-microvolt = <12000000>; 999f2619d5SJerome Brunet regulator-always-on; 100e120289cSJerome Brunet }; 101e120289cSJerome Brunet 102221cf34bSNan Li vcc_3v3: regulator-vcc_3v3 { 103221cf34bSNan Li compatible = "regulator-fixed"; 104221cf34bSNan Li regulator-name = "VCC_3V3"; 105221cf34bSNan Li regulator-min-microvolt = <3300000>; 106221cf34bSNan Li regulator-max-microvolt = <3300000>; 1079f2619d5SJerome Brunet vin-supply = <&vddao_3v3>; 1089f2619d5SJerome Brunet regulator-always-on; 109221cf34bSNan Li }; 110221cf34bSNan Li 111ff36932eSJerome Brunet vcc_5v: regulator-vcc_5v { 112ff36932eSJerome Brunet compatible = "regulator-fixed"; 113ff36932eSJerome Brunet regulator-name = "VCC5V"; 114ff36932eSJerome Brunet regulator-min-microvolt = <5000000>; 115ff36932eSJerome Brunet regulator-max-microvolt = <5000000>; 116ff36932eSJerome Brunet vin-supply = <&main_12v>; 117ff36932eSJerome Brunet 118ff36932eSJerome Brunet gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 119ff36932eSJerome Brunet enable-active-high; 120ff36932eSJerome Brunet }; 121ff36932eSJerome Brunet 1228c0cf40fSJerome Brunet vddao_3v3: regulator-vddao_3v3 { 1238c0cf40fSJerome Brunet compatible = "regulator-fixed"; 1248c0cf40fSJerome Brunet regulator-name = "VDDAO_3V3"; 1258c0cf40fSJerome Brunet regulator-min-microvolt = <3300000>; 1268c0cf40fSJerome Brunet regulator-max-microvolt = <3300000>; 1278c0cf40fSJerome Brunet vin-supply = <&main_12v>; 1288c0cf40fSJerome Brunet regulator-always-on; 1298c0cf40fSJerome Brunet }; 1308c0cf40fSJerome Brunet 1318c0cf40fSJerome Brunet vddio_ao18: regulator-vddio_ao18 { 1328c0cf40fSJerome Brunet compatible = "regulator-fixed"; 1338c0cf40fSJerome Brunet regulator-name = "VDDIO_AO18"; 1348c0cf40fSJerome Brunet regulator-min-microvolt = <1800000>; 1358c0cf40fSJerome Brunet regulator-max-microvolt = <1800000>; 1368c0cf40fSJerome Brunet vin-supply = <&vddao_3v3>; 1378c0cf40fSJerome Brunet regulator-always-on; 1388c0cf40fSJerome Brunet }; 1398c0cf40fSJerome Brunet 1408c0cf40fSJerome Brunet vddio_boot: regulator-vddio_boot { 1418c0cf40fSJerome Brunet compatible = "regulator-fixed"; 1428c0cf40fSJerome Brunet regulator-name = "VDDIO_BOOT"; 1438c0cf40fSJerome Brunet regulator-min-microvolt = <1800000>; 1448c0cf40fSJerome Brunet regulator-max-microvolt = <1800000>; 1458c0cf40fSJerome Brunet vin-supply = <&vddao_3v3>; 1468c0cf40fSJerome Brunet regulator-always-on; 1478c0cf40fSJerome Brunet }; 1488c0cf40fSJerome Brunet 149fd1a3b7eSJerome Brunet usb_pwr: regulator-usb_pwr { 150fd1a3b7eSJerome Brunet compatible = "regulator-fixed"; 151fd1a3b7eSJerome Brunet regulator-name = "USB_PWR"; 152fd1a3b7eSJerome Brunet regulator-min-microvolt = <5000000>; 153fd1a3b7eSJerome Brunet regulator-max-microvolt = <5000000>; 154fd1a3b7eSJerome Brunet vin-supply = <&vcc_5v>; 155fd1a3b7eSJerome Brunet 156fd1a3b7eSJerome Brunet gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; 157fd1a3b7eSJerome Brunet enable-active-high; 158221cf34bSNan Li }; 159221cf34bSNan Li 1605a8a2ed6SYixun Lan sdio_pwrseq: sdio-pwrseq { 1615a8a2ed6SYixun Lan compatible = "mmc-pwrseq-simple"; 1625a8a2ed6SYixun Lan reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>; 1635a8a2ed6SYixun Lan clocks = <&wifi32k>; 1645a8a2ed6SYixun Lan clock-names = "ext_clock"; 1655a8a2ed6SYixun Lan }; 1665a8a2ed6SYixun Lan 1676279f666SJerome Brunet speaker-leds { 1686279f666SJerome Brunet compatible = "gpio-leds"; 1696279f666SJerome Brunet 1706279f666SJerome Brunet aled1 { 1716279f666SJerome Brunet label = "speaker:aled1"; 1726279f666SJerome Brunet gpios = <&gpio_speaker 7 0>; 1736279f666SJerome Brunet }; 1746279f666SJerome Brunet 1756279f666SJerome Brunet aled2 { 1766279f666SJerome Brunet label = "speaker:aled2"; 1776279f666SJerome Brunet gpios = <&gpio_speaker 6 0>; 1786279f666SJerome Brunet }; 1796279f666SJerome Brunet 1806279f666SJerome Brunet aled3 { 1816279f666SJerome Brunet label = "speaker:aled3"; 1826279f666SJerome Brunet gpios = <&gpio_speaker 5 0>; 1836279f666SJerome Brunet }; 1846279f666SJerome Brunet 1856279f666SJerome Brunet aled4 { 1866279f666SJerome Brunet label = "speaker:aled4"; 1876279f666SJerome Brunet gpios = <&gpio_speaker 4 0>; 1886279f666SJerome Brunet }; 1896279f666SJerome Brunet 1906279f666SJerome Brunet aled5 { 1916279f666SJerome Brunet label = "speaker:aled5"; 1926279f666SJerome Brunet gpios = <&gpio_speaker 3 0>; 1936279f666SJerome Brunet }; 1946279f666SJerome Brunet 1956279f666SJerome Brunet aled6 { 1966279f666SJerome Brunet label = "speaker:aled6"; 1976279f666SJerome Brunet gpios = <&gpio_speaker 2 0>; 1986279f666SJerome Brunet }; 1996279f666SJerome Brunet }; 200cfc34f04SJerome Brunet 2016f59dc1aSJerome Brunet sound { 2026f59dc1aSJerome Brunet compatible = "amlogic,axg-sound-card"; 2036f59dc1aSJerome Brunet model = "AXG-S400"; 2046f59dc1aSJerome Brunet audio-aux-devs = <&tdmin_a>, <&tdmin_b>, <&tdmin_c>, 2056f59dc1aSJerome Brunet <&tdmin_lb>, <&tdmout_c>; 2066f59dc1aSJerome Brunet audio-widgets = "Line", "Lineout", 2076f59dc1aSJerome Brunet "Line", "Linein", 2086f59dc1aSJerome Brunet "Speaker", "Speaker1 Left", 2096f59dc1aSJerome Brunet "Speaker", "Speaker1 Right"; 2106f59dc1aSJerome Brunet audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2", 2116f59dc1aSJerome Brunet "SPDIFOUT IN 0", "FRDDR_A OUT 3", 2126f59dc1aSJerome Brunet "TDMOUT_C IN 1", "FRDDR_B OUT 2", 2136f59dc1aSJerome Brunet "SPDIFOUT IN 1", "FRDDR_B OUT 3", 2146f59dc1aSJerome Brunet "TDMOUT_C IN 2", "FRDDR_C OUT 2", 2156f59dc1aSJerome Brunet "SPDIFOUT IN 2", "FRDDR_C OUT 3", 2166f59dc1aSJerome Brunet "TDM_C Playback", "TDMOUT_C OUT", 2176f59dc1aSJerome Brunet "TDMIN_A IN 2", "TDM_C Capture", 2186f59dc1aSJerome Brunet "TDMIN_A IN 5", "TDM_C Loopback", 2196f59dc1aSJerome Brunet "TDMIN_B IN 2", "TDM_C Capture", 2206f59dc1aSJerome Brunet "TDMIN_B IN 5", "TDM_C Loopback", 2216f59dc1aSJerome Brunet "TDMIN_C IN 2", "TDM_C Capture", 2226f59dc1aSJerome Brunet "TDMIN_C IN 5", "TDM_C Loopback", 2236f59dc1aSJerome Brunet "TDMIN_LB IN 2", "TDM_C Loopback", 2246f59dc1aSJerome Brunet "TDMIN_LB IN 5", "TDM_C Capture", 2256f59dc1aSJerome Brunet "TODDR_A IN 0", "TDMIN_A OUT", 2266f59dc1aSJerome Brunet "TODDR_B IN 0", "TDMIN_A OUT", 2276f59dc1aSJerome Brunet "TODDR_C IN 0", "TDMIN_A OUT", 2286f59dc1aSJerome Brunet "TODDR_A IN 1", "TDMIN_B OUT", 2296f59dc1aSJerome Brunet "TODDR_B IN 1", "TDMIN_B OUT", 2306f59dc1aSJerome Brunet "TODDR_C IN 1", "TDMIN_B OUT", 2316f59dc1aSJerome Brunet "TODDR_A IN 2", "TDMIN_C OUT", 2326f59dc1aSJerome Brunet "TODDR_B IN 2", "TDMIN_C OUT", 2336f59dc1aSJerome Brunet "TODDR_C IN 2", "TDMIN_C OUT", 2346f59dc1aSJerome Brunet "TODDR_A IN 6", "TDMIN_LB OUT", 2356f59dc1aSJerome Brunet "TODDR_B IN 6", "TDMIN_LB OUT", 2366f59dc1aSJerome Brunet "TODDR_C IN 6", "TDMIN_LB OUT", 2376f59dc1aSJerome Brunet "Lineout", "Lineout AOUTL", 2386f59dc1aSJerome Brunet "Lineout", "Lineout AOUTR", 2396f59dc1aSJerome Brunet "Speaker1 Left", "SPK1 OUT_A", 2406f59dc1aSJerome Brunet "Speaker1 Left", "SPK1 OUT_B", 2416f59dc1aSJerome Brunet "Speaker1 Right", "SPK1 OUT_C", 2426f59dc1aSJerome Brunet "Speaker1 Right", "SPK1 OUT_D", 2436f59dc1aSJerome Brunet "Linein AINL", "Linein", 2446f59dc1aSJerome Brunet "Linein AINR", "Linein"; 2456f59dc1aSJerome Brunet assigned-clocks = <&clkc CLKID_HIFI_PLL>, 2466f59dc1aSJerome Brunet <&clkc CLKID_MPLL0>, 2476f59dc1aSJerome Brunet <&clkc CLKID_MPLL1>; 2486f59dc1aSJerome Brunet assigned-clock-parents = <0>, <0>, <0>; 2496f59dc1aSJerome Brunet assigned-clock-rates = <589824000>, 2506f59dc1aSJerome Brunet <270950400>, 2516f59dc1aSJerome Brunet <393216000>; 2526f59dc1aSJerome Brunet status = "okay"; 2536f59dc1aSJerome Brunet 2546f59dc1aSJerome Brunet dai-link@0 { 2556f59dc1aSJerome Brunet sound-dai = <&frddr_a>; 2566f59dc1aSJerome Brunet }; 2576f59dc1aSJerome Brunet 2586f59dc1aSJerome Brunet dai-link@1 { 2596f59dc1aSJerome Brunet sound-dai = <&frddr_b>; 2606f59dc1aSJerome Brunet }; 2616f59dc1aSJerome Brunet 2626f59dc1aSJerome Brunet dai-link@2 { 2636f59dc1aSJerome Brunet sound-dai = <&frddr_c>; 2646f59dc1aSJerome Brunet }; 2656f59dc1aSJerome Brunet 2666f59dc1aSJerome Brunet dai-link@3 { 2676f59dc1aSJerome Brunet sound-dai = <&toddr_a>; 2686f59dc1aSJerome Brunet }; 2696f59dc1aSJerome Brunet 2706f59dc1aSJerome Brunet dai-link@4 { 2716f59dc1aSJerome Brunet sound-dai = <&toddr_b>; 2726f59dc1aSJerome Brunet }; 2736f59dc1aSJerome Brunet 2746f59dc1aSJerome Brunet dai-link@5 { 2756f59dc1aSJerome Brunet sound-dai = <&toddr_c>; 2766f59dc1aSJerome Brunet }; 2776f59dc1aSJerome Brunet 2786f59dc1aSJerome Brunet dai-link@6 { 2796f59dc1aSJerome Brunet sound-dai = <&tdmif_c>; 2806f59dc1aSJerome Brunet dai-format = "i2s"; 2816f59dc1aSJerome Brunet dai-tdm-slot-tx-mask-2 = <1 1>; 2826f59dc1aSJerome Brunet dai-tdm-slot-rx-mask-1 = <1 1>; 2836f59dc1aSJerome Brunet mclk-fs = <256>; 2846f59dc1aSJerome Brunet 2856f59dc1aSJerome Brunet codec@0 { 2866f59dc1aSJerome Brunet sound-dai = <&lineout>; 2876f59dc1aSJerome Brunet }; 2886f59dc1aSJerome Brunet 2896f59dc1aSJerome Brunet codec@1 { 2906f59dc1aSJerome Brunet sound-dai = <&speaker_amp1>; 2916f59dc1aSJerome Brunet }; 2926f59dc1aSJerome Brunet 2936f59dc1aSJerome Brunet codec@2 { 2946f59dc1aSJerome Brunet sound-dai = <&linein>; 2956f59dc1aSJerome Brunet }; 2966f59dc1aSJerome Brunet 2976f59dc1aSJerome Brunet }; 2986f59dc1aSJerome Brunet 2996f59dc1aSJerome Brunet dai-link@7 { 3006f59dc1aSJerome Brunet sound-dai = <&spdifout>; 3016f59dc1aSJerome Brunet 3026f59dc1aSJerome Brunet codec { 3036f59dc1aSJerome Brunet sound-dai = <&spdif_dit>; 3046f59dc1aSJerome Brunet }; 3056f59dc1aSJerome Brunet }; 3066f59dc1aSJerome Brunet }; 3078c0cf40fSJerome Brunet 3088c0cf40fSJerome Brunet wifi32k: wifi32k { 3098c0cf40fSJerome Brunet compatible = "pwm-clock"; 3108c0cf40fSJerome Brunet #clock-cells = <0>; 3118c0cf40fSJerome Brunet clock-frequency = <32768>; 3128c0cf40fSJerome Brunet pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */ 3138c0cf40fSJerome Brunet }; 3149d59b708SYixun Lan}; 3159d59b708SYixun Lan 316f6f6ac91SYixun Lanðmac { 317f6f6ac91SYixun Lan status = "okay"; 318f6f6ac91SYixun Lan pinctrl-0 = <ð_rgmii_y_pins>; 319f6f6ac91SYixun Lan pinctrl-names = "default"; 3206d28d577SJerome Brunet phy-handle = <ð_phy0>; 3216d28d577SJerome Brunet phy-mode = "rgmii"; 3226d28d577SJerome Brunet 3236d28d577SJerome Brunet mdio { 3246d28d577SJerome Brunet compatible = "snps,dwmac-mdio"; 3256d28d577SJerome Brunet #address-cells = <1>; 3266d28d577SJerome Brunet #size-cells = <0>; 3276d28d577SJerome Brunet 3286d28d577SJerome Brunet eth_phy0: ethernet-phy@0 { 3296d28d577SJerome Brunet /* Realtek RTL8211F (0x001cc916) */ 3306d28d577SJerome Brunet reg = <0>; 3316d28d577SJerome Brunet eee-broken-1000t; 3326d28d577SJerome Brunet }; 3336d28d577SJerome Brunet }; 334f6f6ac91SYixun Lan}; 335f6f6ac91SYixun Lan 336a0ef1c1cSJerome Brunet&frddr_a { 337a0ef1c1cSJerome Brunet status = "okay"; 338a0ef1c1cSJerome Brunet}; 339a0ef1c1cSJerome Brunet 340a0ef1c1cSJerome Brunet&frddr_b { 341a0ef1c1cSJerome Brunet status = "okay"; 342a0ef1c1cSJerome Brunet}; 343a0ef1c1cSJerome Brunet 344a0ef1c1cSJerome Brunet&frddr_c { 345a0ef1c1cSJerome Brunet status = "okay"; 346a0ef1c1cSJerome Brunet}; 347a0ef1c1cSJerome Brunet 3487bd46a79SYixun Lan&ir { 3497bd46a79SYixun Lan status = "okay"; 3507bd46a79SYixun Lan pinctrl-0 = <&remote_input_ao_pins>; 3517bd46a79SYixun Lan pinctrl-names = "default"; 3527bd46a79SYixun Lan}; 3537d6d8a20SJian Hu 3547d6d8a20SJian Hu&i2c1 { 3557d6d8a20SJian Hu status = "okay"; 3567d6d8a20SJian Hu pinctrl-0 = <&i2c1_z_pins>; 3577d6d8a20SJian Hu pinctrl-names = "default"; 358a90193b9SJerome Brunet 359a90193b9SJerome Brunet speaker_amp1: audio-codec@1b { 360a90193b9SJerome Brunet compatible = "ti,tas5707"; 361a90193b9SJerome Brunet reg = <0x1b>; 362a90193b9SJerome Brunet reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; 363a90193b9SJerome Brunet #sound-dai-cells = <0>; 364a90193b9SJerome Brunet AVDD-supply = <&vcc_3v3>; 365a90193b9SJerome Brunet DVDD-supply = <&vcc_3v3>; 366a90193b9SJerome Brunet PVDD_A-supply = <&main_12v>; 367a90193b9SJerome Brunet PVDD_B-supply = <&main_12v>; 368a90193b9SJerome Brunet PVDD_C-supply = <&main_12v>; 369a90193b9SJerome Brunet PVDD_D-supply = <&main_12v>; 3706f59dc1aSJerome Brunet sound-name-prefix = "SPK1"; 371a90193b9SJerome Brunet }; 3727d6d8a20SJian Hu}; 373221cf34bSNan Li 374ffe2f2a4SJerome Brunet&i2c_AO { 375ffe2f2a4SJerome Brunet status = "okay"; 376ffe2f2a4SJerome Brunet pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>; 377ffe2f2a4SJerome Brunet pinctrl-names = "default"; 3786279f666SJerome Brunet 3796279f666SJerome Brunet gpio_speaker: gpio-controller@1f { 3806279f666SJerome Brunet compatible = "nxp,pca9557"; 3816279f666SJerome Brunet reg = <0x1f>; 3826279f666SJerome Brunet gpio-controller; 3836279f666SJerome Brunet #gpio-cells = <2>; 3846279f666SJerome Brunet vcc-supply = <&vddao_3v3>; 3856279f666SJerome Brunet }; 386ffe2f2a4SJerome Brunet}; 387ffe2f2a4SJerome Brunet 3885a8a2ed6SYixun Lan&pwm_ab { 3895a8a2ed6SYixun Lan status = "okay"; 3905a8a2ed6SYixun Lan pinctrl-0 = <&pwm_a_x20_pins>; 3915a8a2ed6SYixun Lan pinctrl-names = "default"; 3925a8a2ed6SYixun Lan}; 3935a8a2ed6SYixun Lan 3948c0cf40fSJerome Brunet&saradc { 395221cf34bSNan Li status = "okay"; 3968c0cf40fSJerome Brunet vref-supply = <&vddio_ao18>; 397221cf34bSNan Li}; 3985a8a2ed6SYixun Lan 3995a8a2ed6SYixun Lan/* wifi module */ 4005a8a2ed6SYixun Lan&sd_emmc_b { 4015a8a2ed6SYixun Lan status = "okay"; 4025a8a2ed6SYixun Lan #address-cells = <1>; 4035a8a2ed6SYixun Lan #size-cells = <0>; 4045a8a2ed6SYixun Lan 4055a8a2ed6SYixun Lan pinctrl-0 = <&sdio_pins>; 4065a8a2ed6SYixun Lan pinctrl-1 = <&sdio_clk_gate_pins>; 4075a8a2ed6SYixun Lan pinctrl-names = "default", "clk-gate"; 4085a8a2ed6SYixun Lan 4095a8a2ed6SYixun Lan bus-width = <4>; 4105a8a2ed6SYixun Lan cap-sd-highspeed; 4115a8a2ed6SYixun Lan max-frequency = <100000000>; 4125a8a2ed6SYixun Lan non-removable; 4135a8a2ed6SYixun Lan disable-wp; 4145a8a2ed6SYixun Lan 4155a8a2ed6SYixun Lan mmc-pwrseq = <&sdio_pwrseq>; 4165a8a2ed6SYixun Lan 4175a8a2ed6SYixun Lan vmmc-supply = <&vddao_3v3>; 4185a8a2ed6SYixun Lan vqmmc-supply = <&vddio_boot>; 4195a8a2ed6SYixun Lan 4205a8a2ed6SYixun Lan brcmf: wifi@1 { 4215a8a2ed6SYixun Lan reg = <1>; 4225a8a2ed6SYixun Lan compatible = "brcm,bcm4329-fmac"; 4235a8a2ed6SYixun Lan }; 4245a8a2ed6SYixun Lan}; 425a51b74eaSXingyu Chen 4268c0cf40fSJerome Brunet/* emmc storage */ 4278c0cf40fSJerome Brunet&sd_emmc_c { 428a51b74eaSXingyu Chen status = "okay"; 4298c0cf40fSJerome Brunet pinctrl-0 = <&emmc_pins>; 4308c0cf40fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 4318c0cf40fSJerome Brunet pinctrl-names = "default", "clk-gate"; 4328c0cf40fSJerome Brunet 4338c0cf40fSJerome Brunet bus-width = <8>; 4348c0cf40fSJerome Brunet cap-sd-highspeed; 4358c0cf40fSJerome Brunet cap-mmc-highspeed; 4368c0cf40fSJerome Brunet max-frequency = <180000000>; 4378c0cf40fSJerome Brunet non-removable; 4388c0cf40fSJerome Brunet disable-wp; 4398c0cf40fSJerome Brunet mmc-ddr-1_8v; 4408c0cf40fSJerome Brunet mmc-hs200-1_8v; 4418c0cf40fSJerome Brunet 4428c0cf40fSJerome Brunet vmmc-supply = <&vcc_3v3>; 4438c0cf40fSJerome Brunet vqmmc-supply = <&vddio_boot>; 444a51b74eaSXingyu Chen}; 445a0ef1c1cSJerome Brunet 446a0ef1c1cSJerome Brunet&spdifout { 447a0ef1c1cSJerome Brunet pinctrl-0 = <&spdif_out_a20_pins>; 448a0ef1c1cSJerome Brunet pinctrl-names = "default"; 449a0ef1c1cSJerome Brunet status = "okay"; 450a0ef1c1cSJerome Brunet}; 451a0ef1c1cSJerome Brunet 452a0ef1c1cSJerome Brunet&tdmif_a { 453a0ef1c1cSJerome Brunet pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>, 454a0ef1c1cSJerome Brunet <&tdma_din0_pins>, <&tdma_dout0_x15_pins>; 455a0ef1c1cSJerome Brunet pinctrl-names = "default"; 456a0ef1c1cSJerome Brunet status = "okay"; 457a0ef1c1cSJerome Brunet}; 458a0ef1c1cSJerome Brunet 459a0ef1c1cSJerome Brunet&tdmif_b { 460a0ef1c1cSJerome Brunet pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>, 461a0ef1c1cSJerome Brunet <&tdmb_din3_pins>, <&mclk_b_pins>; 462a0ef1c1cSJerome Brunet pinctrl-names = "default"; 463a0ef1c1cSJerome Brunet status = "okay"; 464a0ef1c1cSJerome Brunet}; 465a0ef1c1cSJerome Brunet 466a0ef1c1cSJerome Brunet&tdmif_c { 467a0ef1c1cSJerome Brunet pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>, 468a0ef1c1cSJerome Brunet <&tdmc_din1_pins>, <&tdmc_dout2_pins>, 469a0ef1c1cSJerome Brunet <&mclk_c_pins>; 470a0ef1c1cSJerome Brunet pinctrl-names = "default"; 471a0ef1c1cSJerome Brunet status = "okay"; 472a0ef1c1cSJerome Brunet}; 473a0ef1c1cSJerome Brunet 4748c0cf40fSJerome Brunet&tdmin_a { 4758c0cf40fSJerome Brunet status = "okay"; 4768c0cf40fSJerome Brunet}; 4778c0cf40fSJerome Brunet 4788c0cf40fSJerome Brunet&tdmin_b { 4798c0cf40fSJerome Brunet status = "okay"; 4808c0cf40fSJerome Brunet}; 4818c0cf40fSJerome Brunet 4828c0cf40fSJerome Brunet&tdmin_c { 4838c0cf40fSJerome Brunet status = "okay"; 4848c0cf40fSJerome Brunet}; 4858c0cf40fSJerome Brunet 4868c0cf40fSJerome Brunet&tdmin_lb { 4878c0cf40fSJerome Brunet status = "okay"; 4888c0cf40fSJerome Brunet}; 4898c0cf40fSJerome Brunet 4908c0cf40fSJerome Brunet&tdmout_c { 4918c0cf40fSJerome Brunet status = "okay"; 4928c0cf40fSJerome Brunet}; 4938c0cf40fSJerome Brunet 494a0ef1c1cSJerome Brunet&toddr_a { 495a0ef1c1cSJerome Brunet status = "okay"; 496a0ef1c1cSJerome Brunet}; 497a0ef1c1cSJerome Brunet 498a0ef1c1cSJerome Brunet&toddr_b { 499a0ef1c1cSJerome Brunet status = "okay"; 500a0ef1c1cSJerome Brunet}; 501a0ef1c1cSJerome Brunet 502a0ef1c1cSJerome Brunet&toddr_c { 503a0ef1c1cSJerome Brunet status = "okay"; 504a0ef1c1cSJerome Brunet}; 5058c0cf40fSJerome Brunet 5068c0cf40fSJerome Brunet&uart_A { 5078c0cf40fSJerome Brunet status = "okay"; 5088c0cf40fSJerome Brunet pinctrl-0 = <&uart_a_pins>; 5098c0cf40fSJerome Brunet pinctrl-names = "default"; 5108c0cf40fSJerome Brunet}; 5118c0cf40fSJerome Brunet 5128c0cf40fSJerome Brunet&uart_AO { 5138c0cf40fSJerome Brunet status = "okay"; 5148c0cf40fSJerome Brunet pinctrl-0 = <&uart_ao_a_pins>; 5158c0cf40fSJerome Brunet pinctrl-names = "default"; 5168c0cf40fSJerome Brunet}; 517