84
84
#define FEC_CC_MULT (1 << 31)
85
85
#define FEC_COUNTER_PERIOD (1 << 31)
86
86
#define PPS_OUPUT_RELOAD_PERIOD NSEC_PER_SEC
87
- #define FEC_CHANNLE_0 0
88
- #define DEFAULT_PPS_CHANNEL FEC_CHANNLE_0
87
+ #define DEFAULT_PPS_CHANNEL 0
89
88
90
89
#define FEC_PTP_MAX_NSEC_PERIOD 4000000000ULL
91
90
#define FEC_PTP_MAX_NSEC_COUNTER 0x80000000ULL
@@ -525,7 +524,6 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp,
525
524
int ret = 0 ;
526
525
527
526
if (rq -> type == PTP_CLK_REQ_PPS ) {
528
- fep -> pps_channel = DEFAULT_PPS_CHANNEL ;
529
527
fep -> reload_period = PPS_OUPUT_RELOAD_PERIOD ;
530
528
531
529
ret = fec_ptp_enable_pps (fep , on );
@@ -536,10 +534,9 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp,
536
534
if (rq -> perout .flags )
537
535
return - EOPNOTSUPP ;
538
536
539
- if (rq -> perout .index != DEFAULT_PPS_CHANNEL )
537
+ if (rq -> perout .index != fep -> pps_channel )
540
538
return - EOPNOTSUPP ;
541
539
542
- fep -> pps_channel = DEFAULT_PPS_CHANNEL ;
543
540
period .tv_sec = rq -> perout .period .sec ;
544
541
period .tv_nsec = rq -> perout .period .nsec ;
545
542
period_ns = timespec64_to_ns (& period );
@@ -707,12 +704,16 @@ void fec_ptp_init(struct platform_device *pdev, int irq_idx)
707
704
{
708
705
struct net_device * ndev = platform_get_drvdata (pdev );
709
706
struct fec_enet_private * fep = netdev_priv (ndev );
707
+ struct device_node * np = fep -> pdev -> dev .of_node ;
710
708
int irq ;
711
709
int ret ;
712
710
713
711
fep -> ptp_caps .owner = THIS_MODULE ;
714
712
strscpy (fep -> ptp_caps .name , "fec ptp" , sizeof (fep -> ptp_caps .name ));
715
713
714
+ fep -> pps_channel = DEFAULT_PPS_CHANNEL ;
715
+ of_property_read_u32 (np , "fsl,pps-channel" , & fep -> pps_channel );
716
+
716
717
fep -> ptp_caps .max_adj = 250000000 ;
717
718
fep -> ptp_caps .n_alarm = 0 ;
718
719
fep -> ptp_caps .n_ext_ts = 0 ;
0 commit comments