mirror of https://gitee.com/openkylin/linux.git
net: dsa: microchip: Support optional 125MHz SYNCLKO output
The KSZ9477 series chips have a SYNCLKO pin which by default outputs a 25MHz clock, but some board setups require a 125MHz clock instead. Added a microchip,synclko-125 device tree property to allow indicating a 125MHz clock output is required. Signed-off-by: Robert Hancock <hancock@sedsystems.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1fc3319918
commit
79c8bd15b6
|
@ -16,6 +16,8 @@ Required properties:
|
|||
Optional properties:
|
||||
|
||||
- reset-gpios : Should be a gpio specifier for a reset line
|
||||
- microchip,synclko-125 : Set if the output SYNCLKO frequency should be set to
|
||||
125MHz instead of 25MHz.
|
||||
|
||||
See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
|
||||
required and optional properties.
|
||||
|
|
|
@ -258,6 +258,10 @@ static int ksz9477_reset_switch(struct ksz_device *dev)
|
|||
data16 |= (BROADCAST_STORM_VALUE * BROADCAST_STORM_PROT_RATE) / 100;
|
||||
ksz_write16(dev, REG_SW_MAC_CTRL_2, data16);
|
||||
|
||||
if (dev->synclko_125)
|
||||
ksz_write8(dev, REG_SW_GLOBAL_OUTPUT_CTRL__1,
|
||||
SW_ENABLE_REFCLKO | SW_REFCLKO_IS_125MHZ);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -460,6 +460,8 @@ int ksz_switch_register(struct ksz_device *dev,
|
|||
ret = of_get_phy_mode(dev->dev->of_node);
|
||||
if (ret >= 0)
|
||||
dev->interface = ret;
|
||||
dev->synclko_125 = of_property_read_bool(dev->dev->of_node,
|
||||
"microchip,synclko-125");
|
||||
}
|
||||
|
||||
ret = dsa_register_switch(dev->ds);
|
||||
|
|
|
@ -78,6 +78,7 @@ struct ksz_device {
|
|||
phy_interface_t interface;
|
||||
u32 regs_size;
|
||||
bool phy_errata_9477;
|
||||
bool synclko_125;
|
||||
|
||||
struct vlan_table *vlan_cache;
|
||||
|
||||
|
|
Loading…
Reference in New Issue