The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/net/mediatek,net.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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,mt7622-eth
   23       - mediatek,mt7629-eth
   24       - mediatek,mt7986-eth
   25       - ralink,rt5350-eth
   26 
   27   reg:
   28     maxItems: 1
   29 
   30   clocks: true
   31   clock-names: true
   32 
   33   interrupts:
   34     minItems: 3
   35     maxItems: 4
   36 
   37   power-domains:
   38     maxItems: 1
   39 
   40   resets:
   41     maxItems: 3
   42 
   43   reset-names:
   44     items:
   45       - const: fe
   46       - const: gmac
   47       - const: ppe
   48 
   49   mediatek,ethsys:
   50     $ref: /schemas/types.yaml#/definitions/phandle
   51     description:
   52       Phandle to the syscon node that handles the port setup.
   53 
   54   cci-control-port: true
   55 
   56   mediatek,hifsys:
   57     $ref: /schemas/types.yaml#/definitions/phandle
   58     description:
   59       Phandle to the mediatek hifsys controller used to provide various clocks
   60       and reset to the system.
   61 
   62   mediatek,sgmiisys:
   63     $ref: /schemas/types.yaml#/definitions/phandle-array
   64     minItems: 1
   65     maxItems: 2
   66     items:
   67       maxItems: 1
   68     description:
   69       A list of phandle to the syscon node that handles the SGMII setup which is required for
   70       those SoCs equipped with SGMII.
   71 
   72   dma-coherent: true
   73 
   74   mdio-bus:
   75     $ref: mdio.yaml#
   76     unevaluatedProperties: false
   77 
   78   "#address-cells":
   79     const: 1
   80 
   81   "#size-cells":
   82     const: 0
   83 
   84 allOf:
   85   - $ref: "ethernet-controller.yaml#"
   86   - if:
   87       properties:
   88         compatible:
   89           contains:
   90             enum:
   91               - mediatek,mt2701-eth
   92               - mediatek,mt7623-eth
   93     then:
   94       properties:
   95         interrupts:
   96           maxItems: 3
   97 
   98         clocks:
   99           minItems: 4
  100           maxItems: 4
  101 
  102         clock-names:
  103           items:
  104             - const: ethif
  105             - const: esw
  106             - const: gp1
  107             - const: gp2
  108 
  109         mediatek,pctl:
  110           $ref: /schemas/types.yaml#/definitions/phandle
  111           description:
  112             Phandle to the syscon node that handles the ports slew rate and
  113             driver current.
  114 
  115   - if:
  116       properties:
  117         compatible:
  118           contains:
  119             const: mediatek,mt7622-eth
  120     then:
  121       properties:
  122         interrupts:
  123           maxItems: 3
  124 
  125         clocks:
  126           minItems: 11
  127           maxItems: 11
  128 
  129         clock-names:
  130           items:
  131             - const: ethif
  132             - const: esw
  133             - const: gp0
  134             - const: gp1
  135             - const: gp2
  136             - const: sgmii_tx250m
  137             - const: sgmii_rx250m
  138             - const: sgmii_cdr_ref
  139             - const: sgmii_cdr_fb
  140             - const: sgmii_ck
  141             - const: eth2pll
  142 
  143         mediatek,sgmiisys:
  144           minItems: 1
  145           maxItems: 1
  146 
  147         mediatek,wed:
  148           $ref: /schemas/types.yaml#/definitions/phandle-array
  149           minItems: 2
  150           maxItems: 2
  151           items:
  152             maxItems: 1
  153           description:
  154             List of phandles to wireless ethernet dispatch nodes.
  155 
  156         mediatek,pcie-mirror:
  157           $ref: /schemas/types.yaml#/definitions/phandle
  158           description:
  159             Phandle to the mediatek pcie-mirror controller.
  160 
  161   - if:
  162       properties:
  163         compatible:
  164           contains:
  165             const: mediatek,mt7629-eth
  166     then:
  167       properties:
  168         interrupts:
  169           maxItems: 3
  170 
  171         clocks:
  172           minItems: 17
  173           maxItems: 17
  174 
  175         clock-names:
  176           items:
  177             - const: ethif
  178             - const: sgmiitop
  179             - const: esw
  180             - const: gp0
  181             - const: gp1
  182             - const: gp2
  183             - const: fe
  184             - const: sgmii_tx250m
  185             - const: sgmii_rx250m
  186             - const: sgmii_cdr_ref
  187             - const: sgmii_cdr_fb
  188             - const: sgmii2_tx250m
  189             - const: sgmii2_rx250m
  190             - const: sgmii2_cdr_ref
  191             - const: sgmii2_cdr_fb
  192             - const: sgmii_ck
  193             - const: eth2pll
  194 
  195         mediatek,infracfg:
  196           $ref: /schemas/types.yaml#/definitions/phandle
  197           description:
  198             Phandle to the syscon node that handles the path from GMAC to
  199             PHY variants.
  200 
  201         mediatek,sgmiisys:
  202           minItems: 2
  203           maxItems: 2
  204 
  205   - if:
  206       properties:
  207         compatible:
  208           contains:
  209             const: mediatek,mt7986-eth
  210     then:
  211       properties:
  212         interrupts:
  213           minItems: 4
  214 
  215         clocks:
  216           minItems: 15
  217           maxItems: 15
  218 
  219         clock-names:
  220           items:
  221             - const: fe
  222             - const: gp2
  223             - const: gp1
  224             - const: wocpu1
  225             - const: wocpu0
  226             - const: sgmii_tx250m
  227             - const: sgmii_rx250m
  228             - const: sgmii_cdr_ref
  229             - const: sgmii_cdr_fb
  230             - const: sgmii2_tx250m
  231             - const: sgmii2_rx250m
  232             - const: sgmii2_cdr_ref
  233             - const: sgmii2_cdr_fb
  234             - const: netsys0
  235             - const: netsys1
  236 
  237         mediatek,sgmiisys:
  238           minItems: 2
  239           maxItems: 2
  240 
  241 patternProperties:
  242   "^mac@[0-1]$":
  243     type: object
  244     additionalProperties: false
  245     allOf:
  246       - $ref: ethernet-controller.yaml#
  247     description:
  248       Ethernet MAC node
  249     properties:
  250       compatible:
  251         const: mediatek,eth-mac
  252 
  253       reg:
  254         maxItems: 1
  255 
  256       phy-handle: true
  257 
  258       phy-mode: true
  259 
  260     required:
  261       - reg
  262       - compatible
  263       - phy-handle
  264 
  265 required:
  266   - compatible
  267   - reg
  268   - interrupts
  269   - clocks
  270   - clock-names
  271   - mediatek,ethsys
  272 
  273 unevaluatedProperties: false
  274 
  275 examples:
  276   - |
  277     #include <dt-bindings/interrupt-controller/arm-gic.h>
  278     #include <dt-bindings/interrupt-controller/irq.h>
  279     #include <dt-bindings/clock/mt7622-clk.h>
  280     #include <dt-bindings/power/mt7622-power.h>
  281 
  282     soc {
  283       #address-cells = <2>;
  284       #size-cells = <2>;
  285 
  286       ethernet: ethernet@1b100000 {
  287         compatible = "mediatek,mt7622-eth";
  288         reg = <0 0x1b100000 0 0x20000>;
  289         interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_LOW>,
  290                      <GIC_SPI 224 IRQ_TYPE_LEVEL_LOW>,
  291                      <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
  292         clocks = <&topckgen CLK_TOP_ETH_SEL>,
  293                  <&ethsys CLK_ETH_ESW_EN>,
  294                  <&ethsys CLK_ETH_GP0_EN>,
  295                  <&ethsys CLK_ETH_GP1_EN>,
  296                  <&ethsys CLK_ETH_GP2_EN>,
  297                  <&sgmiisys CLK_SGMII_TX250M_EN>,
  298                  <&sgmiisys CLK_SGMII_RX250M_EN>,
  299                  <&sgmiisys CLK_SGMII_CDR_REF>,
  300                  <&sgmiisys CLK_SGMII_CDR_FB>,
  301                  <&topckgen CLK_TOP_SGMIIPLL>,
  302                  <&apmixedsys CLK_APMIXED_ETH2PLL>;
  303         clock-names = "ethif", "esw", "gp0", "gp1", "gp2",
  304                       "sgmii_tx250m", "sgmii_rx250m",
  305                       "sgmii_cdr_ref", "sgmii_cdr_fb", "sgmii_ck",
  306                       "eth2pll";
  307         power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
  308         mediatek,ethsys = <&ethsys>;
  309         mediatek,sgmiisys = <&sgmiisys>;
  310         cci-control-port = <&cci_control2>;
  311         mediatek,pcie-mirror = <&pcie_mirror>;
  312         mediatek,hifsys = <&hifsys>;
  313         dma-coherent;
  314 
  315         #address-cells = <1>;
  316         #size-cells = <0>;
  317 
  318         mdio0: mdio-bus {
  319           #address-cells = <1>;
  320           #size-cells = <0>;
  321 
  322           phy0: ethernet-phy@0 {
  323             reg = <0>;
  324           };
  325 
  326           phy1: ethernet-phy@1 {
  327             reg = <1>;
  328           };
  329         };
  330 
  331         gmac0: mac@0 {
  332           compatible = "mediatek,eth-mac";
  333           phy-mode = "rgmii";
  334           phy-handle = <&phy0>;
  335           reg = <0>;
  336         };
  337 
  338         gmac1: mac@1 {
  339           compatible = "mediatek,eth-mac";
  340           phy-mode = "rgmii";
  341           phy-handle = <&phy1>;
  342           reg = <1>;
  343         };
  344       };
  345     };
  346 
  347   - |
  348     #include <dt-bindings/interrupt-controller/arm-gic.h>
  349     #include <dt-bindings/interrupt-controller/irq.h>
  350     #include <dt-bindings/clock/mt7622-clk.h>
  351 
  352     soc {
  353       #address-cells = <2>;
  354       #size-cells = <2>;
  355 
  356       eth: ethernet@15100000 {
  357         #define CLK_ETH_FE_EN               0
  358         #define CLK_ETH_WOCPU1_EN           3
  359         #define CLK_ETH_WOCPU0_EN           4
  360         #define CLK_TOP_NETSYS_SEL          43
  361         #define CLK_TOP_NETSYS_500M_SEL     44
  362         #define CLK_TOP_NETSYS_2X_SEL       46
  363         #define CLK_TOP_SGM_325M_SEL        47
  364         #define CLK_APMIXED_NET2PLL         1
  365         #define CLK_APMIXED_SGMPLL          3
  366 
  367         compatible = "mediatek,mt7986-eth";
  368         reg = <0 0x15100000 0 0x80000>;
  369         interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
  370                      <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
  371                      <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
  372                      <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
  373         clocks = <&ethsys CLK_ETH_FE_EN>,
  374                  <&ethsys CLK_ETH_GP2_EN>,
  375                  <&ethsys CLK_ETH_GP1_EN>,
  376                  <&ethsys CLK_ETH_WOCPU1_EN>,
  377                  <&ethsys CLK_ETH_WOCPU0_EN>,
  378                  <&sgmiisys0 CLK_SGMII_TX250M_EN>,
  379                  <&sgmiisys0 CLK_SGMII_RX250M_EN>,
  380                  <&sgmiisys0 CLK_SGMII_CDR_REF>,
  381                  <&sgmiisys0 CLK_SGMII_CDR_FB>,
  382                  <&sgmiisys1 CLK_SGMII_TX250M_EN>,
  383                  <&sgmiisys1 CLK_SGMII_RX250M_EN>,
  384                  <&sgmiisys1 CLK_SGMII_CDR_REF>,
  385                  <&sgmiisys1 CLK_SGMII_CDR_FB>,
  386                  <&topckgen CLK_TOP_NETSYS_SEL>,
  387                  <&topckgen CLK_TOP_NETSYS_SEL>;
  388         clock-names = "fe", "gp2", "gp1", "wocpu1", "wocpu0",
  389                       "sgmii_tx250m", "sgmii_rx250m",
  390                       "sgmii_cdr_ref", "sgmii_cdr_fb",
  391                       "sgmii2_tx250m", "sgmii2_rx250m",
  392                       "sgmii2_cdr_ref", "sgmii2_cdr_fb",
  393                       "netsys0", "netsys1";
  394         mediatek,ethsys = <&ethsys>;
  395         mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
  396         assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
  397                           <&topckgen CLK_TOP_SGM_325M_SEL>;
  398         assigned-clock-parents = <&apmixedsys CLK_APMIXED_NET2PLL>,
  399                                  <&apmixedsys CLK_APMIXED_SGMPLL>;
  400 
  401         #address-cells = <1>;
  402         #size-cells = <0>;
  403 
  404         mdio: mdio-bus {
  405           #address-cells = <1>;
  406           #size-cells = <0>;
  407 
  408           phy5: ethernet-phy@0 {
  409             compatible = "ethernet-phy-id67c9.de0a";
  410             phy-mode = "2500base-x";
  411             reset-gpios = <&pio 6 1>;
  412             reset-deassert-us = <20000>;
  413             reg = <5>;
  414           };
  415 
  416           phy6: ethernet-phy@1 {
  417             compatible = "ethernet-phy-id67c9.de0a";
  418             phy-mode = "2500base-x";
  419             reg = <6>;
  420           };
  421         };
  422 
  423         mac0: mac@0 {
  424           compatible = "mediatek,eth-mac";
  425           phy-mode = "2500base-x";
  426           phy-handle = <&phy5>;
  427           reg = <0>;
  428         };
  429 
  430         mac1: mac@1 {
  431           compatible = "mediatek,eth-mac";
  432           phy-mode = "2500base-x";
  433           phy-handle = <&phy6>;
  434           reg = <1>;
  435         };
  436       };
  437     };

Cache object: f7d2fc5ad3a14cc5bf19def3e3ce69dc


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.