Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003  * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include "meson-axg.dtsi"
0009 #include <dt-bindings/input/input.h>
0010 
0011 / {
0012         compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
0013         model = "Amlogic Meson AXG S400 Development Board";
0014 
0015         adc_keys {
0016                 compatible = "adc-keys";
0017                 io-channels = <&saradc 0>;
0018                 io-channel-names = "buttons";
0019                 keyup-threshold-microvolt = <1800000>;
0020 
0021                 button-next {
0022                         label = "Next";
0023                         linux,code = <KEY_NEXT>;
0024                         press-threshold-microvolt = <1116000>; /* 62% */
0025                 };
0026 
0027                 button-prev {
0028                         label = "Previous";
0029                         linux,code = <KEY_PREVIOUS>;
0030                         press-threshold-microvolt = <900000>; /* 50% */
0031                 };
0032 
0033                 button-wifi {
0034                         label = "Wifi";
0035                         linux,code = <KEY_WLAN>;
0036                         press-threshold-microvolt = <684000>; /* 38% */
0037                 };
0038 
0039                 button-up {
0040                         label = "Volume Up";
0041                         linux,code = <KEY_VOLUMEUP>;
0042                         press-threshold-microvolt = <468000>; /* 26% */
0043                 };
0044 
0045                 button-down {
0046                         label = "Volume Down";
0047                         linux,code = <KEY_VOLUMEDOWN>;
0048                         press-threshold-microvolt = <252000>; /* 14% */
0049                 };
0050 
0051                 button-voice {
0052                         label = "Voice";
0053                         linux,code = <KEY_VOICECOMMAND>;
0054                         press-threshold-microvolt = <0>; /* 0% */
0055                 };
0056         };
0057 
0058         aliases {
0059                 serial0 = &uart_AO;
0060                 serial1 = &uart_A;
0061         };
0062 
0063         linein: audio-codec-0 {
0064                 #sound-dai-cells = <0>;
0065                 compatible = "everest,es7241";
0066                 VDDA-supply = <&vcc_3v3>;
0067                 VDDP-supply = <&vcc_3v3>;
0068                 VDDD-supply = <&vcc_3v3>;
0069                 status = "okay";
0070                 sound-name-prefix = "Linein";
0071         };
0072 
0073         lineout: audio-codec-1 {
0074                 #sound-dai-cells = <0>;
0075                 compatible = "everest,es7154";
0076                 VDD-supply = <&vcc_3v3>;
0077                 PVDD-supply = <&vcc_5v>;
0078                 status = "okay";
0079                 sound-name-prefix = "Lineout";
0080         };
0081 
0082         spdif_dit: audio-codec-2 {
0083                 #sound-dai-cells = <0>;
0084                 compatible = "linux,spdif-dit";
0085                 status = "okay";
0086                 sound-name-prefix = "DIT";
0087         };
0088 
0089         dmics: audio-codec-3 {
0090                 #sound-dai-cells = <0>;
0091                 compatible = "dmic-codec";
0092                 num-channels = <7>;
0093                 wakeup-delay-ms = <50>;
0094                 status = "okay";
0095                 sound-name-prefix = "MIC";
0096         };
0097 
0098         spdif_dir: audio-codec-4 {
0099                 #sound-dai-cells = <0>;
0100                 compatible = "linux,spdif-dir";
0101                 status = "okay";
0102                 sound-name-prefix = "DIR";
0103         };
0104 
0105         emmc_pwrseq: emmc-pwrseq {
0106                 compatible = "mmc-pwrseq-emmc";
0107                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
0108         };
0109 
0110         chosen {
0111                 stdout-path = "serial0:115200n8";
0112         };
0113 
0114         memory@0 {
0115                 device_type = "memory";
0116                 reg = <0x0 0x0 0x0 0x40000000>;
0117         };
0118 
0119         main_12v: regulator-main_12v {
0120                 compatible = "regulator-fixed";
0121                 regulator-name = "12V";
0122                 regulator-min-microvolt = <12000000>;
0123                 regulator-max-microvolt = <12000000>;
0124                 regulator-always-on;
0125         };
0126 
0127         vcc_3v3: regulator-vcc_3v3 {
0128                 compatible = "regulator-fixed";
0129                 regulator-name = "VCC_3V3";
0130                 regulator-min-microvolt = <3300000>;
0131                 regulator-max-microvolt = <3300000>;
0132                 vin-supply = <&vddao_3v3>;
0133                 regulator-always-on;
0134         };
0135 
0136         vcc_5v: regulator-vcc_5v {
0137                 compatible = "regulator-fixed";
0138                 regulator-name = "VCC5V";
0139                 regulator-min-microvolt = <5000000>;
0140                 regulator-max-microvolt = <5000000>;
0141                 vin-supply = <&main_12v>;
0142 
0143                 gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
0144                 enable-active-high;
0145         };
0146 
0147         vddao_3v3: regulator-vddao_3v3 {
0148                 compatible = "regulator-fixed";
0149                 regulator-name = "VDDAO_3V3";
0150                 regulator-min-microvolt = <3300000>;
0151                 regulator-max-microvolt = <3300000>;
0152                 vin-supply = <&main_12v>;
0153                 regulator-always-on;
0154         };
0155 
0156         vddio_ao18: regulator-vddio_ao18 {
0157                 compatible = "regulator-fixed";
0158                 regulator-name = "VDDIO_AO18";
0159                 regulator-min-microvolt = <1800000>;
0160                 regulator-max-microvolt = <1800000>;
0161                 vin-supply = <&vddao_3v3>;
0162                 regulator-always-on;
0163         };
0164 
0165         vddio_boot: regulator-vddio_boot {
0166                 compatible = "regulator-fixed";
0167                 regulator-name = "VDDIO_BOOT";
0168                 regulator-min-microvolt = <1800000>;
0169                 regulator-max-microvolt = <1800000>;
0170                 vin-supply = <&vddao_3v3>;
0171                 regulator-always-on;
0172         };
0173 
0174         usb_pwr: regulator-usb_pwr {
0175                 compatible = "regulator-fixed";
0176                 regulator-name = "USB_PWR";
0177                 regulator-min-microvolt = <5000000>;
0178                 regulator-max-microvolt = <5000000>;
0179                 vin-supply = <&vcc_5v>;
0180 
0181                 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
0182                 enable-active-high;
0183         };
0184 
0185         sdio_pwrseq: sdio-pwrseq {
0186                 compatible = "mmc-pwrseq-simple";
0187                 reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
0188                 clocks = <&wifi32k>;
0189                 clock-names = "ext_clock";
0190         };
0191 
0192         speaker-leds {
0193                 compatible = "gpio-leds";
0194 
0195                 aled1 {
0196                         label = "speaker:aled1";
0197                         gpios = <&gpio_speaker 7 0>;
0198                 };
0199 
0200                 aled2 {
0201                         label = "speaker:aled2";
0202                         gpios = <&gpio_speaker 6 0>;
0203                 };
0204 
0205                 aled3 {
0206                         label = "speaker:aled3";
0207                         gpios = <&gpio_speaker 5 0>;
0208                 };
0209 
0210                 aled4 {
0211                         label = "speaker:aled4";
0212                         gpios = <&gpio_speaker 4 0>;
0213                 };
0214 
0215                 aled5 {
0216                         label = "speaker:aled5";
0217                         gpios = <&gpio_speaker 3 0>;
0218                 };
0219 
0220                 aled6 {
0221                         label = "speaker:aled6";
0222                         gpios = <&gpio_speaker 2 0>;
0223                 };
0224         };
0225 
0226         sound {
0227                 compatible = "amlogic,axg-sound-card";
0228                 model = "AXG-S400";
0229                 audio-aux-devs = <&tdmin_a>, <&tdmin_b>,  <&tdmin_c>,
0230                                  <&tdmin_lb>, <&tdmout_c>;
0231                 audio-widgets = "Line", "Lineout",
0232                                 "Line", "Linein",
0233                                 "Speaker", "Speaker1 Left",
0234                                 "Speaker", "Speaker1 Right";
0235                 audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
0236                                 "SPDIFOUT IN 0", "FRDDR_A OUT 3",
0237                                 "TDMOUT_C IN 1", "FRDDR_B OUT 2",
0238                                 "SPDIFOUT IN 1", "FRDDR_B OUT 3",
0239                                 "TDMOUT_C IN 2", "FRDDR_C OUT 2",
0240                                 "SPDIFOUT IN 2", "FRDDR_C OUT 3",
0241                                 "TDM_C Playback", "TDMOUT_C OUT",
0242                                 "TDMIN_A IN 2", "TDM_C Capture",
0243                                 "TDMIN_A IN 5", "TDM_C Loopback",
0244                                 "TDMIN_B IN 2", "TDM_C Capture",
0245                                 "TDMIN_B IN 5", "TDM_C Loopback",
0246                                 "TDMIN_C IN 2", "TDM_C Capture",
0247                                 "TDMIN_C IN 5", "TDM_C Loopback",
0248                                 "TDMIN_LB IN 2", "TDM_C Loopback",
0249                                 "TDMIN_LB IN 5", "TDM_C Capture",
0250                                 "TODDR_A IN 0", "TDMIN_A OUT",
0251                                 "TODDR_B IN 0", "TDMIN_A OUT",
0252                                 "TODDR_C IN 0", "TDMIN_A OUT",
0253                                 "TODDR_A IN 1", "TDMIN_B OUT",
0254                                 "TODDR_B IN 1", "TDMIN_B OUT",
0255                                 "TODDR_C IN 1", "TDMIN_B OUT",
0256                                 "TODDR_A IN 2", "TDMIN_C OUT",
0257                                 "TODDR_B IN 2", "TDMIN_C OUT",
0258                                 "TODDR_C IN 2", "TDMIN_C OUT",
0259                                 "TODDR_A IN 3", "SPDIFIN Capture",
0260                                 "TODDR_B IN 3", "SPDIFIN Capture",
0261                                 "TODDR_C IN 3", "SPDIFIN Capture",
0262                                 "TODDR_A IN 4", "PDM Capture",
0263                                 "TODDR_B IN 4", "PDM Capture",
0264                                 "TODDR_C IN 4", "PDM Capture",
0265                                 "TODDR_A IN 6", "TDMIN_LB OUT",
0266                                 "TODDR_B IN 6", "TDMIN_LB OUT",
0267                                 "TODDR_C IN 6", "TDMIN_LB OUT",
0268                                 "Lineout", "Lineout AOUTL",
0269                                 "Lineout", "Lineout AOUTR",
0270                                 "Speaker1 Left", "SPK1 OUT_A",
0271                                 "Speaker1 Left", "SPK1 OUT_B",
0272                                 "Speaker1 Right", "SPK1 OUT_C",
0273                                 "Speaker1 Right", "SPK1 OUT_D",
0274                                 "Linein AINL", "Linein",
0275                                 "Linein AINR", "Linein";
0276                 assigned-clocks = <&clkc CLKID_HIFI_PLL>,
0277                                   <&clkc CLKID_MPLL0>,
0278                                   <&clkc CLKID_MPLL1>;
0279                 assigned-clock-parents = <0>, <0>, <0>;
0280                 assigned-clock-rates = <589824000>,
0281                                        <270950400>,
0282                                        <393216000>;
0283                 status = "okay";
0284 
0285                 dai-link-0 {
0286                         sound-dai = <&frddr_a>;
0287                 };
0288 
0289                 dai-link-1 {
0290                         sound-dai = <&frddr_b>;
0291                 };
0292 
0293                 dai-link-2 {
0294                         sound-dai = <&frddr_c>;
0295                 };
0296 
0297                 dai-link-3 {
0298                         sound-dai = <&toddr_a>;
0299                 };
0300 
0301                 dai-link-4 {
0302                         sound-dai = <&toddr_b>;
0303                 };
0304 
0305                 dai-link-5 {
0306                         sound-dai = <&toddr_c>;
0307                 };
0308 
0309                 dai-link-6 {
0310                         sound-dai = <&tdmif_c>;
0311                         dai-format = "i2s";
0312                         dai-tdm-slot-tx-mask-2 = <1 1>;
0313                         dai-tdm-slot-rx-mask-1 = <1 1>;
0314                         mclk-fs = <256>;
0315 
0316                         codec-0 {
0317                                 sound-dai = <&lineout>;
0318                         };
0319 
0320                         codec-1 {
0321                                 sound-dai = <&speaker_amp1>;
0322                         };
0323 
0324                         codec-2 {
0325                                 sound-dai = <&linein>;
0326                         };
0327 
0328                 };
0329 
0330                 dai-link-7 {
0331                         sound-dai = <&spdifout>;
0332 
0333                         codec {
0334                                 sound-dai = <&spdif_dit>;
0335                         };
0336                 };
0337 
0338                 dai-link-8 {
0339                         sound-dai = <&spdifin>;
0340 
0341                         codec {
0342                                 sound-dai = <&spdif_dir>;
0343                         };
0344                 };
0345 
0346                 dai-link-9 {
0347                         sound-dai = <&pdm>;
0348 
0349                         codec {
0350                                 sound-dai = <&dmics>;
0351                         };
0352                 };
0353         };
0354 
0355         wifi32k: wifi32k {
0356                 compatible = "pwm-clock";
0357                 #clock-cells = <0>;
0358                 clock-frequency = <32768>;
0359                 pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
0360         };
0361 };
0362 
0363 &ethmac {
0364         status = "okay";
0365         pinctrl-0 = <&eth_rgmii_y_pins>;
0366         pinctrl-names = "default";
0367         phy-handle = <&eth_phy0>;
0368         phy-mode = "rgmii";
0369 
0370         mdio {
0371                 compatible = "snps,dwmac-mdio";
0372                 #address-cells = <1>;
0373                 #size-cells = <0>;
0374 
0375                 eth_phy0: ethernet-phy@0 {
0376                         /* Realtek RTL8211F (0x001cc916) */
0377                         reg = <0>;
0378                         interrupt-parent = <&gpio_intc>;
0379                         interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
0380                         eee-broken-1000t;
0381                 };
0382         };
0383 };
0384 
0385 &frddr_a {
0386         status = "okay";
0387 };
0388 
0389 &frddr_b {
0390         status = "okay";
0391 };
0392 
0393 &frddr_c {
0394         status = "okay";
0395 };
0396 
0397 &ir {
0398         status = "okay";
0399         pinctrl-0 = <&remote_input_ao_pins>;
0400         pinctrl-names = "default";
0401 };
0402 
0403 &i2c1 {
0404         status = "okay";
0405         pinctrl-0 = <&i2c1_z_pins>;
0406         pinctrl-names = "default";
0407 
0408         speaker_amp1: audio-codec@1b {
0409                 compatible = "ti,tas5707";
0410                 reg = <0x1b>;
0411                 reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
0412                 #sound-dai-cells = <0>;
0413                 AVDD-supply = <&vcc_3v3>;
0414                 DVDD-supply = <&vcc_3v3>;
0415                 PVDD_A-supply = <&main_12v>;
0416                 PVDD_B-supply = <&main_12v>;
0417                 PVDD_C-supply = <&main_12v>;
0418                 PVDD_D-supply = <&main_12v>;
0419                 sound-name-prefix = "SPK1";
0420         };
0421 };
0422 
0423 &i2c_AO {
0424         status = "okay";
0425         pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
0426         pinctrl-names = "default";
0427 
0428         gpio_speaker: gpio-controller@1f {
0429                 compatible = "nxp,pca9557";
0430                 reg = <0x1f>;
0431                 gpio-controller;
0432                 #gpio-cells = <2>;
0433                 vcc-supply = <&vddao_3v3>;
0434         };
0435 };
0436 
0437 &pdm {
0438         pinctrl-0 = <&pdm_dclk_a14_pins>, <&pdm_din0_pins>,
0439                     <&pdm_din1_pins>, <&pdm_din2_pins>, <&pdm_din3_pins>;
0440         pinctrl-names = "default";
0441         status = "okay";
0442 };
0443 
0444 &pcieA {
0445         reset-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>;
0446         status = "okay";
0447 };
0448 
0449 &pcieB {
0450         reset-gpios = <&gpio GPIOZ_10 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
0451         status = "okay";
0452 };
0453 
0454 &pwm_ab {
0455         status = "okay";
0456         pinctrl-0 = <&pwm_a_x20_pins>;
0457         pinctrl-names = "default";
0458 };
0459 
0460 &saradc {
0461         status = "okay";
0462         vref-supply = <&vddio_ao18>;
0463 };
0464 
0465 /* wifi module */
0466 &sd_emmc_b {
0467         status = "okay";
0468         #address-cells = <1>;
0469         #size-cells = <0>;
0470 
0471         pinctrl-0 = <&sdio_pins>;
0472         pinctrl-1 = <&sdio_clk_gate_pins>;
0473         pinctrl-names = "default", "clk-gate";
0474 
0475         bus-width = <4>;
0476         cap-sd-highspeed;
0477         sd-uhs-sdr104;
0478         max-frequency = <200000000>;
0479         non-removable;
0480         disable-wp;
0481 
0482         mmc-pwrseq = <&sdio_pwrseq>;
0483 
0484         vmmc-supply = <&vddao_3v3>;
0485         vqmmc-supply = <&vddio_boot>;
0486 
0487         brcmf: wifi@1 {
0488                 reg = <1>;
0489                 compatible = "brcm,bcm4329-fmac";
0490         };
0491 };
0492 
0493 /* emmc storage */
0494 &sd_emmc_c {
0495         status = "okay";
0496         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
0497         pinctrl-1 = <&emmc_clk_gate_pins>;
0498         pinctrl-names = "default", "clk-gate";
0499 
0500         bus-width = <8>;
0501         cap-mmc-highspeed;
0502         max-frequency = <200000000>;
0503         non-removable;
0504         disable-wp;
0505         mmc-ddr-1_8v;
0506         mmc-hs200-1_8v;
0507 
0508         mmc-pwrseq = <&emmc_pwrseq>;
0509 
0510         vmmc-supply = <&vcc_3v3>;
0511         vqmmc-supply = <&vddio_boot>;
0512 };
0513 
0514 &spdifin {
0515         pinctrl-0 = <&spdif_in_a19_pins>;
0516         pinctrl-names = "default";
0517         status = "okay";
0518 };
0519 
0520 &spdifout {
0521         pinctrl-0 = <&spdif_out_a20_pins>;
0522         pinctrl-names = "default";
0523         status = "okay";
0524 };
0525 
0526 &tdmif_a {
0527         pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>,
0528                     <&tdma_din0_pins>, <&tdma_dout0_x15_pins>;
0529         pinctrl-names = "default";
0530         status = "okay";
0531 };
0532 
0533 &tdmif_b {
0534         pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>,
0535                     <&tdmb_din3_pins>, <&mclk_b_pins>;
0536         pinctrl-names = "default";
0537         status = "okay";
0538 };
0539 
0540 &tdmif_c {
0541         pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>,
0542                     <&tdmc_din1_pins>, <&tdmc_dout2_pins>,
0543                     <&mclk_c_pins>;
0544         pinctrl-names = "default";
0545         status = "okay";
0546 };
0547 
0548 &tdmin_a {
0549         status = "okay";
0550 };
0551 
0552 &tdmin_b {
0553         status = "okay";
0554 };
0555 
0556 &tdmin_c {
0557         status = "okay";
0558 };
0559 
0560 &tdmin_lb {
0561         status = "okay";
0562 };
0563 
0564 &tdmout_c {
0565         status = "okay";
0566 };
0567 
0568 &toddr_a {
0569         status = "okay";
0570 };
0571 
0572 &toddr_b {
0573         status = "okay";
0574 };
0575 
0576 &toddr_c {
0577         status = "okay";
0578 };
0579 
0580 &uart_A {
0581         status = "okay";
0582         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
0583         pinctrl-names = "default";
0584         uart-has-rtscts;
0585 
0586         bluetooth {
0587                 compatible = "brcm,bcm43438-bt";
0588                 shutdown-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>;
0589         };
0590 };
0591 
0592 &uart_AO {
0593         status = "okay";
0594         pinctrl-0 = <&uart_ao_a_pins>;
0595         pinctrl-names = "default";
0596 };
0597 
0598 &usb {
0599         status = "okay";
0600         dr_mode = "otg";
0601         vbus-supply = <&usb_pwr>;
0602 };