Message ID | 20241004152419.79465-4-francesco@dolcini.it (mailing list archive) |
---|---|
State | Accepted |
Commit | 566c2d83887f0570056833102adc5b88e681b0c7 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: fec: add PPS channel configuration | expand |
On 2024. 10. 04. 17:24, Francesco Dolcini wrote: > From: Francesco Dolcini <francesco.dolcini@toradex.com> > > Depending on the SoC where the FEC is integrated into the PPS channel > might be routed to different timer instances. Make this configurable > from the devicetree. > > When the related DT property is not present fallback to the previous > default and use channel 0. > > Reviewed-by: Frank Li <Frank.Li@nxp.com> > Tested-by: Rafael Beims <rafael.beims@toradex.com> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Reviewed-by: Csókás, Bence <csokas.bence@prolan.hu>
diff --git a/drivers/net/ethernet/freescale/fec_ptp.c b/drivers/net/ethernet/freescale/fec_ptp.c index ce7aa2c38c7f..aea24575e840 100644 --- a/drivers/net/ethernet/freescale/fec_ptp.c +++ b/drivers/net/ethernet/freescale/fec_ptp.c @@ -523,8 +523,6 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp, unsigned long flags; int ret = 0; - fep->pps_channel = DEFAULT_PPS_CHANNEL; - if (rq->type == PTP_CLK_REQ_PPS) { fep->reload_period = PPS_OUPUT_RELOAD_PERIOD; @@ -706,12 +704,16 @@ void fec_ptp_init(struct platform_device *pdev, int irq_idx) { struct net_device *ndev = platform_get_drvdata(pdev); struct fec_enet_private *fep = netdev_priv(ndev); + struct device_node *np = fep->pdev->dev.of_node; int irq; int ret; fep->ptp_caps.owner = THIS_MODULE; strscpy(fep->ptp_caps.name, "fec ptp", sizeof(fep->ptp_caps.name)); + fep->pps_channel = DEFAULT_PPS_CHANNEL; + of_property_read_u32(np, "fsl,pps-channel", &fep->pps_channel); + fep->ptp_caps.max_adj = 250000000; fep->ptp_caps.n_alarm = 0; fep->ptp_caps.n_ext_ts = 0;