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


Quelle  meson-gx-libretech-pc.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2019 BayLibre SAS.
 * Author: Jerome Brunet <jbrunet@baylibre.com>
 */

/* Libretech Amlogic GX PC form factor - AKA: Tartiflette */

#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-aiu.h>

/ {
 adc-keys {
  compatible = "adc-keys";
  io-channels = <&saradc 0>;
  io-channel-names = "buttons";
  keyup-threshold-microvolt = <1800000>;

  button-update {
   label = "update";
   linux,code = <KEY_VENDOR>;
   press-threshold-microvolt = <1300000>;
  };
 };

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

 dio2133: analog-amplifier {
  compatible = "simple-audio-amplifier";
  sound-name-prefix = "AU2";
  VCC-supply = <&vcc5v>;
  enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
 };

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

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

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

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

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

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

 gpio-keys-polled {
  compatible = "gpio-keys-polled";
  poll-interval = <100>;

  power-button {
   label = "power";
   linux,code = <KEY_POWER>;
   gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
  };
 };

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

 ao_5v: regulator-ao-5v {
  compatible = "regulator-fixed";
  regulator-name = "AO_5V";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  vin-supply = <&dc_in>;
  regulator-always-on;
 };

 dc_in: regulator-dc-in {
  compatible = "regulator-fixed";
  regulator-name = "DC_IN";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  regulator-always-on;
 };

 leds {
  compatible = "gpio-leds";

  led-green {
   color = <LED_COLOR_ID_GREEN>;
   function = LED_FUNCTION_DISK_ACTIVITY;
   gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "disk-activity";
  };

  led-blue {
   color = <LED_COLOR_ID_BLUE>;
   function = LED_FUNCTION_STATUS;
   gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "heartbeat";
   panic-indicator;
  };
 };

 vcc_card: regulator-vcc-card {
  compatible = "regulator-fixed";
  regulator-name = "VCC_CARD";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <&vddio_ao3v3>;

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

 vcc5v: regulator-vcc5v {
  compatible = "regulator-fixed";
  regulator-name = "VCC5V";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  vin-supply = <&ao_5v>;

  gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
 };

 vddio_ao18: regulator-vddio-ao18 {
  compatible = "regulator-fixed";
  regulator-name = "VDDIO_AO18";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&ao_5v>;
  regulator-always-on;
 };

 vddio_ao3v3: regulator-vddio-ao3v3 {
  compatible = "regulator-fixed";
  regulator-name = "VDDIO_AO3V3";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <&ao_5v>;
  regulator-always-on;
 };

 vddio_boot: regulator-vddio-boot {
  compatible = "regulator-fixed";
  regulator-name = "VDDIO_BOOT";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&vddio_ao3v3>;
  regulator-always-on;
 };

 vddio_card: regulator-vddio-card {
  compatible = "regulator-gpio";
  regulator-name = "VDDIO_CARD";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <3300000>;

  gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
  gpios-states = <0>;

  states = <3300000 0>,
    <1800000 1>;

  regulator-settling-time-up-us = <200>;
  regulator-settling-time-down-us = <50000>;
 };

 sound {
  compatible = "amlogic,gx-sound-card";
  model = "LIBRETECH-PC";
  audio-aux-devs = <&dio2133>;
  audio-widgets = "Speaker", "7J4-14 LEFT",
    "Speaker", "7J4-11 RIGHT";
  audio-routing = "AU2 INL", "ACODEC LOLN",
    "AU2 INR", "ACODEC LORN",
    "7J4-14 LEFT", "AU2 OUTL",
    "7J4-11 RIGHT", "AU2 OUTR";
  clocks = <&clkc CLKID_MPLL0>,
    <&clkc CLKID_MPLL1>,
    <&clkc CLKID_MPLL2>;

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

  dai-link-0 {
   sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
  };

  dai-link-1 {
   sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
   dai-format = "i2s";
   mclk-fs = <256>;

   codec-0 {
    sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
   };

   codec-1 {
    sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
   };
  };

  dai-link-2 {
   sound-dai = <&aiu AIU_HDMI CTRL_OUT>;

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

  dai-link-3 {
   sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;

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

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

&aiu {
 status = "okay";
};

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

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

ðmac {
 pinctrl-0 = <ð_pins>, <ð_phy_irq_pins>;
 pinctrl-names = "default";
 phy-handle = <&external_phy>;
 amlogic,tx-delay-ns = <2>;
 phy-mode = "rgmii";
 status = "okay";
};

&external_mdio {
 external_phy: ethernet-phy@0 {
  reg = <0>;
  max-speed = <1000>;
  reset-assert-us = <10000>;
  reset-deassert-us = <30000>;
  reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
  interrupt-parent = <&gpio_intc>;
  interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
 };
};

&pinctrl_periphs {
 /*
  * Make sure the reset pin of the usb HUB is driven high to take
  * it out of reset.
  */
 usb1_rst_pins: usb1_rst_irq {
  mux {
   groups = "GPIODV_3";
   function = "gpio_periphs";
   bias-disable;
   output-high;
  };
 };

 /* Make sure the phy irq pin is properly configured as input */
 eth_phy_irq_pins: eth_phy_irq {
  mux {
   groups = "GPIOZ_15";
   function = "gpio_periphs";
   bias-disable;
   output-disable;
  };
 };
};

&hdmi_tx {
 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
 pinctrl-names = "default";
 hdmi-supply = <&vcc5v>;
 status = "okay";
};

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

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

&i2c_C {
 pinctrl-0 = <&i2c_c_dv18_pins>;
 pinctrl-names = "default";
 status = "okay";

 rtc: rtc@51 {
  reg = <0x51>;
  compatible = "nxp,pcf8563";
  #clock-cells = <0>;
  clock-output-names = "rtc_clkout";
 };
};

&pwm_AO_ab {
 pinctrl-0 = <&pwm_ao_a_3_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&pwm_ab {
 pinctrl-0 = <&pwm_b_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&pwm_ef {
 pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&saradc {
 vref-supply = <&vddio_ao18>;
 status = "okay";
};

/* SD card */
&sd_emmc_b {
 pinctrl-0 = <&sdcard_pins>;
 pinctrl-1 = <&sdcard_clk_gate_pins>;
 pinctrl-names = "default", "clk-gate";

 bus-width = <4>;
 cap-sd-highspeed;
 sd-uhs-sdr12;
 sd-uhs-sdr25;
 sd-uhs-sdr50;
 sd-uhs-ddr50;
 max-frequency = <200000000>;
 disable-wp;

 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;

 vmmc-supply = <&vcc_card>;
 vqmmc-supply = <&vddio_card>;

 status = "okay";
};

/* eMMC */
&sd_emmc_c {
 pinctrl-0 = <&emmc_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>;
 disable-wp;

 mmc-pwrseq = <&emmc_pwrseq>;
 vmmc-supply = <&vddio_ao3v3>;
 vqmmc-supply = <&vddio_boot>;

 status = "okay";
};

&spifc {
 pinctrl-0 = <&nor_pins>;
 pinctrl-names = "default";
 status = "okay";

 gd25lq128: flash@0 {
  compatible = "jedec,spi-nor";
  #address-cells = <1>;
  #size-cells = <1>;
  reg = <0>;
  spi-max-frequency = <12000000>;
 };
};

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

&usb {
 status = "okay";
 dr_mode = "host";
};

&usb2_phy0 {
 pinctrl-0 = <&usb1_rst_pins>;
 pinctrl-names = "default";
 phy-supply = <&vcc5v>;
};

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

[ 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