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  cn9132-clearfog.dts   Sprache: unbekannt

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

/dts-v1/;

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

#include "cn9130.dtsi"
#include "cn9132-sr-cex7.dtsi"

/ {
 model = "SolidRun CN9132 Clearfog";
 compatible = "solidrun,cn9132-clearfog",
       "solidrun,cn9132-sr-cex7", "marvell,cn9130";

 aliases {
  ethernet1 = &cp0_eth2;
  ethernet2 = &cp0_eth0;
  ethernet3 = &cp2_eth0;
  ethernet4 = &cp1_eth0;
  i2c7 = &carrier_mpcie_i2c;
  i2c8 = &carrier_ptp_i2c;
  mmc1 = &cp0_sdhci0;
 };

 gpio-keys {
  compatible = "gpio-keys";
  pinctrl-names = "default";
  pinctrl-0 = <&cp1_wake0_pins>;

  button-0 {
   label = "SW2";
   gpios = <&cp1_gpio2 8 GPIO_ACTIVE_LOW>;
   linux,can-disable;
   linux,code = <BTN_2>;
  };
 };

 leds {
  compatible = "gpio-leds";
  pinctrl-names = "default";
  pinctrl-0 = <&cp1_batlow_pins &cp2_rsvd4_pins>;

  /* LED11 */
  led-io-0 {
   color = <LED_COLOR_ID_GREEN>;
   function = LED_FUNCTION_DISK;
   function-enumerator = <0>;
   default-state = "off";
   gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
  };

  /* LED12 */
  led-io-1 {
   color = <LED_COLOR_ID_GREEN>;
   function = LED_FUNCTION_DISK;
   function-enumerator = <1>;
   default-state = "off";
   gpios = <&cp2_gpio1 4 GPIO_ACTIVE_HIGH>;
  };
 };

 /* CON4 W_DISABLE1/W_DISABLE2 */
 rfkill-m2-wlan {
  compatible = "rfkill-gpio";
  label = "m.2 wlan (CON4)";
  radio-type = "wlan";
  pinctrl-names = "default";
  pinctrl-0 = <&cp1_10g_phy_rst_01_pins>;
  /* rfkill-gpio inverts internally */
  shutdown-gpios = <&cp1_gpio2 11 GPIO_ACTIVE_HIGH>;
 };

 /* CON5 W_DISABLE1/W_DISABLE2 */
 rfkill-m2-wlan {
  compatible = "rfkill-gpio";
  label = "m.2 wlan (CON5)";
  radio-type = "wlan";
  pinctrl-names = "default";
  pinctrl-0 = <&cp1_10g_phy_rst_23_pins>;
  /* rfkill-gpio inverts internally */
  shutdown-gpios = <&cp1_gpio2 10 GPIO_ACTIVE_HIGH>;
 };

 /* J21 W_DISABLE1 */
 rfkill-m2-wwan {
  compatible = "rfkill-gpio";
  label = "m.2 wwan (J21)";
  radio-type = "wwan";
  pinctrl-names = "default";
  pinctrl-0 = <&cp2_rsvd3_pins>;
  /* rfkill-gpio inverts internally */
  shutdown-gpios = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
 };

 /* J21 W_DISABLE1 */
 rfkill-m2-gnss {
  compatible = "rfkill-gpio";
  label = "m.2 gnss (J21)";
  radio-type = "gps";
  pinctrl-names = "default";
  pinctrl-0 = <&cp2_rsvd8_pins>;
  /* rfkill-gpio inverts internally */
  shutdown-gpios = <&cp2_gpio1 8 GPIO_ACTIVE_HIGH>;
 };

 /* J14 W_DISABLE */
 rfkill-mpcie-wlan {
  compatible = "rfkill-gpio";
  label = "mpcie wlan (J14)";
  radio-type = "wlan";
  pinctrl-names = "default";
  pinctrl-0 = <&cp2_rsvd2_pins>;
  /* rfkill-gpio inverts internally */
  shutdown-gpios = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
 };

 sfp: sfp {
  compatible = "sff,sfp";
  i2c-bus = <&com_10g_sfp_i2c0>;
  pinctrl-names = "default";
  pinctrl-0 = <&com_10g_int0_pins>;
  mod-def0-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_LOW>;
  maximum-power-milliwatt = <2000>;
 };
};

&com_smbus {
 /* This bus is also routed to STM32 BMC Microcontroller (U2) */

 power-sensor@40 {
  compatible = "ti,ina220";
  reg = <0x40>;
  #io-channel-cells = <1>;
  label = "vdd_12v0";
  shunt-resistor = <2000>;
 };

 adc@48 {
  compatible = "ti,tla2021";
  reg = <0x48>;
  #address-cells = <1>;
  #size-cells = <0>;

  /* supplied by chaoskey hardware noise generator circuit */
  channel@0 {
   reg = <0>;
  };
 };
};

&cp0_eth_phy0 {
 /*
  * Configure LEDs default behaviour:
  * - LED[0]: link is 1000Mbps: On (yellow): 0111
  * - LED[1]: link/activity: On/Blink (green): 0001
  * - LED[2]: Off (green): 1000
  */
 marvell,reg-init = <3 16 0xf000 0x0817>;

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

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

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

  led@2 {
   /* 1000 */
   reg = <2>;
   color = <LED_COLOR_ID_GREEN>;
   function = LED_FUNCTION_LAN;
   default-state = "keep";
  };
 };
};

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

&cp0_eth2 {
 phy-mode = "2500base-x";
 phys = <&cp0_comphy5 2>;
 status = "okay";

 fixed-link {
  speed = <2500>;
  full-duplex;
  pause;
 };
};

&cp0_i2c1 {
 /*
  * Both COM and Carrier Board have a PCA9547 i2c mux at 0x77.
  * Describe them as a single device merging each child bus.
  */

 i2c-mux@77 {
  i2c@0 {
   /* Routed to Full PCIe (J4) */
  };

  i2c@1 {
   /* Routed to USB Hub (U29) */
  };

  i2c@2 {
   /* Routed to M.2 (CON4) */
  };

  i2c@3 {
   /* Routed to M.2 (CON5) */
  };

  i2c@4 {
   /* Routed to M.2 (J21) */
  };

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

   /* Routed to mini-PCIe (J14) */
  };

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

   /* Routed to various optional PTP related components */
  };
 };
};

&cp0_mdio {
 ethernet-switch@4 {
  compatible = "marvell,mv88e6085";
  reg = <4>;

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

   sw_phy1: ethernet-phy@1 {
    reg = <0x11>;
   };

   sw_phy2: ethernet-phy@2 {
    reg = <0x12>;
   };

   sw_phy3: ethernet-phy@3 {
    reg = <0x13>;
   };

   sw_phy4: ethernet-phy@4 {
    reg = <0x14>;
   };
  };

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

   ethernet-port@1 {
    reg = <1>;
    label = "lan1";
    phy-handle = <&sw_phy1>;
    phy-mode = "internal";

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

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

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

   ethernet-port@2 {
    reg = <2>;
    label = "lan2";
    phy-handle = <&sw_phy2>;
    phy-mode = "internal";

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

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

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

   ethernet-port@3 {
    reg = <3>;
    label = "lan3";
    phy-handle = <&sw_phy3>;
    phy-mode = "internal";

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

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

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

   ethernet-port@4 {
    reg = <4>;
    label = "lan4";
    phy-handle = <&sw_phy4>;
    phy-mode = "internal";

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

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

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

   ethernet-port@5 {
    reg = <5>;
    label = "cpu";
    ethernet = <&cp0_eth2>;
    phy-mode = "2500base-x";

    fixed-link {
     speed = <2500>;
     full-duplex;
     pause;
    };
   };
  };
 };
};

/* SRDS #0,#1,#2,#3 - PCIe */
&cp0_pcie0 {
 num-lanes = <4>;
 /*
  * The mvebu-comphy driver does not currently know how to pass correct
  * lane-count to ATF while configuring the serdes lanes.
  * Rely on bootloader configuration only.
  *
  * phys = <&cp0_comphy0 0>, <&cp0_comphy1 0>, <&cp0_comphy2 0>, <&cp0_comphy3 0>;
  */
 status = "okay";
};

&cp0_pinctrl {
 /*
  * configure unused gpios exposed via pin headers:
  * - J7-10: PWRBTN
  */
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_pwrbtn_pins>;
};

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

&cp0_spi1 {
 /* add CS1 */
 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>;
 };
};

/* J38 */
&cp0_uart2 {
 pinctrl-names = "default";
 pinctrl-0 = <&cp0_uart2_pins>;
 status = "okay";
};

&cp0_utmi {
 /* M.2 "CON5" swaps D+/D- */
 swap-dx-lanes = <1>;
};

&cp1_ethernet {
 status = "okay";
};

/* SRDS #2 - 5GE */
&cp1_eth0 {
 phys = <&cp1_comphy2 0>;
 phy-mode = "5gbase-r";
 phy = <&cp1_eth_phy0>;
 managed = "in-band-status";
 status = "okay";
};

/* SRDS #0,#1 - PCIe */
&cp1_pcie0 {
 num-lanes = <2>;
 /*
  * The mvebu-comphy driver does not currently know how to pass correct
  * lane-count to ATF while configuring the serdes lanes.
  * Rely on bootloader configuration only.
  *
  * phys = <&cp1_comphy0 0>, <&cp1_comphy1 0>;
  */
 status = "okay";
};

/* SRDS #4 - PCIe */
&cp1_pcie1 {
 num-lanes = <1>;
 phys = <&cp1_comphy4 1>;
 status = "okay";
};

/* SRDS #5 - PCIe */
&cp1_pcie2 {
 num-lanes = <1>;
 phys = <&cp1_comphy5 2>;
 status = "okay";
};

&cp1_pinctrl {
 /*
  * configure unused gpios exposed via pin headers:
  * - J7-8: RSVD16
  * - J7-10: THRM
  * - J10-1: WAKE1
  * - J10-2: SATA_ACT
  * - J10-8: THERMTRIP
  */
 pinctrl-names = "default";
 pinctrl-0 = <&cp1_rsvd16_pins &cp1_sata_act_pins &cp1_thrm_irq_pins>,
      <&cp1_thrm_trip_pins &cp1_wake1_pins>;
};

/* SRDS #3 - SATA */
&cp1_sata0 {
 status = "okay";

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

&cp1_utmi {
 /* M.2 "CON4" swaps D+/D- */
 swap-dx-lanes = <0>;
};

&cp1_xmdio {
 pinctrl-names = "default";
 pinctrl-0 = <&cp1_xmdio_pins>;
 status = "okay";

 cp1_eth_phy0: ethernet-phy@8 {
  compatible = "ethernet-phy-ieee802.3-c45";
  reg = <8>;
  pinctrl-names = "default";
  pinctrl-0 = <&com_10g_int1_pins>;
  interrupt-parent = <&cp1_gpio2>;
  interrupts = <18 IRQ_TYPE_EDGE_FALLING>;

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

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

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

&cp2_ethernet {
 status =  "okay";
};

/* SRDS #2 - 5GE */
&cp2_eth0 {
 phys = <&cp2_comphy2 0>;
 phy-mode = "5gbase-r";
 phy = <&cp2_eth_phy0>;
 managed = "in-band-status";
 status = "okay";
};

&cp2_gpio1 {
 pinctrl-names= "default";
 pinctrl-0 = <&cp2_rsvd9_pins>;

 /* J21 */
 m2-wwan-reset-hog {
  gpio-hog;
  gpios = <9 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
  output-low;
  line-name = "m2-wwan-reset";
 };
};

/* SRDS #0 - PCIe */
&cp2_pcie0 {
 num-lanes = <1>;
 phys = <&cp2_comphy0 0>;
 status = "okay";
};

/* SRDS #4 - PCIe */
&cp2_pcie1 {
 num-lanes = <1>;
 phys = <&cp2_comphy4 1>;
 status = "okay";
};

/* SRDS #5 - PCIe */
&cp2_pcie2 {
 num-lanes = <1>;
 phys = <&cp2_comphy5 2>;
 status = "okay";
};

&cp2_pinctrl {
 /*
  * configure unused gpios exposed via pin headers:
  * - J7-1: RSVD10
  * - J7-3: RSVD11
  * - J7-5: RSVD56
  * - J7-6: RSVD7
  * - J7-7: RSVD27
  * - J10-3: RSVD31
  * - J10-5: RSVD5
  * - J10-6: RSVD32
  * - J10-7: RSVD0
  * - J10-9: RSVD1
  */
 pinctrl-names = "default";
 pinctrl-0 = <&cp2_rsvd0_pins &cp2_rsvd1_pins &cp2_rsvd5_pins>,
      <&cp2_rsvd7_pins &cp2_rsvd10_pins &cp2_rsvd11_pins>,
      <&cp2_rsvd27_pins &cp2_rsvd31_pins &cp2_rsvd32_pins>,
      <&cp2_rsvd56_pins>;
};

/* SRDS #3 - SATA */
&cp2_sata0 {
 status = "okay";

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

&cp2_xmdio {
 pinctrl-names = "default";
 pinctrl-0 = <&cp2_xmdio_pins>;
 status = "okay";

 cp2_eth_phy0: ethernet-phy@8 {
  compatible = "ethernet-phy-ieee802.3-c45";
  reg = <8>;
  pinctrl-names = "default";
  pinctrl-0 = <&com_10g_int2_pins>;
  interrupt-parent = <&cp2_gpio2>;
  interrupts = <18 IRQ_TYPE_EDGE_FALLING>;

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

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

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

[ Dauer der Verarbeitung: 0.5 Sekunden  (vorverarbeitet)  ]