[PATCH 06/18] dt-bindings: reset: add Zhihe A210 reset controllers
Han Gao via B4 Relay
devnull+gaohan.iscas.ac.cn at kernel.org
Wed Oct 21 12:53:26 PDT 2026
From: Zhiguo Zhu <zhiguo.zhu at linux.alibaba.com>
Add bindings for the A210 reset controllers and their reset IDs.
Signed-off-by: Zhiguo Zhu <zhiguo.zhu at linux.alibaba.com>
Signed-off-by: Han Gao <gaohan at iscas.ac.cn>
---
.../bindings/reset/zhihe,a210-reset.yaml | 56 ++++
include/dt-bindings/reset/zhihe,a210-resets.h | 351 +++++++++++++++++++++
2 files changed, 407 insertions(+)
diff --git a/Documentation/devicetree/bindings/reset/zhihe,a210-reset.yaml b/Documentation/devicetree/bindings/reset/zhihe,a210-reset.yaml
new file mode 100644
index 000000000000..708cb49444eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/reset/zhihe,a210-reset.yaml
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/reset/zhihe,a210-reset.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Zhihe A210 Reset Controller
+
+maintainers:
+ - Zhiguo Zhu <zhiguo.zhu at linux.alibaba.com>
+
+description:
+ Reset controllers for the Zhihe A210 SoC. Each subsystem exposes a
+ separate reset controller register block and has its own compatible.
+
+properties:
+ compatible:
+ enum:
+ - zhihe,a210-vp-reset
+ - zhihe,a210-vi-reset
+ - zhihe,a210-npu-reset
+ - zhihe,a210-vo-reset
+ - zhihe,a210-peri0-reset
+ - zhihe,a210-peri1-reset
+ - zhihe,a210-peri2-reset
+ - zhihe,a210-peri3-reset
+ - zhihe,a210-pcie-reset
+ - zhihe,a210-usb-reset
+ - zhihe,a210-tee-reset
+ - zhihe,a210-gpu-reset
+
+ reg:
+ maxItems: 1
+
+ "#reset-cells":
+ const: 1
+ description:
+ The single cell is the reset ID defined in
+ include/dt-bindings/reset/zhihe,a210-resets.h.
+
+required:
+ - compatible
+ - reg
+ - "#reset-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/reset/zhihe,a210-resets.h>
+
+ reset-controller at 6b20400 {
+ compatible = "zhihe,a210-vp-reset";
+ reg = <0x06b20400 0x200>;
+ #reset-cells = <1>;
+ };
diff --git a/include/dt-bindings/reset/zhihe,a210-resets.h b/include/dt-bindings/reset/zhihe,a210-resets.h
new file mode 100644
index 000000000000..2845c0e9e5ed
--- /dev/null
+++ b/include/dt-bindings/reset/zhihe,a210-resets.h
@@ -0,0 +1,351 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2025 Zhihe Computing Limited.
+ */
+
+#ifndef _DT_BINDINGS_RESET_ZHIHE_A210_RESETS_H
+#define _DT_BINDINGS_RESET_ZHIHE_A210_RESETS_H
+
+#define VP_VDEC_PRST 0
+#define VP_VDEC_CRST 1
+#define VP_VDEC_ARST 2
+#define VP_VENC_PRST 3
+#define VP_VENC_CRST 4
+#define VP_VENC_ARST 5
+#define VP_G2D_PRST 6
+#define VP_G2D_CRST 7
+#define VP_G2D_ARST 8
+#define VP_COMP_PRST 9
+#define VP_COMP_CRST 10
+#define VP_COMP_ARST 11
+#define VP_DECOMP_PRST 12
+#define VP_DECOMP_CRST 13
+#define VP_DECOMP_ARST 14
+#define VP_DFMU_PRST 15
+#define VP_DFMU_ARST 16
+#define VP_ARB_PRST 17
+#define VP_ARB_ARST 18
+#define VP_VDEC_RS_ARST 19
+#define VP_VENC_RS_ARST 20
+#define VP_COMP_EXTPRST 21
+#define VP_DECOMP_EXTPRST 22
+
+#define VI_MIPI0_CSI0_PRST 0
+#define VI_MIPI0_CSI1_PRST 1
+#define VI_MIPI0_FIFO_RST 2
+#define VI_MIPI1_CSI0_PRST 3
+#define VI_MIPI1_CSI1_PRST 4
+#define VI_MIPI1_FIFO_RST 5
+#define VI_VIPRE_PRST 6
+#define VI_VIPRE_I0_PIX_RST 7
+#define VI_VIPRE_I1_PIX_RST 8
+#define VI_VIPRE_ISPIF_RST 9
+#define VI_VIPRE_ARST 10
+#define VI_ISP_RST 11
+#define VI_COMP_PRST 12
+#define VI_COMP_ARST 13
+#define VI_COMP_ISPOUT_RST 14
+#define VI_COMP_DECOUT_RST 15
+#define VI_COMP_VSEOUT_RST 16
+#define VI_COMP0_RST 17
+#define VI_COMP1_RST 18
+#define VI_DECOMP_RST 19
+#define VI_DW200_RST 20
+#define VI_DFMU_PRST 21
+#define VI_DFMU_ARST 22
+#define VI_ARB_PRST 23
+#define VI_ARB_ARST 24
+#define VI_X2H0_HRST 25
+#define VI_X2H1_HRST 26
+#define VI_X2H2_HRST 27
+#define VI_REC_PRST 28
+#define VI_REC_ARST 29
+
+#define NPU_AAB_MST_RST 0
+#define NPU_AFENCE_RST 1
+#define NPU_AXI_CCU_PRST 2
+#define NPU_AXI_CCU_RST 3
+#define NPU_AXI_M2S1_RST 4
+#define NPU_AXI_RST 5
+#define NPU_CLK_CALC_RST 6
+#define NPU_DFMU_ARST 7
+#define NPU_DFMU_PRST 8
+#define NPU_LPC_C_RST 9
+#define NPU_LPE_C_PRST 10
+#define NPU_LPE_C_RST 11
+#define NPU_ARST 12
+#define NPU_CRST 13
+#define NPU_HRST 14
+#define NPU_PCTRL_PB_RST 15
+#define NPU_PCTRL_PRST 16
+#define NPU_PCTRL_RST 17
+#define NPU_PTW_CCU_PRST 18
+#define NPU_PTW_CCU_RST 19
+#define NPU_SEMA_ARST 20
+#define NPU_SEMA_PRST 21
+#define NPU_DROOP_CCTRL_PRST 22
+#define NPU_DROOP_CCTRL_RST 23
+#define NPU_X2H_RST 24
+#define NPU_X2P_RST 25
+#define NPU_LDIP_RST 26
+#define NPU_SRAM_RST 27
+
+#define VO_X2H0_RST 0
+#define VO_X2H1_RST 1
+#define VO_DPU_HRST 2
+#define VO_DPU_CRST 3
+#define VO_DPU_ARST 4
+#define VO_AUXDISP_PRST 5
+#define VO_AUXDISP_PIX_RST 6
+#define VO_AUXDISP_ARST 7
+#define VO_HDMI_PRST 8
+#define VO_HDMI_MAIN_RST 9
+#define VO_MIPI_PRST 10
+#define VO_DECOMP_PRST 11
+#define VO_DECOMP0_CRST 12
+#define VO_DECOMP1_CRST 13
+#define VO_DECOMP_ARST 14
+#define VO_ARB_PRST 15
+#define VO_ARB_ARST 16
+#define VO_DFMU_PRST 17
+#define VO_DFMU_ARST 18
+
+#define PERI0_TIMER0_CRST 0
+#define PERI0_TIMER0_PRST 1
+#define PERI0_TIMER1_CRST 2
+#define PERI0_TIMER1_PRST 3
+#define PERI0_WDT0_PRST 4
+#define PERI0_MBOX0_PRST 5
+#define PERI0_MBOX1_PRST 6
+#define PERI0_TIMER0_RST 7
+#define PERI0_TIMER1_RST 8
+
+#define PERI1_GMAC0_ARST 0
+#define PERI1_GMAC0_HRST 1
+#define PERI1_GMAC1_ARST 2
+#define PERI1_GMAC1_HRST 3
+#define PERI1_GPIO0_DBRST 4
+#define PERI1_GPIO0_PRST 5
+#define PERI1_GPIO1_DBRST 6
+#define PERI1_GPIO1_PRST 7
+#define PERI1_I2C0_IC_RST 8
+#define PERI1_I2C0_PRST 9
+#define PERI1_I2C1_IC_RST 10
+#define PERI1_I2C1_PRST 11
+#define PERI1_I2C2_IC_RST 12
+#define PERI1_I2C2_PRST 13
+#define PERI1_I2S0_PRST 14
+#define PERI1_MST_BUS_ARST 15
+#define PERI1_MST_BUS_PRST 16
+#define PERI1_PWM0_CRST 17
+#define PERI1_PWM0_PRST 18
+#define PERI1_QSPI0_PRST 19
+#define PERI1_QSPI0_SSI_RST 20
+#define PERI1_SPI0_PRST 21
+#define PERI1_SPI0_SSI_RST 22
+#define PERI1_UART0_PRST 23
+#define PERI1_UART0_S_RST 24
+#define PERI1_UART1_PRST 25
+#define PERI1_UART1_S_RST 26
+#define PERI1_UART2_PRST 27
+#define PERI1_UART2_S_RST 28
+#define PERI1_UART3_PRST 29
+#define PERI1_UART3_S_RST 30
+#define PERI1_X2H_GMAC0_ARST 31
+#define PERI1_X2H_GMAC0_HRST 32
+#define PERI1_X2H_GMAC1_ARST 33
+#define PERI1_X2H_GMAC1_HRST 34
+#define PERI1_DFMU_ARESET 35
+#define PERI1_DFMU_PRESET 36
+#define PERI1_PAD_CTRL_PRST 37
+#define PERI1_PDM0_MRST 38
+#define PERI1_PDM0_PRST 39
+#define PERI1_TDM0_RST 40
+#define PERI1_CAN0_IPG_PE_RST 41
+#define PERI1_CAN0_IPG_RST 42
+#define PERI1_CAN0_IPG_SOFT_RST 43
+#define PERI1_CAN0_IPG_TS_RST 44
+#define PERI1_CAN0_PRST 45
+#define PERI1_CAN1_IPG_PE_RST 46
+#define PERI1_CAN1_IPG_RST 47
+#define PERI1_CAN1_IPG_SOFT_RST 48
+#define PERI1_CAN1_IPG_TS_RST 49
+#define PERI1_CAN1_PRST 50
+#define PERI1_CHIP_DBG_ARST 51
+#define PERI1_CHIP_DBG_CRST 52
+#define PERI1_CHIP_DBG_PRST 53
+#define PERI1_GMAC_CRST 54
+#define PERI1_X2H_GMAC2_ARST 55
+#define PERI1_X2H_GMAC2_HRST 56
+#define PERI1_ZGMAC_X2X_ARST 57
+#define PERI1_SPI0_RST 58
+#define PERI1_I2C0_RST 59
+#define PERI1_I2C1_RST 60
+#define PERI1_I2C2_RST 61
+#define PERI1_GMAC0_RST 62
+#define PERI1_GMAC0_X2H_RST 63
+#define PERI1_GMAC1_RST 64
+#define PERI1_GMAC1_X2H_RST 65
+
+#define PERI2_CAN2_IPG_PE_RST 0
+#define PERI2_CAN2_IPG_RST 1
+#define PERI2_CAN2_IPG_SOFT_RST 2
+#define PERI2_CAN2_IPG_TS_RST 3
+#define PERI2_CAN2_PRST 4
+#define PERI2_GPIO2_DBRST 5
+#define PERI2_GPIO2_PRST 6
+#define PERI2_I2C4_IC_RST 7
+#define PERI2_I2C4_PRST 8
+#define PERI2_I2S2_PRST 9
+#define PERI2_SPI1_PRST 10
+#define PERI2_SPI1_SSI_RST 11
+#define PERI2_UART4_PRST 12
+#define PERI2_UART4_S_RST 13
+#define PERI2_UART5_PRST 14
+#define PERI2_UART5_S_RST 15
+#define PERI2_UART6_PRST 16
+#define PERI2_UART6_S_RST 17
+#define PERI2_PAD_CTRL_PRST 18
+#define PERI2_GPIO3_DBRST 19
+#define PERI2_GPIO3_PRST 20
+#define PERI2_I2C3_IC_RST 21
+#define PERI2_I2C3_PRST 22
+#define PERI2_I2C5_IC_RST 23
+#define PERI2_I2C5_PRST 24
+#define PERI2_I2C6_IC_RST 25
+#define PERI2_I2C6_PRST 26
+#define PERI2_I2C7_IC_RST 27
+#define PERI2_I2C7_PRST 28
+#define PERI2_I2S1_PRST 29
+#define PERI2_I2S3_PRST 30
+#define PERI2_UART7_PRST 31
+#define PERI2_UART7_S_RST 32
+#define PERI2_UART8_PRST 33
+#define PERI2_UART8_S_RST 34
+#define PERI2_UART9_PRST 35
+#define PERI2_UART9_S_RST 36
+#define PERI2_QSPI1_PRST 37
+#define PERI2_QSPI1_SSI_RST 38
+#define PERI2_PWM1_CRST 39
+#define PERI2_PWM1_PRST 40
+#define PERI2_PWM2_CRST 41
+#define PERI2_PWM2_PRST 42
+#define PERI2_I2C3_RST 43
+#define PERI2_I2C4_RST 44
+#define PERI2_I2C5_RST 45
+#define PERI2_I2C6_RST 46
+#define PERI2_I2C7_RST 47
+#define PERI2_SPI1_RST 48
+
+#define PERI3_DMAC_ARST 0
+#define PERI3_DMAC_HRST 1
+#define PERI3_EMMC_SDIO_CLKGEN_RST 2
+#define PERI3_EMMC_RST 3
+#define PERI3_EMMC_X2X_ARST_M 4
+#define PERI3_EMMC_X2X_ARST_S 5
+#define PERI3_SDIO_RST 6
+#define PERI3_SDIO_X2X_ARST_M 7
+#define PERI3_SDIO_X2X_ARST_S 8
+#define PERI3_AXI_MST_ARST 9
+#define PERI3_AXI_MST_PRST 10
+#define PERI3_ADC_PRST 11
+#define PERI3_TEE_X2X_ARST_M 12
+#define PERI3_TEE_X2X_ARST_S 13
+#define PERI3_TEE_H2H_HRST 14
+#define PERI3_GPIO4_DBRST 15
+#define PERI3_GPIO4_PRST 16
+#define PERI3_PAD_CTRL_PRST 17
+
+/* pcie common */
+#define PCIE_X2X_PERI_SLV_ARST 0
+#define PCIE_X2X_PERI_MST_ARST 1
+#define PCIE_AXI4_PCIE_MST_ARST 2
+#define PCIE_AXI4_PCIE_MST_PRST 3
+#define PCIE_DFMU_PRST 4
+#define PCIE_DFMU_ARST 5
+#define PCIE_E16PHY_PHY_RST 6
+#define PCIE_E16PHY_APBS_PRST 7
+#define PCIE_X2X_SATA_MST_ARST 8
+#define PCIE_X2X_SATA_SLV_ARST 9
+
+/* sata */
+#define PCIE_SATA_ARESET 10
+#define PCIE_SATA_RST_PMALIVE 11
+#define PCIE_SATA_SLV_AFENCE_ARST 12
+#define PCIE_SATA_MST_AFENCE_ARST 13
+#define PCIE_SATA_RST_ASIC0 14
+#define PCIE_SATA_RST_ASIC1 15
+#define PCIE_SATA_RST_RXOOB0 16
+#define PCIE_SATA_RST_RXOOB1 17
+
+/* pcie0 */
+#define PCIE_DM_GEN3X4_APBS_PRST 18
+#define PCIE_DM_GEN3X4_POWER_UP_RST 19
+#define PCIE_DM_SLV_AFENCE_ARST 20
+#define PCIE_DM_MST_AFENCE_ARST 21
+
+/* pcie1 */
+#define PCIE_RP_GEN3X1_APBS_PRST 22
+#define PCIE_RP_GEN3X1_POWER_UP_RST 23
+#define PCIE_RP_SLV_AFENCE_ARST 24
+#define PCIE_RP_MST_AFENCE_ARST 25
+
+#define USB_DFMU_PRST 0
+#define USB_DFMU_ARST 1
+#define USB_AXI4_MST_ARST 2
+#define USB_AXI4_MST_PRST 3
+#define USB_DPTX_APBS_PRST 4
+#define USB_DPTX_VCC_RST 5
+#define USB_USB31_APBS_PRST 6
+#define USB_USB31_VCC_RST 7
+#define USB_USB31_PHY_RST 8
+#define USB_USB31_SLV_AFENCE_ARST 9
+#define USB_C10PHY_PHY_RST 10
+#define USB_C10PHY_APBS_PRST 11
+#define USB_USB20_BLK_X2H_HRST 12
+#define USB_USB20_BLK_X2H_ARST 13
+#define USB_USB20_SLV_AFENCE_ARST 14
+#define USB_USB20_BLK_H2P_HRST 15
+#define USB_USB20_BLK_AHB_SLV_HRST 16
+#define USB_USB20_BLK_AXI_MST_ARST 17
+#define USB_USB20_BLK_USB2_SYSREG_PRST 18
+#define USB_USB20_BLK_USB2_WRAP0_PRST 19
+#define USB_USB20_BLK_USB2_WRAP0_HRST 20
+#define USB_USB20_BLK_USB2_WRAP1_PRST 21
+#define USB_USB20_BLK_USB2_WRAP1_HRST 22
+#define USB_USB20_BLK_A2X0_HRST 23
+#define USB_USB20_BLK_A2X0_ARST 24
+#define USB_USB20_BLK_A2X1_HRST 25
+#define USB_USB20_BLK_A2X1_ARST 26
+#define USB_USB20_BLK_USB0_PHY_PON_RESET 27
+#define USB_USB20_BLK_USB1_PHY_PON_RESET 28
+#define USB_PERI2_SS_RST 29
+#define USB_PERI2_SLV_AFENCE_ARST 30
+
+#define TEE_KEYRAM_PRST 0
+#define TEE_DS_PRST 1
+#define TEE_EFUSE_PRST 2
+#define TEE_OCRAM_HRST 3
+#define TEE_SYSREG_PRST 4
+#define TEE_CCU_PRST 5
+#define TEE_CCU_CRST 6
+#define TEE_EIP150B_HRST 7
+#define TEE_EIP120SIII_HRST 8
+#define TEE_EIP120SIII_ARST 9
+#define TEE_EIP120SII_HRST 10
+#define TEE_EIP120SII_ARST 11
+#define TEE_EIP120SI_HRST 12
+#define TEE_EIP120SI_ARST 13
+#define TEE_DMAC_HRST 14
+#define TEE_DMAC_ARST 15
+#define TEE_X2P_TEESYS_PRST 16
+#define TEE_X2P_TEESYS_ARST 17
+#define TEE_AXI4_TEESYS_ARST 18
+#define TEE_APB3_TEESYS_PRST 19
+#define TEE_APB3_TEESYS_HRST 20
+#define TEE_AHB2_TEESYS_HRST 21
+
+#define GPU_PWR_WRAP_RGX_HOOD_RST 0
+#define GPU_PWR_WRAP_DFMU_RST 1
+
+#endif
--
2.55.0
More information about the linux-riscv
mailing list