diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index c6571b5cc842..4ef387578b1e 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -3812,6 +3812,14 @@ static const struct enetc_drvdata enetc4_pf_data = {
.eth_ops = &enetc4_pf_ethtool_ops,
};
+static const struct enetc_drvdata enetc4_6_pf_data = {
+ .sysclk_freq = ENETC_CLK_133M,
+ .tx_csum = true,
+ .max_frags = ENETC4_MAX_SKB_FRAGS,
+ .pmac_offset = ENETC4_PMAC_OFFSET,
+ .eth_ops = &enetc4_pf_ethtool_ops,
+};
+
static const struct enetc_drvdata enetc4_ppm_data = {
.sysclk_freq = ENETC_CLK_333M,
.tx_csum = true,@@ -3832,6 +3840,13 @@ static const struct enetc_drvdata enetc4_vf_data = {
.eth_ops = &enetc_vf_ethtool_ops,
};
+static const struct enetc_drvdata enetc4_6_vf_data = {
+ .sysclk_freq = ENETC_CLK_133M,
+ .tx_csum = true,
+ .max_frags = ENETC4_MAX_SKB_FRAGS,
+ .eth_ops = &enetc_vf_ethtool_ops,
+};
+
static const struct enetc_platform_info enetc_info[] = {
{ .revision = ENETC_REV_1_0,
.dev_id = ENETC_DEV_ID_PF,@@ -3862,6 +3877,14 @@ static const struct enetc_platform_info enetc_info[] = {
.dev_id = NXP_ENETC_VF_DEV_ID,
.data = &enetc4_vf_data,
},
+ { .revision = ENETC_REV_4_6,
+ .dev_id = NXP_ENETC_PF_DEV_ID,
+ .data = &enetc4_6_pf_data,
+ },
+ { .revision = ENETC_REV_4_6,
+ .dev_id = NXP_ENETC_VF_DEV_ID,
+ .data = &enetc4_6_vf_data,
+ },
};
int enetc_get_driver_data(struct enetc_si *si)diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
index 7965dfd06f5f..3c6c6fc0ab8c 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
@@ -1149,6 +1149,7 @@ static int enetc_get_phc_index_by_pdev(struct enetc_si *si)
devfn = PCI_DEVFN(24, 0);
break;
case ENETC_REV_4_3:
+ case ENETC_REV_4_6:
devfn = PCI_DEVFN(0, 1);
break;
default:
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
index 2c9d9042eb0b..339691cdf44f 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
+++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
@@ -414,6 +414,7 @@ enum enetc_bdr_type {TX, RX};
#define ENETC_REV_1_0 0x0100
#define ENETC_REV_4_1 0X0401
#define ENETC_REV_4_3 0x0403
+#define ENETC_REV_4_6 0x0406
#define ENETC_G_EIPBRR1 0x0bfc
#define ENETC_G_EPFBLPR(n) (0xd00 + 4 * (n))@@ -1050,6 +1051,7 @@ struct enetc_cbd {
#define ENETC_CLK_400M 400000000ULL
#define ENETC_CLK_333M 333000000ULL
+#define ENETC_CLK_133M 133000000ULL
static inline u32 enetc_cycles_to_usecs(u32 cycles, u64 clk_freq)
{--
2.43.0