diff options
author | Alex Elder <elder@linaro.org> | 2022-07-14 18:00:53 -0500 |
---|---|---|
committer | Alex Elder <elder@linaro.org> | 2022-07-14 18:30:51 -0500 |
commit | 1bd4a30a4e13985e9095ca5c5a1c123b922697bd (patch) | |
tree | def6b249dddda91779b97a5b48de72423d6fd375 | |
parent | 99d7c0a935d4a74ec0e093ae440ab918e9e191bf (diff) |
regs: define the IPA_REG_IRQ_* registers
Define the IPA_REG_IRQ_* register offsets each IPA version.
Signed-off-by: Alex Elder <elder@linaro.org>
-rw-r--r-- | ipa_reg-v3.0.c | 15 | ||||
-rw-r--r-- | ipa_reg-v3.1.c | 15 | ||||
-rw-r--r-- | ipa_reg-v3.5.1.c | 15 | ||||
-rw-r--r-- | ipa_reg-v3.5.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.0.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.1.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.11.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.2.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.5.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.7.c | 15 | ||||
-rw-r--r-- | ipa_reg-v4.9.c | 15 | ||||
-rw-r--r-- | ipa_reg_new.h | 87 |
12 files changed, 252 insertions, 0 deletions
diff --git a/ipa_reg-v3.0.c b/ipa_reg-v3.0.c index a68571b..07aa1e8 100644 --- a/ipa_reg-v3.0.c +++ b/ipa_reg-v3.0.c @@ -361,6 +361,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -408,6 +419,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v3_0 = { diff --git a/ipa_reg-v3.1.c b/ipa_reg-v3.1.c index 14699f5..d5e1dea 100644 --- a/ipa_reg-v3.1.c +++ b/ipa_reg-v3.1.c @@ -361,6 +361,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -408,6 +419,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v3_1 = { diff --git a/ipa_reg-v3.5.1.c b/ipa_reg-v3.5.1.c index 08f8edf..42d1fdb 100644 --- a/ipa_reg-v3.5.1.c +++ b/ipa_reg-v3.5.1.c @@ -397,6 +397,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -447,6 +458,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v3_5_1 = { diff --git a/ipa_reg-v3.5.c b/ipa_reg-v3.5.c index 1eacc53..d373373 100644 --- a/ipa_reg-v3.5.c +++ b/ipa_reg-v3.5.c @@ -396,6 +396,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -447,6 +458,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v3_5 = { diff --git a/ipa_reg-v4.0.c b/ipa_reg-v4.0.c index eb36864..a620529 100644 --- a/ipa_reg-v4.0.c +++ b/ipa_reg-v4.0.c @@ -423,6 +423,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -473,6 +484,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_0 = { diff --git a/ipa_reg-v4.1.c b/ipa_reg-v4.1.c index ed48fea..5d0c8e4 100644 --- a/ipa_reg-v4.1.c +++ b/ipa_reg-v4.1.c @@ -423,6 +423,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -473,6 +484,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_1 = { diff --git a/ipa_reg-v4.11.c b/ipa_reg-v4.11.c index 358d79e..8e630c6 100644 --- a/ipa_reg-v4.11.c +++ b/ipa_reg-v4.11.c @@ -446,6 +446,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -498,6 +509,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_11 = { diff --git a/ipa_reg-v4.2.c b/ipa_reg-v4.2.c index d4ae07e..f5f12ac 100644 --- a/ipa_reg-v4.2.c +++ b/ipa_reg-v4.2.c @@ -426,6 +426,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -477,6 +488,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_2 = { diff --git a/ipa_reg-v4.5.c b/ipa_reg-v4.5.c index 4e64a4f..f1733ac 100644 --- a/ipa_reg-v4.5.c +++ b/ipa_reg-v4.5.c @@ -440,6 +440,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -492,6 +503,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_5 = { diff --git a/ipa_reg-v4.7.c b/ipa_reg-v4.7.c index 6421c13..edb655e 100644 --- a/ipa_reg-v4.7.c +++ b/ipa_reg-v4.7.c @@ -441,6 +441,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00003008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000300c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00003010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000301c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -493,6 +504,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_7 = { diff --git a/ipa_reg-v4.9.c b/ipa_reg-v4.9.c index c6b8a3d..a422814 100644 --- a/ipa_reg-v4.9.c +++ b/ipa_reg-v4.9.c @@ -446,6 +446,17 @@ IPA_REG_STRIDE_FIELDS(ENDP_FILTER_ROUTER_HSH_CFG_N, #define IPA_REG_ENDP_FILTER_HASH_MSK_ALL GENMASK(6, 0) #define IPA_REG_ENDP_ROUTER_HASH_MSK_ALL GENMASK(22, 16) +IPA_REG(IRQ_STTS, irq_stts, 0x00004008 + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_EN, irq_en, 0x0000400c + 0x1000 * GSI_EE_AP); + +IPA_REG(IRQ_CLR, irq_clr, 0x00004010 + 0x1000 * GSI_EE_AP); + +static const u32 ipa_reg_irq_uc_field[] = { + [UC_INTR] = BIT(0), +}; +IPA_REG_FIELDS(IRQ_UC, irq_uc, 0x0000401c + 0x1000 * GSI_EE_AP); + static const struct ipa_reg *ipa_reg[] = { [IPA_REG_COMP_CFG] = &ipa_reg_comp_cfg, [IPA_REG_CLKON_CFG] = &ipa_reg_clkon_cfg, @@ -498,6 +509,10 @@ static const struct ipa_reg *ipa_reg[] = { [IPA_REG_ENDP_STATUS_N] = &ipa_reg_endp_status_n, [IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N] = &ipa_reg_endp_filter_router_hsh_cfg_n, + [IPA_REG_IRQ_STTS] = &ipa_reg_irq_stts, + [IPA_REG_IRQ_EN] = &ipa_reg_irq_en, + [IPA_REG_IRQ_CLR] = &ipa_reg_irq_clr, + [IPA_REG_IRQ_UC] = &ipa_reg_irq_uc, }; const struct ipa_regs ipa_regs_v4_9 = { diff --git a/ipa_reg_new.h b/ipa_reg_new.h index a64acb9..1775214 100644 --- a/ipa_reg_new.h +++ b/ipa_reg_new.h @@ -4,6 +4,7 @@ #define _IPA_REG_NEW_H #include "linux.h" +#include "gsi_ee.h" struct ipa_reg { u32 offset; @@ -61,6 +62,10 @@ enum ipa_reg_name { IPA_REG_ENDP_INIT_SEQ_N, /* TX only */ IPA_REG_ENDP_STATUS_N, IPA_REG_ENDP_FILTER_ROUTER_HSH_CFG_N, + IPA_REG_IRQ_STTS, /* GSI_EE_AP only */ + IPA_REG_IRQ_EN, /* GSI_EE_AP only */ + IPA_REG_IRQ_CLR, /* GSI_EE_AP only */ + IPA_REG_IRQ_UC, /* GSI_EE_AP only */ }; #define IPA_REG(__NAME, __name, __offset) \ @@ -484,6 +489,88 @@ enum ipa_reg_endp_filter_router_hsh_cfg_n_field_name { ROUTER_HASH_MSK_METADATA, }; +#if 0 /* XXX Un-comment after switching over */ +/** + * enum ipa_irq_id - Bit positions representing type of IPA IRQ + * @IPA_IRQ_UC_0: Microcontroller event interrupt + * @IPA_IRQ_UC_1: Microcontroller response interrupt + * @IPA_IRQ_TX_SUSPEND: Data ready interrupt + * @IPA_IRQ_COUNT: Number of IRQ ids (must be last) + * + * IRQ types not described above are not currently used. + * + * @IPA_IRQ_BAD_SNOC_ACCESS: (Not currently used) + * @IPA_IRQ_EOT_COAL: (Not currently used) + * @IPA_IRQ_UC_2: (Not currently used) + * @IPA_IRQ_UC_3: (Not currently used) + * @IPA_IRQ_UC_IN_Q_NOT_EMPTY: (Not currently used) + * @IPA_IRQ_UC_RX_CMD_Q_NOT_FULL: (Not currently used) + * @IPA_IRQ_PROC_UC_ACK_Q_NOT_EMPTY: (Not currently used) + * @IPA_IRQ_RX_ERR: (Not currently used) + * @IPA_IRQ_DEAGGR_ERR: (Not currently used) + * @IPA_IRQ_TX_ERR: (Not currently used) + * @IPA_IRQ_STEP_MODE: (Not currently used) + * @IPA_IRQ_PROC_ERR: (Not currently used) + * @IPA_IRQ_TX_HOLB_DROP: (Not currently used) + * @IPA_IRQ_BAM_GSI_IDLE: (Not currently used) + * @IPA_IRQ_PIPE_YELLOW_BELOW: (Not currently used) + * @IPA_IRQ_PIPE_RED_BELOW: (Not currently used) + * @IPA_IRQ_PIPE_YELLOW_ABOVE: (Not currently used) + * @IPA_IRQ_PIPE_RED_ABOVE: (Not currently used) + * @IPA_IRQ_UCP: (Not currently used) + * @IPA_IRQ_DCMP: (Not currently used) + * @IPA_IRQ_GSI_EE: (Not currently used) + * @IPA_IRQ_GSI_IPA_IF_TLV_RCVD: (Not currently used) + * @IPA_IRQ_GSI_UC: (Not currently used) + * @IPA_IRQ_TLV_LEN_MIN_DSM: (Not currently used) + * @IPA_IRQ_DRBIP_PKT_EXCEED_MAX_SIZE_EN: (Not currently used) + * @IPA_IRQ_DRBIP_DATA_SCTR_CFG_ERROR_EN: (Not currently used) + * @IPA_IRQ_DRBIP_IMM_CMD_NO_FLSH_HZRD_EN: (Not currently used) + */ +enum ipa_irq_id { + IPA_IRQ_BAD_SNOC_ACCESS = 0x0, + /* The next bit is not present for IPA v3.5+ */ + IPA_IRQ_EOT_COAL = 0x1, + IPA_IRQ_UC_0 = 0x2, + IPA_IRQ_UC_1 = 0x3, + IPA_IRQ_UC_2 = 0x4, + IPA_IRQ_UC_3 = 0x5, + IPA_IRQ_UC_IN_Q_NOT_EMPTY = 0x6, + IPA_IRQ_UC_RX_CMD_Q_NOT_FULL = 0x7, + IPA_IRQ_PROC_UC_ACK_Q_NOT_EMPTY = 0x8, + IPA_IRQ_RX_ERR = 0x9, + IPA_IRQ_DEAGGR_ERR = 0xa, + IPA_IRQ_TX_ERR = 0xb, + IPA_IRQ_STEP_MODE = 0xc, + IPA_IRQ_PROC_ERR = 0xd, + IPA_IRQ_TX_SUSPEND = 0xe, + IPA_IRQ_TX_HOLB_DROP = 0xf, + IPA_IRQ_BAM_GSI_IDLE = 0x10, + IPA_IRQ_PIPE_YELLOW_BELOW = 0x11, + IPA_IRQ_PIPE_RED_BELOW = 0x12, + IPA_IRQ_PIPE_YELLOW_ABOVE = 0x13, + IPA_IRQ_PIPE_RED_ABOVE = 0x14, + IPA_IRQ_UCP = 0x15, + /* The next bit is not present for IPA v4.5+ */ + IPA_IRQ_DCMP = 0x16, + IPA_IRQ_GSI_EE = 0x17, + IPA_IRQ_GSI_IPA_IF_TLV_RCVD = 0x18, + IPA_IRQ_GSI_UC = 0x19, + /* The next bit is present for IPA v4.5+ */ + IPA_IRQ_TLV_LEN_MIN_DSM = 0x1a, + /* The next three bits are present for IPA v4.9+ */ + IPA_IRQ_DRBIP_PKT_EXCEED_MAX_SIZE_EN = 0x1b, + IPA_IRQ_DRBIP_DATA_SCTR_CFG_ERROR_EN = 0x1c, + IPA_IRQ_DRBIP_IMM_CMD_NO_FLSH_HZRD_EN = 0x1d, + IPA_IRQ_COUNT, /* Last; not an id */ +}; + +#endif + +enum ipa_reg_irq_uc_field_name { + UC_INTR, +}; + extern const struct ipa_regs ipa_regs_v3_0; extern const struct ipa_regs ipa_regs_v3_1; extern const struct ipa_regs ipa_regs_v3_5; |