mirror of
https://github.com/torvalds/linux.git
synced 2025-01-01 15:51:46 +00:00
3d9e133fe6
The KSZ9031 skew registers contain an offset, the chip's default value is "neutral" which does not add any skew. Programming a 0 into a skew property will actually set it the maximal negative adjustment and not to a neutral position as one would expect. Explain this situation in the devicetree binding documentation and list the settings that the chip considers neutral. Changing the implementation to accept negative values would have been a better solution, but would break existing configurations. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
76 lines
2.5 KiB
Plaintext
76 lines
2.5 KiB
Plaintext
Micrel KSZ9021/KSZ9031 Gigabit Ethernet PHY
|
|
|
|
Some boards require special tuning values, particularly when it comes
|
|
to clock delays. You can specify clock delay values in the PHY OF
|
|
device node. Deprecated, but still supported, these properties can
|
|
also be added to an Ethernet OF device node.
|
|
|
|
Note that these settings are applied after any phy-specific fixup from
|
|
phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c),
|
|
and therefore may overwrite them.
|
|
|
|
KSZ9021:
|
|
|
|
All skew control options are specified in picoseconds. The minimum
|
|
value is 0, the maximum value is 3000, and it is incremented by 200ps
|
|
steps.
|
|
|
|
Optional properties:
|
|
|
|
- rxc-skew-ps : Skew control of RXC pad
|
|
- rxdv-skew-ps : Skew control of RX CTL pad
|
|
- txc-skew-ps : Skew control of TXC pad
|
|
- txen-skew-ps : Skew control of TX CTL pad
|
|
- rxd0-skew-ps : Skew control of RX data 0 pad
|
|
- rxd1-skew-ps : Skew control of RX data 1 pad
|
|
- rxd2-skew-ps : Skew control of RX data 2 pad
|
|
- rxd3-skew-ps : Skew control of RX data 3 pad
|
|
- txd0-skew-ps : Skew control of TX data 0 pad
|
|
- txd1-skew-ps : Skew control of TX data 1 pad
|
|
- txd2-skew-ps : Skew control of TX data 2 pad
|
|
- txd3-skew-ps : Skew control of TX data 3 pad
|
|
|
|
KSZ9031:
|
|
|
|
All skew control options are specified in picoseconds. The minimum
|
|
value is 0, and the maximum is property-dependent. The increment
|
|
step is 60ps. The default value is the neutral setting, so setting
|
|
rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.
|
|
|
|
Optional properties:
|
|
|
|
Maximum value of 1860, default value 900:
|
|
|
|
- rxc-skew-ps : Skew control of RX clock pad
|
|
- txc-skew-ps : Skew control of TX clock pad
|
|
|
|
Maximum value of 900, default value 420:
|
|
|
|
- rxdv-skew-ps : Skew control of RX CTL pad
|
|
- txen-skew-ps : Skew control of TX CTL pad
|
|
- rxd0-skew-ps : Skew control of RX data 0 pad
|
|
- rxd1-skew-ps : Skew control of RX data 1 pad
|
|
- rxd2-skew-ps : Skew control of RX data 2 pad
|
|
- rxd3-skew-ps : Skew control of RX data 3 pad
|
|
- txd0-skew-ps : Skew control of TX data 0 pad
|
|
- txd1-skew-ps : Skew control of TX data 1 pad
|
|
- txd2-skew-ps : Skew control of TX data 2 pad
|
|
- txd3-skew-ps : Skew control of TX data 3 pad
|
|
|
|
Examples:
|
|
|
|
mdio {
|
|
phy0: ethernet-phy@0 {
|
|
rxc-skew-ps = <3000>;
|
|
rxdv-skew-ps = <0>;
|
|
txc-skew-ps = <3000>;
|
|
txen-skew-ps = <0>;
|
|
reg = <0>;
|
|
};
|
|
};
|
|
ethernet@70000 {
|
|
status = "okay";
|
|
phy = <&phy0>;
|
|
phy-mode = "rgmii-id";
|
|
};
|