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 6 kB image not shown  

Quelle  cn9130-cf-pro.dts   Sprache: unbekannt

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

/dts-v1/;

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

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

/ {
 model = "SolidRun CN9130 Clearfog Pro";
 compatible = "solidrun,cn9130-clearfog-pro",
       "solidrun,cn9130-sr-som", "marvell,cn9130";

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

  button-0 {
   /* The rear SW3 button */
   label = "Rear Button";
   gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
   linux,can-disable;
   linux,code = <BTN_0>;
  };
 };
};

/* SRDS #3 - SGMII 1GE to L2 switch */
&cp0_eth1 {
 phys = <&cp0_comphy3 1>;
 phy-mode = "sgmii";
 status = "okay";

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

&cp0_eth2_phy {
 /*
  * Configure LEDs default behaviour similar to switch ports:
  * - LED[0]: link/activity: On/blink (green)
  * - LED[1]: link is 100/1000Mbps: On (red)
  * - LED[2]: high impedance (floating)
  *
  * Switch port defaults:
  * - LED0: link/activity: On/blink (green)
  * - LED1: link is 1000Mbps: On (red)
  *
  * Identical configuration is impossible with hardware offload.
  */
 marvell,reg-init = <3 16 0xf000 0x0a61>;

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

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

  led@1 {
   reg = <1>;
   color = <LED_COLOR_ID_RED>;
   function = LED_FUNCTION_WAN;
   label = "LED1";
   default-state = "keep";
  };
 };
};

&cp0_mdio {
 ethernet-switch@4 {
  compatible = "marvell,mv88e6085";
  reg = <4>;
  pinctrl-0 = <&dsa_clk_pins &dsa_pins>;
  pinctrl-names = "default";
  reset-gpios = <&cp0_gpio1 27 GPIO_ACTIVE_LOW>;
  interrupt-parent = <&cp0_gpio1>;
  interrupts = <29 IRQ_TYPE_EDGE_FALLING>;

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

   ethernet-port@0 {
    reg = <0>;
    label = "lan5";
    phy = <&switch0phy0>;

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

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

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

   ethernet-port@1 {
    reg = <1>;
    label = "lan4";
    phy = <&switch0phy1>;

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

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

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

   ethernet-port@2 {
    reg = <2>;
    label = "lan3";
    phy = <&switch0phy2>;

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

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

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

   ethernet-port@3 {
    reg = <3>;
    label = "lan2";
    phy = <&switch0phy3>;

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

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

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

   ethernet-port@4 {
    reg = <4>;
    label = "lan1";
    phy = <&switch0phy4>;

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

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

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

   ethernet-port@5 {
    reg = <5>;
    label = "cpu";
    ethernet = <&cp0_eth1>;
    phy-mode = "sgmii";

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

   ethernet-port@6 {
    reg = <6>;
    label = "lan6";
    phy-mode = "rgmii";

    /*
     * Because of mdio address conflict the
     * external phy is not readable.
     * Force a fixed link instead.
     */
    fixed-link {
     speed = <1000>;
     full-duplex;
    };
   };
  };

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

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

   switch0phy1: ethernet-phy@1 {
    reg = <0x1>;
    /*
     * Indirectly configure default behaviour
     * for port lan6 leds behind external phy.
     * Internal PHYs are not using page 3,
     * therefore writing to it is safe.
     */
    marvell,reg-init = <3 16 0xf000 0x0a61>;
   };

   switch0phy2: ethernet-phy@2 {
    reg = <0x2>;
   };

   switch0phy3: ethernet-phy@3 {
    reg = <0x3>;
   };

   switch0phy4: ethernet-phy@4 {
    reg = <0x4>;
   };
  };

  /*
   * There is an external phy on the switch mdio bus.
   * Because its mdio address collides with internal phys,
   * it is not readable.
   *
   * mdio-external {
   * compatible = "marvell,mv88e6xxx-mdio-external";
   * #address-cells = <1>;
   * #size-cells = <0>;
   *
   * ethernet-phy@1 {
   *  reg = <0x1>;
   * };
   * };
   */
 };
};

/* SRDS #4 - miniPCIe (CON2) */
&cp0_pcie1 {
 num-lanes = <1>;
 phys = <&cp0_comphy4 1>;
 /* dw-pcie inverts internally */
 reset-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
 status = "okay";
};

&cp0_pinctrl {
 dsa_clk_pins: cp0-dsa-clk-pins {
  marvell,pins = "mpp40";
  marvell,function = "synce1";
 };

 dsa_pins: cp0-dsa-pins {
  marvell,pins = "mpp27", "mpp29";
  marvell,function = "gpio";
 };

 rear_button_pins: cp0-rear-button-pins {
  marvell,pins = "mpp32";
  marvell,function = "gpio";
 };

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

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

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

&expander0 {
 /* CON2 */
 pcie1-0-clkreq-hog {
  gpio-hog;
  gpios = <4 GPIO_ACTIVE_LOW>;
  input;
  line-name = "pcie1.0-clkreq";
 };

 /* CON2 */
 pcie1-0-w-disable-hog {
  gpio-hog;
  gpios = <7 GPIO_ACTIVE_LOW>;
  output-low;
  line-name = "pcie1.0-w-disable";
 };
};

[ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet)  ]