Skip to content

Commit d700dff

Browse files
HoratiuVulturdavem330
authored andcommitted
net: lan966x: Add registers that are use for ptp functionality
Add the registers that will be used to configure the PHC in the HW. Signed-off-by: Horatiu Vultur <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 2f92512 commit d700dff

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

drivers/net/ethernet/microchip/lan966x/lan966x_main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ static const struct lan966x_main_io_resource lan966x_main_iomap[] = {
4444
{ TARGET_ORG, 0, 1 }, /* 0xe2000000 */
4545
{ TARGET_GCB, 0x4000, 1 }, /* 0xe2004000 */
4646
{ TARGET_QS, 0x8000, 1 }, /* 0xe2008000 */
47+
{ TARGET_PTP, 0xc000, 1 }, /* 0xe200c000 */
4748
{ TARGET_CHIP_TOP, 0x10000, 1 }, /* 0xe2010000 */
4849
{ TARGET_REW, 0x14000, 1 }, /* 0xe2014000 */
4950
{ TARGET_SYS, 0x28000, 1 }, /* 0xe2028000 */

drivers/net/ethernet/microchip/lan966x/lan966x_regs.h

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ enum lan966x_target {
1919
TARGET_DEV = 13,
2020
TARGET_GCB = 27,
2121
TARGET_ORG = 36,
22+
TARGET_PTP = 41,
2223
TARGET_QS = 42,
2324
TARGET_QSYS = 46,
2425
TARGET_REW = 47,
@@ -559,6 +560,108 @@ enum lan966x_target {
559560
#define DEV_PCS1G_STICKY_LINK_DOWN_STICKY_GET(x)\
560561
FIELD_GET(DEV_PCS1G_STICKY_LINK_DOWN_STICKY, x)
561562

563+
/* PTP:PTP_CFG:PTP_DOM_CFG */
564+
#define PTP_DOM_CFG __REG(TARGET_PTP, 0, 1, 512, 0, 1, 16, 12, 0, 1, 4)
565+
566+
#define PTP_DOM_CFG_ENA GENMASK(11, 9)
567+
#define PTP_DOM_CFG_ENA_SET(x)\
568+
FIELD_PREP(PTP_DOM_CFG_ENA, x)
569+
#define PTP_DOM_CFG_ENA_GET(x)\
570+
FIELD_GET(PTP_DOM_CFG_ENA, x)
571+
572+
#define PTP_DOM_CFG_CLKCFG_DIS GENMASK(2, 0)
573+
#define PTP_DOM_CFG_CLKCFG_DIS_SET(x)\
574+
FIELD_PREP(PTP_DOM_CFG_CLKCFG_DIS, x)
575+
#define PTP_DOM_CFG_CLKCFG_DIS_GET(x)\
576+
FIELD_GET(PTP_DOM_CFG_CLKCFG_DIS, x)
577+
578+
/* PTP:PTP_TOD_DOMAINS:CLK_PER_CFG */
579+
#define PTP_CLK_PER_CFG(g, r) __REG(TARGET_PTP, 0, 1, 528, g, 3, 28, 0, r, 2, 4)
580+
581+
/* PTP:PTP_PINS:PTP_PIN_CFG */
582+
#define PTP_PIN_CFG(g) __REG(TARGET_PTP, 0, 1, 0, g, 8, 64, 0, 0, 1, 4)
583+
584+
#define PTP_PIN_CFG_PIN_ACTION GENMASK(29, 27)
585+
#define PTP_PIN_CFG_PIN_ACTION_SET(x)\
586+
FIELD_PREP(PTP_PIN_CFG_PIN_ACTION, x)
587+
#define PTP_PIN_CFG_PIN_ACTION_GET(x)\
588+
FIELD_GET(PTP_PIN_CFG_PIN_ACTION, x)
589+
590+
#define PTP_PIN_CFG_PIN_SYNC GENMASK(26, 25)
591+
#define PTP_PIN_CFG_PIN_SYNC_SET(x)\
592+
FIELD_PREP(PTP_PIN_CFG_PIN_SYNC, x)
593+
#define PTP_PIN_CFG_PIN_SYNC_GET(x)\
594+
FIELD_GET(PTP_PIN_CFG_PIN_SYNC, x)
595+
596+
#define PTP_PIN_CFG_PIN_DOM GENMASK(17, 16)
597+
#define PTP_PIN_CFG_PIN_DOM_SET(x)\
598+
FIELD_PREP(PTP_PIN_CFG_PIN_DOM, x)
599+
#define PTP_PIN_CFG_PIN_DOM_GET(x)\
600+
FIELD_GET(PTP_PIN_CFG_PIN_DOM, x)
601+
602+
/* PTP:PTP_PINS:PTP_TOD_SEC_MSB */
603+
#define PTP_TOD_SEC_MSB(g) __REG(TARGET_PTP, 0, 1, 0, g, 8, 64, 4, 0, 1, 4)
604+
605+
#define PTP_TOD_SEC_MSB_TOD_SEC_MSB GENMASK(15, 0)
606+
#define PTP_TOD_SEC_MSB_TOD_SEC_MSB_SET(x)\
607+
FIELD_PREP(PTP_TOD_SEC_MSB_TOD_SEC_MSB, x)
608+
#define PTP_TOD_SEC_MSB_TOD_SEC_MSB_GET(x)\
609+
FIELD_GET(PTP_TOD_SEC_MSB_TOD_SEC_MSB, x)
610+
611+
/* PTP:PTP_PINS:PTP_TOD_SEC_LSB */
612+
#define PTP_TOD_SEC_LSB(g) __REG(TARGET_PTP, 0, 1, 0, g, 8, 64, 8, 0, 1, 4)
613+
614+
/* PTP:PTP_PINS:PTP_TOD_NSEC */
615+
#define PTP_TOD_NSEC(g) __REG(TARGET_PTP, 0, 1, 0, g, 8, 64, 12, 0, 1, 4)
616+
617+
#define PTP_TOD_NSEC_TOD_NSEC GENMASK(29, 0)
618+
#define PTP_TOD_NSEC_TOD_NSEC_SET(x)\
619+
FIELD_PREP(PTP_TOD_NSEC_TOD_NSEC, x)
620+
#define PTP_TOD_NSEC_TOD_NSEC_GET(x)\
621+
FIELD_GET(PTP_TOD_NSEC_TOD_NSEC, x)
622+
623+
/* PTP:PTP_TS_FIFO:PTP_TWOSTEP_CTRL */
624+
#define PTP_TWOSTEP_CTRL __REG(TARGET_PTP, 0, 1, 612, 0, 1, 12, 0, 0, 1, 4)
625+
626+
#define PTP_TWOSTEP_CTRL_NXT BIT(11)
627+
#define PTP_TWOSTEP_CTRL_NXT_SET(x)\
628+
FIELD_PREP(PTP_TWOSTEP_CTRL_NXT, x)
629+
#define PTP_TWOSTEP_CTRL_NXT_GET(x)\
630+
FIELD_GET(PTP_TWOSTEP_CTRL_NXT, x)
631+
632+
#define PTP_TWOSTEP_CTRL_VLD BIT(10)
633+
#define PTP_TWOSTEP_CTRL_VLD_SET(x)\
634+
FIELD_PREP(PTP_TWOSTEP_CTRL_VLD, x)
635+
#define PTP_TWOSTEP_CTRL_VLD_GET(x)\
636+
FIELD_GET(PTP_TWOSTEP_CTRL_VLD, x)
637+
638+
#define PTP_TWOSTEP_CTRL_STAMP_TX BIT(9)
639+
#define PTP_TWOSTEP_CTRL_STAMP_TX_SET(x)\
640+
FIELD_PREP(PTP_TWOSTEP_CTRL_STAMP_TX, x)
641+
#define PTP_TWOSTEP_CTRL_STAMP_TX_GET(x)\
642+
FIELD_GET(PTP_TWOSTEP_CTRL_STAMP_TX, x)
643+
644+
#define PTP_TWOSTEP_CTRL_STAMP_PORT GENMASK(8, 1)
645+
#define PTP_TWOSTEP_CTRL_STAMP_PORT_SET(x)\
646+
FIELD_PREP(PTP_TWOSTEP_CTRL_STAMP_PORT, x)
647+
#define PTP_TWOSTEP_CTRL_STAMP_PORT_GET(x)\
648+
FIELD_GET(PTP_TWOSTEP_CTRL_STAMP_PORT, x)
649+
650+
#define PTP_TWOSTEP_CTRL_OVFL BIT(0)
651+
#define PTP_TWOSTEP_CTRL_OVFL_SET(x)\
652+
FIELD_PREP(PTP_TWOSTEP_CTRL_OVFL, x)
653+
#define PTP_TWOSTEP_CTRL_OVFL_GET(x)\
654+
FIELD_GET(PTP_TWOSTEP_CTRL_OVFL, x)
655+
656+
/* PTP:PTP_TS_FIFO:PTP_TWOSTEP_STAMP */
657+
#define PTP_TWOSTEP_STAMP __REG(TARGET_PTP, 0, 1, 612, 0, 1, 12, 4, 0, 1, 4)
658+
659+
#define PTP_TWOSTEP_STAMP_STAMP_NSEC GENMASK(31, 2)
660+
#define PTP_TWOSTEP_STAMP_STAMP_NSEC_SET(x)\
661+
FIELD_PREP(PTP_TWOSTEP_STAMP_STAMP_NSEC, x)
662+
#define PTP_TWOSTEP_STAMP_STAMP_NSEC_GET(x)\
663+
FIELD_GET(PTP_TWOSTEP_STAMP_STAMP_NSEC, x)
664+
562665
/* DEVCPU_QS:XTR:XTR_GRP_CFG */
563666
#define QS_XTR_GRP_CFG(r) __REG(TARGET_QS, 0, 1, 0, 0, 1, 36, 0, r, 2, 4)
564667

0 commit comments

Comments
 (0)