mbox series

[V2,0/3] clk: sprd: Add reset controller driver for ums512

Message ID 20231215114129.11313-1-zhifeng.tang@unisoc.com
Headers show
Series clk: sprd: Add reset controller driver for ums512 | expand

Message

Zhifeng Tang Dec. 15, 2023, 11:41 a.m. UTC
From: "zhifeng.tang" <zhifeng.tang@unisoc.com>

Add reset controller driver for ums512,The reset register has 
the same base address as the gate register.

Changes in v2:
  - The binding files are combined into one patch

zhifeng.tang (3):
  dt-bindings: reset: Add reset controller bindings for Unisoc's ums512
  clk: sprd: Add reset controller driver for ums512
  arm64: dts: sprd: Add reset controller driver for UMS512

 .../bindings/clock/sprd,ums512-clk.yaml       |   3 +
 arch/arm64/boot/dts/sprd/ums512.dtsi          |   9 +
 drivers/clk/sprd/Makefile                     |   1 +
 drivers/clk/sprd/common.c                     |   1 +
 drivers/clk/sprd/common.h                     |   2 +
 drivers/clk/sprd/reset.c                      |  78 ++++++
 drivers/clk/sprd/reset.h                      |  30 +++
 drivers/clk/sprd/ums512-clk.c                 | 240 ++++++++++++++++++
 include/dt-bindings/reset/sprd,ums512-reset.h | 203 +++++++++++++++
 9 files changed, 567 insertions(+)
 create mode 100644 drivers/clk/sprd/reset.c
 create mode 100644 drivers/clk/sprd/reset.h
 create mode 100644 include/dt-bindings/reset/sprd,ums512-reset.h

Comments

Conor Dooley Dec. 16, 2023, 12:40 p.m. UTC | #1
On Fri, Dec 15, 2023 at 07:41:27PM +0800, Zhifeng Tang wrote:
> From: "zhifeng.tang" <zhifeng.tang@unisoc.com>
> 
> Add reset controller bindings to clock bindings for Unisoc's ums512.

I guess I replied to v1 and v2 was sent within the time period I am
capable of clearing my queue. Same comments apply here.

> 
> Signed-off-by: zhifeng.tang <zhifeng.tang@unisoc.com>
> ---
>  .../bindings/clock/sprd,ums512-clk.yaml       |   3 +
>  include/dt-bindings/reset/sprd,ums512-reset.h | 203 ++++++++++++++++++
>  2 files changed, 206 insertions(+)
>  create mode 100644 include/dt-bindings/reset/sprd,ums512-reset.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml b/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> index 43d2b6c31357..6b0892d637fe 100644
> --- a/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> +++ b/Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
> @@ -34,6 +34,9 @@ properties:
>    "#clock-cells":
>      const: 1
>  
> +  "#reset-cells":
> +    const: 1
> +
>    clocks:
>      minItems: 1
>      maxItems: 4
> diff --git a/include/dt-bindings/reset/sprd,ums512-reset.h b/include/dt-bindings/reset/sprd,ums512-reset.h
> new file mode 100644
> index 000000000000..d7ec3dd7c291
> --- /dev/null
> +++ b/include/dt-bindings/reset/sprd,ums512-reset.h
> @@ -0,0 +1,203 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
> +/*
> + * Copyright (C) 2022, Unisoc Inc.
> + */
> +
> +#ifndef __DT_BINDINGS_SPRD_UMS512_RESET_H
> +#define __DT_BINDINGS_SPRD_UMS512_RESET_H
> +
> +/* PMU APB resets */
> +#define RESET_PMU_APB_WTLCP_SOFT_RST			0
> +#define RESET_PMU_APB_PUBCP_SOFT_RST			1
> +#define RESET_PMU_APB_WTLCP_DSP_SOFT_RST		2
> +#define RESET_PMU_APB_MM_SOFT_RST			3
> +#define RESET_PMU_APB_GPU_SOFT_RST			4
> +#define RESET_PMU_APB_AP_SOFT_RST			5
> +#define RESET_PMU_APB_PUB_SOFT_RST			6
> +#define RESET_PMU_APB_APCPU_SOFT_RST			7
> +#define RESET_PMU_APB_SP_SYS_SOFT_RST			8
> +#define RESET_PMU_APB_AUDCP_SYS_SOFT_RST		9
> +#define RESET_PMU_APB_AUDCP_AUDDSP_SOFT_RST		10
> +#define RESET_PMU_APB_CDMA_SOFT_RST			11
> +#define RESET_PMU_APB_WTLCP_AON_SOFT_RST		12
> +#define RESET_PMU_APB_WCDMA_AON_SOFT_RST		13
> +#define RESET_PMU_APB_WTLCP_LDSP_SOFT_RST		14
> +#define RESET_PMU_APB_WTLCP_TGDSP_SOFT_RST		15
> +#define RESET_PMU_APB_AP_VSP_SOFT_RST			16
> +#define RESET_PMU_APB_AP_VDSP_SOFT_RST			17
> +#define RESET_PMU_APB_APCPU_CORE0_MODE_ST_SOFT_RST	18
> +#define RESET_PMU_APB_APCPU_CORE1_MODE_ST_SOFT_RST	19
> +#define RESET_PMU_APB_APCPU_CORE2_MODE_ST_SOFT_RST	20
> +#define RESET_PMU_APB_APCPU_CORE3_MODE_ST_SOFT_RST	21
> +#define RESET_PMU_APB_APCPU_CORE4_MODE_ST_SOFT_RST	22
> +#define RESET_PMU_APB_APCPU_CORE5_MODE_ST_SOFT_RST	23
> +#define RESET_PMU_APB_APCPU_CORE6_MODE_ST_SOFT_RST	24
> +#define RESET_PMU_APB_APCPU_CORE7_MODE_ST_SOFT_RST	25
> +#define RESET_PMU_APB_APCPU_CLUSTER_MODE_ST_SOFT_RST	26
> +
> +/* AP APB resets */
> +#define RESET_AP_APB_SIM0_SOFT_RST		0
> +#define RESET_AP_APB_IIS0_SOFT_RST		1
> +#define RESET_AP_APB_IIS1_SOFT_RST		2
> +#define RESET_AP_APB_IIS2_SOFT_RST		3
> +#define RESET_AP_APB_SPI0_SOFT_RST		4
> +#define RESET_AP_APB_SPI1_SOFT_RST		5
> +#define RESET_AP_APB_SPI2_SOFT_RST		6
> +#define RESET_AP_APB_SPI3_SOFT_RST		7
> +#define RESET_AP_APB_I2C0_SOFT_RST		8
> +#define RESET_AP_APB_I2C1_SOFT_RST		9
> +#define RESET_AP_APB_I2C2_SOFT_RST		10
> +#define RESET_AP_APB_I2C3_SOFT_RST		11
> +#define RESET_AP_APB_I2C4_SOFT_RST		12
> +#define RESET_AP_APB_UART0_SOFT_RST		13
> +#define RESET_AP_APB_UART1_SOFT_RST		14
> +#define RESET_AP_APB_UART2_SOFT_RST		15
> +#define RESET_AP_APB_SDIO0_SOFT_RST		16
> +#define RESET_AP_APB_SDIO1_SOFT_RST		17
> +#define RESET_AP_APB_SDIO2_SOFT_RST		18
> +#define RESET_AP_APB_EMMC_SOFT_RST		19
> +#define RESET_AP_APB_CE_SEC_SOFT_RST		20
> +#define RESET_AP_APB_CE_PUB_SOFT_RST		21
> +#define RESET_AP_APB_AP_DVFS_SOFT_RST		22
> +
> +/* AP AHB resets */
> +#define RESET_AP_AHB_DSI_SOFT_RST		0
> +#define RESET_AP_AHB_DISPC_SOFT_RST		1
> +#define RESET_AP_AHB_VDSP_IDMA_VAU_SOFT_RST	2
> +#define RESET_AP_AHB_VDSP_MSTD_VAU_SOFT_RST	3
> +#define RESET_AP_AHB_VDSP_MSTI_VAU_SOFT_RST	4
> +#define RESET_AP_AHB_VDMA_VAU_SOFT_RST		5
> +#define RESET_AP_AHB_IPI_SOFT_RST		6
> +#define RESET_AP_AHB_VDMA_SOFT_RST		7
> +#define RESET_AP_AHB_DMA_SOFT_RST		8
> +#define RESET_AP_AHB_VDSP_SOFT_RST		9
> +#define RESET_AP_AHB_VDSP_DEBUG_SOFT_RST	10
> +#define RESET_AP_AHB_VSP_GLOBAL_SOFT_RST	11
> +#define RESET_AP_AHB_VPP_SOFT_RST		12
> +#define RESET_AP_AHB_VSP_SOFT_RST		13
> +#define RESET_AP_AHB_DISPC_VAU_SOFT_RST		14
> +
> +/* AON APB resets */
> +#define RESET_AON_APB_RC100M_CAL_SOFT_RST		0
> +#define RESET_AON_APB_RFTI_SOFT_RST			1
> +#define RESET_AON_APB_DCXO_LC_SOFT_RST			2
> +#define RESET_AON_APB_BB_CAL_SOFT_RST			3
> +#define RESET_AON_APB_MSPI0_SOFT_RST			4
> +#define RESET_AON_APB_MSPI1_SOFT_RST			5
> +#define RESET_AON_APB_DAP_MTX_SOFT_RST			6
> +#define RESET_AON_APB_LVDSDIS_SOFT_RST			7
> +#define RESET_AON_APB_SERDES_DPHY_SOFT_RST		8
> +#define RESET_AON_APB_SERDES_DPHY_APB_SOFT_RST		9
> +#define RESET_AON_APB_AP_EMMC_SOFT_RST			10
> +#define RESET_AON_APB_AP_SDIO0_SOFT_RST			11
> +#define RESET_AON_APB_AP_SDIO1_SOFT_RST			12
> +#define RESET_AON_APB_AP_SDIO2_SOFT_RST			13
> +#define RESET_AON_APB_PUBCP_SDIO0_SOFT_RST		14
> +#define RESET_AON_APB_EFUSE_SOFT_RST			15
> +#define RESET_AON_APB_GPIO_SOFT_RST			16
> +#define RESET_AON_APB_MBOX_SOFT_RST			17
> +#define RESET_AON_APB_KPD_SOFT_RST			18
> +#define RESET_AON_APB_AON_SYST_SOFT_RST			19
> +#define RESET_AON_APB_AP_SYST_SOFT_RST			20
> +#define RESET_AON_APB_AON_TMR_SOFT_RST			21
> +#define RESET_AON_APB_DVFS_TOP_SOFT_RST			22
> +#define RESET_AON_APB_OTG_UTMI_SOFT_RST			23
> +#define RESET_AON_APB_OTG_PHY_SOFT_RST			24
> +#define RESET_AON_APB_SPLK_SOFT_RST			25
> +#define RESET_AON_APB_PIN_SOFT_RST			26
> +#define RESET_AON_APB_ANA_SOFT_RST			27
> +#define RESET_AON_APB_CKG_SOFT_RST			28
> +#define RESET_AON_APB_ETC_SOFT_RST			29
> +#define RESET_AON_APB_APCPU_TS0_SOFT_RST		30
> +#define RESET_AON_APB_APB_BUSMON_SOFT_RST		31
> +#define RESET_AON_APB_AON_IIS_SOFT_RST			32
> +#define RESET_AON_APB_SCC_SOFT_RST			33
> +#define RESET_AON_APB_THM0_SOFT_RST			34
> +#define RESET_AON_APB_THM1_SOFT_RST			35
> +#define RESET_AON_APB_THM2_SOFT_RST			36
> +#define RESET_AON_APB_AP_SIM_AON_TOP_SOFT_RST		37
> +#define RESET_AON_APB_PUBCP_SIM0_AON_TOP_SOFT_RST	38
> +#define RESET_AON_APB_PUBCP_SIM1_AON_TOP_SOFT_RST	39
> +#define RESET_AON_APB_PUBCP_SIM2_AON_TOP_SOFT_RST	40
> +#define RESET_AON_APB_I2C_SOFT_RST			41
> +#define RESET_AON_APB_PMU_SOFT_RST			42
> +#define RESET_AON_APB_ADI_SOFT_RST			43
> +#define RESET_AON_APB_EIC_SOFT_RST			44
> +#define RESET_AON_APB_AP_INTC0_SOFT_RST			45
> +#define RESET_AON_APB_AP_INTC1_SOFT_RST			46
> +#define RESET_AON_APB_AP_INTC2_SOFT_RST			47
> +#define RESET_AON_APB_AP_INTC3_SOFT_RST			48
> +#define RESET_AON_APB_AP_INTC4_SOFT_RST			49
> +#define RESET_AON_APB_AP_INTC5_SOFT_RST			50
> +#define RESET_AON_APB_AUDCP_INTC_SOFT_RST		51
> +#define RESET_AON_APB_PUBCP_INTC_SOFT_RST		52
> +#define RESET_AON_APB_WTLCP_TGDSP_INTC_SOFT_RST		53
> +#define RESET_AON_APB_WTLCP_LDSP_INTC_SOFT_RST		54
> +#define RESET_AON_APB_WTLCP_INTC_SOFT_RST		55
> +#define RESET_AON_APB_AP_TMR0_SOFT_RST			56
> +#define RESET_AON_APB_AP_TMR1_SOFT_RST			57
> +#define RESET_AON_APB_AP_TMR2_SOFT_RST			58
> +#define RESET_AON_APB_PWM0_SOFT_RST			59
> +#define RESET_AON_APB_PWM1_SOFT_RST			60
> +#define RESET_AON_APB_PWM2_SOFT_RST			61
> +#define RESET_AON_APB_PWM3_SOFT_RST			62
> +#define RESET_AON_APB_AP_WDG_SOFT_RST			63
> +#define RESET_AON_APB_APCPU_WDG_SOFT_RST		64
> +#define  RESET_AON_APB_SERDES_SOFT_RST			65
> +#define RESET_AON_APB_DJTAG_SOFT_RST			66
> +
> +/* AUDCP APB  resets */
> +#define RESET_AUDCP_APB_WDG_SOFT_RST		0
> +#define RESET_AUDCP_APB_TMR0_SOFT_RST		1
> +#define RESET_AUDCP_APB_TMR1_SOFT_RST		2
> +
> +/* AUDCP AHB resets */
> +#define RESET_AUDCP_AHB_VBC_24M_SOFT_RST	0
> +#define RESET_AUDCP_AHB_DMA_AP_SOFT_RST		1
> +#define RESET_AUDCP_AHB_SRC48K_SOFT_RST		2
> +#define RESET_AUDCP_AHB_MCDT_SOFT_RST		3
> +#define RESET_AUDCP_AHB_VBCIFD_SOFT_RST		4
> +#define RESET_AUDCP_AHB_VBC_SOFT_RST		5
> +#define RESET_AUDCP_AHB_SPINLOCK_SOFT_RST	6
> +#define RESET_AUDCP_AHB_DMA_CP_SOFT_RST		7
> +#define RESET_AUDCP_AHB_IIS0_SOFT_RST		8
> +#define RESET_AUDCP_AHB_IIS1_SOFT_RST		9
> +#define RESET_AUDCP_AHB_IIS2_SOFT_RST		10
> +#define RESET_AUDCP_AHB_UART_SOFT_RST		11
> +#define RESET_AUDCP_AHB_AUD_SOFT_RST		12
> +#define RESET_AUDCP_AHB_DVFS_SOFT_RST		13
> +
> +/* GPU APB resets */
> +#define RESET_GPU_APB_GPU_CORE_SOFT_RST		0
> +#define RESET_GPU_APB_SYS_SOFT_RST_REQ_CORE	1
> +
> +/* MM AHB resets */
> +#define RESET_MM_AHB_CKG_SOFT_RST		0
> +#define RESET_MM_AHB_JPG_SOFT_RST		1
> +#define RESET_MM_AHB_DCAM_AXI_SOFT_RST		2
> +#define RESET_MM_AHB_DCAM2_SOFT_RST		3
> +#define RESET_MM_AHB_DCAM1_SOFT_RST		4
> +#define RESET_MM_AHB_DCAM0_SOFT_RST		5
> +#define RESET_MM_AHB_DCAM_VAU_SOFT_RST		6
> +#define RESET_MM_AHB_MIPI_CSI2_SOFT_RST		7
> +#define RESET_MM_AHB_MIPI_CSI1_SOFT_RST		8
> +#define RESET_MM_AHB_MIPI_CSI0_SOFT_RST		9
> +#define RESET_MM_AHB_ISP_SOFT_RST		10
> +#define RESET_MM_AHB_ISP_VAU_SOFT_RST		11
> +#define RESET_MM_AHB_ISP_AHB_SOFT_RST		12
> +#define RESET_MM_AHB_CPP_DMA_SOFT_RST		13
> +#define RESET_MM_AHB_CPP_PATH1_SOFT_RST		14
> +#define RESET_MM_AHB_CPP_PATH0_SOFT_RST		15
> +#define RESET_MM_AHB_CPP_SOFT_RST		16
> +#define RESET_MM_AHB_MM_MAIN_SOFT_RST		17
> +#define RESET_MM_AHB_CPP_SOFT_RST_MASK		18
> +#define RESET_MM_AHB_JPG_SOFT_RST_MASK		19
> +#define RESET_MM_AHB_JPG_VAU_SOFT_RST		20
> +#define RESET_MM_AHB_CPP_VAU_SOFT_RST		21
> +#define RESET_MM_AHB_FD_VAU_SOFT_RST		22
> +#define RESET_MM_AHB_DCAM_ALL_SOFT_RST		23
> +#define RESET_MM_AHB_DVFS_SOFT_RST		24
> +#define RESET_MM_AHB_FD_SOFT_RST		25
> +#define RESET_MM_AHB_FD_SOFT_RST_MASK		26
> +
> +#endif /* __DT_BINDINGS_SPRD_UMS512_RESET_H */
> -- 
> 2.17.1
> 
>