162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci/* Copyright (C) 2023 Linaro Ltd. */ 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/types.h> 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include "../gsi.h" 862306a36Sopenharmony_ci#include "../reg.h" 962306a36Sopenharmony_ci#include "../gsi_reg.h" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciREG(INTER_EE_SRC_CH_IRQ_MSK, inter_ee_src_ch_irq_msk, 1262306a36Sopenharmony_ci 0x0000c020 + 0x1000 * GSI_EE_AP); 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciREG(INTER_EE_SRC_EV_CH_IRQ_MSK, inter_ee_src_ev_ch_irq_msk, 1562306a36Sopenharmony_ci 0x0000c024 + 0x1000 * GSI_EE_AP); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cistatic const u32 reg_ch_c_cntxt_0_fmask[] = { 1862306a36Sopenharmony_ci [CHTYPE_PROTOCOL] = GENMASK(2, 0), 1962306a36Sopenharmony_ci [CHTYPE_DIR] = BIT(3), 2062306a36Sopenharmony_ci [CH_EE] = GENMASK(7, 4), 2162306a36Sopenharmony_ci [CHID] = GENMASK(12, 8), 2262306a36Sopenharmony_ci /* Bit 13 reserved */ 2362306a36Sopenharmony_ci [ERINDEX] = GENMASK(18, 14), 2462306a36Sopenharmony_ci /* Bit 19 reserved */ 2562306a36Sopenharmony_ci [CHSTATE] = GENMASK(23, 20), 2662306a36Sopenharmony_ci [ELEMENT_SIZE] = GENMASK(31, 24), 2762306a36Sopenharmony_ci}; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciREG_STRIDE_FIELDS(CH_C_CNTXT_0, ch_c_cntxt_0, 3062306a36Sopenharmony_ci 0x0001c000 + 0x4000 * GSI_EE_AP, 0x80); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_cistatic const u32 reg_ch_c_cntxt_1_fmask[] = { 3362306a36Sopenharmony_ci [CH_R_LENGTH] = GENMASK(15, 0), 3462306a36Sopenharmony_ci /* Bits 16-31 reserved */ 3562306a36Sopenharmony_ci}; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciREG_STRIDE_FIELDS(CH_C_CNTXT_1, ch_c_cntxt_1, 3862306a36Sopenharmony_ci 0x0001c004 + 0x4000 * GSI_EE_AP, 0x80); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciREG_STRIDE(CH_C_CNTXT_2, ch_c_cntxt_2, 0x0001c008 + 0x4000 * GSI_EE_AP, 0x80); 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciREG_STRIDE(CH_C_CNTXT_3, ch_c_cntxt_3, 0x0001c00c + 0x4000 * GSI_EE_AP, 0x80); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_cistatic const u32 reg_ch_c_qos_fmask[] = { 4562306a36Sopenharmony_ci [WRR_WEIGHT] = GENMASK(3, 0), 4662306a36Sopenharmony_ci /* Bits 4-7 reserved */ 4762306a36Sopenharmony_ci [MAX_PREFETCH] = BIT(8), 4862306a36Sopenharmony_ci [USE_DB_ENG] = BIT(9), 4962306a36Sopenharmony_ci [USE_ESCAPE_BUF_ONLY] = BIT(10), 5062306a36Sopenharmony_ci /* Bits 11-31 reserved */ 5162306a36Sopenharmony_ci}; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciREG_STRIDE_FIELDS(CH_C_QOS, ch_c_qos, 0x0001c05c + 0x4000 * GSI_EE_AP, 0x80); 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_cistatic const u32 reg_error_log_fmask[] = { 5662306a36Sopenharmony_ci [ERR_ARG3] = GENMASK(3, 0), 5762306a36Sopenharmony_ci [ERR_ARG2] = GENMASK(7, 4), 5862306a36Sopenharmony_ci [ERR_ARG1] = GENMASK(11, 8), 5962306a36Sopenharmony_ci [ERR_CODE] = GENMASK(15, 12), 6062306a36Sopenharmony_ci /* Bits 16-18 reserved */ 6162306a36Sopenharmony_ci [ERR_VIRT_IDX] = GENMASK(23, 19), 6262306a36Sopenharmony_ci [ERR_TYPE] = GENMASK(27, 24), 6362306a36Sopenharmony_ci [ERR_EE] = GENMASK(31, 28), 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciREG_STRIDE(CH_C_SCRATCH_0, ch_c_scratch_0, 6762306a36Sopenharmony_ci 0x0001c060 + 0x4000 * GSI_EE_AP, 0x80); 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciREG_STRIDE(CH_C_SCRATCH_1, ch_c_scratch_1, 7062306a36Sopenharmony_ci 0x0001c064 + 0x4000 * GSI_EE_AP, 0x80); 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciREG_STRIDE(CH_C_SCRATCH_2, ch_c_scratch_2, 7362306a36Sopenharmony_ci 0x0001c068 + 0x4000 * GSI_EE_AP, 0x80); 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciREG_STRIDE(CH_C_SCRATCH_3, ch_c_scratch_3, 7662306a36Sopenharmony_ci 0x0001c06c + 0x4000 * GSI_EE_AP, 0x80); 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_cistatic const u32 reg_ev_ch_e_cntxt_0_fmask[] = { 7962306a36Sopenharmony_ci [EV_CHTYPE] = GENMASK(3, 0), 8062306a36Sopenharmony_ci [EV_EE] = GENMASK(7, 4), 8162306a36Sopenharmony_ci [EV_EVCHID] = GENMASK(15, 8), 8262306a36Sopenharmony_ci [EV_INTYPE] = BIT(16), 8362306a36Sopenharmony_ci /* Bits 17-19 reserved */ 8462306a36Sopenharmony_ci [EV_CHSTATE] = GENMASK(23, 20), 8562306a36Sopenharmony_ci [EV_ELEMENT_SIZE] = GENMASK(31, 24), 8662306a36Sopenharmony_ci}; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ciREG_STRIDE_FIELDS(EV_CH_E_CNTXT_0, ev_ch_e_cntxt_0, 8962306a36Sopenharmony_ci 0x0001d000 + 0x4000 * GSI_EE_AP, 0x80); 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_cistatic const u32 reg_ev_ch_e_cntxt_1_fmask[] = { 9262306a36Sopenharmony_ci [R_LENGTH] = GENMASK(15, 0), 9362306a36Sopenharmony_ci}; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciREG_STRIDE_FIELDS(EV_CH_E_CNTXT_1, ev_ch_e_cntxt_1, 9662306a36Sopenharmony_ci 0x0001d004 + 0x4000 * GSI_EE_AP, 0x80); 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_2, ev_ch_e_cntxt_2, 9962306a36Sopenharmony_ci 0x0001d008 + 0x4000 * GSI_EE_AP, 0x80); 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_3, ev_ch_e_cntxt_3, 10262306a36Sopenharmony_ci 0x0001d00c + 0x4000 * GSI_EE_AP, 0x80); 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_4, ev_ch_e_cntxt_4, 10562306a36Sopenharmony_ci 0x0001d010 + 0x4000 * GSI_EE_AP, 0x80); 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_cistatic const u32 reg_ev_ch_e_cntxt_8_fmask[] = { 10862306a36Sopenharmony_ci [EV_MODT] = GENMASK(15, 0), 10962306a36Sopenharmony_ci [EV_MODC] = GENMASK(23, 16), 11062306a36Sopenharmony_ci [EV_MOD_CNT] = GENMASK(31, 24), 11162306a36Sopenharmony_ci}; 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ciREG_STRIDE_FIELDS(EV_CH_E_CNTXT_8, ev_ch_e_cntxt_8, 11462306a36Sopenharmony_ci 0x0001d020 + 0x4000 * GSI_EE_AP, 0x80); 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_9, ev_ch_e_cntxt_9, 11762306a36Sopenharmony_ci 0x0001d024 + 0x4000 * GSI_EE_AP, 0x80); 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_10, ev_ch_e_cntxt_10, 12062306a36Sopenharmony_ci 0x0001d028 + 0x4000 * GSI_EE_AP, 0x80); 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_11, ev_ch_e_cntxt_11, 12362306a36Sopenharmony_ci 0x0001d02c + 0x4000 * GSI_EE_AP, 0x80); 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_12, ev_ch_e_cntxt_12, 12662306a36Sopenharmony_ci 0x0001d030 + 0x4000 * GSI_EE_AP, 0x80); 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_CNTXT_13, ev_ch_e_cntxt_13, 12962306a36Sopenharmony_ci 0x0001d034 + 0x4000 * GSI_EE_AP, 0x80); 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_SCRATCH_0, ev_ch_e_scratch_0, 13262306a36Sopenharmony_ci 0x0001d048 + 0x4000 * GSI_EE_AP, 0x80); 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_SCRATCH_1, ev_ch_e_scratch_1, 13562306a36Sopenharmony_ci 0x0001d04c + 0x4000 * GSI_EE_AP, 0x80); 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ciREG_STRIDE(CH_C_DOORBELL_0, ch_c_doorbell_0, 13862306a36Sopenharmony_ci 0x0001e000 + 0x4000 * GSI_EE_AP, 0x08); 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciREG_STRIDE(EV_CH_E_DOORBELL_0, ev_ch_e_doorbell_0, 14162306a36Sopenharmony_ci 0x0001e100 + 0x4000 * GSI_EE_AP, 0x08); 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_cistatic const u32 reg_gsi_status_fmask[] = { 14462306a36Sopenharmony_ci [ENABLED] = BIT(0), 14562306a36Sopenharmony_ci /* Bits 1-31 reserved */ 14662306a36Sopenharmony_ci}; 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ciREG_FIELDS(GSI_STATUS, gsi_status, 0x0001f000 + 0x4000 * GSI_EE_AP); 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_cistatic const u32 reg_ch_cmd_fmask[] = { 15162306a36Sopenharmony_ci [CH_CHID] = GENMASK(7, 0), 15262306a36Sopenharmony_ci /* Bits 8-23 reserved */ 15362306a36Sopenharmony_ci [CH_OPCODE] = GENMASK(31, 24), 15462306a36Sopenharmony_ci}; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ciREG_FIELDS(CH_CMD, ch_cmd, 0x0001f008 + 0x4000 * GSI_EE_AP); 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_cistatic const u32 reg_ev_ch_cmd_fmask[] = { 15962306a36Sopenharmony_ci [EV_CHID] = GENMASK(7, 0), 16062306a36Sopenharmony_ci /* Bits 8-23 reserved */ 16162306a36Sopenharmony_ci [EV_OPCODE] = GENMASK(31, 24), 16262306a36Sopenharmony_ci}; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ciREG_FIELDS(EV_CH_CMD, ev_ch_cmd, 0x0001f010 + 0x4000 * GSI_EE_AP); 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_cistatic const u32 reg_generic_cmd_fmask[] = { 16762306a36Sopenharmony_ci [GENERIC_OPCODE] = GENMASK(4, 0), 16862306a36Sopenharmony_ci [GENERIC_CHID] = GENMASK(9, 5), 16962306a36Sopenharmony_ci [GENERIC_EE] = GENMASK(13, 10), 17062306a36Sopenharmony_ci /* Bits 14-31 reserved */ 17162306a36Sopenharmony_ci}; 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ciREG_FIELDS(GENERIC_CMD, generic_cmd, 0x0001f018 + 0x4000 * GSI_EE_AP); 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_cistatic const u32 reg_hw_param_2_fmask[] = { 17662306a36Sopenharmony_ci [IRAM_SIZE] = GENMASK(2, 0), 17762306a36Sopenharmony_ci [NUM_CH_PER_EE] = GENMASK(7, 3), 17862306a36Sopenharmony_ci [NUM_EV_PER_EE] = GENMASK(12, 8), 17962306a36Sopenharmony_ci [GSI_CH_PEND_TRANSLATE] = BIT(13), 18062306a36Sopenharmony_ci [GSI_CH_FULL_LOGIC] = BIT(14), 18162306a36Sopenharmony_ci [GSI_USE_SDMA] = BIT(15), 18262306a36Sopenharmony_ci [GSI_SDMA_N_INT] = GENMASK(18, 16), 18362306a36Sopenharmony_ci [GSI_SDMA_MAX_BURST] = GENMASK(26, 19), 18462306a36Sopenharmony_ci [GSI_SDMA_N_IOVEC] = GENMASK(29, 27), 18562306a36Sopenharmony_ci /* Bits 30-31 reserved */ 18662306a36Sopenharmony_ci}; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciREG_FIELDS(HW_PARAM_2, hw_param_2, 0x0001f040 + 0x4000 * GSI_EE_AP); 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ciREG(CNTXT_TYPE_IRQ, cntxt_type_irq, 0x0001f080 + 0x4000 * GSI_EE_AP); 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciREG(CNTXT_TYPE_IRQ_MSK, cntxt_type_irq_msk, 0x0001f088 + 0x4000 * GSI_EE_AP); 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ciREG(CNTXT_SRC_CH_IRQ, cntxt_src_ch_irq, 0x0001f090 + 0x4000 * GSI_EE_AP); 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ciREG(CNTXT_SRC_EV_CH_IRQ, cntxt_src_ev_ch_irq, 0x0001f094 + 0x4000 * GSI_EE_AP); 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ciREG(CNTXT_SRC_CH_IRQ_MSK, cntxt_src_ch_irq_msk, 19962306a36Sopenharmony_ci 0x0001f098 + 0x4000 * GSI_EE_AP); 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ciREG(CNTXT_SRC_EV_CH_IRQ_MSK, cntxt_src_ev_ch_irq_msk, 20262306a36Sopenharmony_ci 0x0001f09c + 0x4000 * GSI_EE_AP); 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ciREG(CNTXT_SRC_CH_IRQ_CLR, cntxt_src_ch_irq_clr, 20562306a36Sopenharmony_ci 0x0001f0a0 + 0x4000 * GSI_EE_AP); 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ciREG(CNTXT_SRC_EV_CH_IRQ_CLR, cntxt_src_ev_ch_irq_clr, 20862306a36Sopenharmony_ci 0x0001f0a4 + 0x4000 * GSI_EE_AP); 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ciREG(CNTXT_SRC_IEOB_IRQ, cntxt_src_ieob_irq, 0x0001f0b0 + 0x4000 * GSI_EE_AP); 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ciREG(CNTXT_SRC_IEOB_IRQ_MSK, cntxt_src_ieob_irq_msk, 21362306a36Sopenharmony_ci 0x0001f0b8 + 0x4000 * GSI_EE_AP); 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ciREG(CNTXT_SRC_IEOB_IRQ_CLR, cntxt_src_ieob_irq_clr, 21662306a36Sopenharmony_ci 0x0001f0c0 + 0x4000 * GSI_EE_AP); 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciREG(CNTXT_GLOB_IRQ_STTS, cntxt_glob_irq_stts, 0x0001f100 + 0x4000 * GSI_EE_AP); 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ciREG(CNTXT_GLOB_IRQ_EN, cntxt_glob_irq_en, 0x0001f108 + 0x4000 * GSI_EE_AP); 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ciREG(CNTXT_GLOB_IRQ_CLR, cntxt_glob_irq_clr, 0x0001f110 + 0x4000 * GSI_EE_AP); 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ciREG(CNTXT_GSI_IRQ_STTS, cntxt_gsi_irq_stts, 0x0001f118 + 0x4000 * GSI_EE_AP); 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ciREG(CNTXT_GSI_IRQ_EN, cntxt_gsi_irq_en, 0x0001f120 + 0x4000 * GSI_EE_AP); 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ciREG(CNTXT_GSI_IRQ_CLR, cntxt_gsi_irq_clr, 0x0001f128 + 0x4000 * GSI_EE_AP); 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_cistatic const u32 reg_cntxt_intset_fmask[] = { 23162306a36Sopenharmony_ci [INTYPE] = BIT(0) 23262306a36Sopenharmony_ci /* Bits 1-31 reserved */ 23362306a36Sopenharmony_ci}; 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ciREG_FIELDS(CNTXT_INTSET, cntxt_intset, 0x0001f180 + 0x4000 * GSI_EE_AP); 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ciREG_FIELDS(ERROR_LOG, error_log, 0x0001f200 + 0x4000 * GSI_EE_AP); 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ciREG(ERROR_LOG_CLR, error_log_clr, 0x0001f210 + 0x4000 * GSI_EE_AP); 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_cistatic const u32 reg_cntxt_scratch_0_fmask[] = { 24262306a36Sopenharmony_ci [INTER_EE_RESULT] = GENMASK(2, 0), 24362306a36Sopenharmony_ci /* Bits 3-4 reserved */ 24462306a36Sopenharmony_ci [GENERIC_EE_RESULT] = GENMASK(7, 5), 24562306a36Sopenharmony_ci /* Bits 8-31 reserved */ 24662306a36Sopenharmony_ci}; 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ciREG_FIELDS(CNTXT_SCRATCH_0, cntxt_scratch_0, 0x0001f400 + 0x4000 * GSI_EE_AP); 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_cistatic const struct reg *reg_array[] = { 25162306a36Sopenharmony_ci [INTER_EE_SRC_CH_IRQ_MSK] = ®_inter_ee_src_ch_irq_msk, 25262306a36Sopenharmony_ci [INTER_EE_SRC_EV_CH_IRQ_MSK] = ®_inter_ee_src_ev_ch_irq_msk, 25362306a36Sopenharmony_ci [CH_C_CNTXT_0] = ®_ch_c_cntxt_0, 25462306a36Sopenharmony_ci [CH_C_CNTXT_1] = ®_ch_c_cntxt_1, 25562306a36Sopenharmony_ci [CH_C_CNTXT_2] = ®_ch_c_cntxt_2, 25662306a36Sopenharmony_ci [CH_C_CNTXT_3] = ®_ch_c_cntxt_3, 25762306a36Sopenharmony_ci [CH_C_QOS] = ®_ch_c_qos, 25862306a36Sopenharmony_ci [CH_C_SCRATCH_0] = ®_ch_c_scratch_0, 25962306a36Sopenharmony_ci [CH_C_SCRATCH_1] = ®_ch_c_scratch_1, 26062306a36Sopenharmony_ci [CH_C_SCRATCH_2] = ®_ch_c_scratch_2, 26162306a36Sopenharmony_ci [CH_C_SCRATCH_3] = ®_ch_c_scratch_3, 26262306a36Sopenharmony_ci [EV_CH_E_CNTXT_0] = ®_ev_ch_e_cntxt_0, 26362306a36Sopenharmony_ci [EV_CH_E_CNTXT_1] = ®_ev_ch_e_cntxt_1, 26462306a36Sopenharmony_ci [EV_CH_E_CNTXT_2] = ®_ev_ch_e_cntxt_2, 26562306a36Sopenharmony_ci [EV_CH_E_CNTXT_3] = ®_ev_ch_e_cntxt_3, 26662306a36Sopenharmony_ci [EV_CH_E_CNTXT_4] = ®_ev_ch_e_cntxt_4, 26762306a36Sopenharmony_ci [EV_CH_E_CNTXT_8] = ®_ev_ch_e_cntxt_8, 26862306a36Sopenharmony_ci [EV_CH_E_CNTXT_9] = ®_ev_ch_e_cntxt_9, 26962306a36Sopenharmony_ci [EV_CH_E_CNTXT_10] = ®_ev_ch_e_cntxt_10, 27062306a36Sopenharmony_ci [EV_CH_E_CNTXT_11] = ®_ev_ch_e_cntxt_11, 27162306a36Sopenharmony_ci [EV_CH_E_CNTXT_12] = ®_ev_ch_e_cntxt_12, 27262306a36Sopenharmony_ci [EV_CH_E_CNTXT_13] = ®_ev_ch_e_cntxt_13, 27362306a36Sopenharmony_ci [EV_CH_E_SCRATCH_0] = ®_ev_ch_e_scratch_0, 27462306a36Sopenharmony_ci [EV_CH_E_SCRATCH_1] = ®_ev_ch_e_scratch_1, 27562306a36Sopenharmony_ci [CH_C_DOORBELL_0] = ®_ch_c_doorbell_0, 27662306a36Sopenharmony_ci [EV_CH_E_DOORBELL_0] = ®_ev_ch_e_doorbell_0, 27762306a36Sopenharmony_ci [GSI_STATUS] = ®_gsi_status, 27862306a36Sopenharmony_ci [CH_CMD] = ®_ch_cmd, 27962306a36Sopenharmony_ci [EV_CH_CMD] = ®_ev_ch_cmd, 28062306a36Sopenharmony_ci [GENERIC_CMD] = ®_generic_cmd, 28162306a36Sopenharmony_ci [HW_PARAM_2] = ®_hw_param_2, 28262306a36Sopenharmony_ci [CNTXT_TYPE_IRQ] = ®_cntxt_type_irq, 28362306a36Sopenharmony_ci [CNTXT_TYPE_IRQ_MSK] = ®_cntxt_type_irq_msk, 28462306a36Sopenharmony_ci [CNTXT_SRC_CH_IRQ] = ®_cntxt_src_ch_irq, 28562306a36Sopenharmony_ci [CNTXT_SRC_EV_CH_IRQ] = ®_cntxt_src_ev_ch_irq, 28662306a36Sopenharmony_ci [CNTXT_SRC_CH_IRQ_MSK] = ®_cntxt_src_ch_irq_msk, 28762306a36Sopenharmony_ci [CNTXT_SRC_EV_CH_IRQ_MSK] = ®_cntxt_src_ev_ch_irq_msk, 28862306a36Sopenharmony_ci [CNTXT_SRC_CH_IRQ_CLR] = ®_cntxt_src_ch_irq_clr, 28962306a36Sopenharmony_ci [CNTXT_SRC_EV_CH_IRQ_CLR] = ®_cntxt_src_ev_ch_irq_clr, 29062306a36Sopenharmony_ci [CNTXT_SRC_IEOB_IRQ] = ®_cntxt_src_ieob_irq, 29162306a36Sopenharmony_ci [CNTXT_SRC_IEOB_IRQ_MSK] = ®_cntxt_src_ieob_irq_msk, 29262306a36Sopenharmony_ci [CNTXT_SRC_IEOB_IRQ_CLR] = ®_cntxt_src_ieob_irq_clr, 29362306a36Sopenharmony_ci [CNTXT_GLOB_IRQ_STTS] = ®_cntxt_glob_irq_stts, 29462306a36Sopenharmony_ci [CNTXT_GLOB_IRQ_EN] = ®_cntxt_glob_irq_en, 29562306a36Sopenharmony_ci [CNTXT_GLOB_IRQ_CLR] = ®_cntxt_glob_irq_clr, 29662306a36Sopenharmony_ci [CNTXT_GSI_IRQ_STTS] = ®_cntxt_gsi_irq_stts, 29762306a36Sopenharmony_ci [CNTXT_GSI_IRQ_EN] = ®_cntxt_gsi_irq_en, 29862306a36Sopenharmony_ci [CNTXT_GSI_IRQ_CLR] = ®_cntxt_gsi_irq_clr, 29962306a36Sopenharmony_ci [CNTXT_INTSET] = ®_cntxt_intset, 30062306a36Sopenharmony_ci [ERROR_LOG] = ®_error_log, 30162306a36Sopenharmony_ci [ERROR_LOG_CLR] = ®_error_log_clr, 30262306a36Sopenharmony_ci [CNTXT_SCRATCH_0] = ®_cntxt_scratch_0, 30362306a36Sopenharmony_ci}; 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ciconst struct regs gsi_regs_v4_0 = { 30662306a36Sopenharmony_ci .reg_count = ARRAY_SIZE(reg_array), 30762306a36Sopenharmony_ci .reg = reg_array, 30862306a36Sopenharmony_ci}; 309