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/micrel-ksz90x1.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 Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY
    2 
    3 Some boards require special tuning values, particularly when it comes
    4 to clock delays. You can specify clock delay values in the PHY OF
    5 device node. Deprecated, but still supported, these properties can
    6 also be added to an Ethernet OF device node.
    7 
    8 Note that these settings are applied after any phy-specific fixup from
    9 phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c),
   10 and therefore may overwrite them.
   11 
   12 KSZ9021:
   13 
   14   All skew control options are specified in picoseconds. The minimum
   15   value is 0, the maximum value is 3000, and it can be specified in 200ps
   16   steps, *but* these values are in not fact what you get because this chip's
   17   skew values actually increase in 120ps steps, starting from -840ps. The
   18   incorrect values came from an error in the original KSZ9021 datasheet
   19   before it was corrected in revision 1.2 (Feb 2014), but it is too late to
   20   change the driver now because of the many existing device trees that have
   21   been created using values that go up in increments of 200.
   22 
   23   The following table shows the actual skew delay you will get for each of the
   24   possible devicetree values, and the number that will be programmed into the
   25   corresponding pad skew register:
   26 
   27   Device Tree Value     Delay   Pad Skew Register Value
   28   -----------------------------------------------------
   29         0               -840ps          0000
   30         200             -720ps          0001
   31         400             -600ps          0010
   32         600             -480ps          0011
   33         800             -360ps          0100
   34         1000            -240ps          0101
   35         1200            -120ps          0110
   36         1400               0ps          0111
   37         1600             120ps          1000
   38         1800             240ps          1001
   39         2000             360ps          1010
   40         2200             480ps          1011
   41         2400             600ps          1100
   42         2600             720ps          1101
   43         2800             840ps          1110
   44         3000             960ps          1111
   45 
   46   Optional properties:
   47 
   48     - rxc-skew-ps : Skew control of RXC pad
   49     - rxdv-skew-ps : Skew control of RX CTL pad
   50     - txc-skew-ps : Skew control of TXC pad
   51     - txen-skew-ps : Skew control of TX CTL pad
   52     - rxd0-skew-ps : Skew control of RX data 0 pad
   53     - rxd1-skew-ps : Skew control of RX data 1 pad
   54     - rxd2-skew-ps : Skew control of RX data 2 pad
   55     - rxd3-skew-ps : Skew control of RX data 3 pad
   56     - txd0-skew-ps : Skew control of TX data 0 pad
   57     - txd1-skew-ps : Skew control of TX data 1 pad
   58     - txd2-skew-ps : Skew control of TX data 2 pad
   59     - txd3-skew-ps : Skew control of TX data 3 pad
   60 
   61 KSZ9031:
   62 
   63   All skew control options are specified in picoseconds. The minimum
   64   value is 0, and the maximum is property-dependent. The increment
   65   step is 60ps. The default value is the neutral setting, so setting
   66   rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.
   67 
   68   The KSZ9031 hardware supports a range of skew values from negative to
   69   positive, where the specific range is property dependent. All values
   70   specified in the devicetree are offset by the minimum value so they
   71   can be represented as positive integers in the devicetree since it's
   72   difficult to represent a negative number in the devictree.
   73 
   74   The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps.
   75 
   76   Pad Skew Value        Delay (ps)      Devicetree Value
   77   ------------------------------------------------------
   78   0_0000                -900ps          0
   79   0_0001                -840ps          60
   80   0_0010                -780ps          120
   81   0_0011                -720ps          180
   82   0_0100                -660ps          240
   83   0_0101                -600ps          300
   84   0_0110                -540ps          360
   85   0_0111                -480ps          420
   86   0_1000                -420ps          480
   87   0_1001                -360ps          540
   88   0_1010                -300ps          600
   89   0_1011                -240ps          660
   90   0_1100                -180ps          720
   91   0_1101                -120ps          780
   92   0_1110                -60ps           840
   93   0_1111                0ps             900
   94   1_0000                60ps            960
   95   1_0001                120ps           1020
   96   1_0010                180ps           1080
   97   1_0011                240ps           1140
   98   1_0100                300ps           1200
   99   1_0101                360ps           1260
  100   1_0110                420ps           1320
  101   1_0111                480ps           1380
  102   1_1000                540ps           1440
  103   1_1001                600ps           1500
  104   1_1010                660ps           1560
  105   1_1011                720ps           1620
  106   1_1100                780ps           1680
  107   1_1101                840ps           1740
  108   1_1110                900ps           1800
  109   1_1111                960ps           1860
  110 
  111   The following 4-bit values table apply to the txdX-skew-ps, rxdX-skew-ps
  112   data pads, and the rxdv-skew-ps, txen-skew-ps control pads.
  113 
  114   Pad Skew Value        Delay (ps)      Devicetree Value
  115   ------------------------------------------------------
  116   0000                  -420ps          0
  117   0001                  -360ps          60
  118   0010                  -300ps          120
  119   0011                  -240ps          180
  120   0100                  -180ps          240
  121   0101                  -120ps          300
  122   0110                  -60ps           360
  123   0111                  0ps             420
  124   1000                  60ps            480
  125   1001                  120ps           540
  126   1010                  180ps           600
  127   1011                  240ps           660
  128   1100                  300ps           720
  129   1101                  360ps           780
  130   1110                  420ps           840
  131   1111                  480ps           900
  132 
  133   Optional properties:
  134 
  135     Maximum value of 1860, default value 900:
  136 
  137       - rxc-skew-ps : Skew control of RX clock pad
  138       - txc-skew-ps : Skew control of TX clock pad
  139 
  140     Maximum value of 900, default value 420:
  141 
  142       - rxdv-skew-ps : Skew control of RX CTL pad
  143       - txen-skew-ps : Skew control of TX CTL pad
  144       - rxd0-skew-ps : Skew control of RX data 0 pad
  145       - rxd1-skew-ps : Skew control of RX data 1 pad
  146       - rxd2-skew-ps : Skew control of RX data 2 pad
  147       - rxd3-skew-ps : Skew control of RX data 3 pad
  148       - txd0-skew-ps : Skew control of TX data 0 pad
  149       - txd1-skew-ps : Skew control of TX data 1 pad
  150       - txd2-skew-ps : Skew control of TX data 2 pad
  151       - txd3-skew-ps : Skew control of TX data 3 pad
  152 
  153     - micrel,force-master:
  154         Boolean, force phy to master mode. Only set this option if the phy
  155         reference clock provided at CLK125_NDO pin is used as MAC reference
  156         clock because the clock jitter in slave mode is to high (errata#2).
  157         Attention: The link partner must be configurable as slave otherwise
  158         no link will be established.
  159 
  160 KSZ9131:
  161 
  162   All skew control options are specified in picoseconds. The increment
  163   step is 100ps. Unlike KSZ9031, the values represent picoseccond delays.
  164   A negative value can be assigned as rxc-skew-psec = <(-100)>;.
  165 
  166   Optional properties:
  167 
  168     Range of the value -700 to 2400, default value 0:
  169 
  170       - rxc-skew-psec : Skew control of RX clock pad
  171       - txc-skew-psec : Skew control of TX clock pad
  172 
  173     Range of the value -700 to 800, default value 0:
  174 
  175       - rxdv-skew-psec : Skew control of RX CTL pad
  176       - txen-skew-psec : Skew control of TX CTL pad
  177       - rxd0-skew-psec : Skew control of RX data 0 pad
  178       - rxd1-skew-psec : Skew control of RX data 1 pad
  179       - rxd2-skew-psec : Skew control of RX data 2 pad
  180       - rxd3-skew-psec : Skew control of RX data 3 pad
  181       - txd0-skew-psec : Skew control of TX data 0 pad
  182       - txd1-skew-psec : Skew control of TX data 1 pad
  183       - txd2-skew-psec : Skew control of TX data 2 pad
  184       - txd3-skew-psec : Skew control of TX data 3 pad
  185 
  186 Examples:
  187 
  188         /* Attach to an Ethernet device with autodetected PHY */
  189         &enet {
  190                 rxc-skew-ps = <1800>;
  191                 rxdv-skew-ps = <0>;
  192                 txc-skew-ps = <1800>;
  193                 txen-skew-ps = <0>;
  194                 status = "okay";
  195         };
  196 
  197         /* Attach to an explicitly-specified PHY */
  198         mdio {
  199                 phy0: ethernet-phy@0 {
  200                         rxc-skew-ps = <1800>;
  201                         rxdv-skew-ps = <0>;
  202                         txc-skew-ps = <1800>;
  203                         txen-skew-ps = <0>;
  204                         reg = <0>;
  205                 };
  206         };
  207         ethernet@70000 {
  208                 phy = <&phy0>;
  209                 phy-mode = "rgmii-id";
  210         };
  211 
  212 References
  213 
  214   Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014.
  215   http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf
  216 
  217   Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
  218   http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf
  219 
  220 Notes:
  221 
  222   Note that a previous version of the Micrel ksz9021rl/rn Data Sheet
  223   was missing extended register 106 (transmit data pad skews), and
  224   incorrectly specified the ps per step as 200ps/step instead of
  225   120ps/step. The latest update to this document reflects the latest
  226   revision of the Micrel specification even though usage in the kernel
  227   still reflects that incorrect document.

Cache object: b836eca51b52ec5a6764222fe986a141


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