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


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.17 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