~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/net/mediatek,net.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/net/mediatek,net.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: MediaTek Frame Engine Ethernet controller
  8 
  9 maintainers:
 10   - Lorenzo Bianconi <lorenzo@kernel.org>
 11   - Felix Fietkau <nbd@nbd.name>
 12 
 13 description:
 14   The frame engine ethernet controller can be found on MediaTek SoCs. These SoCs
 15   have dual GMAC ports.
 16 
 17 properties:
 18   compatible:
 19     enum:
 20       - mediatek,mt2701-eth
 21       - mediatek,mt7623-eth
 22       - mediatek,mt7621-eth
 23       - mediatek,mt7622-eth
 24       - mediatek,mt7629-eth
 25       - mediatek,mt7981-eth
 26       - mediatek,mt7986-eth
 27       - mediatek,mt7988-eth
 28       - ralink,rt5350-eth
 29 
 30   reg:
 31     maxItems: 1
 32 
 33   clocks:
 34     minItems: 2
 35     maxItems: 24
 36 
 37   clock-names:
 38     minItems: 2
 39     maxItems: 24
 40 
 41   interrupts:
 42     minItems: 1
 43     maxItems: 4
 44 
 45   power-domains:
 46     maxItems: 1
 47 
 48   resets:
 49     maxItems: 3
 50 
 51   reset-names:
 52     items:
 53       - const: fe
 54       - const: gmac
 55       - const: ppe
 56 
 57   mediatek,ethsys:
 58     $ref: /schemas/types.yaml#/definitions/phandle
 59     description:
 60       Phandle to the syscon node that handles the port setup.
 61 
 62   cci-control-port: true
 63 
 64   mediatek,hifsys:
 65     $ref: /schemas/types.yaml#/definitions/phandle
 66     description:
 67       Phandle to the mediatek hifsys controller used to provide various clocks
 68       and reset to the system.
 69 
 70   mediatek,infracfg:
 71     $ref: /schemas/types.yaml#/definitions/phandle
 72     description:
 73       Phandle to the syscon node that handles the path from GMAC to
 74       PHY variants.
 75 
 76   mediatek,pcie-mirror:
 77     $ref: /schemas/types.yaml#/definitions/phandle
 78     description:
 79       Phandle to the mediatek pcie-mirror controller.
 80 
 81   mediatek,pctl:
 82     $ref: /schemas/types.yaml#/definitions/phandle
 83     description:
 84       Phandle to the syscon node that handles the ports slew rate and
 85       driver current.
 86 
 87   mediatek,sgmiisys:
 88     $ref: /schemas/types.yaml#/definitions/phandle-array
 89     minItems: 1
 90     maxItems: 2
 91     items:
 92       maxItems: 1
 93     description:
 94       A list of phandle to the syscon node that handles the SGMII setup which is required for
 95       those SoCs equipped with SGMII.
 96 
 97   mediatek,wed:
 98     $ref: /schemas/types.yaml#/definitions/phandle-array
 99     minItems: 2
100     maxItems: 2
101     items:
102       maxItems: 1
103     description:
104       List of phandles to wireless ethernet dispatch nodes.
105 
106   mediatek,wed-pcie:
107     $ref: /schemas/types.yaml#/definitions/phandle
108     description:
109       Phandle to the mediatek wed-pcie controller.
110 
111   dma-coherent: true
112 
113   mdio-bus:
114     $ref: mdio.yaml#
115     unevaluatedProperties: false
116 
117   "#address-cells":
118     const: 1
119 
120   "#size-cells":
121     const: 0
122 
123 allOf:
124   - $ref: ethernet-controller.yaml#
125   - if:
126       properties:
127         compatible:
128           contains:
129             enum:
130               - mediatek,mt2701-eth
131               - mediatek,mt7623-eth
132     then:
133       properties:
134         interrupts:
135           minItems: 3
136           maxItems: 3
137 
138         clocks:
139           minItems: 4
140           maxItems: 4
141 
142         clock-names:
143           items:
144             - const: ethif
145             - const: esw
146             - const: gp1
147             - const: gp2
148 
149         mediatek,infracfg: false
150 
151         mediatek,wed: false
152 
153         mediatek,wed-pcie: false
154     else:
155       properties:
156         mediatek,pctl: false
157 
158   - if:
159       properties:
160         compatible:
161           contains:
162             enum:
163               - mediatek,mt7621-eth
164     then:
165       properties:
166         interrupts:
167           maxItems: 1
168 
169         clocks:
170           minItems: 2
171           maxItems: 2
172 
173         clock-names:
174           items:
175             - const: ethif
176             - const: fe
177 
178         mediatek,infracfg: false
179 
180         mediatek,wed: false
181 
182         mediatek,wed-pcie: false
183 
184   - if:
185       properties:
186         compatible:
187           contains:
188             const: mediatek,mt7622-eth
189     then:
190       properties:
191         interrupts:
192           minItems: 3
193           maxItems: 3
194 
195         clocks:
196           minItems: 11
197           maxItems: 11
198 
199         clock-names:
200           items:
201             - const: ethif
202             - const: esw
203             - const: gp0
204             - const: gp1
205             - const: gp2
206             - const: sgmii_tx250m
207             - const: sgmii_rx250m
208             - const: sgmii_cdr_ref
209             - const: sgmii_cdr_fb
210             - const: sgmii_ck
211             - const: eth2pll
212 
213         mediatek,infracfg: false
214 
215         mediatek,sgmiisys:
216           minItems: 1
217           maxItems: 1
218 
219         mediatek,wed-pcie: false
220     else:
221       properties:
222         mediatek,pcie-mirror: false
223 
224   - if:
225       properties:
226         compatible:
227           contains:
228             const: mediatek,mt7629-eth
229     then:
230       properties:
231         interrupts:
232           minItems: 3
233           maxItems: 3
234 
235         clocks:
236           minItems: 17
237           maxItems: 17
238 
239         clock-names:
240           items:
241             - const: ethif
242             - const: sgmiitop
243             - const: esw
244             - const: gp0
245             - const: gp1
246             - const: gp2
247             - const: fe
248             - const: sgmii_tx250m
249             - const: sgmii_rx250m
250             - const: sgmii_cdr_ref
251             - const: sgmii_cdr_fb
252             - const: sgmii2_tx250m
253             - const: sgmii2_rx250m
254             - const: sgmii2_cdr_ref
255             - const: sgmii2_cdr_fb
256             - const: sgmii_ck
257             - const: eth2pll
258 
259         mediatek,sgmiisys:
260           minItems: 2
261           maxItems: 2
262 
263         mediatek,wed: false
264 
265         mediatek,wed-pcie: false
266 
267   - if:
268       properties:
269         compatible:
270           contains:
271             const: mediatek,mt7981-eth
272     then:
273       properties:
274         interrupts:
275           minItems: 4
276 
277         clocks:
278           minItems: 15
279           maxItems: 15
280 
281         clock-names:
282           items:
283             - const: fe
284             - const: gp2
285             - const: gp1
286             - const: wocpu0
287             - const: sgmii_ck
288             - const: sgmii_tx250m
289             - const: sgmii_rx250m
290             - const: sgmii_cdr_ref
291             - const: sgmii_cdr_fb
292             - const: sgmii2_tx250m
293             - const: sgmii2_rx250m
294             - const: sgmii2_cdr_ref
295             - const: sgmii2_cdr_fb
296             - const: netsys0
297             - const: netsys1
298 
299         mediatek,infracfg: false
300 
301         mediatek,sgmiisys:
302           minItems: 2
303           maxItems: 2
304 
305   - if:
306       properties:
307         compatible:
308           contains:
309             const: mediatek,mt7986-eth
310     then:
311       properties:
312         interrupts:
313           minItems: 4
314 
315         clocks:
316           minItems: 15
317           maxItems: 15
318 
319         clock-names:
320           items:
321             - const: fe
322             - const: gp2
323             - const: gp1
324             - const: wocpu1
325             - const: wocpu0
326             - const: sgmii_tx250m
327             - const: sgmii_rx250m
328             - const: sgmii_cdr_ref
329             - const: sgmii_cdr_fb
330             - const: sgmii2_tx250m
331             - const: sgmii2_rx250m
332             - const: sgmii2_cdr_ref
333             - const: sgmii2_cdr_fb
334             - const: netsys0
335             - const: netsys1
336 
337         mediatek,infracfg: false
338 
339         mediatek,sgmiisys:
340           minItems: 2
341           maxItems: 2
342 
343   - if:
344       properties:
345         compatible:
346           contains:
347             const: mediatek,mt7988-eth
348     then:
349       properties:
350         interrupts:
351           minItems: 4
352 
353         clocks:
354           minItems: 24
355           maxItems: 24
356 
357         clock-names:
358           items:
359             - const: crypto
360             - const: fe
361             - const: gp2
362             - const: gp1
363             - const: gp3
364             - const: ethwarp_wocpu2
365             - const: ethwarp_wocpu1
366             - const: ethwarp_wocpu0
367             - const: esw
368             - const: top_eth_gmii_sel
369             - const: top_eth_refck_50m_sel
370             - const: top_eth_sys_200m_sel
371             - const: top_eth_sys_sel
372             - const: top_eth_xgmii_sel
373             - const: top_eth_mii_sel
374             - const: top_netsys_sel
375             - const: top_netsys_500m_sel
376             - const: top_netsys_pao_2x_sel
377             - const: top_netsys_sync_250m_sel
378             - const: top_netsys_ppefb_250m_sel
379             - const: top_netsys_warp_sel
380             - const: xgp1
381             - const: xgp2
382             - const: xgp3
383 
384 patternProperties:
385   "^mac@[0-1]$":
386     type: object
387     unevaluatedProperties: false
388     allOf:
389       - $ref: ethernet-controller.yaml#
390     description:
391       Ethernet MAC node
392     properties:
393       compatible:
394         const: mediatek,eth-mac
395 
396       reg:
397         maxItems: 1
398 
399     required:
400       - reg
401       - compatible
402 
403 required:
404   - compatible
405   - reg
406   - interrupts
407   - clocks
408   - clock-names
409   - mediatek,ethsys
410 
411 unevaluatedProperties: false
412 
413 examples:
414   - |
415     #include <dt-bindings/interrupt-controller/arm-gic.h>
416     #include <dt-bindings/interrupt-controller/irq.h>
417     #include <dt-bindings/clock/mt7622-clk.h>
418     #include <dt-bindings/power/mt7622-power.h>
419 
420     soc {
421       #address-cells = <2>;
422       #size-cells = <2>;
423 
424       ethernet: ethernet@1b100000 {
425         compatible = "mediatek,mt7622-eth";
426         reg = <0 0x1b100000 0 0x20000>;
427         interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_LOW>,
428                      <GIC_SPI 224 IRQ_TYPE_LEVEL_LOW>,
429                      <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
430         clocks = <&topckgen CLK_TOP_ETH_SEL>,
431                  <&ethsys CLK_ETH_ESW_EN>,
432                  <&ethsys CLK_ETH_GP0_EN>,
433                  <&ethsys CLK_ETH_GP1_EN>,
434                  <&ethsys CLK_ETH_GP2_EN>,
435                  <&sgmiisys CLK_SGMII_TX250M_EN>,
436                  <&sgmiisys CLK_SGMII_RX250M_EN>,
437                  <&sgmiisys CLK_SGMII_CDR_REF>,
438                  <&sgmiisys CLK_SGMII_CDR_FB>,
439                  <&topckgen CLK_TOP_SGMIIPLL>,
440                  <&apmixedsys CLK_APMIXED_ETH2PLL>;
441         clock-names = "ethif", "esw", "gp0", "gp1", "gp2",
442                       "sgmii_tx250m", "sgmii_rx250m",
443                       "sgmii_cdr_ref", "sgmii_cdr_fb", "sgmii_ck",
444                       "eth2pll";
445         power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
446         mediatek,ethsys = <&ethsys>;
447         mediatek,sgmiisys = <&sgmiisys>;
448         cci-control-port = <&cci_control2>;
449         mediatek,pcie-mirror = <&pcie_mirror>;
450         mediatek,hifsys = <&hifsys>;
451         dma-coherent;
452 
453         #address-cells = <1>;
454         #size-cells = <0>;
455 
456         mdio0: mdio-bus {
457           #address-cells = <1>;
458           #size-cells = <0>;
459 
460           phy0: ethernet-phy@0 {
461             reg = <0>;
462           };
463 
464           phy1: ethernet-phy@1 {
465             reg = <1>;
466           };
467         };
468 
469         gmac0: mac@0 {
470           compatible = "mediatek,eth-mac";
471           phy-mode = "rgmii";
472           phy-handle = <&phy0>;
473           reg = <0>;
474         };
475 
476         gmac1: mac@1 {
477           compatible = "mediatek,eth-mac";
478           phy-mode = "rgmii";
479           phy-handle = <&phy1>;
480           reg = <1>;
481         };
482       };
483     };
484 
485   - |
486     #include <dt-bindings/interrupt-controller/arm-gic.h>
487     #include <dt-bindings/interrupt-controller/irq.h>
488     #include <dt-bindings/clock/mt7622-clk.h>
489 
490     soc {
491       #address-cells = <2>;
492       #size-cells = <2>;
493 
494       eth: ethernet@15100000 {
495         #define CLK_ETH_FE_EN               0
496         #define CLK_ETH_WOCPU1_EN           3
497         #define CLK_ETH_WOCPU0_EN           4
498         #define CLK_TOP_NETSYS_SEL          43
499         #define CLK_TOP_NETSYS_500M_SEL     44
500         #define CLK_TOP_NETSYS_2X_SEL       46
501         #define CLK_TOP_SGM_325M_SEL        47
502         #define CLK_APMIXED_NET2PLL         1
503         #define CLK_APMIXED_SGMPLL          3
504 
505         compatible = "mediatek,mt7986-eth";
506         reg = <0 0x15100000 0 0x80000>;
507         interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
508                      <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
509                      <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
510                      <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
511         clocks = <&ethsys CLK_ETH_FE_EN>,
512                  <&ethsys CLK_ETH_GP2_EN>,
513                  <&ethsys CLK_ETH_GP1_EN>,
514                  <&ethsys CLK_ETH_WOCPU1_EN>,
515                  <&ethsys CLK_ETH_WOCPU0_EN>,
516                  <&sgmiisys0 CLK_SGMII_TX250M_EN>,
517                  <&sgmiisys0 CLK_SGMII_RX250M_EN>,
518                  <&sgmiisys0 CLK_SGMII_CDR_REF>,
519                  <&sgmiisys0 CLK_SGMII_CDR_FB>,
520                  <&sgmiisys1 CLK_SGMII_TX250M_EN>,
521                  <&sgmiisys1 CLK_SGMII_RX250M_EN>,
522                  <&sgmiisys1 CLK_SGMII_CDR_REF>,
523                  <&sgmiisys1 CLK_SGMII_CDR_FB>,
524                  <&topckgen CLK_TOP_NETSYS_SEL>,
525                  <&topckgen CLK_TOP_NETSYS_SEL>;
526         clock-names = "fe", "gp2", "gp1", "wocpu1", "wocpu0",
527                       "sgmii_tx250m", "sgmii_rx250m",
528                       "sgmii_cdr_ref", "sgmii_cdr_fb",
529                       "sgmii2_tx250m", "sgmii2_rx250m",
530                       "sgmii2_cdr_ref", "sgmii2_cdr_fb",
531                       "netsys0", "netsys1";
532         mediatek,ethsys = <&ethsys>;
533         mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
534         assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
535                           <&topckgen CLK_TOP_SGM_325M_SEL>;
536         assigned-clock-parents = <&apmixedsys CLK_APMIXED_NET2PLL>,
537                                  <&apmixedsys CLK_APMIXED_SGMPLL>;
538 
539         #address-cells = <1>;
540         #size-cells = <0>;
541 
542         mdio: mdio-bus {
543           #address-cells = <1>;
544           #size-cells = <0>;
545 
546           phy5: ethernet-phy@0 {
547             compatible = "ethernet-phy-id67c9.de0a";
548             phy-mode = "2500base-x";
549             reset-gpios = <&pio 6 1>;
550             reset-deassert-us = <20000>;
551             reg = <5>;
552           };
553 
554           phy6: ethernet-phy@1 {
555             compatible = "ethernet-phy-id67c9.de0a";
556             phy-mode = "2500base-x";
557             reg = <6>;
558           };
559         };
560 
561         mac0: mac@0 {
562           compatible = "mediatek,eth-mac";
563           phy-mode = "2500base-x";
564           phy-handle = <&phy5>;
565           reg = <0>;
566         };
567 
568         mac1: mac@1 {
569           compatible = "mediatek,eth-mac";
570           phy-mode = "2500base-x";
571           phy-handle = <&phy6>;
572           reg = <1>;
573         };
574       };
575     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php