Introduce reset controllers for AP, MISC, VI, VP and DSP subsystems and
add their reset signal mappings.
Signed-off-by: Yao Zi <ziyao@disroot.org>
---
drivers/reset/reset-th1520.c | 793 +++++++++++++++++++++++++++++++++++
1 file changed, 793 insertions(+)
diff --git a/drivers/reset/reset-th1520.c b/drivers/reset/reset-th1520.c
index 2b65a95ed021..f9d87898cf59 100644
--- a/drivers/reset/reset-th1520.c
+++ b/drivers/reset/reset-th1520.c
@@ -11,6 +11,82 @@
#include <dt-bindings/reset/thead,th1520-reset.h>
+ /* register offset in RSTGEN_R */
+#define TH1520_BROM_RST_CFG 0x0
+#define TH1520_C910_RST_CFG 0x4
+#define TH1520_CHIP_DBG_RST_CFG 0xc
+#define TH1520_AXI4_CPUSYS2_RST_CFG 0x10
+#define TH1520_X2H_CPUSYS_RST_CFG 0x18
+#define TH1520_AHB2_CPUSYS_RST_CFG 0x1c
+#define TH1520_APB3_CPUSYS_RST_CFG 0x20
+#define TH1520_MBOX0_RST_CFG 0x24
+#define TH1520_MBOX1_RST_CFG 0x28
+#define TH1520_MBOX2_RST_CFG 0x2c
+#define TH1520_MBOX3_RST_CFG 0x30
+#define TH1520_WDT0_RST_CFG 0x34
+#define TH1520_WDT1_RST_CFG 0x38
+#define TH1520_TIMER0_RST_CFG 0x3c
+#define TH1520_TIMER1_RST_CFG 0x40
+#define TH1520_PERISYS_AHB_RST_CFG 0x44
+#define TH1520_PERISYS_APB1_RST_CFG 0x48
+#define TH1520_PERISYS_APB2_RST_CFG 0x4c
+#define TH1520_GMAC0_RST_CFG 0x68
+#define TH1520_UART0_RST_CFG 0x70
+#define TH1520_UART1_RST_CFG 0x74
+#define TH1520_UART2_RST_CFG 0x78
+#define TH1520_UART3_RST_CFG 0x7c
+#define TH1520_UART4_RST_CFG 0x80
+#define TH1520_UART5_RST_CFG 0x84
+#define TH1520_QSPI0_RST_CFG 0x8c
+#define TH1520_QSPI1_RST_CFG 0x90
+#define TH1520_SPI_RST_CFG 0x94
+#define TH1520_I2C0_RST_CFG 0x98
+#define TH1520_I2C1_RST_CFG 0x9c
+#define TH1520_I2C2_RST_CFG 0xa0
+#define TH1520_I2C3_RST_CFG 0xa4
+#define TH1520_I2C4_RST_CFG 0xa8
+#define TH1520_I2C5_RST_CFG 0xac
+#define TH1520_GPIO0_RST_CFG 0xb0
+#define TH1520_GPIO1_RST_CFG 0xb4
+#define TH1520_GPIO2_RST_CFG 0xb8
+#define TH1520_PWM_RST_CFG 0xc0
+#define TH1520_PADCTRL0_APSYS_RST_CFG 0xc4
+#define TH1520_CPU2PERI_X2H_RST_CFG 0xcc
+#define TH1520_CPU2AON_X2H_RST_CFG 0xe4
+#define TH1520_AON2CPU_A2X_RST_CFG 0xfc
+#define TH1520_NPUSYS_AXI_RST_CFG 0x128
+#define TH1520_CPU2VP_X2P_RST_CFG 0x12c
+#define TH1520_CPU2VI_X2H_RST_CFG 0x138
+#define TH1520_BMU_C910_RST_CFG 0x148
+#define TH1520_DMAC_CPUSYS_RST_CFG 0x14c
+#define TH1520_SPINLOCK_RST_CFG 0x178
+#define TH1520_CFG2TEE_X2H_RST_CFG 0x188
+#define TH1520_DSMART_RST_CFG 0x18c
+#define TH1520_GPIO3_RST_CFG 0x1a8
+#define TH1520_I2S_RST_CFG 0x1ac
+#define TH1520_IMG_NNA_RST_CFG 0x1b0
+#define TH1520_PERI_APB3_RST_CFG 0x1dc
+#define TH1520_VP_SUBSYS_RST_CFG 0x1ec
+#define TH1520_PERISYS_APB4_RST_CFG 0x1f8
+#define TH1520_GMAC1_RST_CFG 0x204
+#define TH1520_GMAC_AXI_RST_CFG 0x208
+#define TH1520_PADCTRL1_APSYS_RST_CFG 0x20c
+#define TH1520_VOSYS_AXI_RST_CFG 0x210
+#define TH1520_VOSYS_X2X_RST_CFG 0x214
+#define TH1520_MISC2VP_X2X_RST_CFG 0x218
+#define TH1520_SUBSYS_RST_CFG 0x220
+
+ /* register offset in MISCSYS_REGMAP */
+#define TH1520_EMMC_RST_CFG 0x0
+#define TH1520_MISCSYS_AXI_RST_CFG 0x8
+#define TH1520_SDIO0_RST_CFG 0xc
+#define TH1520_SDIO1_RST_CFG 0x10
+#define TH1520_USB3_DRD_RST_CFG 0x14
+
+ /* register offset in VISYS_REGMAP */
+#define TH1520_VISYS_RST_CFG 0x0
+#define TH1520_VISYS_2_RST_CFG 0x4
+
/* register offset in VOSYS_REGMAP */
#define TH1520_GPU_RST_CFG 0x0
#define TH1520_GPU_RST_CFG_MASK GENMASK(1, 0)
@@ -18,6 +94,8 @@
#define TH1520_DSI0_RST_CFG 0x8
#define TH1520_DSI1_RST_CFG 0xc
#define TH1520_HDMI_RST_CFG 0x14
+#define TH1520_AXI4_VO_DW_AXI_RST_CFG 0x18
+#define TH1520_X2H_X4_VOSYS_DW_RST_CFG 0x20
/* register values */
#define TH1520_GPU_SW_GPU_RST BIT(0)
@@ -29,6 +107,16 @@
#define TH1520_HDMI_SW_MAIN_RST BIT(0)
#define TH1520_HDMI_SW_PRST BIT(1)
+ /* register offset in VPSYS_REGMAP */
+#define TH1520_AXIBUS_RST_CFG 0x0
+#define TH1520_FCE_RST_CFG 0x4
+#define TH1520_G2D_RST_CFG 0x8
+#define TH1520_VDEC_RST_CFG 0xc
+#define TH1520_VENC_RST_CFG 0x10
+
+ /* register offset in DSP_REGMAP */
+#define TH1520_DSPSYS_RST_CFG 0x0
+
struct th1520_reset_map {
u32 bit;
u32 reg;
@@ -45,6 +133,539 @@ struct th1520_reset_data {
size_t num;
};
+static const struct th1520_reset_map th1520_ap_resets[] = {
+ [TH1520_RESET_ID_BROM] = {
+ .bit = BIT(0),
+ .reg = TH1520_BROM_RST_CFG,
+ },
+ [TH1520_RESET_ID_C910_TOP] = {
+ .bit = BIT(0),
+ .reg = TH1520_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_NPU] = {
+ .bit = BIT(0),
+ .reg = TH1520_IMG_NNA_RST_CFG,
+ },
+ [TH1520_RESET_ID_WDT0] = {
+ .bit = BIT(0),
+ .reg = TH1520_WDT0_RST_CFG,
+ },
+ [TH1520_RESET_ID_WDT1] = {
+ .bit = BIT(0),
+ .reg = TH1520_WDT1_RST_CFG,
+ },
+ [TH1520_RESET_ID_C910_C0] = {
+ .bit = BIT(1),
+ .reg = TH1520_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_C910_C1] = {
+ .bit = BIT(2),
+ .reg = TH1520_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_C910_C2] = {
+ .bit = BIT(3),
+ .reg = TH1520_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_C910_C3] = {
+ .bit = BIT(4),
+ .reg = TH1520_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_CHIP_DBG_CORE] = {
+ .bit = BIT(0),
+ .reg = TH1520_CHIP_DBG_RST_CFG,
+ },
+ [TH1520_RESET_ID_CHIP_DBG_AXI] = {
+ .bit = BIT(1),
+ .reg = TH1520_CHIP_DBG_RST_CFG,
+ },
+ [TH1520_RESET_ID_AXI4_CPUSYS2_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_AXI4_CPUSYS2_RST_CFG,
+ },
+ [TH1520_RESET_ID_AXI4_CPUSYS2_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_AXI4_CPUSYS2_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2H_CPUSYS] = {
+ .bit = BIT(0),
+ .reg = TH1520_X2H_CPUSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_AHB2_CPUSYS] = {
+ .bit = BIT(0),
+ .reg = TH1520_AHB2_CPUSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_APB3_CPUSYS] = {
+ .bit = BIT(0),
+ .reg = TH1520_APB3_CPUSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_MBOX0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_MBOX0_RST_CFG,
+ },
+ [TH1520_RESET_ID_MBOX1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_MBOX1_RST_CFG,
+ },
+ [TH1520_RESET_ID_MBOX2_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_MBOX2_RST_CFG,
+ },
+ [TH1520_RESET_ID_MBOX3_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_MBOX3_RST_CFG,
+ },
+ [TH1520_RESET_ID_TIMER0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_TIMER0_RST_CFG,
+ },
+ [TH1520_RESET_ID_TIMER0_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_TIMER0_RST_CFG,
+ },
+ [TH1520_RESET_ID_TIMER1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_TIMER1_RST_CFG,
+ },
+ [TH1520_RESET_ID_TIMER1_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_TIMER1_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERISYS_AHB] = {
+ .bit = BIT(0),
+ .reg = TH1520_PERISYS_AHB_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERISYS_APB1] = {
+ .bit = BIT(0),
+ .reg = TH1520_PERISYS_APB1_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERISYS_APB2] = {
+ .bit = BIT(0),
+ .reg = TH1520_PERISYS_APB2_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GMAC0_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC0_AHB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GMAC0_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC0_CLKGEN] = {
+ .bit = BIT(2),
+ .reg = TH1520_GMAC0_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC0_AXI] = {
+ .bit = BIT(3),
+ .reg = TH1520_GMAC0_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART0_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART0_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART0_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART1_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART1_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART1_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART2_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART2_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART2_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART2_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART3_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART3_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART3_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART3_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART4_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART4_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART4_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART4_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART5_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_UART5_RST_CFG,
+ },
+ [TH1520_RESET_ID_UART5_IF] = {
+ .bit = BIT(1),
+ .reg = TH1520_UART5_RST_CFG,
+ },
+ [TH1520_RESET_ID_QSPI0_IF] = {
+ .bit = BIT(0),
+ .reg = TH1520_QSPI0_RST_CFG,
+ },
+ [TH1520_RESET_ID_QSPI0_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_QSPI0_RST_CFG,
+ },
+ [TH1520_RESET_ID_QSPI1_IF] = {
+ .bit = BIT(0),
+ .reg = TH1520_QSPI1_RST_CFG,
+ },
+ [TH1520_RESET_ID_QSPI1_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_QSPI1_RST_CFG,
+ },
+ [TH1520_RESET_ID_SPI_IF] = {
+ .bit = BIT(0),
+ .reg = TH1520_SPI_RST_CFG,
+ },
+ [TH1520_RESET_ID_SPI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_SPI_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C0_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C0_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C0_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C1_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C1_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C1_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C2_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C2_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C2_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C2_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C3_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C3_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C3_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C3_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C4_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C4_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C4_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C4_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C5_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2C5_RST_CFG,
+ },
+ [TH1520_RESET_ID_I2C5_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_I2C5_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO0_DB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GPIO0_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO0_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GPIO0_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO1_DB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GPIO1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO1_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GPIO1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO2_DB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GPIO2_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO2_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GPIO2_RST_CFG,
+ },
+ [TH1520_RESET_ID_PWM_COUNTER] = {
+ .bit = BIT(0),
+ .reg = TH1520_PWM_RST_CFG,
+ },
+ [TH1520_RESET_ID_PWM_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_PWM_RST_CFG,
+ },
+ [TH1520_RESET_ID_PADCTRL0_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_PADCTRL0_APSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_CPU2PERI_X2H] = {
+ .bit = BIT(1),
+ .reg = TH1520_CPU2PERI_X2H_RST_CFG,
+ },
+ [TH1520_RESET_ID_CPU2AON_X2H] = {
+ .bit = BIT(0),
+ .reg = TH1520_CPU2AON_X2H_RST_CFG,
+ },
+ [TH1520_RESET_ID_AON2CPU_A2X] = {
+ .bit = BIT(0),
+ .reg = TH1520_AON2CPU_A2X_RST_CFG,
+ },
+ [TH1520_RESET_ID_NPUSYS_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_NPUSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_NPUSYS_AXI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_NPUSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_CPU2VP_X2P] = {
+ .bit = BIT(0),
+ .reg = TH1520_CPU2VP_X2P_RST_CFG,
+ },
+ [TH1520_RESET_ID_CPU2VI_X2H] = {
+ .bit = BIT(0),
+ .reg = TH1520_CPU2VI_X2H_RST_CFG,
+ },
+ [TH1520_RESET_ID_BMU_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_BMU_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_BMU_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_BMU_C910_RST_CFG,
+ },
+ [TH1520_RESET_ID_DMAC_CPUSYS_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_DMAC_CPUSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DMAC_CPUSYS_AHB] = {
+ .bit = BIT(1),
+ .reg = TH1520_DMAC_CPUSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_SPINLOCK] = {
+ .bit = BIT(0),
+ .reg = TH1520_SPINLOCK_RST_CFG,
+ },
+ [TH1520_RESET_ID_CFG2TEE] = {
+ .bit = BIT(0),
+ .reg = TH1520_CFG2TEE_X2H_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSMART] = {
+ .bit = BIT(0),
+ .reg = TH1520_DSMART_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO3_DB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GPIO3_RST_CFG,
+ },
+ [TH1520_RESET_ID_GPIO3_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GPIO3_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERI_I2S] = {
+ .bit = BIT(0),
+ .reg = TH1520_I2S_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERI_APB3] = {
+ .bit = BIT(0),
+ .reg = TH1520_PERI_APB3_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERI2PERI1_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_PERI_APB3_RST_CFG,
+ },
+ [TH1520_RESET_ID_VPSYS_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_VP_SUBSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_PERISYS_APB4] = {
+ .bit = BIT(0),
+ .reg = TH1520_PERISYS_APB4_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_GMAC1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC1_AHB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GMAC1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC1_CLKGEN] = {
+ .bit = BIT(2),
+ .reg = TH1520_GMAC1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC1_AXI] = {
+ .bit = BIT(3),
+ .reg = TH1520_GMAC1_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_GMAC_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_GMAC_AXI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_GMAC_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_PADCTRL1_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_PADCTRL1_APSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VOSYS_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_VOSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_VOSYS_AXI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_VOSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_VOSYS_AXI_X2X] = {
+ .bit = BIT(0),
+ .reg = TH1520_VOSYS_X2X_RST_CFG,
+ },
+ [TH1520_RESET_ID_MISC2VP_X2X] = {
+ .bit = BIT(0),
+ .reg = TH1520_MISC2VP_X2X_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSPSYS] = {
+ .bit = BIT(0),
+ .reg = TH1520_SUBSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS] = {
+ .bit = BIT(1),
+ .reg = TH1520_SUBSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VOSYS] = {
+ .bit = BIT(2),
+ .reg = TH1520_SUBSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VPSYS] = {
+ .bit = BIT(3),
+ .reg = TH1520_SUBSYS_RST_CFG,
+ },
+};
+
+static const struct th1520_reset_map th1520_misc_resets[] = {
+ [TH1520_RESET_ID_EMMC_SDIO_CLKGEN] = {
+ .bit = BIT(0),
+ .reg = TH1520_EMMC_RST_CFG,
+ },
+ [TH1520_RESET_ID_EMMC] = {
+ .bit = BIT(1),
+ .reg = TH1520_EMMC_RST_CFG,
+ },
+ [TH1520_RESET_ID_MISCSYS_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_MISCSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_MISCSYS_AXI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_MISCSYS_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_SDIO0] = {
+ .bit = BIT(0),
+ .reg = TH1520_SDIO0_RST_CFG,
+ },
+ [TH1520_RESET_ID_SDIO1] = {
+ .bit = BIT(1),
+ .reg = TH1520_SDIO1_RST_CFG,
+ },
+ [TH1520_RESET_ID_USB3_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_USB3_DRD_RST_CFG,
+ },
+ [TH1520_RESET_ID_USB3_PHY] = {
+ .bit = BIT(1),
+ .reg = TH1520_USB3_DRD_RST_CFG,
+ },
+ [TH1520_RESET_ID_USB3_VCC] = {
+ .bit = BIT(2),
+ .reg = TH1520_USB3_DRD_RST_CFG,
+ },
+};
+
+static const struct th1520_reset_map th1520_vi_resets[] = {
+ [TH1520_RESET_ID_ISP0] = {
+ .bit = BIT(0),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_ISP1] = {
+ .bit = BIT(4),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_CSI0_APB] = {
+ .bit = BIT(16),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_CSI1_APB] = {
+ .bit = BIT(17),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_CSI2_APB] = {
+ .bit = BIT(18),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_MIPI_FIFO] = {
+ .bit = BIT(20),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_ISP_VENC_APB] = {
+ .bit = BIT(24),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VIPRE_APB] = {
+ .bit = BIT(28),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VIPRE_AXI] = {
+ .bit = BIT(29),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DW200_APB] = {
+ .bit = BIT(31),
+ .reg = TH1520_VISYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS3_AXI] = {
+ .bit = BIT(8),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS2_AXI] = {
+ .bit = BIT(9),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS1_AXI] = {
+ .bit = BIT(10),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS_AXI] = {
+ .bit = BIT(12),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+ [TH1520_RESET_ID_VISYS_APB] = {
+ .bit = BIT(16),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+ [TH1520_RESET_ID_ISP_VENC_AXI] = {
+ .bit = BIT(20),
+ .reg = TH1520_VISYS_2_RST_CFG,
+ },
+};
+
static const struct th1520_reset_map th1520_resets[] = {
[TH1520_RESET_ID_GPU] = {
.bit = TH1520_GPU_SW_GPU_RST,
@@ -82,6 +703,148 @@ static const struct th1520_reset_map th1520_resets[] = {
.bit = TH1520_HDMI_SW_PRST,
.reg = TH1520_HDMI_RST_CFG,
},
+ [TH1520_RESET_ID_VOAXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_AXI4_VO_DW_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_VOAXI_APB] = {
+ .bit = BIT(1),
+ .reg = TH1520_AXI4_VO_DW_AXI_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2H_DPU_AXI] = {
+ .bit = BIT(0),
+ .reg = TH1520_X2H_X4_VOSYS_DW_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2H_DPU_AHB] = {
+ .bit = BIT(1),
+ .reg = TH1520_X2H_X4_VOSYS_DW_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2H_DPU1_AXI] = {
+ .bit = BIT(2),
+ .reg = TH1520_X2H_X4_VOSYS_DW_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2H_DPU1_AHB] = {
+ .bit = BIT(3),
+ .reg = TH1520_X2H_X4_VOSYS_DW_RST_CFG,
+ },
+};
+
+static const struct th1520_reset_map th1520_vp_resets[] = {
+ [TH1520_RESET_ID_VPSYS_AXI_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_AXIBUS_RST_CFG,
+ },
+ [TH1520_RESET_ID_VPSYS_AXI] = {
+ .bit = BIT(1),
+ .reg = TH1520_AXIBUS_RST_CFG,
+ },
+ [TH1520_RESET_ID_FCE_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_FCE_RST_CFG,
+ },
+ [TH1520_RESET_ID_FCE_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_FCE_RST_CFG,
+ },
+ [TH1520_RESET_ID_FCE_X2X_MASTER] = {
+ .bit = BIT(4),
+ .reg = TH1520_FCE_RST_CFG,
+ },
+ [TH1520_RESET_ID_FCE_X2X_SLAVE] = {
+ .bit = BIT(5),
+ .reg = TH1520_FCE_RST_CFG,
+ },
+ [TH1520_RESET_ID_G2D_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_G2D_RST_CFG,
+ },
+ [TH1520_RESET_ID_G2D_ACLK] = {
+ .bit = BIT(1),
+ .reg = TH1520_G2D_RST_CFG,
+ },
+ [TH1520_RESET_ID_G2D_CORE] = {
+ .bit = BIT(2),
+ .reg = TH1520_G2D_RST_CFG,
+ },
+ [TH1520_RESET_ID_VDEC_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_VDEC_RST_CFG,
+ },
+ [TH1520_RESET_ID_VDEC_ACLK] = {
+ .bit = BIT(1),
+ .reg = TH1520_VDEC_RST_CFG,
+ },
+ [TH1520_RESET_ID_VDEC_CORE] = {
+ .bit = BIT(2),
+ .reg = TH1520_VDEC_RST_CFG,
+ },
+ [TH1520_RESET_ID_VENC_APB] = {
+ .bit = BIT(0),
+ .reg = TH1520_VENC_RST_CFG,
+ },
+ [TH1520_RESET_ID_VENC_CORE] = {
+ .bit = BIT(1),
+ .reg = TH1520_VENC_RST_CFG,
+ },
+};
+
+static const struct th1520_reset_map th1520_dsp_resets[] = {
+ [TH1520_RESET_ID_X2X_DSP1] = {
+ .bit = BIT(0),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2X_DSP0] = {
+ .bit = BIT(1),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2X_SLAVE_DSP1] = {
+ .bit = BIT(2),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_X2X_SLAVE_DSP0] = {
+ .bit = BIT(3),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP0_CORE] = {
+ .bit = BIT(8),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP0_DEBUG] = {
+ .bit = BIT(9),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP0_APB] = {
+ .bit = BIT(10),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP1_CORE] = {
+ .bit = BIT(12),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP1_DEBUG] = {
+ .bit = BIT(13),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSP1_APB] = {
+ .bit = BIT(14),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_DSPSYS_APB] = {
+ .bit = BIT(16),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_AXI4_DSPSYS_SLV] = {
+ .bit = BIT(20),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_AXI4_DSPSYS] = {
+ .bit = BIT(24),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
+ [TH1520_RESET_ID_AXI4_DSP_RS] = {
+ .bit = BIT(26),
+ .reg = TH1520_DSPSYS_RST_CFG,
+ },
};
static inline struct th1520_reset_priv *
@@ -165,13 +928,43 @@ static int th1520_reset_probe(struct platform_device *pdev)
return devm_reset_controller_register(dev, &priv->rcdev);
}
+static const struct th1520_reset_data th1520_ap_reset_data = {
+ .resets = th1520_ap_resets,
+ .num = ARRAY_SIZE(th1520_ap_resets),
+};
+
+static const struct th1520_reset_data th1520_misc_reset_data = {
+ .resets = th1520_misc_resets,
+ .num = ARRAY_SIZE(th1520_misc_resets),
+};
+
+static const struct th1520_reset_data th1520_vi_reset_data = {
+ .resets = th1520_vi_resets,
+ .num = ARRAY_SIZE(th1520_vi_resets),
+};
+
static const struct th1520_reset_data th1520_reset_data = {
.resets = th1520_resets,
.num = ARRAY_SIZE(th1520_resets),
};
+static const struct th1520_reset_data th1520_vp_reset_data = {
+ .resets = th1520_vp_resets,
+ .num = ARRAY_SIZE(th1520_vp_resets),
+};
+
+static const struct th1520_reset_data th1520_dsp_reset_data = {
+ .resets = th1520_dsp_resets,
+ .num = ARRAY_SIZE(th1520_dsp_resets),
+};
+
static const struct of_device_id th1520_reset_match[] = {
+ { .compatible = "thead,th1520-reset-ap", .data = &th1520_ap_reset_data },
+ { .compatible = "thead,th1520-reset-misc", .data = &th1520_misc_reset_data },
+ { .compatible = "thead,th1520-reset-vi", .data = &th1520_vi_reset_data },
{ .compatible = "thead,th1520-reset", .data = &th1520_reset_data },
+ { .compatible = "thead,th1520-reset-vp", .data = &th1520_vp_reset_data },
+ { .compatible = "thead,th1520-reset-dsp", .data = &th1520_dsp_reset_data },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, th1520_reset_match);
--
2.50.1
Hi Yao,
kernel test robot noticed the following build warnings:
[auto build test WARNING on pza/reset/next]
[also build test WARNING on next-20250902]
[cannot apply to robh/for-next pza/imx-drm/next linus/master v6.17-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yao-Zi/dt-bindings-reset-thead-th1520-reset-Add-controllers-for-more-subsys/20250901-122656
base: https://git.pengutronix.de/git/pza/linux reset/next
patch link: https://lore.kernel.org/r/20250901042320.22865-4-ziyao%40disroot.org
patch subject: [PATCH 3/4] reset: th1520: Support reset controllers in more subsystems
config: alpha-randconfig-r133-20250902 (https://download.01.org/0day-ci/archive/20250902/202509021804.FXl7up6q-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 8.5.0
reproduce: (https://download.01.org/0day-ci/archive/20250902/202509021804.FXl7up6q-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509021804.FXl7up6q-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/reset/reset-th1520.c:157:10: sparse: sparse: Initializer entry defined twice
drivers/reset/reset-th1520.c:161:10: sparse: also defined here
drivers/reset/reset-th1520.c:808:10: sparse: sparse: Initializer entry defined twice
drivers/reset/reset-th1520.c:820:10: sparse: also defined here
vim +157 drivers/reset/reset-th1520.c
135
136 static const struct th1520_reset_map th1520_ap_resets[] = {
137 [TH1520_RESET_ID_BROM] = {
138 .bit = BIT(0),
139 .reg = TH1520_BROM_RST_CFG,
140 },
141 [TH1520_RESET_ID_C910_TOP] = {
142 .bit = BIT(0),
143 .reg = TH1520_C910_RST_CFG,
144 },
145 [TH1520_RESET_ID_NPU] = {
146 .bit = BIT(0),
147 .reg = TH1520_IMG_NNA_RST_CFG,
148 },
149 [TH1520_RESET_ID_WDT0] = {
150 .bit = BIT(0),
151 .reg = TH1520_WDT0_RST_CFG,
152 },
153 [TH1520_RESET_ID_WDT1] = {
154 .bit = BIT(0),
155 .reg = TH1520_WDT1_RST_CFG,
156 },
> 157 [TH1520_RESET_ID_C910_C0] = {
158 .bit = BIT(1),
159 .reg = TH1520_C910_RST_CFG,
160 },
161 [TH1520_RESET_ID_C910_C1] = {
162 .bit = BIT(2),
163 .reg = TH1520_C910_RST_CFG,
164 },
165 [TH1520_RESET_ID_C910_C2] = {
166 .bit = BIT(3),
167 .reg = TH1520_C910_RST_CFG,
168 },
169 [TH1520_RESET_ID_C910_C3] = {
170 .bit = BIT(4),
171 .reg = TH1520_C910_RST_CFG,
172 },
173 [TH1520_RESET_ID_CHIP_DBG_CORE] = {
174 .bit = BIT(0),
175 .reg = TH1520_CHIP_DBG_RST_CFG,
176 },
177 [TH1520_RESET_ID_CHIP_DBG_AXI] = {
178 .bit = BIT(1),
179 .reg = TH1520_CHIP_DBG_RST_CFG,
180 },
181 [TH1520_RESET_ID_AXI4_CPUSYS2_AXI] = {
182 .bit = BIT(0),
183 .reg = TH1520_AXI4_CPUSYS2_RST_CFG,
184 },
185 [TH1520_RESET_ID_AXI4_CPUSYS2_APB] = {
186 .bit = BIT(1),
187 .reg = TH1520_AXI4_CPUSYS2_RST_CFG,
188 },
189 [TH1520_RESET_ID_X2H_CPUSYS] = {
190 .bit = BIT(0),
191 .reg = TH1520_X2H_CPUSYS_RST_CFG,
192 },
193 [TH1520_RESET_ID_AHB2_CPUSYS] = {
194 .bit = BIT(0),
195 .reg = TH1520_AHB2_CPUSYS_RST_CFG,
196 },
197 [TH1520_RESET_ID_APB3_CPUSYS] = {
198 .bit = BIT(0),
199 .reg = TH1520_APB3_CPUSYS_RST_CFG,
200 },
201 [TH1520_RESET_ID_MBOX0_APB] = {
202 .bit = BIT(0),
203 .reg = TH1520_MBOX0_RST_CFG,
204 },
205 [TH1520_RESET_ID_MBOX1_APB] = {
206 .bit = BIT(0),
207 .reg = TH1520_MBOX1_RST_CFG,
208 },
209 [TH1520_RESET_ID_MBOX2_APB] = {
210 .bit = BIT(0),
211 .reg = TH1520_MBOX2_RST_CFG,
212 },
213 [TH1520_RESET_ID_MBOX3_APB] = {
214 .bit = BIT(0),
215 .reg = TH1520_MBOX3_RST_CFG,
216 },
217 [TH1520_RESET_ID_TIMER0_APB] = {
218 .bit = BIT(0),
219 .reg = TH1520_TIMER0_RST_CFG,
220 },
221 [TH1520_RESET_ID_TIMER0_CORE] = {
222 .bit = BIT(1),
223 .reg = TH1520_TIMER0_RST_CFG,
224 },
225 [TH1520_RESET_ID_TIMER1_APB] = {
226 .bit = BIT(0),
227 .reg = TH1520_TIMER1_RST_CFG,
228 },
229 [TH1520_RESET_ID_TIMER1_CORE] = {
230 .bit = BIT(1),
231 .reg = TH1520_TIMER1_RST_CFG,
232 },
233 [TH1520_RESET_ID_PERISYS_AHB] = {
234 .bit = BIT(0),
235 .reg = TH1520_PERISYS_AHB_RST_CFG,
236 },
237 [TH1520_RESET_ID_PERISYS_APB1] = {
238 .bit = BIT(0),
239 .reg = TH1520_PERISYS_APB1_RST_CFG,
240 },
241 [TH1520_RESET_ID_PERISYS_APB2] = {
242 .bit = BIT(0),
243 .reg = TH1520_PERISYS_APB2_RST_CFG,
244 },
245 [TH1520_RESET_ID_GMAC0_APB] = {
246 .bit = BIT(0),
247 .reg = TH1520_GMAC0_RST_CFG,
248 },
249 [TH1520_RESET_ID_GMAC0_AHB] = {
250 .bit = BIT(1),
251 .reg = TH1520_GMAC0_RST_CFG,
252 },
253 [TH1520_RESET_ID_GMAC0_CLKGEN] = {
254 .bit = BIT(2),
255 .reg = TH1520_GMAC0_RST_CFG,
256 },
257 [TH1520_RESET_ID_GMAC0_AXI] = {
258 .bit = BIT(3),
259 .reg = TH1520_GMAC0_RST_CFG,
260 },
261 [TH1520_RESET_ID_UART0_APB] = {
262 .bit = BIT(0),
263 .reg = TH1520_UART0_RST_CFG,
264 },
265 [TH1520_RESET_ID_UART0_IF] = {
266 .bit = BIT(1),
267 .reg = TH1520_UART0_RST_CFG,
268 },
269 [TH1520_RESET_ID_UART1_APB] = {
270 .bit = BIT(0),
271 .reg = TH1520_UART1_RST_CFG,
272 },
273 [TH1520_RESET_ID_UART1_IF] = {
274 .bit = BIT(1),
275 .reg = TH1520_UART1_RST_CFG,
276 },
277 [TH1520_RESET_ID_UART2_APB] = {
278 .bit = BIT(0),
279 .reg = TH1520_UART2_RST_CFG,
280 },
281 [TH1520_RESET_ID_UART2_IF] = {
282 .bit = BIT(1),
283 .reg = TH1520_UART2_RST_CFG,
284 },
285 [TH1520_RESET_ID_UART3_APB] = {
286 .bit = BIT(0),
287 .reg = TH1520_UART3_RST_CFG,
288 },
289 [TH1520_RESET_ID_UART3_IF] = {
290 .bit = BIT(1),
291 .reg = TH1520_UART3_RST_CFG,
292 },
293 [TH1520_RESET_ID_UART4_APB] = {
294 .bit = BIT(0),
295 .reg = TH1520_UART4_RST_CFG,
296 },
297 [TH1520_RESET_ID_UART4_IF] = {
298 .bit = BIT(1),
299 .reg = TH1520_UART4_RST_CFG,
300 },
301 [TH1520_RESET_ID_UART5_APB] = {
302 .bit = BIT(0),
303 .reg = TH1520_UART5_RST_CFG,
304 },
305 [TH1520_RESET_ID_UART5_IF] = {
306 .bit = BIT(1),
307 .reg = TH1520_UART5_RST_CFG,
308 },
309 [TH1520_RESET_ID_QSPI0_IF] = {
310 .bit = BIT(0),
311 .reg = TH1520_QSPI0_RST_CFG,
312 },
313 [TH1520_RESET_ID_QSPI0_APB] = {
314 .bit = BIT(1),
315 .reg = TH1520_QSPI0_RST_CFG,
316 },
317 [TH1520_RESET_ID_QSPI1_IF] = {
318 .bit = BIT(0),
319 .reg = TH1520_QSPI1_RST_CFG,
320 },
321 [TH1520_RESET_ID_QSPI1_APB] = {
322 .bit = BIT(1),
323 .reg = TH1520_QSPI1_RST_CFG,
324 },
325 [TH1520_RESET_ID_SPI_IF] = {
326 .bit = BIT(0),
327 .reg = TH1520_SPI_RST_CFG,
328 },
329 [TH1520_RESET_ID_SPI_APB] = {
330 .bit = BIT(1),
331 .reg = TH1520_SPI_RST_CFG,
332 },
333 [TH1520_RESET_ID_I2C0_APB] = {
334 .bit = BIT(0),
335 .reg = TH1520_I2C0_RST_CFG,
336 },
337 [TH1520_RESET_ID_I2C0_CORE] = {
338 .bit = BIT(1),
339 .reg = TH1520_I2C0_RST_CFG,
340 },
341 [TH1520_RESET_ID_I2C1_APB] = {
342 .bit = BIT(0),
343 .reg = TH1520_I2C1_RST_CFG,
344 },
345 [TH1520_RESET_ID_I2C1_CORE] = {
346 .bit = BIT(1),
347 .reg = TH1520_I2C1_RST_CFG,
348 },
349 [TH1520_RESET_ID_I2C2_APB] = {
350 .bit = BIT(0),
351 .reg = TH1520_I2C2_RST_CFG,
352 },
353 [TH1520_RESET_ID_I2C2_CORE] = {
354 .bit = BIT(1),
355 .reg = TH1520_I2C2_RST_CFG,
356 },
357 [TH1520_RESET_ID_I2C3_APB] = {
358 .bit = BIT(0),
359 .reg = TH1520_I2C3_RST_CFG,
360 },
361 [TH1520_RESET_ID_I2C3_CORE] = {
362 .bit = BIT(1),
363 .reg = TH1520_I2C3_RST_CFG,
364 },
365 [TH1520_RESET_ID_I2C4_APB] = {
366 .bit = BIT(0),
367 .reg = TH1520_I2C4_RST_CFG,
368 },
369 [TH1520_RESET_ID_I2C4_CORE] = {
370 .bit = BIT(1),
371 .reg = TH1520_I2C4_RST_CFG,
372 },
373 [TH1520_RESET_ID_I2C5_APB] = {
374 .bit = BIT(0),
375 .reg = TH1520_I2C5_RST_CFG,
376 },
377 [TH1520_RESET_ID_I2C5_CORE] = {
378 .bit = BIT(1),
379 .reg = TH1520_I2C5_RST_CFG,
380 },
381 [TH1520_RESET_ID_GPIO0_DB] = {
382 .bit = BIT(0),
383 .reg = TH1520_GPIO0_RST_CFG,
384 },
385 [TH1520_RESET_ID_GPIO0_APB] = {
386 .bit = BIT(1),
387 .reg = TH1520_GPIO0_RST_CFG,
388 },
389 [TH1520_RESET_ID_GPIO1_DB] = {
390 .bit = BIT(0),
391 .reg = TH1520_GPIO1_RST_CFG,
392 },
393 [TH1520_RESET_ID_GPIO1_APB] = {
394 .bit = BIT(1),
395 .reg = TH1520_GPIO1_RST_CFG,
396 },
397 [TH1520_RESET_ID_GPIO2_DB] = {
398 .bit = BIT(0),
399 .reg = TH1520_GPIO2_RST_CFG,
400 },
401 [TH1520_RESET_ID_GPIO2_APB] = {
402 .bit = BIT(1),
403 .reg = TH1520_GPIO2_RST_CFG,
404 },
405 [TH1520_RESET_ID_PWM_COUNTER] = {
406 .bit = BIT(0),
407 .reg = TH1520_PWM_RST_CFG,
408 },
409 [TH1520_RESET_ID_PWM_APB] = {
410 .bit = BIT(1),
411 .reg = TH1520_PWM_RST_CFG,
412 },
413 [TH1520_RESET_ID_PADCTRL0_APB] = {
414 .bit = BIT(0),
415 .reg = TH1520_PADCTRL0_APSYS_RST_CFG,
416 },
417 [TH1520_RESET_ID_CPU2PERI_X2H] = {
418 .bit = BIT(1),
419 .reg = TH1520_CPU2PERI_X2H_RST_CFG,
420 },
421 [TH1520_RESET_ID_CPU2AON_X2H] = {
422 .bit = BIT(0),
423 .reg = TH1520_CPU2AON_X2H_RST_CFG,
424 },
425 [TH1520_RESET_ID_AON2CPU_A2X] = {
426 .bit = BIT(0),
427 .reg = TH1520_AON2CPU_A2X_RST_CFG,
428 },
429 [TH1520_RESET_ID_NPUSYS_AXI] = {
430 .bit = BIT(0),
431 .reg = TH1520_NPUSYS_AXI_RST_CFG,
432 },
433 [TH1520_RESET_ID_NPUSYS_AXI_APB] = {
434 .bit = BIT(1),
435 .reg = TH1520_NPUSYS_AXI_RST_CFG,
436 },
437 [TH1520_RESET_ID_CPU2VP_X2P] = {
438 .bit = BIT(0),
439 .reg = TH1520_CPU2VP_X2P_RST_CFG,
440 },
441 [TH1520_RESET_ID_CPU2VI_X2H] = {
442 .bit = BIT(0),
443 .reg = TH1520_CPU2VI_X2H_RST_CFG,
444 },
445 [TH1520_RESET_ID_BMU_AXI] = {
446 .bit = BIT(0),
447 .reg = TH1520_BMU_C910_RST_CFG,
448 },
449 [TH1520_RESET_ID_BMU_APB] = {
450 .bit = BIT(1),
451 .reg = TH1520_BMU_C910_RST_CFG,
452 },
453 [TH1520_RESET_ID_DMAC_CPUSYS_AXI] = {
454 .bit = BIT(0),
455 .reg = TH1520_DMAC_CPUSYS_RST_CFG,
456 },
457 [TH1520_RESET_ID_DMAC_CPUSYS_AHB] = {
458 .bit = BIT(1),
459 .reg = TH1520_DMAC_CPUSYS_RST_CFG,
460 },
461 [TH1520_RESET_ID_SPINLOCK] = {
462 .bit = BIT(0),
463 .reg = TH1520_SPINLOCK_RST_CFG,
464 },
465 [TH1520_RESET_ID_CFG2TEE] = {
466 .bit = BIT(0),
467 .reg = TH1520_CFG2TEE_X2H_RST_CFG,
468 },
469 [TH1520_RESET_ID_DSMART] = {
470 .bit = BIT(0),
471 .reg = TH1520_DSMART_RST_CFG,
472 },
473 [TH1520_RESET_ID_GPIO3_DB] = {
474 .bit = BIT(0),
475 .reg = TH1520_GPIO3_RST_CFG,
476 },
477 [TH1520_RESET_ID_GPIO3_APB] = {
478 .bit = BIT(1),
479 .reg = TH1520_GPIO3_RST_CFG,
480 },
481 [TH1520_RESET_ID_PERI_I2S] = {
482 .bit = BIT(0),
483 .reg = TH1520_I2S_RST_CFG,
484 },
485 [TH1520_RESET_ID_PERI_APB3] = {
486 .bit = BIT(0),
487 .reg = TH1520_PERI_APB3_RST_CFG,
488 },
489 [TH1520_RESET_ID_PERI2PERI1_APB] = {
490 .bit = BIT(1),
491 .reg = TH1520_PERI_APB3_RST_CFG,
492 },
493 [TH1520_RESET_ID_VPSYS_APB] = {
494 .bit = BIT(0),
495 .reg = TH1520_VP_SUBSYS_RST_CFG,
496 },
497 [TH1520_RESET_ID_PERISYS_APB4] = {
498 .bit = BIT(0),
499 .reg = TH1520_PERISYS_APB4_RST_CFG,
500 },
501 [TH1520_RESET_ID_GMAC1_APB] = {
502 .bit = BIT(0),
503 .reg = TH1520_GMAC1_RST_CFG,
504 },
505 [TH1520_RESET_ID_GMAC1_AHB] = {
506 .bit = BIT(1),
507 .reg = TH1520_GMAC1_RST_CFG,
508 },
509 [TH1520_RESET_ID_GMAC1_CLKGEN] = {
510 .bit = BIT(2),
511 .reg = TH1520_GMAC1_RST_CFG,
512 },
513 [TH1520_RESET_ID_GMAC1_AXI] = {
514 .bit = BIT(3),
515 .reg = TH1520_GMAC1_RST_CFG,
516 },
517 [TH1520_RESET_ID_GMAC_AXI] = {
518 .bit = BIT(0),
519 .reg = TH1520_GMAC_AXI_RST_CFG,
520 },
521 [TH1520_RESET_ID_GMAC_AXI_APB] = {
522 .bit = BIT(1),
523 .reg = TH1520_GMAC_AXI_RST_CFG,
524 },
525 [TH1520_RESET_ID_PADCTRL1_APB] = {
526 .bit = BIT(0),
527 .reg = TH1520_PADCTRL1_APSYS_RST_CFG,
528 },
529 [TH1520_RESET_ID_VOSYS_AXI] = {
530 .bit = BIT(0),
531 .reg = TH1520_VOSYS_AXI_RST_CFG,
532 },
533 [TH1520_RESET_ID_VOSYS_AXI_APB] = {
534 .bit = BIT(1),
535 .reg = TH1520_VOSYS_AXI_RST_CFG,
536 },
537 [TH1520_RESET_ID_VOSYS_AXI_X2X] = {
538 .bit = BIT(0),
539 .reg = TH1520_VOSYS_X2X_RST_CFG,
540 },
541 [TH1520_RESET_ID_MISC2VP_X2X] = {
542 .bit = BIT(0),
543 .reg = TH1520_MISC2VP_X2X_RST_CFG,
544 },
545 [TH1520_RESET_ID_DSPSYS] = {
546 .bit = BIT(0),
547 .reg = TH1520_SUBSYS_RST_CFG,
548 },
549 [TH1520_RESET_ID_VISYS] = {
550 .bit = BIT(1),
551 .reg = TH1520_SUBSYS_RST_CFG,
552 },
553 [TH1520_RESET_ID_VOSYS] = {
554 .bit = BIT(2),
555 .reg = TH1520_SUBSYS_RST_CFG,
556 },
557 [TH1520_RESET_ID_VPSYS] = {
558 .bit = BIT(3),
559 .reg = TH1520_SUBSYS_RST_CFG,
560 },
561 };
562
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.