| # SPDX-License-Identifier: GPL-2.0 |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/net/allwinner,sun8i-a83t-emac.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Allwinner A83t EMAC Device Tree Bindings |
| |
| maintainers: |
| - Chen-Yu Tsai <wens@csie.org> |
| - Maxime Ripard <mripard@kernel.org> |
| |
| properties: |
| compatible: |
| oneOf: |
| - const: allwinner,sun8i-a83t-emac |
| - const: allwinner,sun8i-h3-emac |
| - const: allwinner,sun8i-r40-gmac |
| - const: allwinner,sun8i-v3s-emac |
| - const: allwinner,sun50i-a64-emac |
| - items: |
| - enum: |
| - allwinner,sun20i-d1-emac |
| - allwinner,sun50i-h6-emac |
| - const: allwinner,sun50i-a64-emac |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| interrupt-names: |
| const: macirq |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-names: |
| const: stmmaceth |
| |
| syscon: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| Phandle to the device containing the EMAC or GMAC clock |
| register |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - interrupt-names |
| - clocks |
| - clock-names |
| - resets |
| - reset-names |
| - phy-handle |
| - phy-mode |
| - syscon |
| |
| allOf: |
| - $ref: "snps,dwmac.yaml#" |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - allwinner,sun8i-a83t-emac |
| - allwinner,sun8i-h3-emac |
| - allwinner,sun8i-v3s-emac |
| - allwinner,sun50i-a64-emac |
| |
| then: |
| properties: |
| allwinner,tx-delay-ps: |
| default: 0 |
| minimum: 0 |
| maximum: 700 |
| multipleOf: 100 |
| description: |
| External RGMII PHY TX clock delay chain value in ps. |
| |
| allwinner,rx-delay-ps: |
| default: 0 |
| minimum: 0 |
| maximum: 3100 |
| multipleOf: 100 |
| description: |
| External RGMII PHY TX clock delay chain value in ps. |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - allwinner,sun8i-r40-gmac |
| |
| then: |
| properties: |
| allwinner,rx-delay-ps: |
| default: 0 |
| minimum: 0 |
| maximum: 700 |
| multipleOf: 100 |
| description: |
| External RGMII PHY TX clock delay chain value in ps. |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - allwinner,sun8i-h3-emac |
| - allwinner,sun8i-v3s-emac |
| |
| then: |
| properties: |
| allwinner,leds-active-low: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: |
| EPHY LEDs are active low. |
| |
| mdio-mux: |
| type: object |
| |
| properties: |
| compatible: |
| const: allwinner,sun8i-h3-mdio-mux |
| |
| mdio-parent-bus: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| Phandle to EMAC MDIO. |
| |
| mdio@1: |
| type: object |
| description: Internal MDIO Bus |
| |
| properties: |
| "#address-cells": |
| const: 1 |
| |
| "#size-cells": |
| const: 0 |
| |
| compatible: |
| const: allwinner,sun8i-h3-mdio-internal |
| |
| reg: |
| const: 1 |
| |
| patternProperties: |
| "^ethernet-phy@[0-9a-f]$": |
| type: object |
| description: |
| Integrated PHY node |
| |
| properties: |
| clocks: |
| maxItems: 1 |
| |
| resets: |
| maxItems: 1 |
| |
| required: |
| - clocks |
| - resets |
| |
| |
| mdio@2: |
| type: object |
| description: External MDIO Bus (H3 only) |
| |
| properties: |
| "#address-cells": |
| const: 1 |
| |
| "#size-cells": |
| const: 0 |
| |
| reg: |
| const: 2 |
| |
| required: |
| - compatible |
| - mdio-parent-bus |
| - mdio@1 |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| ethernet@1c0b000 { |
| compatible = "allwinner,sun8i-h3-emac"; |
| syscon = <&syscon>; |
| reg = <0x01c0b000 0x104>; |
| interrupts = <0 82 1>; |
| interrupt-names = "macirq"; |
| resets = <&ccu 12>; |
| reset-names = "stmmaceth"; |
| clocks = <&ccu 27>; |
| clock-names = "stmmaceth"; |
| |
| phy-handle = <&int_mii_phy>; |
| phy-mode = "mii"; |
| allwinner,leds-active-low; |
| |
| mdio1: mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "snps,dwmac-mdio"; |
| }; |
| |
| mdio-mux { |
| compatible = "allwinner,sun8i-h3-mdio-mux"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| mdio-parent-bus = <&mdio1>; |
| |
| int_mii_phy: mdio@1 { |
| compatible = "allwinner,sun8i-h3-mdio-internal"; |
| reg = <1>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| ethernet-phy@1 { |
| reg = <1>; |
| clocks = <&ccu 67>; |
| resets = <&ccu 39>; |
| phy-is-integrated; |
| }; |
| }; |
| |
| mdio@2 { |
| reg = <2>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| }; |
| }; |
| |
| - | |
| ethernet@1c0b000 { |
| compatible = "allwinner,sun8i-h3-emac"; |
| syscon = <&syscon>; |
| reg = <0x01c0b000 0x104>; |
| interrupts = <0 82 1>; |
| interrupt-names = "macirq"; |
| resets = <&ccu 12>; |
| reset-names = "stmmaceth"; |
| clocks = <&ccu 27>; |
| clock-names = "stmmaceth"; |
| |
| phy-handle = <&ext_rgmii_phy>; |
| phy-mode = "rgmii"; |
| allwinner,leds-active-low; |
| |
| mdio2: mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "snps,dwmac-mdio"; |
| }; |
| |
| mdio-mux { |
| compatible = "allwinner,sun8i-h3-mdio-mux"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| mdio-parent-bus = <&mdio2>; |
| |
| mdio@1 { |
| compatible = "allwinner,sun8i-h3-mdio-internal"; |
| reg = <1>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| ethernet-phy@1 { |
| reg = <1>; |
| clocks = <&ccu 67>; |
| resets = <&ccu 39>; |
| }; |
| }; |
| |
| mdio@2 { |
| reg = <2>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| ext_rgmii_phy: ethernet-phy@1 { |
| reg = <1>; |
| }; |
| }; |
| }; |
| }; |
| |
| - | |
| ethernet@1c0b000 { |
| compatible = "allwinner,sun8i-a83t-emac"; |
| syscon = <&syscon>; |
| reg = <0x01c0b000 0x104>; |
| interrupts = <0 82 1>; |
| interrupt-names = "macirq"; |
| resets = <&ccu 13>; |
| reset-names = "stmmaceth"; |
| clocks = <&ccu 27>; |
| clock-names = "stmmaceth"; |
| phy-handle = <&ext_rgmii_phy1>; |
| phy-mode = "rgmii"; |
| |
| mdio { |
| compatible = "snps,dwmac-mdio"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| ext_rgmii_phy1: ethernet-phy@1 { |
| reg = <1>; |
| }; |
| }; |
| }; |
| |
| ... |