18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/net/allwinner,sun8i-a83t-emac.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Allwinner A83t EMAC Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
118c2ecf20Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciproperties:
148c2ecf20Sopenharmony_ci  compatible:
158c2ecf20Sopenharmony_ci    oneOf:
168c2ecf20Sopenharmony_ci      - const: allwinner,sun8i-a83t-emac
178c2ecf20Sopenharmony_ci      - const: allwinner,sun8i-h3-emac
188c2ecf20Sopenharmony_ci      - const: allwinner,sun8i-r40-emac
198c2ecf20Sopenharmony_ci      - const: allwinner,sun8i-v3s-emac
208c2ecf20Sopenharmony_ci      - const: allwinner,sun50i-a64-emac
218c2ecf20Sopenharmony_ci      - items:
228c2ecf20Sopenharmony_ci          - const: allwinner,sun50i-h6-emac
238c2ecf20Sopenharmony_ci          - const: allwinner,sun50i-a64-emac
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  reg:
268c2ecf20Sopenharmony_ci    maxItems: 1
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  interrupts:
298c2ecf20Sopenharmony_ci    maxItems: 1
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  interrupt-names:
328c2ecf20Sopenharmony_ci    const: macirq
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  clocks:
358c2ecf20Sopenharmony_ci    maxItems: 1
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  clock-names:
388c2ecf20Sopenharmony_ci    const: stmmaceth
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  syscon:
418c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/phandle
428c2ecf20Sopenharmony_ci    description:
438c2ecf20Sopenharmony_ci      Phandle to the device containing the EMAC or GMAC clock
448c2ecf20Sopenharmony_ci      register
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_cirequired:
478c2ecf20Sopenharmony_ci  - compatible
488c2ecf20Sopenharmony_ci  - reg
498c2ecf20Sopenharmony_ci  - interrupts
508c2ecf20Sopenharmony_ci  - interrupt-names
518c2ecf20Sopenharmony_ci  - clocks
528c2ecf20Sopenharmony_ci  - clock-names
538c2ecf20Sopenharmony_ci  - resets
548c2ecf20Sopenharmony_ci  - reset-names
558c2ecf20Sopenharmony_ci  - phy-handle
568c2ecf20Sopenharmony_ci  - phy-mode
578c2ecf20Sopenharmony_ci  - syscon
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciallOf:
608c2ecf20Sopenharmony_ci  - $ref: "snps,dwmac.yaml#"
618c2ecf20Sopenharmony_ci  - if:
628c2ecf20Sopenharmony_ci      properties:
638c2ecf20Sopenharmony_ci        compatible:
648c2ecf20Sopenharmony_ci          contains:
658c2ecf20Sopenharmony_ci            enum:
668c2ecf20Sopenharmony_ci              - allwinner,sun8i-a83t-emac
678c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-emac
688c2ecf20Sopenharmony_ci              - allwinner,sun8i-v3s-emac
698c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-emac
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci    then:
728c2ecf20Sopenharmony_ci      properties:
738c2ecf20Sopenharmony_ci        allwinner,tx-delay-ps:
748c2ecf20Sopenharmony_ci          default: 0
758c2ecf20Sopenharmony_ci          minimum: 0
768c2ecf20Sopenharmony_ci          maximum: 700
778c2ecf20Sopenharmony_ci          multipleOf: 100
788c2ecf20Sopenharmony_ci          description:
798c2ecf20Sopenharmony_ci            External RGMII PHY TX clock delay chain value in ps.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci        allwinner,rx-delay-ps:
828c2ecf20Sopenharmony_ci          default: 0
838c2ecf20Sopenharmony_ci          minimum: 0
848c2ecf20Sopenharmony_ci          maximum: 3100
858c2ecf20Sopenharmony_ci          multipleOf: 100
868c2ecf20Sopenharmony_ci          description:
878c2ecf20Sopenharmony_ci            External RGMII PHY TX clock delay chain value in ps.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci  - if:
908c2ecf20Sopenharmony_ci      properties:
918c2ecf20Sopenharmony_ci        compatible:
928c2ecf20Sopenharmony_ci          contains:
938c2ecf20Sopenharmony_ci            enum:
948c2ecf20Sopenharmony_ci              - allwinner,sun8i-r40-emac
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci    then:
978c2ecf20Sopenharmony_ci      properties:
988c2ecf20Sopenharmony_ci        allwinner,rx-delay-ps:
998c2ecf20Sopenharmony_ci          default: 0
1008c2ecf20Sopenharmony_ci          minimum: 0
1018c2ecf20Sopenharmony_ci          maximum: 700
1028c2ecf20Sopenharmony_ci          multipleOf: 100
1038c2ecf20Sopenharmony_ci          description:
1048c2ecf20Sopenharmony_ci            External RGMII PHY TX clock delay chain value in ps.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci  - if:
1078c2ecf20Sopenharmony_ci      properties:
1088c2ecf20Sopenharmony_ci        compatible:
1098c2ecf20Sopenharmony_ci          contains:
1108c2ecf20Sopenharmony_ci            enum:
1118c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-emac
1128c2ecf20Sopenharmony_ci              - allwinner,sun8i-v3s-emac
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci    then:
1158c2ecf20Sopenharmony_ci      properties:
1168c2ecf20Sopenharmony_ci        allwinner,leds-active-low:
1178c2ecf20Sopenharmony_ci          $ref: /schemas/types.yaml#definitions/flag
1188c2ecf20Sopenharmony_ci          description:
1198c2ecf20Sopenharmony_ci            EPHY LEDs are active low.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci        mdio-mux:
1228c2ecf20Sopenharmony_ci          type: object
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci          properties:
1258c2ecf20Sopenharmony_ci            compatible:
1268c2ecf20Sopenharmony_ci              const: allwinner,sun8i-h3-mdio-mux
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci            mdio-parent-bus:
1298c2ecf20Sopenharmony_ci              $ref: /schemas/types.yaml#definitions/phandle
1308c2ecf20Sopenharmony_ci              description:
1318c2ecf20Sopenharmony_ci                Phandle to EMAC MDIO.
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci            mdio@1:
1348c2ecf20Sopenharmony_ci              type: object
1358c2ecf20Sopenharmony_ci              description: Internal MDIO Bus
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci              properties:
1388c2ecf20Sopenharmony_ci                "#address-cells":
1398c2ecf20Sopenharmony_ci                  const: 1
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci                "#size-cells":
1428c2ecf20Sopenharmony_ci                  const: 0
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci                compatible:
1458c2ecf20Sopenharmony_ci                  const: allwinner,sun8i-h3-mdio-internal
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci                reg:
1488c2ecf20Sopenharmony_ci                  const: 1
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ci              patternProperties:
1518c2ecf20Sopenharmony_ci                "^ethernet-phy@[0-9a-f]$":
1528c2ecf20Sopenharmony_ci                  type: object
1538c2ecf20Sopenharmony_ci                  description:
1548c2ecf20Sopenharmony_ci                    Integrated PHY node
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci                  properties:
1578c2ecf20Sopenharmony_ci                    clocks:
1588c2ecf20Sopenharmony_ci                      maxItems: 1
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci                    resets:
1618c2ecf20Sopenharmony_ci                      maxItems: 1
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci                  required:
1648c2ecf20Sopenharmony_ci                    - clocks
1658c2ecf20Sopenharmony_ci                    - resets
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci            mdio@2:
1698c2ecf20Sopenharmony_ci              type: object
1708c2ecf20Sopenharmony_ci              description: External MDIO Bus (H3 only)
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ci              properties:
1738c2ecf20Sopenharmony_ci                "#address-cells":
1748c2ecf20Sopenharmony_ci                  const: 1
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci                "#size-cells":
1778c2ecf20Sopenharmony_ci                  const: 0
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci                reg:
1808c2ecf20Sopenharmony_ci                  const: 2
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci          required:
1838c2ecf20Sopenharmony_ci            - compatible
1848c2ecf20Sopenharmony_ci            - mdio-parent-bus
1858c2ecf20Sopenharmony_ci            - mdio@1
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciunevaluatedProperties: false
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ciexamples:
1908c2ecf20Sopenharmony_ci  - |
1918c2ecf20Sopenharmony_ci    ethernet@1c0b000 {
1928c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-h3-emac";
1938c2ecf20Sopenharmony_ci        syscon = <&syscon>;
1948c2ecf20Sopenharmony_ci        reg = <0x01c0b000 0x104>;
1958c2ecf20Sopenharmony_ci        interrupts = <0 82 1>;
1968c2ecf20Sopenharmony_ci        interrupt-names = "macirq";
1978c2ecf20Sopenharmony_ci        resets = <&ccu 12>;
1988c2ecf20Sopenharmony_ci        reset-names = "stmmaceth";
1998c2ecf20Sopenharmony_ci        clocks = <&ccu 27>;
2008c2ecf20Sopenharmony_ci        clock-names = "stmmaceth";
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci        phy-handle = <&int_mii_phy>;
2038c2ecf20Sopenharmony_ci        phy-mode = "mii";
2048c2ecf20Sopenharmony_ci        allwinner,leds-active-low;
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci        mdio1: mdio {
2078c2ecf20Sopenharmony_ci            #address-cells = <1>;
2088c2ecf20Sopenharmony_ci            #size-cells = <0>;
2098c2ecf20Sopenharmony_ci            compatible = "snps,dwmac-mdio";
2108c2ecf20Sopenharmony_ci        };
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci        mdio-mux {
2138c2ecf20Sopenharmony_ci            compatible = "allwinner,sun8i-h3-mdio-mux";
2148c2ecf20Sopenharmony_ci            #address-cells = <1>;
2158c2ecf20Sopenharmony_ci            #size-cells = <0>;
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci            mdio-parent-bus = <&mdio1>;
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci            int_mii_phy: mdio@1 {
2208c2ecf20Sopenharmony_ci                compatible = "allwinner,sun8i-h3-mdio-internal";
2218c2ecf20Sopenharmony_ci                reg = <1>;
2228c2ecf20Sopenharmony_ci                #address-cells = <1>;
2238c2ecf20Sopenharmony_ci                #size-cells = <0>;
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci                ethernet-phy@1 {
2268c2ecf20Sopenharmony_ci                    reg = <1>;
2278c2ecf20Sopenharmony_ci                    clocks = <&ccu 67>;
2288c2ecf20Sopenharmony_ci                    resets = <&ccu 39>;
2298c2ecf20Sopenharmony_ci                    phy-is-integrated;
2308c2ecf20Sopenharmony_ci                };
2318c2ecf20Sopenharmony_ci            };
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci            mdio@2 {
2348c2ecf20Sopenharmony_ci                reg = <2>;
2358c2ecf20Sopenharmony_ci                #address-cells = <1>;
2368c2ecf20Sopenharmony_ci                #size-cells = <0>;
2378c2ecf20Sopenharmony_ci            };
2388c2ecf20Sopenharmony_ci        };
2398c2ecf20Sopenharmony_ci    };
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci  - |
2428c2ecf20Sopenharmony_ci    ethernet@1c0b000 {
2438c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-h3-emac";
2448c2ecf20Sopenharmony_ci        syscon = <&syscon>;
2458c2ecf20Sopenharmony_ci        reg = <0x01c0b000 0x104>;
2468c2ecf20Sopenharmony_ci        interrupts = <0 82 1>;
2478c2ecf20Sopenharmony_ci        interrupt-names = "macirq";
2488c2ecf20Sopenharmony_ci        resets = <&ccu 12>;
2498c2ecf20Sopenharmony_ci        reset-names = "stmmaceth";
2508c2ecf20Sopenharmony_ci        clocks = <&ccu 27>;
2518c2ecf20Sopenharmony_ci        clock-names = "stmmaceth";
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci        phy-handle = <&ext_rgmii_phy>;
2548c2ecf20Sopenharmony_ci        phy-mode = "rgmii";
2558c2ecf20Sopenharmony_ci        allwinner,leds-active-low;
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci        mdio2: mdio {
2588c2ecf20Sopenharmony_ci            #address-cells = <1>;
2598c2ecf20Sopenharmony_ci            #size-cells = <0>;
2608c2ecf20Sopenharmony_ci            compatible = "snps,dwmac-mdio";
2618c2ecf20Sopenharmony_ci        };
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci        mdio-mux {
2648c2ecf20Sopenharmony_ci            compatible = "allwinner,sun8i-h3-mdio-mux";
2658c2ecf20Sopenharmony_ci            #address-cells = <1>;
2668c2ecf20Sopenharmony_ci            #size-cells = <0>;
2678c2ecf20Sopenharmony_ci            mdio-parent-bus = <&mdio2>;
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci            mdio@1 {
2708c2ecf20Sopenharmony_ci                compatible = "allwinner,sun8i-h3-mdio-internal";
2718c2ecf20Sopenharmony_ci                reg = <1>;
2728c2ecf20Sopenharmony_ci                #address-cells = <1>;
2738c2ecf20Sopenharmony_ci                #size-cells = <0>;
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci                ethernet-phy@1 {
2768c2ecf20Sopenharmony_ci                    reg = <1>;
2778c2ecf20Sopenharmony_ci                    clocks = <&ccu 67>;
2788c2ecf20Sopenharmony_ci                    resets = <&ccu 39>;
2798c2ecf20Sopenharmony_ci                };
2808c2ecf20Sopenharmony_ci            };
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci            mdio@2 {
2838c2ecf20Sopenharmony_ci                reg = <2>;
2848c2ecf20Sopenharmony_ci                #address-cells = <1>;
2858c2ecf20Sopenharmony_ci                #size-cells = <0>;
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci                ext_rgmii_phy: ethernet-phy@1 {
2888c2ecf20Sopenharmony_ci                    reg = <1>;
2898c2ecf20Sopenharmony_ci                };
2908c2ecf20Sopenharmony_ci            };
2918c2ecf20Sopenharmony_ci        };
2928c2ecf20Sopenharmony_ci    };
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ci  - |
2958c2ecf20Sopenharmony_ci    ethernet@1c0b000 {
2968c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-a83t-emac";
2978c2ecf20Sopenharmony_ci        syscon = <&syscon>;
2988c2ecf20Sopenharmony_ci        reg = <0x01c0b000 0x104>;
2998c2ecf20Sopenharmony_ci        interrupts = <0 82 1>;
3008c2ecf20Sopenharmony_ci        interrupt-names = "macirq";
3018c2ecf20Sopenharmony_ci        resets = <&ccu 13>;
3028c2ecf20Sopenharmony_ci        reset-names = "stmmaceth";
3038c2ecf20Sopenharmony_ci        clocks = <&ccu 27>;
3048c2ecf20Sopenharmony_ci        clock-names = "stmmaceth";
3058c2ecf20Sopenharmony_ci        phy-handle = <&ext_rgmii_phy1>;
3068c2ecf20Sopenharmony_ci        phy-mode = "rgmii";
3078c2ecf20Sopenharmony_ci
3088c2ecf20Sopenharmony_ci        mdio {
3098c2ecf20Sopenharmony_ci            compatible = "snps,dwmac-mdio";
3108c2ecf20Sopenharmony_ci            #address-cells = <1>;
3118c2ecf20Sopenharmony_ci            #size-cells = <0>;
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_ci            ext_rgmii_phy1: ethernet-phy@1 {
3148c2ecf20Sopenharmony_ci                reg = <1>;
3158c2ecf20Sopenharmony_ci            };
3168c2ecf20Sopenharmony_ci        };
3178c2ecf20Sopenharmony_ci    };
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci...
320