Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm64/boot/dts/marvell/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 12 kB image not shown  

Quelle  cn9131-cf-solidwan.dts   Sprache: unbekannt

 
Spracherkennung für: .dts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
 *
 * DTS for SolidRun CN9130 Clearfog Base.
 *
 */

/dts-v1/;

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

#include "cn9130.dtsi"
#include "cn9130-sr-som.dtsi"

/*
 * Instantiate the 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

/ {
 model = "SolidRun CN9131 SolidWAN";
 compatible = "solidrun,cn9131-solidwan",
       "solidrun,cn9130-sr-som", "marvell,cn9130";

 aliases {
  ethernet0 = &cp1_eth1;
  ethernet1 = &cp1_eth2;
  ethernet2 = &cp0_eth1;
  ethernet3 = &cp0_eth2;
  ethernet4 = &cp0_eth0;
  ethernet5 = &cp1_eth0;
  gpio0 = &ap_gpio;
  gpio1 = &cp0_gpio1;
  gpio2 = &cp0_gpio2;
  gpio3 = &cp1_gpio1;
  gpio4 = &cp1_gpio2;
  gpio5 = &expander0;
  i2c0 = &cp0_i2c0;
  i2c1 = &cp0_i2c1;
  i2c2 = &cp1_i2c1;
  mmc0 = &ap_sdhci0;
  mmc1 = &cp0_sdhci0;
  rtc0 = &cp0_rtc;
  rtc1 = &carrier_rtc;
 };

 leds {
  compatible = "gpio-leds";
  pinctrl-names = "default";
  pinctrl-0 = <&cp0_led_pins &cp1_led_pins>;

  /* for sfp-1 (J42) */
  led-sfp1-activity {
   label = "sfp1:green";
   gpios = <&cp0_gpio1 7 GPIO_ACTIVE_HIGH>;
  };

  /* for sfp-1 (J42) */
  led-sfp1-link {
   label = "sfp1:yellow";
   gpios = <&cp0_gpio1 4 GPIO_ACTIVE_HIGH>;
  };

  /* (J28) */
  led-sfp0-activity {
   label = "sfp0:green";
   gpios = <&cp1_gpio2 22 GPIO_ACTIVE_HIGH>;
  };

  /* (J28) */
  led-sfp0-link {
   label = "sfp0:yellow";
   gpios = <&cp1_gpio2 23 GPIO_ACTIVE_HIGH>;
  };
 };

 /* Type-A port on J53 */
 reg_usb_a_vbus0: regulator-usb-a-vbus0 {
  compatible = "regulator-fixed";
  pinctrl-0 = <&cp0_reg_usb_a_vbus0_pins>;
  pinctrl-names = "default";
  regulator-name = "vbus0";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  gpios = <&cp0_gpio1 27 GPIO_ACTIVE_HIGH>;
  enable-active-high;
  regulator-always-on;
 };

 reg_usb_a_vbus1: regulator-usb-a-vbus1 {
  compatible = "regulator-fixed";
  pinctrl-0 = <&cp0_reg_usb_a_vbus1_pins>;
  pinctrl-names = "default";
  regulator-name = "vbus1";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  gpios = <&cp0_gpio1 28 GPIO_ACTIVE_HIGH>;
  enable-active-high;
  regulator-always-on;
 };

 sfp0: sfp-0 {
  compatible = "sff,sfp";
  pinctrl-0 = <&cp0_sfp0_pins>;
  pinctrl-names = "default";
  i2c-bus = <&cp0_i2c1>;
  los-gpios = <&cp0_gpio2 2 GPIO_ACTIVE_HIGH>;
  mod-def0-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
  tx-disable-gpios = <&cp0_gpio2 1 GPIO_ACTIVE_HIGH>;
  tx-fault-gpios = <&cp0_gpio1 31 GPIO_ACTIVE_HIGH>;
  maximum-power-milliwatt = <2000>;
 };

 sfp1: sfp-1 {
  compatible = "sff,sfp";
  pinctrl-0 = <&cp1_sfp1_pins>;
  pinctrl-names = "default";
  i2c-bus = <&cp1_i2c1>;
  los-gpios = <&cp1_gpio2 2 GPIO_ACTIVE_HIGH>;
  mod-def0-gpios = <&cp1_gpio2 18 GPIO_ACTIVE_LOW>;
  tx-disable-gpios = <&cp1_gpio2 1 GPIO_ACTIVE_HIGH>;
  tx-fault-gpios = <&cp1_gpio2 17 GPIO_ACTIVE_HIGH>;
  maximum-power-milliwatt = <2000>;
 };
};

&cp0_ethernet {
 status = "okay";
};

/* SRDS #2 - SFP+ 10GE */
&cp0_eth0 {
 managed = "in-band-status";
 phy-mode = "10gbase-r";
 phys = <&cp0_comphy2 0>;
 sfp = <&sfp0>;
 status = "okay";
};

/* SRDS #3 - SGMII 1GE */
&cp0_eth1 {
 managed = "in-band-status";
 phy-mode = "sgmii";
 /* Without mdio phy access rely on sgmii auto-negotiation. */
 phys = <&cp0_comphy3 1>;
 status = "okay";
};

/* SRDS #1 - SGMII */
&cp0_eth2 {
 /delete-property/ pinctrl-0;
 /delete-property/ pinctrl-names;
 managed = "in-band-status";
 phy-mode = "sgmii";
 phy = <&cp0_phy1>;
 phys = <&cp0_comphy1 2>;
};

&cp0_gpio1 {
 pcie0-0-w-disable-hog {
  gpio-hog;
  gpios = <6 GPIO_ACTIVE_LOW>;
  output-low;
  line-name = "pcie0.0-w-disable";
 };

 /* J34 */
 m2-full-card-power-off-hog {
  gpio-hog;
  gpios = <8 GPIO_ACTIVE_LOW>;
  output-low;
  line-name = "m2-full-card-power-off";
 };
};

&cp0_i2c0 {
 /* assembly option */
 fan-controller@18 {
  compatible = "ti,amc6821";
  reg = <0x18>;
 };

 expander0: gpio@41 {
  compatible = "nxp,pca9536";
  reg = <0x41>;

  usb-a-vbus0-ilimit-hog {
   gpio-hog;
   gpios = <0 GPIO_ACTIVE_LOW>;
   input;
   line-name = "vbus0-ilimit";
  };

  /* duplicate connection, controlled by soc gpio */
  usb-vbus0-enable-hog {
   gpio-hog;
   gpios = <1 GPIO_ACTIVE_HIGH>;
   input;
   line-name = "vbus0-enable";
  };

  usb-a-vbus1-ilimit-hog {
   gpio-hog;
   gpios = <2 GPIO_ACTIVE_LOW>;
   input;
   line-name = "vbus1-ilimit";
  };

  /* duplicate connection, controlled by soc gpio */
  usb-vbus1-enable-hog {
   gpio-hog;
   gpios = <3 GPIO_ACTIVE_HIGH>;
   input;
   line-name = "vbus1-enable";
  };
 };

 carrier_eeprom: eeprom@52 {
  compatible = "atmel,24c02";
  reg = <0x52>;
  pagesize = <8>;
 };

 /* usb-hub@60 */

 /* assembly option */
 carrier_rtc: rtc@68 {
  compatible = "st,m41t83";
  reg = <0x68>;
  pinctrl-0 = <&cp1_rtc_pins>;
  pinctrl-names = "default";
  interrupt-parent = <&cp1_gpio1>;
  interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
  reset-gpios = <&cp1_gpio1 13 GPIO_ACTIVE_LOW>;
 };
};

&cp0_i2c1 {
 /*
  * Routed to SFP.
  * Limit to 100kHz for compatibility with SFP modules,
  * featuring AT24C01A/02/04 at addresses 0x50/0x51.
  */
 clock-frequency = <100000>;
 pinctrl-0 = <&cp0_i2c1_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&cp0_mdio {
 /*
  * SoM + Carrier each have a PHY at address 0.
  * Remove the SoM phy node, and skip adding the carrier node.
  * SGMII Auto-Negotation is enabled by bootloader for
  * autonomous operation without mdio control.
  */
 /delete-node/ ethernet-phy@0;

 /* U17016 */
 cp0_phy1: ethernet-phy@1 {
  reg = <1>;
  /*
   * Configure LEDs default behaviour:
   * - LED[0]: link is 1000Mbps: On (yellow)
   * - LED[1]: link/activity: On/blink (green)
   * - LED[2]: high impedance (floating)
   */
  marvell,reg-init = <3 16 0xf000 0x0a17>;

  leds {
   #address-cells = <1>;
   #size-cells = <0>;

   led@0 {
    reg = <0>;
    color = <LED_COLOR_ID_YELLOW>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };

   led@1 {
    reg = <1>;
    color = <LED_COLOR_ID_GREEN>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };
  };
 };
};

/* SRDS #0 - miniPCIe */
&cp0_pcie0 {
 num-lanes = <1>;
 phys = <&cp0_comphy0 0>;
 status = "okay";
};

/* SRDS #5 - M.2 B-Key (J34) */
&cp0_pcie2 {
 num-lanes = <1>;
 phys = <&cp0_comphy5 2>;
 status = "okay";
};

&cp0_pinctrl {
 pinctrl-0 = <&cp0_m2_0_shutdown_pins &cp0_mpcie_rfkill_pins>;
 pinctrl-names = "default";

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

 cp0_led_pins: cp0-led-pins {
  marvell,pins = "mpp4", "mpp7";
  marvell,function = "gpio";
 };

 cp0_m2_0_shutdown_pins: cp0-m2-0-shutdown-pins {
  marvell,pins = "mpp8";
  marvell,function = "gpio";
 };

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

 cp0_mpcie_rfkill_pins: cp0-mpcie-rfkill-pins {
  marvell,pins = "mpp6";
  marvell,function = "gpio";
 };

 cp0_reg_usb_a_vbus0_pins: cp0-reg-usb-a-vbus0-pins {
  marvell,pins = "mpp27";
  marvell,function = "gpio";
 };

 cp0_reg_usb_a_vbus1_pins: cp0-reg-usb-a-vbus1-pins {
  marvell,pins = "mpp28";
  marvell,function = "gpio";
 };

 cp0_sfp0_pins: cp0-sfp0-pins {
  marvell,pins = "mpp31", "mpp32", "mpp33", "mpp34";
  marvell,function = "gpio";
 };

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

/* microSD */
&cp0_sdhci0 {
 pinctrl-0 = <&cp0_mmc0_pins>;
 pinctrl-names = "default";
 bus-width = <4>;
 no-1-8-v;
 status = "okay";
};

&cp0_spi1 {
 /* add pin for chip-select 1 */
 pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>;

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

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

/* SRDS #4 - USB-3.0 Host to USB-Hub */
&cp0_usb3_1 {
 phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
 phy-names = "comphy", "utmi";
 dr_mode = "host";
 status = "okay";
};

&cp0_utmi {
 status = "okay";
};

&cp0_utmi1 {
 status = "disabled";
};

&cp1_ethernet {
 status = "okay";
};

/* SRDS #4 - SFP+ 10GE */
&cp1_eth0 {
 managed = "in-band-status";
 phy-mode = "10gbase-r";
 phys = <&cp1_comphy4 0>;
 sfp = <&sfp1>;
 status = "okay";
};

/* SRDS #3 - SGMII 1GE */
&cp1_eth1 {
 managed = "in-band-status";
 phy-mode = "sgmii";
 phy = <&cp1_phy0>;
 phys = <&cp1_comphy3 1>;
 status = "okay";
};

/* SRDS #5 - SGMII 1GE */
&cp1_eth2 {
 managed = "in-band-status";
 phy-mode = "sgmii";
 phy = <&cp1_phy1>;
 phys = <&cp1_comphy5 2>;
 status = "okay";
};

&cp1_gpio1 {
 status = "okay";

 /* J30 */
 m2-full-card-power-off-hog-0 {
  gpio-hog;
  gpios = <29 GPIO_ACTIVE_LOW>;
  output-low;
  line-name = "m2-full-card-power-off";
 };

 /* J44 */
 m2-full-card-power-off-hog-1 {
  gpio-hog;
  gpios = <30 GPIO_ACTIVE_LOW>;
  output-low;
  line-name = "m2-full-card-power-off";
 };
};

&cp1_gpio2 {
 status = "okay";
};

&cp1_i2c1 {
 /*
  * Routed to SFP.
  * Limit to 100kHz for compatibility with SFP modules,
  * featuring AT24C01A/02/04 at addresses 0x50/0x51.
  */
 clock-frequency = <100000>;
 pinctrl-0 = <&cp1_i2c1_pins>;
 pinctrl-names = "default";
 status = "okay";
};

&cp1_mdio {
 pinctrl-0 = <&cp1_mdio_pins>;
 pinctrl-names = "default";
 status = "okay";

 cp1_phy0: ethernet-phy@0 {
  reg = <0>;
  /*
   * Configure LEDs default behaviour:
   * - LED[0]: link is 1000Mbps: On (yellow)
   * - LED[1]: link/activity: On/blink (green)
   * - LED[2]: high impedance (floating)
   */
  marvell,reg-init = <3 16 0xf000 0x0a17>;

  leds {
   #address-cells = <1>;
   #size-cells = <0>;

   led@0 {
    reg = <0>;
    color = <LED_COLOR_ID_YELLOW>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };

   led@1 {
    reg = <1>;
    color = <LED_COLOR_ID_GREEN>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };
  };
 };

 cp1_phy1: ethernet-phy@1 {
  reg = <1>;
  /*
   * Configure LEDs default behaviour:
   * - LED[0]: link is 1000Mbps: On (yellow)
   * - LED[1]: link/activity: On/blink (green)
   * - LED[2]: high impedance (floating)
   */
  marvell,reg-init = <3 16 0xf000 0x0a17>;

  leds {
   #address-cells = <1>;
   #size-cells = <0>;

   led@0 {
    reg = <0>;
    color = <LED_COLOR_ID_YELLOW>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };

   led@1 {
    reg = <1>;
    color = <LED_COLOR_ID_GREEN>;
    function = LED_FUNCTION_LAN;
    default-state = "keep";
   };
  };
 };
};

/* SRDS #0 - M.2 (J30) */
&cp1_pcie0 {
 num-lanes = <1>;
 phys = <&cp1_comphy0 0>;
 status = "okay";
};

&cp1_rtc {
 status = "disabled";
};

/* SRDS #1 - SATA on M.2 (J44) */
&cp1_sata0 {
 status = "okay";

 /* only port 0 is available */
 sata-port@0 {
  phys = <&cp1_comphy1 0>;
  status = "okay";
 };
};

&cp1_syscon0 {
 cp1_pinctrl: pinctrl {
  compatible = "marvell,cp115-standalone-pinctrl";
  pinctrl-0 = <&cp1_m2_1_shutdown_pins &cp1_m2_2_shutdown_pins>;
  pinctrl-names = "default";

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

  cp1_led_pins: cp1-led-pins {
   marvell,pins = "mpp54", "mpp55";
   marvell,function = "gpio";
  };

  cp1_m2_1_shutdown_pins: cp1-m2-1-shutdown-pins {
   marvell,pins = "mpp29";
   marvell,function = "gpio";
  };

  cp1_m2_2_shutdown_pins: cp1-m2-2-shutdown-pins {
   marvell,pins = "mpp30";
   marvell,function = "gpio";
  };

  cp1_mdio_pins: cp1-mdio-pins {
   marvell,pins = "mpp37", "mpp38";
   marvell,function = "ge";
  };

  cp1_rtc_pins: cp1-rtc-pins {
   marvell,pins = "mpp12", "mpp13";
   marvell,function = "gpio";
  };

  cp1_sfp1_pins: cp1-sfp1-pins {
   marvell,pins = "mpp33", "mpp34", "mpp49", "mpp50";
   marvell,function = "gpio";
  };
 };
};

/*
 * SRDS #2 - USB-3.0 Host to M.2 (J44)
 * USB-2.0 Host to M.2 (J30)
 */
&cp1_usb3_0 {
 phys = <&cp1_comphy2 0>, <&cp1_utmi0>;
 phy-names = "comphy", "utmi";
 dr_mode = "host";
 status = "okay";
};

/* USB-2.0 Host to M.2 (J44) */
&cp1_usb3_1 {
 phys = <&cp1_utmi1>;
 phy-names = "utmi";
 dr_mode = "host";
 status = "okay";
};

&cp1_utmi {
 status = "okay";
};

[ Dauer der Verarbeitung: 0.41 Sekunden  ]