xref: /freebsd/sys/contrib/device-tree/Bindings/net/nvidia,tegra234-mgbe.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/net/nvidia,tegra234-mgbe.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Tegra234 MGBE Multi-Gigabit Ethernet Controller
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Thierry Reding <treding@nvidia.com>
11*7ef62cebSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
12*7ef62cebSEmmanuel Vadot
13*7ef62cebSEmmanuel Vadotproperties:
14*7ef62cebSEmmanuel Vadot  compatible:
15*7ef62cebSEmmanuel Vadot    const: nvidia,tegra234-mgbe
16*7ef62cebSEmmanuel Vadot
17*7ef62cebSEmmanuel Vadot  reg:
18*7ef62cebSEmmanuel Vadot    maxItems: 3
19*7ef62cebSEmmanuel Vadot
20*7ef62cebSEmmanuel Vadot  reg-names:
21*7ef62cebSEmmanuel Vadot    items:
22*7ef62cebSEmmanuel Vadot      - const: hypervisor
23*7ef62cebSEmmanuel Vadot      - const: mac
24*7ef62cebSEmmanuel Vadot      - const: xpcs
25*7ef62cebSEmmanuel Vadot
26*7ef62cebSEmmanuel Vadot  interrupts:
27*7ef62cebSEmmanuel Vadot    minItems: 1
28*7ef62cebSEmmanuel Vadot    maxItems: 3
29*7ef62cebSEmmanuel Vadot
30*7ef62cebSEmmanuel Vadot  interrupt-names:
31*7ef62cebSEmmanuel Vadot    minItems: 1
32*7ef62cebSEmmanuel Vadot    items:
33*7ef62cebSEmmanuel Vadot      - const: common
34*7ef62cebSEmmanuel Vadot      - const: macsec-ns
35*7ef62cebSEmmanuel Vadot      - const: macsec
36*7ef62cebSEmmanuel Vadot
37*7ef62cebSEmmanuel Vadot  clocks:
38*7ef62cebSEmmanuel Vadot    maxItems: 12
39*7ef62cebSEmmanuel Vadot
40*7ef62cebSEmmanuel Vadot  clock-names:
41*7ef62cebSEmmanuel Vadot    items:
42*7ef62cebSEmmanuel Vadot      - const: mgbe
43*7ef62cebSEmmanuel Vadot      - const: mac
44*7ef62cebSEmmanuel Vadot      - const: mac-divider
45*7ef62cebSEmmanuel Vadot      - const: ptp-ref
46*7ef62cebSEmmanuel Vadot      - const: rx-input-m
47*7ef62cebSEmmanuel Vadot      - const: rx-input
48*7ef62cebSEmmanuel Vadot      - const: tx
49*7ef62cebSEmmanuel Vadot      - const: eee-pcs
50*7ef62cebSEmmanuel Vadot      - const: rx-pcs-input
51*7ef62cebSEmmanuel Vadot      - const: rx-pcs-m
52*7ef62cebSEmmanuel Vadot      - const: rx-pcs
53*7ef62cebSEmmanuel Vadot      - const: tx-pcs
54*7ef62cebSEmmanuel Vadot
55*7ef62cebSEmmanuel Vadot  resets:
56*7ef62cebSEmmanuel Vadot    maxItems: 2
57*7ef62cebSEmmanuel Vadot
58*7ef62cebSEmmanuel Vadot  reset-names:
59*7ef62cebSEmmanuel Vadot    items:
60*7ef62cebSEmmanuel Vadot      - const: mac
61*7ef62cebSEmmanuel Vadot      - const: pcs
62*7ef62cebSEmmanuel Vadot
63*7ef62cebSEmmanuel Vadot  interconnects:
64*7ef62cebSEmmanuel Vadot    items:
65*7ef62cebSEmmanuel Vadot      - description: memory read client
66*7ef62cebSEmmanuel Vadot      - description: memory write client
67*7ef62cebSEmmanuel Vadot
68*7ef62cebSEmmanuel Vadot  interconnect-names:
69*7ef62cebSEmmanuel Vadot    items:
70*7ef62cebSEmmanuel Vadot      - const: dma-mem
71*7ef62cebSEmmanuel Vadot      - const: write
72*7ef62cebSEmmanuel Vadot
73*7ef62cebSEmmanuel Vadot  iommus:
74*7ef62cebSEmmanuel Vadot    maxItems: 1
75*7ef62cebSEmmanuel Vadot
76*7ef62cebSEmmanuel Vadot  power-domains:
77*7ef62cebSEmmanuel Vadot    maxItems: 1
78*7ef62cebSEmmanuel Vadot
79*7ef62cebSEmmanuel Vadot  phy-handle: true
80*7ef62cebSEmmanuel Vadot
81*7ef62cebSEmmanuel Vadot  phy-mode:
82*7ef62cebSEmmanuel Vadot    contains:
83*7ef62cebSEmmanuel Vadot      enum:
84*7ef62cebSEmmanuel Vadot        - usxgmii
85*7ef62cebSEmmanuel Vadot        - 10gbase-kr
86*7ef62cebSEmmanuel Vadot
87*7ef62cebSEmmanuel Vadot  mdio:
88*7ef62cebSEmmanuel Vadot    $ref: mdio.yaml#
89*7ef62cebSEmmanuel Vadot    unevaluatedProperties: false
90*7ef62cebSEmmanuel Vadot    description:
91*7ef62cebSEmmanuel Vadot      Optional node for embedded MDIO controller.
92*7ef62cebSEmmanuel Vadot
93*7ef62cebSEmmanuel Vadotrequired:
94*7ef62cebSEmmanuel Vadot  - compatible
95*7ef62cebSEmmanuel Vadot  - reg
96*7ef62cebSEmmanuel Vadot  - interrupts
97*7ef62cebSEmmanuel Vadot  - interrupt-names
98*7ef62cebSEmmanuel Vadot  - clocks
99*7ef62cebSEmmanuel Vadot  - clock-names
100*7ef62cebSEmmanuel Vadot  - resets
101*7ef62cebSEmmanuel Vadot  - reset-names
102*7ef62cebSEmmanuel Vadot  - power-domains
103*7ef62cebSEmmanuel Vadot  - phy-handle
104*7ef62cebSEmmanuel Vadot  - phy-mode
105*7ef62cebSEmmanuel Vadot
106*7ef62cebSEmmanuel VadotadditionalProperties: false
107*7ef62cebSEmmanuel Vadot
108*7ef62cebSEmmanuel Vadotexamples:
109*7ef62cebSEmmanuel Vadot  - |
110*7ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/tegra234-clock.h>
111*7ef62cebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
112*7ef62cebSEmmanuel Vadot    #include <dt-bindings/memory/tegra234-mc.h>
113*7ef62cebSEmmanuel Vadot    #include <dt-bindings/power/tegra234-powergate.h>
114*7ef62cebSEmmanuel Vadot    #include <dt-bindings/reset/tegra234-reset.h>
115*7ef62cebSEmmanuel Vadot
116*7ef62cebSEmmanuel Vadot    ethernet@6800000 {
117*7ef62cebSEmmanuel Vadot        compatible = "nvidia,tegra234-mgbe";
118*7ef62cebSEmmanuel Vadot        reg = <0x06800000 0x10000>,
119*7ef62cebSEmmanuel Vadot              <0x06810000 0x10000>,
120*7ef62cebSEmmanuel Vadot              <0x068a0000 0x10000>;
121*7ef62cebSEmmanuel Vadot        reg-names = "hypervisor", "mac", "xpcs";
122*7ef62cebSEmmanuel Vadot        interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
123*7ef62cebSEmmanuel Vadot        interrupt-names = "common";
124*7ef62cebSEmmanuel Vadot        clocks = <&bpmp TEGRA234_CLK_MGBE0_APP>,
125*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_MAC>,
126*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_MAC_DIVIDER>,
127*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_PTP_REF>,
128*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT_M>,
129*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_RX_INPUT>,
130*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_TX>,
131*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_EEE_PCS>,
132*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_INPUT>,
133*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>,
134*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>,
135*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>;
136*7ef62cebSEmmanuel Vadot        clock-names = "mgbe", "mac", "mac-divider", "ptp-ref", "rx-input-m",
137*7ef62cebSEmmanuel Vadot                      "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m",
138*7ef62cebSEmmanuel Vadot                      "rx-pcs", "tx-pcs";
139*7ef62cebSEmmanuel Vadot        resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>,
140*7ef62cebSEmmanuel Vadot                 <&bpmp TEGRA234_RESET_MGBE0_PCS>;
141*7ef62cebSEmmanuel Vadot        reset-names = "mac", "pcs";
142*7ef62cebSEmmanuel Vadot        interconnects = <&mc TEGRA234_MEMORY_CLIENT_MGBEARD &emc>,
143*7ef62cebSEmmanuel Vadot                        <&mc TEGRA234_MEMORY_CLIENT_MGBEAWR &emc>;
144*7ef62cebSEmmanuel Vadot        interconnect-names = "dma-mem", "write";
145*7ef62cebSEmmanuel Vadot        iommus = <&smmu_niso0 TEGRA234_SID_MGBE>;
146*7ef62cebSEmmanuel Vadot        power-domains = <&bpmp TEGRA234_POWER_DOMAIN_MGBEA>;
147*7ef62cebSEmmanuel Vadot
148*7ef62cebSEmmanuel Vadot        phy-handle = <&mgbe0_phy>;
149*7ef62cebSEmmanuel Vadot        phy-mode = "usxgmii";
150*7ef62cebSEmmanuel Vadot
151*7ef62cebSEmmanuel Vadot        mdio {
152*7ef62cebSEmmanuel Vadot            #address-cells = <1>;
153*7ef62cebSEmmanuel Vadot            #size-cells = <0>;
154*7ef62cebSEmmanuel Vadot
155*7ef62cebSEmmanuel Vadot            mgbe0_phy: phy@0 {
156*7ef62cebSEmmanuel Vadot                compatible = "ethernet-phy-ieee802.3-c45";
157*7ef62cebSEmmanuel Vadot                reg = <0x0>;
158*7ef62cebSEmmanuel Vadot
159*7ef62cebSEmmanuel Vadot                #phy-cells = <0>;
160*7ef62cebSEmmanuel Vadot            };
161*7ef62cebSEmmanuel Vadot        };
162*7ef62cebSEmmanuel Vadot    };
163