Hello!
On 5/14/2018 11:22 AM, Marco Felsch wrote:
From: Markus Niebel <Markus.Niebel@xxxxxx>
handle errata #2 for KSZ9031: force 1000Base-T master
Attention: enabling the workaround will cause no link to
other GIGE master.
Signed-off-by: Markus Niebel <Markus.Niebel@xxxxxx>
[m.felsch@xxxxxxxxxxxxxx: move dt binding to the KSZ9031 entry]
Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
[...]
@@ -573,6 +575,22 @@ static int ksz9031_config_init(struct phy_device *phydev)
ksz9031_of_load_skew_values(phydev, of_node,
MII_KSZ9031RN_TX_DATA_PAD_SKEW, 4,
tx_data_skews, 4);
+
+ /* force master mode -> errata #2
+ * attention: Master <-> Master will not work
+ */
+ if (of_property_read_bool(of_node, "force-master")) {
+ rc = phy_read(phydev, MII_CTRL1000);
+ if (rc >= 0) {
+ val = (u16)rc;
+ /* enable master mode, config &
+ * prefer master
+ */
+ val |= (CTL1000_ENABLE_MASTER |
+ CTL1000_AS_MASTER);
Parens not needed.
+ phy_write(phydev, MII_CTRL1000, val);
+ }
+ }
}
return ksz9031_center_flp_timing(phydev);
MBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html