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


Quelle  cn9132-sr-cex7.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
 *
 */

#include <dt-bindings/gpio/gpio.h>

/*
 * Instantiate the first external CP115
 */

#define CP11X_NAME  cp1
#define CP11X_BASE  f4000000
#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
#define CP11X_PCIE0_BASE f4600000
#define CP11X_PCIE1_BASE f4620000
#define CP11X_PCIE2_BASE f4640000

#include "armada-cp115.dtsi"

#undef CP11X_NAME
#undef CP11X_BASE
#undef CP11X_PCIEx_MEM_BASE
#undef CP11X_PCIEx_MEM_SIZE
#undef CP11X_PCIE0_BASE
#undef CP11X_PCIE1_BASE
#undef CP11X_PCIE2_BASE

/*
 * Instantiate the second external CP115
 */

#define CP11X_NAME  cp2
#define CP11X_BASE  f6000000
#define CP11X_PCIEx_MEM_BASE(iface) (0xe5000000 + (iface * 0x1000000))
#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
#define CP11X_PCIE0_BASE f6600000
#define CP11X_PCIE1_BASE f6620000
#define CP11X_PCIE2_BASE f6640000

#include "armada-cp115.dtsi"

#undef CP11X_NAME
#undef CP11X_BASE
#undef CP11X_PCIEx_MEM_BASE
#undef CP11X_PCIEx_MEM_SIZE
#undef CP11X_PCIE0_BASE
#undef CP11X_PCIE1_BASE
#undef CP11X_PCIE2_BASE

/ {
 model = "SolidRun CN9132 COM Express Type 7 Module";
 compatible = "solidrun,cn9132-sr-cex7", "marvell,cn9130";

 aliases {
  ethernet0 = &cp0_eth1;
  gpio3 = &cp1_gpio1;
  gpio4 = &cp1_gpio2;
  gpio5 = &cp2_gpio1;
  gpio6 = &cp2_gpio2;
  i2c0 = &cp0_i2c0;
  i2c1 = &cp0_i2c1;
  i2c2 = &com_clkgen_i2c;
  i2c3 = &com_10g_led_i2c;
  i2c4 = &com_10g_sfp_i2c0;
  i2c5 = &com_smbus;
  i2c6 = &com_fanctrl_i2c;
  mmc0 = &ap_sdhci0;
  rtc0 = &cp0_rtc;
 };

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

 fan: pwm-fan {
  compatible = "pwm-fan";
  cooling-levels = <0 51 102 153 204 255>;
  #cooling-cells = <2>;
  pinctrl-names = "default";
  pinctrl-0 = <&cp0_fan_pwm_pins &cp0_fan_tacho_pins>;
  pwms = <&cp0_gpio2 7 40000>;
  interrupt-parent = <&cp0_gpio1>;
  interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
 };

 v_1_8: regulator-1-8 {
  compatible = "regulator-fixed";
  regulator-name = "1v8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
 };

 ap_vhv: regulator-ap-vhv-1-8 {
  compatible = "regulator-fixed";
  regulator-name = "ap-vhv-1v8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  pinctrl-0 = <&cp0_reg_ap_vhv_pins>;
  pinctrl-names = "default";
  gpios = <&cp0_gpio2 21 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 cp_vhv: regulator-cp-vhv-1-8 {
  compatible = "regulator-fixed";
  regulator-name = "cp-vhv-1v8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  pinctrl-0 = <&cp0_reg_cp_vhv_pins>;
  pinctrl-names = "default";
  gpios = <&cp0_gpio2 17 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };
};

&ap_pinctrl {
 ap_mmc0_pins: ap-mmc0-pins {
  marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3", "mpp4", "mpp5",
        "mpp6", "mpp7", "mpp8", "mpp9", "mpp10", "mpp12";
  marvell,function = "sdio";
  /*
   * mpp12 is emmc reset, function should be sdio (hw_rst),
   * but pinctrl-mvebu does not support this.
   *
   * From pinctrl-mvebu.h:
   * "The name will be used to switch to this setting in DT description, e.g.
   * marvell,function = "uart2". subname is only for debugging purposes."
   */
 };
};

&ap_sdhci0 {
 bus-width = <8>;
 pinctrl-0 = <&ap_mmc0_pins>;
 pinctrl-names = "default";
 vqmmc-supply = <&v_1_8>;
 /*
  * Not stable in HS modes - phy needs "more calibration", so disable
  * UHS (by preventing voltage switch), SDR104, SDR50 and DDR50 modes.
  */
 no-1-8-v;
 no-sd;
 no-sdio;
 non-removable;
 status = "okay";
};

&ap_thermal_ic {
 polling-delay = <1000>;

 trips {
  ap_active: trip-active {
   temperature = <40000>;
   hysteresis = <4000>;
   type = "active";
  };
 };

 cooling-maps {
  map0 {
   trip = <&ap_active>;
   cooling-device = <&fan THERMAL_NO_LIMIT 4>;
  };

  map1 {
   trip = <&ap_crit>;
   cooling-device = <&fan 4 5>;
  };
 };
};

&cp0_ethernet {
 status = "okay";
};

&cp0_eth1 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_eth1_pins>;
 phy-mode = "rgmii-id";
 phy = <&cp0_eth_phy0>;
 status = "okay";
};

&cp0_gpio1 {
 status = "okay";

 /*
  * Tacho signal used as interrupt source by pwm-fan driver.
  * Hog IO as input to ensure mvebu-gpio irq driver`s
  * irq_set_type can succeed.
  */
 pwm-tacho-irq-hog {
  gpio-hog;
  gpios = <26 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
  input;
  line-name = "fan-tacho";
 };
};

&cp0_gpio2 {
 status = "okay";
};

&cp0_i2c0 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_i2c0_pins>;
 clock-frequency = <100000>;
 status = "okay";

 com_eeprom: eeprom@50 {
  compatible = "atmel,24c02";
  reg = <0x50>;
  pagesize = <8>;
 };

 eeprom@53 {
  compatible = "atmel,spd";
  reg = <0x53>;
 };
};

&cp0_i2c1 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_i2c1_pins>;
 clock-frequency = <100000>;
 status = "okay";

 i2c-mux@77 {
  compatible = "nxp,pca9547";
  reg = <0x77>;
  i2c-mux-idle-disconnect;
  #address-cells = <1>;
  #size-cells = <0>;

  com_clkgen_i2c: i2c@0 {
   #address-cells = <1>;
   #size-cells = <0>;
   reg = <0>;

   /* clock-controller@6b */
  };

  com_10g_led_i2c: i2c@1 {
   #address-cells = <1>;
   #size-cells = <0>;
   reg = <1>;

   /* Routed to B2B Connector as I2C_10G_LED_SCL/SDA */
  };

  com_10g_sfp_i2c0: i2c@2 {
   #address-cells = <1>;
   #size-cells = <0>;
   reg = <2>;

   /* Routed to B2B Connector as I2C_SFP0_CP0_SCL/SDA */
  };

  com_smbus: i2c@3 {
   #address-cells = <1>;
   #size-cells = <0>;
   reg = <3>;

   /* Routed to B2B Connector as SBM_CLK/DAT */
  };

  com_fanctrl_i2c: i2c@4 {
   #address-cells = <1>;
   #size-cells = <0>;
   reg = <4>;

   /* fan-controller@2f (assembly option) */
  };
 };
};

&cp0_mdio {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_mdio_pins>;
 status = "okay";

 cp0_eth_phy0: ethernet-phy@0 {
  reg = <0>;
 };
};

&cp0_spi1 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_spi1_pins>;
 status = "okay";

 flash@0 {
  compatible = "jedec,spi-nor";
  reg = <0>;
  /* read command supports max. 50MHz */
  spi-max-frequency = <50000000>;
 };
};

&cp0_syscon0 {
 cp0_pinctrl: pinctrl {
  compatible = "marvell,cp115-standalone-pinctrl";

  com_10g_int0_pins: cp0-10g-int-pins {
   marvell,pins = "mpp24";
   marvell,function = "gpio";
  };

  cp0_eth1_pins: cp0-eth1-pins {
   marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
           "mpp4", "mpp5", "mpp6", "mpp7",
           "mpp8", "mpp9", "mpp10", "mpp11";
   /* docs call it "ge1", but cp110-pinctrl "ge0" */
   marvell,function = "ge0";
  };

  cp0_fan_pwm_pins: cp0-fan-pwm-pins {
   marvell,pins = "mpp39";
   marvell,function = "gpio";
  };

  cp0_fan_tacho_pins: cp0-fan-tacho-pins {
   marvell,pins = "mpp26";
   marvell,function = "gpio";
  };

  cp0_i2c0_pins: cp0-i2c0-pins {
   marvell,pins = "mpp37", "mpp38";
   marvell,function = "i2c0";
  };

  cp0_i2c1_pins: cp0-i2c1-pins {
   marvell,pins = "mpp35", "mpp36";
   marvell,function = "i2c1";
  };

  cp0_mdio_pins: cp0-mdio-pins {
   marvell,pins = "mpp40", "mpp41";
   marvell,function = "ge";
  };

  cp0_mmc0_pins: cp0-mmc0-pins {
   marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59",
           "mpp60", "mpp61";
   marvell,function = "sdio";
  };

  cp0_mmc0_cd_pins: cp0-mmc0-cd-pins {
   marvell,pins = "mpp55";
   marvell,function = "sdio_cd";
  };

  cp0_pwrbtn_pins:  cp0-pwrbtn-pins {
   marvell,pins = "mpp31";
   marvell,function = "gpio";
  };

  cp0_reg_ap_vhv_pins: cp0-reg-ap-vhv-pins {
   marvell,pins = "mpp53";
   marvell,function = "gpio";
  };

  cp0_reg_cp_vhv_pins: cp0-reg-cp-vhv-pins {
   marvell,pins = "mpp49";
   marvell,function = "gpio";
  };

  cp0_spi1_pins: cp0-spi1-pins {
   marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
   marvell,function = "spi1";
  };

  cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
   marvell,pins = "mpp12";
   marvell,function = "spi1";
  };

  cp0_uart2_pins: cp0-uart2-pins  {
   marvell,pins = "mpp50", "mpp51";
   marvell,function = "uart2";
  };
 };
};

&cp0_thermal_ic {
 polling-delay = <1000>;

 trips {
  cp0_active: trip-active {
   temperature = <40000>;
   hysteresis = <4000>;
   type = "active";
  };
 };

 cooling-maps {
  map0 {
   trip = <&cp0_active>;
   cooling-device = <&fan THERMAL_NO_LIMIT 4>;
  };

  map1 {
   trip = <&cp0_crit>;
   cooling-device = <&fan 4 5>;
  };
 };
};

/* USB-2.0 Host */
&cp0_usb3_0 {
 phys = <&cp0_utmi0>;
 phy-names = "utmi";
 dr_mode = "host";
 status = "okay";
};

/* USB-2.0 Host */
&cp0_usb3_1 {
 phys = <&cp0_utmi1>;
 phy-names = "utmi";
 dr_mode = "host";
 status = "okay";
};

&cp0_utmi {
 status = "okay";
};

&cp1_gpio1 {
 status = "okay";
};

&cp1_gpio2 {
 status = "okay";
};

&cp1_rtc {
 status = "disabled";
};

&cp1_spi1 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp1_spi1_pins>;
 status = "okay";

 tpm@0 {
  reg = <0>;
  compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
  spi-max-frequency = <10000000>;
  pinctrl-names  = "default";
  pinctrl-0 = <&cp1_tpm_irq_pins>;
  interrupt-parent = <&cp1_gpio1>;
  interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
 };
};

&cp1_syscon0 {
 cp1_pinctrl: pinctrl {
  compatible = "marvell,cp115-standalone-pinctrl";

  com_10g_int1_pins: cp1-10g-int-pins {
   marvell,pins = "mpp50";
   marvell,function = "gpio";
  };

  cp1_10g_phy_rst_01_pins: cp1-10g-phy-rst-01-pins {
   marvell,pins = "mpp43";
   marvell,function = "gpio";
  };

  cp1_10g_phy_rst_23_pins: cp1-10g-phy-rst-23-pins {
   marvell,pins = "mpp42";
   marvell,function = "gpio";
  };

  cp1_batlow_pins: cp1-batlow-pins {
   marvell,pins = "mpp11";
   marvell,function = "gpio";
  };

  cp1_rsvd16_pins: cp1-rsvd16-pins {
   marvell,pins = "mpp29";
   marvell,function = "gpio";
  };

  cp1_sata_act_pins: cp1-sata-act-pins {
   marvell,pins = "mpp39";
   marvell,function = "gpio";
  };

  cp1_spi1_pins: cp1-spi1-pins {
   marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
   marvell,function = "spi1";
  };

  cp1_thrm_irq_pins: cp1-thrm-irq-pins {
   marvell,pins = "mpp34";
   marvell,function = "gpio";
  };

  cp1_thrm_trip_pins: cp1-thrm-trip-pins {
   marvell,pins = "mpp33";
   marvell,function = "gpio";
  };

  cp1_tpm_irq_pins: cp1-tpm-irq-pins {
   marvell,pins = "mpp17";
   marvell,function = "gpio";
  };

  cp1_wake0_pins: cp1-wake0-pins {
   marvell,pins = "mpp40";
   marvell,function = "gpio";
  };

  cp1_wake1_pins: cp1-wake1-pins {
   marvell,pins = "mpp51";
   marvell,function = "gpio";
  };

  cp1_xmdio_pins: cp1-xmdio-pins {
   marvell,pins = "mpp37", "mpp38";
   marvell,function = "xg";
  };
 };
};

&cp1_thermal_ic {
 polling-delay = <1000>;

 trips {
  cp1_active: trip-active {
   temperature = <40000>;
   hysteresis = <4000>;
   type = "active";
  };
 };

 cooling-maps {
  map0 {
   trip = <&cp1_active>;
   cooling-device = <&fan THERMAL_NO_LIMIT 4>;
  };

  map1 {
   trip = <&cp1_crit>;
   cooling-device = <&fan 4 5>;
  };
 };
};

/* USB-2.0 Host */
&cp1_usb3_0 {
 phys = <&cp1_utmi0>;
 phy-names = "utmi";
 dr_mode = "host";
 status = "okay";
};

&cp1_utmi {
 status = "okay";
};

&cp2_ethernet {
 status = "okay";
};

&cp2_gpio1 {
 status = "okay";
};

&cp2_gpio2 {
 status = "okay";
};

&cp2_rtc {
 status = "disabled";
};

&cp2_syscon0 {
 cp2_pinctrl: pinctrl {
  compatible = "marvell,cp115-standalone-pinctrl";

  com_10g_int2_pins: cp2-10g-int-pins {
   marvell,pins = "mpp50";
   marvell,function = "gpio";
  };

  cp2_rsvd0_pins: cp2-rsvd0-pins {
   marvell,pins = "mpp0";
   marvell,function = "gpio";
  };

  cp2_rsvd1_pins: cp2-rsvd1-pins {
   marvell,pins = "mpp1";
   marvell,function = "gpio";
  };

  cp2_rsvd2_pins: cp2-rsvd2-pins {
   marvell,pins = "mpp2";
   marvell,function = "gpio";
  };

  cp2_rsvd3_pins: cp2-rsvd3-pins {
   marvell,pins = "mpp3";
   marvell,function = "gpio";
  };

  cp2_rsvd4_pins: cp2-rsvd4-pins {
   marvell,pins = "mpp4";
   marvell,function = "gpio";
  };

  cp2_rsvd5_pins: cp2-rsvd5-pins {
   marvell,pins = "mpp54";
   marvell,function = "gpio";
  };

  cp2_rsvd7_pins: cp2-rsvd7-pins {
   marvell,pins = "mpp7";
   marvell,function = "gpio";
  };

  cp2_rsvd8_pins: cp2-rsvd8-pins {
   marvell,pins = "mpp8";
   marvell,function = "gpio";
  };

  cp2_rsvd9_pins: cp2-rsvd9-pins {
   marvell,pins = "mpp9";
   marvell,function = "gpio";
  };

  cp2_rsvd10_pins: cp2-rsvd10-pins {
   marvell,pins = "mpp10";
   marvell,function = "gpio";
  };

  cp2_rsvd11_pins: cp2-rsvd11-pins {
   marvell,pins = "mpp11";
   marvell,function = "gpio";
  };

  cp2_rsvd27_pins: cp2-rsvd27-pins {
   marvell,pins = "mpp11";
   marvell,function = "gpio";
  };

  cp2_rsvd31_pins: cp2-rsvd31-pins {
   marvell,pins = "mpp31";
   marvell,function = "gpio";
  };

  cp2_rsvd32_pins: cp2-rsvd32-pins {
   marvell,pins = "mpp32";
   marvell,function = "gpio";
  };

  cp2_rsvd55_pins: cp2-rsvd55-pins {
   marvell,pins = "mpp55";
   marvell,function = "gpio";
  };

  cp2_rsvd56_pins: cp2-rsvd56-pins {
   marvell,pins = "mpp56";
   marvell,function = "gpio";
  };

  cp2_xmdio_pins: cp2-xmdio-pins {
   marvell,pins = "mpp37", "mpp38";
   marvell,function = "xg";
  };
 };
};

&cp2_thermal_ic {
 polling-delay = <1000>;

 trips {
  cp2_active: trip-active {
   temperature = <40000>;
   hysteresis = <4000>;
   type = "active";
  };
 };

 cooling-maps {
  map0 {
   trip = <&cp2_active>;
   cooling-device = <&fan THERMAL_NO_LIMIT 4>;
  };

  map1 {
   trip = <&cp2_crit>;
   cooling-device = <&fan 4 5>;
  };
 };
};

/* USB-2.0/3.0 Host */
&cp2_usb3_0 {
 phys = <&cp2_utmi0>, <&cp2_comphy1 0>;
 phy-names = "utmi", "comphy";
 dr_mode = "host";
 status = "okay";
};

&cp2_utmi {
 status = "okay";
};

/* AP default console */
&uart0 {
 pinctrl-0 = <&uart0_pins>;
 pinctrl-names = "default";
 status = "okay";
};

[ Dauer der Verarbeitung: 0.16 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