| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/cortina,gemini-ethernet.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Cortina Systems Gemini Ethernet Controller |
| |
| maintainers: |
| - Linus Walleij <linus.walleij@linaro.org> |
| |
| description: | |
| This ethernet controller is found in the Gemini SoC family: |
| StorLink SL3512 and SL3516, also known as Cortina Systems |
| CS3512 and CS3516. |
| |
| properties: |
| compatible: |
| const: cortina,gemini-ethernet |
| |
| reg: |
| minItems: 3 |
| description: must contain the global registers and the V-bit and A-bit |
| memory areas, in total three register sets. |
| |
| "#address-cells": |
| const: 1 |
| |
| "#size-cells": |
| const: 1 |
| |
| ranges: true |
| |
| #The subnodes represents the two ethernet ports in this device. |
| #They are not independent of each other since they share resources |
| #in the parent node, and are thus children. |
| patternProperties: |
| "^ethernet-port@[0-9]+$": |
| type: object |
| description: contains the resources for ethernet port |
| allOf: |
| - $ref: ethernet-controller.yaml# |
| properties: |
| compatible: |
| const: cortina,gemini-ethernet-port |
| |
| reg: |
| items: |
| - description: DMA/TOE memory |
| - description: GMAC memory area of the port |
| |
| interrupts: |
| maxItems: 1 |
| description: should contain the interrupt line of the port. |
| this is nominally a level interrupt active high. |
| |
| resets: |
| maxItems: 1 |
| description: this must provide an SoC-integrated reset line for the port. |
| |
| clocks: |
| maxItems: 1 |
| description: this should contain a handle to the PCLK clock for |
| clocking the silicon in this port |
| |
| clock-names: |
| const: PCLK |
| |
| required: |
| - reg |
| - compatible |
| - interrupts |
| - resets |
| - clocks |
| - clock-names |
| |
| required: |
| - compatible |
| - reg |
| - ranges |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include <dt-bindings/clock/cortina,gemini-clock.h> |
| #include <dt-bindings/reset/cortina,gemini-reset.h> |
| mdio0: mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| phy0: ethernet-phy@1 { |
| reg = <1>; |
| device_type = "ethernet-phy"; |
| }; |
| phy1: ethernet-phy@3 { |
| reg = <3>; |
| device_type = "ethernet-phy"; |
| }; |
| }; |
| |
| |
| ethernet@60000000 { |
| compatible = "cortina,gemini-ethernet"; |
| reg = <0x60000000 0x4000>, /* Global registers, queue */ |
| <0x60004000 0x2000>, /* V-bit */ |
| <0x60006000 0x2000>; /* A-bit */ |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges; |
| |
| gmac0: ethernet-port@0 { |
| compatible = "cortina,gemini-ethernet-port"; |
| reg = <0x60008000 0x2000>, /* Port 0 DMA/TOE */ |
| <0x6000a000 0x2000>; /* Port 0 GMAC */ |
| interrupt-parent = <&intcon>; |
| interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; |
| resets = <&syscon GEMINI_RESET_GMAC0>; |
| clocks = <&syscon GEMINI_CLK_GATE_GMAC0>; |
| clock-names = "PCLK"; |
| phy-mode = "rgmii"; |
| phy-handle = <&phy0>; |
| }; |
| |
| gmac1: ethernet-port@1 { |
| compatible = "cortina,gemini-ethernet-port"; |
| reg = <0x6000c000 0x2000>, /* Port 1 DMA/TOE */ |
| <0x6000e000 0x2000>; /* Port 1 GMAC */ |
| interrupt-parent = <&intcon>; |
| interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; |
| resets = <&syscon GEMINI_RESET_GMAC1>; |
| clocks = <&syscon GEMINI_CLK_GATE_GMAC1>; |
| clock-names = "PCLK"; |
| phy-mode = "rgmii"; |
| phy-handle = <&phy1>; |
| }; |
| }; |