Message ID | 20220308184744.15238-1-tharvey@gateworks.com |
---|---|
State | Accepted |
Commit | 8f40e7d29f587b35540b2a447250d1b047ef5f8b |
Delegated to: | Stefano Babic |
Headers | show |
Series | board: gateworks venice: add support for GPY111 phy | expand |
> Subject: [PATCH] board: gateworks venice: add support for GPY111 phy > > The TI DP83867 phy has been replaced with the MaxLinear GPY111 phy due > to part availability. > > Add support for it by adding LED config and dt-prop based internal delay config > tx-delay/rx-delay per PHY ID. > > Signed-off-by: Tim Harvey <tharvey@gateworks.com> Acked-by: Peng Fan <peng.fan@nxp.com> > --- > board/gateworks/venice/venice.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/board/gateworks/venice/venice.c > b/board/gateworks/venice/venice.c index 5334500ef6a7..425c69056da5 > 100644 > --- a/board/gateworks/venice/venice.c > +++ b/board/gateworks/venice/venice.c > @@ -63,6 +63,7 @@ static int setup_fec(void) int board_phy_config(struct > phy_device *phydev) { > unsigned short val; > + ofnode node; > > switch (phydev->phy_id) { > case 0x2000a231: /* TI DP83867 GbE PHY */ @@ -73,6 +74,21 @@ int > board_phy_config(struct phy_device *phydev) > val |= 0xb << 8; /* LED2(Green;Link/Act): blink for TX/RX act */ > phy_write(phydev, MDIO_DEVAD_NONE, 24, val); > break; > + case 0xd565a401: /* MaxLinear GPY111 */ > + puts("GPY111 "); > + node = phy_get_ofnode(phydev); > + if (ofnode_valid(node)) { > + u32 rx_delay, tx_delay; > + > + rx_delay = ofnode_read_u32_default(node, > "rx-internal-delay-ps", 2000); > + tx_delay = ofnode_read_u32_default(node, > "tx-internal-delay-ps", 2000); > + val = phy_read(phydev, MDIO_DEVAD_NONE, 0x17); > + val &= ~((0x7 << 12) | (0x7 << 8)); > + val |= (rx_delay / 500) << 12; > + val |= (tx_delay / 500) << 8; > + phy_write(phydev, MDIO_DEVAD_NONE, 0x17, val); > + } > + break; > } > > if (phydev->drv->config) > -- > 2.17.1
> The TI DP83867 phy has been replaced with the MaxLinear GPY111 phy due > to part availability. > Add support for it by adding LED config and dt-prop based internal delay > config tx-delay/rx-delay per PHY ID. > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > Acked-by: Peng Fan <peng.fan@nxp.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic
diff --git a/board/gateworks/venice/venice.c b/board/gateworks/venice/venice.c index 5334500ef6a7..425c69056da5 100644 --- a/board/gateworks/venice/venice.c +++ b/board/gateworks/venice/venice.c @@ -63,6 +63,7 @@ static int setup_fec(void) int board_phy_config(struct phy_device *phydev) { unsigned short val; + ofnode node; switch (phydev->phy_id) { case 0x2000a231: /* TI DP83867 GbE PHY */ @@ -73,6 +74,21 @@ int board_phy_config(struct phy_device *phydev) val |= 0xb << 8; /* LED2(Green;Link/Act): blink for TX/RX act */ phy_write(phydev, MDIO_DEVAD_NONE, 24, val); break; + case 0xd565a401: /* MaxLinear GPY111 */ + puts("GPY111 "); + node = phy_get_ofnode(phydev); + if (ofnode_valid(node)) { + u32 rx_delay, tx_delay; + + rx_delay = ofnode_read_u32_default(node, "rx-internal-delay-ps", 2000); + tx_delay = ofnode_read_u32_default(node, "tx-internal-delay-ps", 2000); + val = phy_read(phydev, MDIO_DEVAD_NONE, 0x17); + val &= ~((0x7 << 12) | (0x7 << 8)); + val |= (rx_delay / 500) << 12; + val |= (tx_delay / 500) << 8; + phy_write(phydev, MDIO_DEVAD_NONE, 0x17, val); + } + break; } if (phydev->drv->config)
The TI DP83867 phy has been replaced with the MaxLinear GPY111 phy due to part availability. Add support for it by adding LED config and dt-prop based internal delay config tx-delay/rx-delay per PHY ID. Signed-off-by: Tim Harvey <tharvey@gateworks.com> --- board/gateworks/venice/venice.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)