#define MVPP2_PRS_SRAM_DATA_REG(idx)           (0x1204 + (idx) * 4)
 #define MVPP2_PRS_TCAM_CTRL_REG                        0x1230
 #define     MVPP2_PRS_TCAM_EN_MASK             BIT(0)
+#define MVPP2_PRS_TCAM_HIT_IDX_REG             0x1240
+#define MVPP2_PRS_TCAM_HIT_CNT_REG             0x1244
+#define     MVPP2_PRS_TCAM_HIT_CNT_MASK                GENMASK(15, 0)
 
 /* RSS Registers */
 #define MVPP22_RSS_INDEX                       0x1500
 
 
 DEFINE_SHOW_ATTRIBUTE(mvpp2_dbgfs_prs_sram);
 
+static int mvpp2_dbgfs_prs_hits_show(struct seq_file *s, void *unused)
+{
+       struct mvpp2_dbgfs_prs_entry *entry = s->private;
+       int val;
+
+       val = mvpp2_prs_hits(entry->priv, entry->tid);
+       if (val < 0)
+               return val;
+
+       seq_printf(s, "%d\n", val);
+
+       return 0;
+}
+
+DEFINE_SHOW_ATTRIBUTE(mvpp2_dbgfs_prs_hits);
+
 static int mvpp2_dbgfs_prs_valid_show(struct seq_file *s, void *unused)
 {
        struct mvpp2_dbgfs_prs_entry *entry = s->private;
        debugfs_create_file("header_data", 0644, prs_entry_dir, entry,
                            &mvpp2_dbgfs_prs_hdata_fops);
 
+       debugfs_create_file("hits", 0444, prs_entry_dir, entry,
+                           &mvpp2_dbgfs_prs_hits_fops);
+
        return 0;
 }
 
 
 
        return 0;
 }
+
+int mvpp2_prs_hits(struct mvpp2 *priv, int index)
+{
+       u32 val;
+
+       if (index > MVPP2_PRS_TCAM_SRAM_SIZE)
+               return -EINVAL;
+
+       mvpp2_write(priv, MVPP2_PRS_TCAM_HIT_IDX_REG, index);
+
+       val = mvpp2_read(priv, MVPP2_PRS_TCAM_HIT_CNT_REG);
+
+       val &= MVPP2_PRS_TCAM_HIT_CNT_MASK;
+
+       return val;
+}