diff options
Diffstat (limited to 'drivers/media/rc/mtk-cir.c')
-rw-r--r-- | drivers/media/rc/mtk-cir.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/media/rc/mtk-cir.c b/drivers/media/rc/mtk-cir.c index 32b1031f08c9..667277205fee 100644 --- a/drivers/media/rc/mtk-cir.c +++ b/drivers/media/rc/mtk-cir.c @@ -84,6 +84,13 @@ static const u32 mt7623_regs[] = { [MTK_IRINT_CLR_REG] = 0xd0, }; +static const u32 mt7622_regs[] = { + [MTK_IRCLR_REG] = 0x18, + [MTK_CHKDATA_REG] = 0x30, + [MTK_IRINT_EN_REG] = 0x1c, + [MTK_IRINT_CLR_REG] = 0x20, +}; + struct mtk_field_type { u32 reg; u8 offset; @@ -113,6 +120,11 @@ static const struct mtk_field_type mt7623_fields[] = { [MTK_HW_PERIOD] = {0x10, 0, GENMASK(7, 0)}, }; +static const struct mtk_field_type mt7622_fields[] = { + [MTK_CHK_PERIOD] = {0x24, 0, GENMASK(24, 0)}, + [MTK_HW_PERIOD] = {0x10, 0, GENMASK(24, 0)}, +}; + /* * struct mtk_ir - This is the main datasructure for holding the state * of the driver @@ -268,8 +280,17 @@ static const struct mtk_ir_data mt7623_data = { .div = 4, }; +static const struct mtk_ir_data mt7622_data = { + .regs = mt7622_regs, + .fields = mt7622_fields, + .ok_count = 0xf, + .hw_period = 0xffff, + .div = 32, +}; + static const struct of_device_id mtk_ir_match[] = { { .compatible = "mediatek,mt7623-cir", .data = &mt7623_data}, + { .compatible = "mediatek,mt7622-cir", .data = &mt7622_data}, {}, }; MODULE_DEVICE_TABLE(of, mtk_ir_match); |