Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/Documentation/devicetree/bindings/net/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Quelle  stm32-dwmac.yaml   Sprache: unbekannt

 
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/stm32-dwmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 / MCU DWMAC glue layer controller

maintainers:
  - Alexandre Torgue <alexandre.torgue@foss.st.com>
  - Christophe Roullier <christophe.roullier@foss.st.com>

description:
  This file documents platform glue layer for stmmac.

# We need a select here so we don't match all nodes with 'snps,dwmac'
select:
  properties:
    compatible:
      contains:
        enum:
          - st,stm32-dwmac
          - st,stm32mp1-dwmac
          - st,stm32mp13-dwmac
          - st,stm32mp25-dwmac
  required:
    - compatible

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - st,stm32mp25-dwmac
          - const: snps,dwmac-5.20
      - items:
          - enum:
              - st,stm32mp1-dwmac
              - st,stm32mp13-dwmac
          - const: snps,dwmac-4.20a
      - items:
          - enum:
              - st,stm32-dwmac
          - const: snps,dwmac-4.10a
      - items:
          - enum:
              - st,stm32-dwmac
          - const: snps,dwmac-3.50a

  reg: true

  reg-names:
    items:
      - const: stmmaceth

  interrupts:
    minItems: 1
    maxItems: 2

  interrupt-names:
    minItems: 1
    items:
      - const: macirq
      - const: eth_wake_irq

  clocks:
    minItems: 3
    items:
      - description: GMAC main clock
      - description: MAC TX clock
      - description: MAC RX clock
      - description: For MPU family, used for power mode
      - description: For MPU family, used for PHY without quartz
      - description: PTP clock

  clock-names:
    minItems: 3
    maxItems: 6
    contains:
      enum:
        - stmmaceth
        - mac-clk-tx
        - mac-clk-rx
        - ethstp
        - eth-ck
        - ptp_ref

  st,syscon:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - minItems: 2
        items:
          - description: phandle to the syscon node which encompases the glue register
          - description: offset of the control register
          - description: field to set mask in register
    description:
      Should be phandle/offset pair. The phandle to the syscon node which
      encompases the glue register, the offset of the control register and
      the mask to set bitfield in control register

  st,ext-phyclk:
    description:
      set this property in RMII mode when you have PHY without crystal 50MHz and want to
      select RCC clock instead of ETH_REF_CLK. OR in RGMII mode when you want to select
      RCC clock instead of ETH_CLK125.
    type: boolean

  st,eth-clk-sel:
    description:
      set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
    type: boolean

  st,eth-ref-clk-sel:
    description:
      set this property in RMII mode when you have PHY without crystal 50MHz and want to
      select RCC clock instead of ETH_REF_CLK.
    type: boolean

  access-controllers:
    minItems: 1
    maxItems: 2

required:
  - compatible
  - clocks
  - clock-names
  - st,syscon

unevaluatedProperties: false

allOf:
  - $ref: snps,dwmac.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - st,stm32-dwmac
              - st,stm32mp1-dwmac
              - st,stm32mp25-dwmac
    then:
      properties:
        st,syscon:
          items:
            minItems: 2
            maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - st,stm32mp13-dwmac
    then:
      properties:
        st,syscon:
          items:
            minItems: 3
            maxItems: 3

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stm32mp1-clks.h>
    //Example 1
    ethernet0: ethernet@5800a000 {
        compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
        reg = <0x5800a000 0x2000>;
        reg-names = "stmmaceth";
        interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "macirq";
        clock-names = "stmmaceth",
                      "mac-clk-tx",
                      "mac-clk-rx",
                      "ethstp",
                      "eth-ck";
        clocks = <&rcc ETHMAC>,
                 <&rcc ETHTX>,
                 <&rcc ETHRX>,
                 <&rcc ETHSTP>,
                 <&rcc ETHCK_K>;
        st,syscon = <&syscfg 0x4>;
        snps,pbl = <2>;
        snps,axi-config = <&stmmac_axi_config_0>;
        snps,tso;
        phy-mode = "rgmii";
    };

  - |
    //Example 2 (MCU example)
    ethernet1: ethernet@40028000 {
        compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
        reg = <0x40028000 0x8000>;
        reg-names = "stmmaceth";
        interrupts = <0 61 0>, <0 62 0>;
        interrupt-names = "macirq", "eth_wake_irq";
        clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
        clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
        st,syscon = <&syscfg 0x4>;
        snps,pbl = <8>;
        snps,mixed-burst;
        phy-mode = "mii";
    };

  - |
    //Example 3
    ethernet2: ethernet@40027000 {
        compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
        reg = <0x40028000 0x8000>;
        reg-names = "stmmaceth";
        interrupts = <61>;
        interrupt-names = "macirq";
        clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
        clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>;
        st,syscon = <&syscfg 0x4>;
        snps,pbl = <8>;
        phy-mode = "mii";
    };

[ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet)  ]