Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  meson-g12a-u200.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
 */

/dts-v1/;

#include "meson-g12a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
#include <dt-bindings/sound/meson-g12a-toacodec.h>

/ {
 compatible = "amlogic,u200", "amlogic,g12a";
 model = "Amlogic Meson G12A U200 Development Board";

 aliases {
  serial0 = &uart_AO;
  ethernet0 = ðmac;
 };

 dioo2133: audio-amplifier-0 {
  compatible = "simple-audio-amplifier";
  enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
  VCC-supply = <&vcc_5v>;
  sound-name-prefix = "10U2";
 };

 spdif_dir: audio-codec-0 {
  compatible = "linux,spdif-dir";
  #sound-dai-cells = <0>;
  sound-name-prefix = "DIR";
 };

 spdif_dit: audio-codec-1 {
  compatible = "linux,spdif-dit";
  #sound-dai-cells = <0>;
  sound-name-prefix = "DIT";
 };

 chosen {
  stdout-path = "serial0:115200n8";
 };

 cvbs-connector {
  compatible = "composite-video-connector";

  port {
   cvbs_connector_in: endpoint {
    remote-endpoint = <&cvbs_vdac_out>;
   };
  };
 };

 emmc_pwrseq: emmc-pwrseq {
  compatible = "mmc-pwrseq-emmc";
  reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
 };

 hdmi-connector {
  compatible = "hdmi-connector";
  type = "a";

  port {
   hdmi_connector_in: endpoint {
    remote-endpoint = <&hdmi_tx_tmds_out>;
   };
  };
 };

 memory@0 {
  device_type = "memory";
  reg = <0x0 0x0 0x0 0x40000000>;
 };

 flash_1v8: regulator-flash-1v8 {
  compatible = "regulator-fixed";
  regulator-name = "FLASH_1V8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&vcc_3v3>;
  regulator-always-on;
 };

 main_12v: regulator-main-12v {
  compatible = "regulator-fixed";
  regulator-name = "12V";
  regulator-min-microvolt = <12000000>;
  regulator-max-microvolt = <12000000>;
  regulator-always-on;
 };

 usb_pwr_en: regulator-usb-pwr-en {
  compatible = "regulator-fixed";
  regulator-name = "USB_PWR_EN";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  vin-supply = <&vcc_5v>;

  gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 vcc_1v8: regulator-vcc-1v8 {
  compatible = "regulator-fixed";
  regulator-name = "VCC_1V8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&vcc_3v3>;
  regulator-always-on;
 };

 vcc_3v3: regulator-vcc-3v3 {
  compatible = "regulator-fixed";
  regulator-name = "VCC_3V3";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <&vddao_3v3>;
  regulator-always-on;
  /* FIXME: actually controlled by VDDCPU_B_EN */
 };

 vcc_5v: regulator-vcc-5v {
  compatible = "regulator-fixed";
  regulator-name = "VCC_5V";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  vin-supply = <&main_12v>;

  gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
  enable-active-high;
 };

 vddao_1v8: regulator-vddao-1v8 {
  compatible = "regulator-fixed";
  regulator-name = "VDDAO_1V8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&vddao_3v3>;
  regulator-always-on;
 };

 vddao_3v3: regulator-vddao-3v3 {
  compatible = "regulator-fixed";
  regulator-name = "VDDAO_3V3";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <&main_12v>;
  regulator-always-on;
 };

 vddcpu: regulator-vddcpu {
  /*
   * MP8756GD Regulator.
   */
  compatible = "pwm-regulator";

  regulator-name = "VDDCPU";
  regulator-min-microvolt = <721000>;
  regulator-max-microvolt = <1022000>;

  pwm-supply = <&main_12v>;

  pwms = <&pwm_AO_cd 1 1250 0>;
  pwm-dutycycle-range = <100 0>;

  regulator-boot-on;
  regulator-always-on;
 };

 sound {
  compatible = "amlogic,axg-sound-card";
  model = "U200";
  audio-widgets = "Line", "Lineout";
  audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&tdmout_c>,
     <&tdmin_a>, <&tdmin_b>, <&tdmin_c>,
     <&tdmin_lb>, <&dioo2133>;
  audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
    "TDMOUT_A IN 1", "FRDDR_B OUT 0",
    "TDMOUT_A IN 2", "FRDDR_C OUT 0",
    "TDM_A Playback", "TDMOUT_A OUT",
    "TDMOUT_B IN 0", "FRDDR_A OUT 1",
    "TDMOUT_B IN 1", "FRDDR_B OUT 1",
    "TDMOUT_B IN 2", "FRDDR_C OUT 1",
    "TDM_B Playback", "TDMOUT_B OUT",
    "TDMOUT_C IN 0", "FRDDR_A OUT 2",
    "TDMOUT_C IN 1", "FRDDR_B OUT 2",
    "TDMOUT_C IN 2", "FRDDR_C OUT 2",
    "TDM_C Playback", "TDMOUT_C OUT",
    "SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
    "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
    "SPDIFOUT_A IN 2", "FRDDR_C OUT 3",
    "SPDIFOUT_B IN 0", "FRDDR_A OUT 4",
    "SPDIFOUT_B IN 1", "FRDDR_B OUT 4",
    "SPDIFOUT_B IN 2", "FRDDR_C OUT 4",
    "TDMIN_A IN 0", "TDM_A Capture",
    "TDMIN_A IN 1", "TDM_B Capture",
    "TDMIN_A IN 2", "TDM_C Capture",
    "TDMIN_A IN 3", "TDM_A Loopback",
    "TDMIN_A IN 4", "TDM_B Loopback",
    "TDMIN_A IN 5", "TDM_C Loopback",
    "TDMIN_B IN 0", "TDM_A Capture",
    "TDMIN_B IN 1", "TDM_B Capture",
    "TDMIN_B IN 2", "TDM_C Capture",
    "TDMIN_B IN 3", "TDM_A Loopback",
    "TDMIN_B IN 4", "TDM_B Loopback",
    "TDMIN_B IN 5", "TDM_C Loopback",
    "TDMIN_C IN 0", "TDM_A Capture",
    "TDMIN_C IN 1", "TDM_B Capture",
    "TDMIN_C IN 2", "TDM_C Capture",
    "TDMIN_C IN 3", "TDM_A Loopback",
    "TDMIN_C IN 4", "TDM_B Loopback",
    "TDMIN_C IN 5", "TDM_C Loopback",
    "TDMIN_LB IN 3", "TDM_A Capture",
    "TDMIN_LB IN 4", "TDM_B Capture",
    "TDMIN_LB IN 5", "TDM_C Capture",
    "TDMIN_LB IN 0", "TDM_A Loopback",
    "TDMIN_LB IN 1", "TDM_B Loopback",
    "TDMIN_LB IN 2", "TDM_C Loopback",
    "TODDR_A IN 0", "TDMIN_A OUT",
    "TODDR_B IN 0", "TDMIN_A OUT",
    "TODDR_C IN 0", "TDMIN_A OUT",
    "TODDR_A IN 1", "TDMIN_B OUT",
    "TODDR_B IN 1", "TDMIN_B OUT",
    "TODDR_C IN 1", "TDMIN_B OUT",
    "TODDR_A IN 2", "TDMIN_C OUT",
    "TODDR_B IN 2", "TDMIN_C OUT",
    "TODDR_C IN 2", "TDMIN_C OUT",
    "TODDR_A IN 3", "SPDIFIN Capture",
    "TODDR_B IN 3", "SPDIFIN Capture",
    "TODDR_C IN 3", "SPDIFIN Capture",
    "TODDR_A IN 6", "TDMIN_LB OUT",
    "TODDR_B IN 6", "TDMIN_LB OUT",
    "TODDR_C IN 6", "TDMIN_LB OUT",
    "10U2 INL", "ACODEC LOLP",
    "10U2 INR", "ACODEC LORP",
    "Lineout", "10U2 OUTL",
    "Lineout", "10U2 OUTR";

  clocks = <&clkc CLKID_MPLL2>,
    <&clkc CLKID_MPLL0>,
    <&clkc CLKID_MPLL1>;

  assigned-clocks = <&clkc CLKID_MPLL2>,
      <&clkc CLKID_MPLL0>,
      <&clkc CLKID_MPLL1>;
  assigned-clock-parents = <0>, <0>, <0>;
  assigned-clock-rates = <294912000>,
           <270950400>,
           <393216000>;

  dai-link-0 {
   sound-dai = <&frddr_a>;
  };

  dai-link-1 {
   sound-dai = <&frddr_b>;
  };

  dai-link-2 {
   sound-dai = <&frddr_c>;
  };

  dai-link-3 {
   sound-dai = <&toddr_a>;
  };

  dai-link-4 {
   sound-dai = <&toddr_b>;
  };

  dai-link-5 {
   sound-dai = <&toddr_c>;
  };

  /* Connected to the WIFI/BT chip */
  dai-link-6 {
   sound-dai = <&tdmif_a>;
   dai-format = "dsp_a";
   dai-tdm-slot-tx-mask-0 = <1 1>;
   mclk-fs = <256>;

   codec-0 {
    sound-dai = <&toacodec TOACODEC_IN_A>;
   };

   codec-1 {
    sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
   };
  };

  /* Connected to the onboard AD82584F DAC */
  dai-link-7 {
   sound-dai = <&tdmif_b>;
   dai-format = "i2s";
   dai-tdm-slot-tx-mask-0 = <1 1>;
   mclk-fs = <256>;

   codec-0 {
    sound-dai = <&toacodec TOACODEC_IN_B>;
   };

   codec-1 {
    sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
   };
  };

  /* 8ch HDMI interface */
  dai-link-8 {
   sound-dai = <&tdmif_c>;
   dai-format = "i2s";
   dai-tdm-slot-tx-mask-0 = <1 1>;
   dai-tdm-slot-tx-mask-1 = <1 1>;
   dai-tdm-slot-tx-mask-2 = <1 1>;
   dai-tdm-slot-tx-mask-3 = <1 1>;
   mclk-fs = <256>;

   codec-0 {
    sound-dai = <&toacodec TOACODEC_IN_C>;
   };

   codec-1 {
    sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
   };
  };

  /* spdif hdmi and coax output */
  dai-link-9 {
   sound-dai = <&spdifout_a>;

   codec-0 {
    sound-dai = <&spdif_dit>;
   };

   codec-1 {
    sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
   };
  };

  /* spdif hdmi interface */
  dai-link-10 {
   sound-dai = <&spdifout_b>;

   codec {
    sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
   };
  };

  /* hdmi glue */
  dai-link-11 {
   sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;

   codec {
    sound-dai = <&hdmi_tx>;
   };
  };

  /* internal codec glue */
  dai-link-12 {
   sound-dai = <&toacodec TOACODEC_OUT>;

   codec {
    sound-dai = <&acodec>;
   };
  };

  /* spdif coax input */
  dai-link-13 {
   sound-dai = <&spdifin>;

   codec {
    sound-dai = <&spdif_dir>;
   };
  };
 };
};

&acodec {
 AVDD-supply = <&vddao_1v8>;
 status = "okay";
};

&arb {
 status = "okay";
};

&cec_AO {
 pinctrl-0 = <&cec_ao_a_h_pins>;
 pinctrl-names = "default";
 status = "disabled";
 hdmi-phandle = <&hdmi_tx>;
};

&cecb_AO {
 pinctrl-0 = <&cec_ao_b_h_pins>;
 pinctrl-names = "default";
 status = "okay";
 hdmi-phandle = <&hdmi_tx>;
};

&clkc_audio {
 status = "okay";
};

&cpu0 {
 cpu-supply = <&vddcpu>;
 operating-points-v2 = <&cpu_opp_table>;
 clocks = <&clkc CLKID_CPU_CLK>;
};

&cpu1 {
 cpu-supply = <&vddcpu>;
 operating-points-v2 = <&cpu_opp_table>;
 clocks = <&clkc CLKID_CPU_CLK>;
};

&cpu2 {
 cpu-supply = <&vddcpu>;
 operating-points-v2 = <&cpu_opp_table>;
 clocks = <&clkc CLKID_CPU_CLK>;
};

&cpu3 {
 cpu-supply = <&vddcpu>;
 operating-points-v2 = <&cpu_opp_table>;
 clocks = <&clkc CLKID_CPU_CLK>;
};

&clkc_audio {
 status = "okay";
};

&cvbs_vdac_port {
 cvbs_vdac_out: endpoint {
  remote-endpoint = <&cvbs_connector_in>;
 };
};

ðmac {
 status = "okay";
 phy-handle = <&internal_ephy>;
 phy-mode = "rmii";
};

&frddr_a {
 status = "okay";
};

&frddr_b {
 status = "okay";
};

&frddr_c {
 status = "okay";
};

&hdmi_tx {
 status = "okay";
 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
 pinctrl-names = "default";
 hdmi-supply = <&vcc_5v>;
};

&hdmi_tx_tmds_port {
 hdmi_tx_tmds_out: endpoint {
  remote-endpoint = <&hdmi_connector_in>;
 };
};

&ir {
 status = "okay";
 pinctrl-0 = <&remote_input_ao_pins>;
 pinctrl-names = "default";
};

/* i2c Touch */
&i2c0 {
 status = "okay";
 pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>;
 pinctrl-names = "default";
};

/* i2c CM */
&i2c2 {
 status = "okay";
 pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>;
 pinctrl-names = "default";
};

/* i2c Audio */
&i2c3 {
 status = "okay";
 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
 pinctrl-names = "default";
};

&pwm_AO_cd {
 pinctrl-0 = <&pwm_ao_d_e_pins>;
 pinctrl-names = "default";
 status = "okay";
};

/* SD card */
&sd_emmc_b {
 status = "okay";
 pinctrl-0 = <&sdcard_c_pins>;
 pinctrl-1 = <&sdcard_clk_gate_c_pins>;
 pinctrl-names = "default", "clk-gate";

 bus-width = <4>;
 cap-sd-highspeed;
 max-frequency = <50000000>;
 disable-wp;

 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
 vmmc-supply = <&vddao_3v3>;
 vqmmc-supply = <&vddao_3v3>;
};

/* eMMC */
&sd_emmc_c {
 status = "okay";
 pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
 pinctrl-1 = <&emmc_clk_gate_pins>;
 pinctrl-names = "default", "clk-gate";

 bus-width = <8>;
 cap-mmc-highspeed;
 mmc-ddr-1_8v;
 mmc-hs200-1_8v;
 max-frequency = <200000000>;
 non-removable;
 disable-wp;

 mmc-pwrseq = <&emmc_pwrseq>;
 vmmc-supply = <&vcc_3v3>;
 vqmmc-supply = <&flash_1v8>;
};

&spdifin {
 pinctrl-0 = <&spdif_in_h_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&spdifout_a {
 pinctrl-0 = <&spdif_ao_out_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&spdifout_b {
 status = "okay";
};

&tdmif_a {
 pinctrl-0 = <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>, <&tdm_a_dout0_pins> ;
 pinctrl-names = "default";
 status = "okay";
};

&tdmif_b {
 pinctrl-0 = <&mclk0_a_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>,
      <&tdm_b_dout0_pins>;
 pinctrl-names = "default";
 status = "okay";

 assigned-clocks = <&clkc_audio AUD_CLKID_TDM_MCLK_PAD0>,
     <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>,
     <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
 assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
     <&clkc_audio AUD_CLKID_MST_B_SCLK>,
     <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
 assigned-clock-rates = <0>, <0>, <0>;
};

&tdmif_c {
 status = "okay";
};

&tdmin_a {
 status = "okay";
};

&tdmin_b {
 status = "okay";
};

&tdmin_c {
 status = "okay";
};

&tdmin_lb {
 status = "okay";
};

&tdmout_a {
 status = "okay";
};

&tdmout_b {
 status = "okay";
};

&tdmout_c {
 status = "okay";
};

&toacodec {
 status = "okay";
};

&toddr_a {
 status = "okay";
};

&toddr_b {
 status = "okay";
};

&toddr_c {
 status = "okay";
};

&tohdmitx {
 status = "okay";
};

&uart_AO {
 status = "okay";
 pinctrl-0 = <&uart_ao_a_pins>;
 pinctrl-names = "default";
};

&usb {
 status = "okay";
 vbus-supply = <&usb_pwr_en>;
};

&usb2_phy0 {
 phy-supply = <&vcc_5v>;
};

&usb2_phy1 {
 phy-supply = <&vcc_5v>;
};

[ Dauer der Verarbeitung: 0.5 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge