| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/net/cdns,macb.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Cadence MACB/GEM Ethernet controller
- maintainers:
- - Nicolas Ferre <nicolas.ferre@microchip.com>
- - Claudiu Beznea <claudiu.beznea@microchip.com>
- properties:
- compatible:
- oneOf:
- - items:
- - enum:
- - cdns,at91rm9200-emac # Atmel at91rm9200 SoC
- - const: cdns,emac # Generic
- - items:
- - enum:
- - cdns,zynq-gem # Xilinx Zynq-7xxx SoC
- - cdns,zynqmp-gem # Xilinx Zynq Ultrascale+ MPSoC
- - const: cdns,gem # Generic
- deprecated: true
- - items:
- - enum:
- - xlnx,versal-gem # Xilinx Versal
- - xlnx,zynq-gem # Xilinx Zynq-7xxx SoC
- - xlnx,zynqmp-gem # Xilinx Zynq Ultrascale+ MPSoC
- - const: cdns,gem # Generic
- - items:
- - enum:
- - cdns,at91sam9260-macb # Atmel at91sam9 SoCs
- - cdns,sam9x60-macb # Microchip sam9x60 SoC
- - microchip,mpfs-macb # Microchip PolarFire SoC
- - const: cdns,macb # Generic
- - items:
- - const: microchip,pic64gx-macb # Microchip PIC64GX SoC
- - const: microchip,mpfs-macb # Microchip PolarFire SoC
- - const: cdns,macb # Generic
- - items:
- - enum:
- - atmel,sama5d3-macb # 10/100Mbit IP on Atmel sama5d3 SoCs
- - enum:
- - cdns,at91sam9260-macb # Atmel at91sam9 SoCs.
- - const: cdns,macb # Generic
- - enum:
- - atmel,sama5d2-gem # GEM IP (10/100) on Atmel sama5d2 SoCs
- - atmel,sama5d29-gem # GEM XL IP (10/100) on Atmel sama5d29 SoCs
- - atmel,sama5d3-gem # Gigabit IP on Atmel sama5d3 SoCs
- - atmel,sama5d4-gem # GEM IP (10/100) on Atmel sama5d4 SoCs
- - cdns,emac # Generic
- - cdns,gem # Generic
- - cdns,macb # Generic
- - cdns,np4-macb # NP4 SoC devices
- - microchip,sama7g5-emac # Microchip SAMA7G5 ethernet interface
- - microchip,sama7g5-gem # Microchip SAMA7G5 gigabit ethernet interface
- - mobileye,eyeq5-gem # Mobileye EyeQ5 SoCs
- - raspberrypi,rp1-gem # Raspberry Pi RP1 gigabit ethernet interface
- - sifive,fu540-c000-gem # SiFive FU540-C000 SoC
- - items:
- - enum:
- - microchip,sam9x7-gem # Microchip SAM9X7 gigabit ethernet interface
- - microchip,sama7d65-gem # Microchip SAMA7D65 gigabit ethernet interface
- - const: microchip,sama7g5-gem # Microchip SAMA7G5 gigabit ethernet interface
- reg:
- minItems: 1
- items:
- - description: Basic register set
- - description: GEMGXL Management block registers on SiFive FU540-C000 SoC
- interrupts:
- minItems: 1
- maxItems: 8
- description: One interrupt per available hardware queue
- clocks:
- minItems: 1
- maxItems: 5
- clock-names:
- minItems: 1
- items:
- - enum: [ ether_clk, hclk, pclk ]
- - enum: [ hclk, pclk ]
- - enum: [ tx_clk, tsu_clk ]
- - enum: [ rx_clk, tsu_clk ]
- - const: tsu_clk
- local-mac-address: true
- phy-mode: true
- phy-handle: true
- phys:
- maxItems: 1
- resets:
- maxItems: 1
- description:
- Recommended with ZynqMP, specify reset control for this
- controller instance with zynqmp-reset driver.
- reset-names:
- maxItems: 1
- fixed-link: true
- iommus:
- maxItems: 1
- power-domains:
- maxItems: 1
- cdns,refclk-ext:
- type: boolean
- description:
- This selects if the REFCLK for RMII is provided by an external source.
- For RGMII mode this selects if the 125MHz REF clock is provided by an external
- source.
- cdns,rx-watermark:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- When the receive partial store and forward mode is activated,
- the receiver will only begin to forward the packet to the external
- AHB or AXI slave when enough packet data is stored in the SRAM packet buffer.
- rx-watermark corresponds to the number of SRAM buffer locations,
- that need to be filled, before the forwarding process is activated.
- Width of the SRAM is platform dependent, and can be 4, 8 or 16 bytes.
- '#address-cells':
- const: 1
- '#size-cells':
- const: 0
- mdio:
- type: object
- description:
- Node containing PHY children. If this node is not present, then PHYs will
- be direct children.
- patternProperties:
- "^ethernet-phy@[0-9a-f]$":
- type: object
- $ref: ethernet-phy.yaml#
- properties:
- reset-gpios: true
- magic-packet:
- type: boolean
- deprecated: true
- description:
- Indicates that the hardware supports waking up via magic packet.
- unevaluatedProperties: false
- required:
- - compatible
- - reg
- - interrupts
- - clocks
- - clock-names
- - phy-mode
- allOf:
- - $ref: ethernet-controller.yaml#
- - if:
- not:
- properties:
- compatible:
- contains:
- const: sifive,fu540-c000-gem
- then:
- properties:
- reg:
- maxItems: 1
- - if:
- properties:
- compatible:
- contains:
- const: mobileye,eyeq5-gem
- then:
- required:
- - phys
- unevaluatedProperties: false
- examples:
- - |
- macb0: ethernet@fffc4000 {
- compatible = "cdns,macb";
- reg = <0xfffc4000 0x4000>;
- interrupts = <21>;
- cdns,rx-watermark = <0x44>;
- phy-mode = "rmii";
- local-mac-address = [3a 0e 03 04 05 06];
- clock-names = "pclk", "hclk", "tx_clk";
- clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
- #address-cells = <1>;
- #size-cells = <0>;
- ethernet-phy@1 {
- reg = <0x1>;
- reset-gpios = <&pioE 6 1>;
- };
- };
- - |
- #include <dt-bindings/power/xlnx-zynqmp-power.h>
- #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
- #include <dt-bindings/phy/phy.h>
- bus {
- #address-cells = <2>;
- #size-cells = <2>;
- gem1: ethernet@ff0c0000 {
- compatible = "xlnx,zynqmp-gem", "cdns,gem";
- interrupt-parent = <&gic>;
- interrupts = <0 59 4>, <0 59 4>;
- reg = <0x0 0xff0c0000 0x0 0x1000>;
- clocks = <&zynqmp_clk 31>, <&zynqmp_clk 105>,
- <&zynqmp_clk 51>, <&zynqmp_clk 50>,
- <&zynqmp_clk 44>;
- clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
- #address-cells = <1>;
- #size-cells = <0>;
- iommus = <&smmu 0x875>;
- power-domains = <&zynqmp_firmware PD_ETH_1>;
- resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
- reset-names = "gem1_rst";
- phy-mode = "sgmii";
- phys = <&psgtr 1 PHY_TYPE_SGMII 1 1>;
- fixed-link {
- speed = <1000>;
- full-duplex;
- pause;
- };
- };
- };
|