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/dsa/mt7530.txt

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 Mediatek MT7530 Ethernet switch
    2 ================================
    3 
    4 Required properties:
    5 
    6 - compatible: may be compatible = "mediatek,mt7530"
    7         or compatible = "mediatek,mt7621"
    8         or compatible = "mediatek,mt7531"
    9 - #address-cells: Must be 1.
   10 - #size-cells: Must be 0.
   11 - mediatek,mcm: Boolean; if defined, indicates that either MT7530 is the part
   12         on multi-chip module belong to MT7623A has or the remotely standalone
   13         chip as the function MT7623N reference board provided for.
   14 
   15 If compatible mediatek,mt7530 is set then the following properties are required
   16 
   17 - core-supply: Phandle to the regulator node necessary for the core power.
   18 - io-supply: Phandle to the regulator node necessary for the I/O power.
   19         See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt
   20         for details for the regulator setup on these boards.
   21 
   22 If the property mediatek,mcm isn't defined, following property is required
   23 
   24 - reset-gpios: Should be a gpio specifier for a reset line.
   25 
   26 Else, following properties are required
   27 
   28 - resets : Phandle pointing to the system reset controller with
   29         line index for the ethsys.
   30 - reset-names : Should be set to "mcm".
   31 
   32 Required properties for the child nodes within ports container:
   33 
   34 - reg: Port address described must be 6 for CPU port and from 0 to 5 for
   35         user ports.
   36 - phy-mode: String, the following values are acceptable for port labeled
   37         "cpu":
   38         If compatible mediatek,mt7530 or mediatek,mt7621 is set,
   39         must be either "trgmii" or "rgmii"
   40         If compatible mediatek,mt7531 is set,
   41         must be either "sgmii", "1000base-x" or "2500base-x"
   42 
   43 Port 5 of mt7530 and mt7621 switch is muxed between:
   44 1. GMAC5: GMAC5 can interface with another external MAC or PHY.
   45 2. PHY of port 0 or port 4: PHY interfaces with an external MAC like 2nd GMAC
   46    of the SOC. Used in many setups where port 0/4 becomes the WAN port.
   47    Note: On a MT7621 SOC with integrated switch: 2nd GMAC can only connected to
   48          GMAC5 when the gpios for RGMII2 (GPIO 22-33) are not used and not
   49          connected to external component!
   50 
   51 Port 5 modes/configurations:
   52 1. Port 5 is disabled and isolated: An external phy can interface to the 2nd
   53    GMAC of the SOC.
   54    In the case of a build-in MT7530 switch, port 5 shares the RGMII bus with 2nd
   55    GMAC and an optional external phy. Mind the GPIO/pinctl settings of the SOC!
   56 2. Port 5 is muxed to PHY of port 0/4: Port 0/4 interfaces with 2nd GMAC.
   57    It is a simple MAC to PHY interface, port 5 needs to be setup for xMII mode
   58    and RGMII delay.
   59 3. Port 5 is muxed to GMAC5 and can interface to an external phy.
   60    Port 5 becomes an extra switch port.
   61    Only works on platform where external phy TX<->RX lines are swapped.
   62    Like in the Ubiquiti ER-X-SFP.
   63 4. Port 5 is muxed to GMAC5 and interfaces with the 2nd GAMC as 2nd CPU port.
   64    Currently a 2nd CPU port is not supported by DSA code.
   65 
   66 Depending on how the external PHY is wired:
   67 1. normal: The PHY can only connect to 2nd GMAC but not to the switch
   68 2. swapped: RGMII TX, RX are swapped; external phy interface with the switch as
   69    a ethernet port. But can't interface to the 2nd GMAC.
   70 
   71 Based on the DT the port 5 mode is configured.
   72 
   73 Driver tries to lookup the phy-handle of the 2nd GMAC of the master device.
   74 When phy-handle matches PHY of port 0 or 4 then port 5 set-up as mode 2.
   75 phy-mode must be set, see also example 2 below!
   76  * mt7621: phy-mode = "rgmii-txid";
   77  * mt7623: phy-mode = "rgmii";
   78 
   79 Optional properties:
   80 
   81 - gpio-controller: Boolean; if defined, MT7530's LED controller will run on
   82         GPIO mode.
   83 - #gpio-cells: Must be 2 if gpio-controller is defined.
   84 - interrupt-controller: Boolean; Enables the internal interrupt controller.
   85 
   86 If interrupt-controller is defined, the following properties are required.
   87 
   88 - #interrupt-cells: Must be 1.
   89 - interrupts: Parent interrupt for the interrupt controller.
   90 
   91 See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
   92 required, optional properties and how the integrated switch subnodes must
   93 be specified.
   94 
   95 Example:
   96 
   97         &mdio0 {
   98                 switch@0 {
   99                         compatible = "mediatek,mt7530";
  100                         #address-cells = <1>;
  101                         #size-cells = <0>;
  102                         reg = <0>;
  103 
  104                         core-supply = <&mt6323_vpa_reg>;
  105                         io-supply = <&mt6323_vemc3v3_reg>;
  106                         reset-gpios = <&pio 33 0>;
  107 
  108                         ports {
  109                                 #address-cells = <1>;
  110                                 #size-cells = <0>;
  111                                 reg = <0>;
  112                                 port@0 {
  113                                         reg = <0>;
  114                                         label = "lan0";
  115                                 };
  116 
  117                                 port@1 {
  118                                         reg = <1>;
  119                                         label = "lan1";
  120                                 };
  121 
  122                                 port@2 {
  123                                         reg = <2>;
  124                                         label = "lan2";
  125                                 };
  126 
  127                                 port@3 {
  128                                         reg = <3>;
  129                                         label = "lan3";
  130                                 };
  131 
  132                                 port@4 {
  133                                         reg = <4>;
  134                                         label = "wan";
  135                                 };
  136 
  137                                 port@6 {
  138                                         reg = <6>;
  139                                         label = "cpu";
  140                                         ethernet = <&gmac0>;
  141                                         phy-mode = "trgmii";
  142                                         fixed-link {
  143                                                 speed = <1000>;
  144                                                 full-duplex;
  145                                         };
  146                                 };
  147                         };
  148                 };
  149         };
  150 
  151 Example 2: MT7621: Port 4 is WAN port: 2nd GMAC -> Port 5 -> PHY port 4.
  152 
  153 &eth {
  154         gmac0: mac@0 {
  155                 compatible = "mediatek,eth-mac";
  156                 reg = <0>;
  157                 phy-mode = "rgmii";
  158 
  159                 fixed-link {
  160                         speed = <1000>;
  161                         full-duplex;
  162                         pause;
  163                 };
  164         };
  165 
  166         gmac1: mac@1 {
  167                 compatible = "mediatek,eth-mac";
  168                 reg = <1>;
  169                 phy-mode = "rgmii-txid";
  170                 phy-handle = <&phy4>;
  171         };
  172 
  173         mdio: mdio-bus {
  174                 #address-cells = <1>;
  175                 #size-cells = <0>;
  176 
  177                 /* Internal phy */
  178                 phy4: ethernet-phy@4 {
  179                         reg = <4>;
  180                 };
  181 
  182                 mt7530: switch@1f {
  183                         compatible = "mediatek,mt7621";
  184                         #address-cells = <1>;
  185                         #size-cells = <0>;
  186                         reg = <0x1f>;
  187                         pinctrl-names = "default";
  188                         mediatek,mcm;
  189 
  190                         resets = <&rstctrl 2>;
  191                         reset-names = "mcm";
  192 
  193                         ports {
  194                                 #address-cells = <1>;
  195                                 #size-cells = <0>;
  196 
  197                                 port@0 {
  198                                         reg = <0>;
  199                                         label = "lan0";
  200                                 };
  201 
  202                                 port@1 {
  203                                         reg = <1>;
  204                                         label = "lan1";
  205                                 };
  206 
  207                                 port@2 {
  208                                         reg = <2>;
  209                                         label = "lan2";
  210                                 };
  211 
  212                                 port@3 {
  213                                         reg = <3>;
  214                                         label = "lan3";
  215                                 };
  216 
  217 /* Commented out. Port 4 is handled by 2nd GMAC.
  218                                 port@4 {
  219                                         reg = <4>;
  220                                         label = "lan4";
  221                                 };
  222 */
  223 
  224                                 cpu_port0: port@6 {
  225                                         reg = <6>;
  226                                         label = "cpu";
  227                                         ethernet = <&gmac0>;
  228                                         phy-mode = "rgmii";
  229 
  230                                         fixed-link {
  231                                                 speed = <1000>;
  232                                                 full-duplex;
  233                                                 pause;
  234                                         };
  235                                 };
  236                         };
  237                 };
  238         };
  239 };
  240 
  241 Example 3: MT7621: Port 5 is connected to external PHY: Port 5 -> external PHY.
  242 
  243 &eth {
  244         gmac0: mac@0 {
  245                 compatible = "mediatek,eth-mac";
  246                 reg = <0>;
  247                 phy-mode = "rgmii";
  248 
  249                 fixed-link {
  250                         speed = <1000>;
  251                         full-duplex;
  252                         pause;
  253                 };
  254         };
  255 
  256         mdio: mdio-bus {
  257                 #address-cells = <1>;
  258                 #size-cells = <0>;
  259 
  260                 /* External phy */
  261                 ephy5: ethernet-phy@7 {
  262                         reg = <7>;
  263                 };
  264 
  265                 mt7530: switch@1f {
  266                         compatible = "mediatek,mt7621";
  267                         #address-cells = <1>;
  268                         #size-cells = <0>;
  269                         reg = <0x1f>;
  270                         pinctrl-names = "default";
  271                         mediatek,mcm;
  272 
  273                         resets = <&rstctrl 2>;
  274                         reset-names = "mcm";
  275 
  276                         ports {
  277                                 #address-cells = <1>;
  278                                 #size-cells = <0>;
  279 
  280                                 port@0 {
  281                                         reg = <0>;
  282                                         label = "lan0";
  283                                 };
  284 
  285                                 port@1 {
  286                                         reg = <1>;
  287                                         label = "lan1";
  288                                 };
  289 
  290                                 port@2 {
  291                                         reg = <2>;
  292                                         label = "lan2";
  293                                 };
  294 
  295                                 port@3 {
  296                                         reg = <3>;
  297                                         label = "lan3";
  298                                 };
  299 
  300                                 port@4 {
  301                                         reg = <4>;
  302                                         label = "lan4";
  303                                 };
  304 
  305                                 port@5 {
  306                                         reg = <5>;
  307                                         label = "lan5";
  308                                         phy-mode = "rgmii";
  309                                         phy-handle = <&ephy5>;
  310                                 };
  311 
  312                                 cpu_port0: port@6 {
  313                                         reg = <6>;
  314                                         label = "cpu";
  315                                         ethernet = <&gmac0>;
  316                                         phy-mode = "rgmii";
  317 
  318                                         fixed-link {
  319                                                 speed = <1000>;
  320                                                 full-duplex;
  321                                                 pause;
  322                                         };
  323                                 };
  324                         };
  325                 };
  326         };
  327 };

Cache object: 7a8725d279395b64a741d4860d3217e7


[ 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.