blob: c80c880a9dab4e9654332b93f94131251a216180 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/fsl,fman-dtsec.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP FMan MAC
8
9maintainers:
10 - Madalin Bucur <madalin.bucur@nxp.com>
11
12description: |
13 Each FMan has several MACs, each implementing an Ethernet interface. Earlier
14 versions of FMan used the Datapath Three Speed Ethernet Controller (dTSEC) for
15 10/100/1000 MBit/s speeds, and the 10-Gigabit Ethernet Media Access Controller
16 (10GEC) for 10 Gbit/s speeds. Later versions of FMan use the Multirate
17 Ethernet Media Access Controller (mEMAC) to handle all speeds.
18
19properties:
20 compatible:
21 enum:
22 - fsl,fman-dtsec
23 - fsl,fman-xgec
24 - fsl,fman-memac
25
26 cell-index:
27 maximum: 64
28 description: |
29 FManV2:
30 register[bit] MAC cell-index
31 ============================================================
32 FM_EPI[16] XGEC 8
33 FM_EPI[16+n] dTSECn n-1
34 FM_NPI[11+n] dTSECn n-1
35 n = 1,..,5
36
37 FManV3:
38 register[bit] MAC cell-index
39 ============================================================
40 FM_EPI[16+n] mEMACn n-1
41 FM_EPI[25] mEMAC10 9
42
43 FM_NPI[11+n] mEMACn n-1
44 FM_NPI[10] mEMAC10 9
45 FM_NPI[11] mEMAC9 8
46 n = 1,..8
47
48 FM_EPI and FM_NPI are located in the FMan memory map.
49
50 2. SoC registers:
51
52 - P2041, P3041, P4080 P5020, P5040:
53 register[bit] FMan MAC cell
54 Unit index
55 ============================================================
56 DCFG_DEVDISR2[7] 1 XGEC 8
57 DCFG_DEVDISR2[7+n] 1 dTSECn n-1
58 DCFG_DEVDISR2[15] 2 XGEC 8
59 DCFG_DEVDISR2[15+n] 2 dTSECn n-1
60 n = 1,..5
61
62 - T1040, T2080, T4240, B4860:
63 register[bit] FMan MAC cell
64 Unit index
65 ============================================================
66 DCFG_CCSR_DEVDISR2[n-1] 1 mEMACn n-1
67 DCFG_CCSR_DEVDISR2[11+n] 2 mEMACn n-1
68 n = 1,..6,9,10
69
70 EVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in
71 the specific SoC "Device Configuration/Pin Control" Memory
72 Map.
73
74 reg:
75 maxItems: 1
76
77 fsl,fman-ports:
78 $ref: /schemas/types.yaml#/definitions/phandle-array
79 maxItems: 2
80 description: |
81 An array of two references: the first is the FMan RX port and the second
82 is the TX port used by this MAC.
83
84 ptp-timer:
85 $ref: /schemas/types.yaml#/definitions/phandle
86 description: A reference to the IEEE1588 timer
87
88 phys:
89 description: A reference to the SerDes lane(s)
90 maxItems: 1
91
92 phy-names:
93 items:
94 - const: serdes
95
96 pcsphy-handle:
97 $ref: /schemas/types.yaml#/definitions/phandle-array
98 minItems: 1
99 maxItems: 3
100 deprecated: true
101 description: See pcs-handle.
102
103 pcs-handle:
104 minItems: 1
105 maxItems: 3
106 description: |
107 A reference to the various PCSs (typically found on the SerDes). If
108 pcs-handle-names is absent, and phy-connection-type is "xgmii", then the first
109 reference will be assumed to be for "xfi". Otherwise, if pcs-handle-names is
110 absent, then the first reference will be assumed to be for "sgmii".
111
112 pcs-handle-names:
113 minItems: 1
114 maxItems: 3
115 items:
116 enum:
117 - sgmii
118 - qsgmii
119 - xfi
120 description: The type of each PCS in pcsphy-handle.
121
122 tbi-handle:
123 $ref: /schemas/types.yaml#/definitions/phandle
124 description: A reference to the (TBI-based) PCS
125
126required:
127 - compatible
128 - cell-index
129 - reg
130 - fsl,fman-ports
131 - ptp-timer
132
133dependencies:
134 pcs-handle-names:
135 - pcs-handle
136
137allOf:
138 - $ref: ethernet-controller.yaml#
139 - if:
140 properties:
141 compatible:
142 contains:
143 const: fsl,fman-dtsec
144 then:
145 required:
146 - tbi-handle
147
148unevaluatedProperties: false
149
150examples:
151 - |
152 ethernet@e0000 {
153 compatible = "fsl,fman-dtsec";
154 cell-index = <0>;
155 reg = <0xe0000 0x1000>;
156 fsl,fman-ports = <&fman1_rx8 &fman1_tx28>;
157 ptp-timer = <&ptp_timer>;
158 tbi-handle = <&tbi0>;
159 };
160 - |
161 ethernet@e8000 {
162 cell-index = <4>;
163 compatible = "fsl,fman-memac";
164 reg = <0xe8000 0x1000>;
165 fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>;
166 ptp-timer = <&ptp_timer0>;
167 pcs-handle = <&pcsphy4>, <&qsgmiib_pcs1>;
168 pcs-handle-names = "sgmii", "qsgmii";
169 phys = <&serdes1 1>;
170 phy-names = "serdes";
171 };
172...