|
@@ -123,11 +123,13 @@
|
|
|
#define DTSEC_ECNTRL_R100M 0x00000008
|
|
|
#define DTSEC_ECNTRL_QSGMIIM 0x00000001
|
|
|
|
|
|
+#define TCTRL_TTSE 0x00000040
|
|
|
#define TCTRL_GTS 0x00000020
|
|
|
|
|
|
#define RCTRL_PAL_MASK 0x001f0000
|
|
|
#define RCTRL_PAL_SHIFT 16
|
|
|
#define RCTRL_GHTX 0x00000400
|
|
|
+#define RCTRL_RTSE 0x00000040
|
|
|
#define RCTRL_GRS 0x00000020
|
|
|
#define RCTRL_MPROM 0x00000008
|
|
|
#define RCTRL_RSF 0x00000004
|
|
@@ -1136,6 +1138,31 @@ int dtsec_set_allmulti(struct fman_mac *dtsec, bool enable)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int dtsec_set_tstamp(struct fman_mac *dtsec, bool enable)
|
|
|
+{
|
|
|
+ struct dtsec_regs __iomem *regs = dtsec->regs;
|
|
|
+ u32 rctrl, tctrl;
|
|
|
+
|
|
|
+ if (!is_init_done(dtsec->dtsec_drv_param))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ rctrl = ioread32be(®s->rctrl);
|
|
|
+ tctrl = ioread32be(®s->tctrl);
|
|
|
+
|
|
|
+ if (enable) {
|
|
|
+ rctrl |= RCTRL_RTSE;
|
|
|
+ tctrl |= TCTRL_TTSE;
|
|
|
+ } else {
|
|
|
+ rctrl &= ~RCTRL_RTSE;
|
|
|
+ tctrl &= ~TCTRL_TTSE;
|
|
|
+ }
|
|
|
+
|
|
|
+ iowrite32be(rctrl, ®s->rctrl);
|
|
|
+ iowrite32be(tctrl, ®s->tctrl);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
int dtsec_del_hash_mac_address(struct fman_mac *dtsec, enet_addr_t *eth_addr)
|
|
|
{
|
|
|
struct dtsec_regs __iomem *regs = dtsec->regs;
|