linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] clk: samsung: exynos990: CMU_TOP fixes (mux regs, widths, factors)
@ 2025-08-20 14:57 Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 1/3] clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors Denzeel Oliva
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Denzeel Oliva @ 2025-08-20 14:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley
  Cc: linux-samsung-soc, linux-clk, linux-arm-kernel, linux-kernel,
	devicetree, Denzeel Oliva

Hi,

Two small fixes for Exynos990 CMU_TOP:

Correct PLL mux register selection (use PLL_CON0), add DPU_BUS and
CMUREF mux/div, and update clock IDs.
Fix mux/div bit widths and replace a few bogus divs with fixed-factor
clocks (HSI1/2 PCIe, USBDP debug); also fix OTP rate.

Changes in v2:

- In the first commit the divratio of 
  PLL_SHARED0_DIV3 should not be changed.

Please review.

Denzeel Oliva

---
Denzeel Oliva (3):
      clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors
      dt-bindings: clock: exynos990: Reorder IDs clocks and extend
      clk: samsung: exynos990: Fix PLL mux regs, add DPU/CMUREF

 drivers/clk/samsung/clk-exynos990.c           | 154 +++++++++++++++----------
 include/dt-bindings/clock/samsung,exynos990.h | 402 ++++++++++++++++++++++++++++++++--------------------------------
 2 files changed, 297 insertions(+), 259 deletions(-)
---
base-commit: 886e5e7b0432360842303d587bb4a65d10741ae8
change-id: 20250819-2-ab6c8bdf07d7

Best regards,
-- 
Denzeel Oliva <wachiturroxd150@gmail.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/3] clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors
  2025-08-20 14:57 [PATCH v2 0/3] clk: samsung: exynos990: CMU_TOP fixes (mux regs, widths, factors) Denzeel Oliva
@ 2025-08-20 14:57 ` Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 3/3] clk: samsung: exynos990: Fix PLL mux regs, add DPU/CMUREF Denzeel Oliva
  2 siblings, 0 replies; 7+ messages in thread
From: Denzeel Oliva @ 2025-08-20 14:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley
  Cc: linux-samsung-soc, linux-clk, linux-arm-kernel, linux-kernel,
	devicetree, Denzeel Oliva

Correct mux/div bit widths in CMU TOP (DPU, DSP_BUS, G2D_MSCL,
HSI0/1/2). Replace wrong divs with fixed-factor clocks for
HSI1/2 PCIe and USBDP debug. Also fix OTP rate. These align
with Exynos990 downstream cmucal and ensure correct parent/rate
selection.

Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>
---
 drivers/clk/samsung/clk-exynos990.c | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/drivers/clk/samsung/clk-exynos990.c b/drivers/clk/samsung/clk-exynos990.c
index 8d3f193d2b4d4c2146d9b8b57d76605b88dc9bbb..a55991ebb77bcb2988071fc156dbe5c9b100215f 100644
--- a/drivers/clk/samsung/clk-exynos990.c
+++ b/drivers/clk/samsung/clk-exynos990.c
@@ -759,11 +759,11 @@ static const struct samsung_mux_clock top_mux_clks[] __initconst = {
 	MUX(CLK_MOUT_CMU_DPU_ALT, "mout_cmu_dpu_alt",
 	    mout_cmu_dpu_alt_p, CLK_CON_MUX_MUX_CLKCMU_DPU_ALT, 0, 2),
 	MUX(CLK_MOUT_CMU_DSP_BUS, "mout_cmu_dsp_bus",
-	    mout_cmu_dsp_bus_p, CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 0, 2),
+	    mout_cmu_dsp_bus_p, CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 0, 3),
 	MUX(CLK_MOUT_CMU_G2D_G2D, "mout_cmu_g2d_g2d",
 	    mout_cmu_g2d_g2d_p, CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 0, 2),
 	MUX(CLK_MOUT_CMU_G2D_MSCL, "mout_cmu_g2d_mscl",
-	    mout_cmu_g2d_mscl_p, CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 1),
+	    mout_cmu_g2d_mscl_p, CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 2),
 	MUX(CLK_MOUT_CMU_HPM, "mout_cmu_hpm",
 	    mout_cmu_hpm_p, CLK_CON_MUX_MUX_CLKCMU_HPM, 0, 2),
 	MUX(CLK_MOUT_CMU_HSI0_BUS, "mout_cmu_hsi0_bus",
@@ -775,7 +775,7 @@ static const struct samsung_mux_clock top_mux_clks[] __initconst = {
 	    0, 2),
 	MUX(CLK_MOUT_CMU_HSI0_USBDP_DEBUG, "mout_cmu_hsi0_usbdp_debug",
 	    mout_cmu_hsi0_usbdp_debug_p,
-	    CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 0, 2),
+	    CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 0, 1),
 	MUX(CLK_MOUT_CMU_HSI1_BUS, "mout_cmu_hsi1_bus",
 	    mout_cmu_hsi1_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 0, 3),
 	MUX(CLK_MOUT_CMU_HSI1_MMC_CARD, "mout_cmu_hsi1_mmc_card",
@@ -788,7 +788,7 @@ static const struct samsung_mux_clock top_mux_clks[] __initconst = {
 	    0, 2),
 	MUX(CLK_MOUT_CMU_HSI1_UFS_EMBD, "mout_cmu_hsi1_ufs_embd",
 	    mout_cmu_hsi1_ufs_embd_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD,
-	    0, 1),
+	    0, 2),
 	MUX(CLK_MOUT_CMU_HSI2_BUS, "mout_cmu_hsi2_bus",
 	    mout_cmu_hsi2_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 0, 1),
 	MUX(CLK_MOUT_CMU_HSI2_PCIE, "mout_cmu_hsi2_pcie",
@@ -862,7 +862,7 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1),
 
 	DIV(CLK_DOUT_CMU_APM_BUS, "dout_cmu_apm_bus", "gout_cmu_apm_bus",
-	    CLK_CON_DIV_CLKCMU_APM_BUS, 0, 3),
+	    CLK_CON_DIV_CLKCMU_APM_BUS, 0, 2),
 	DIV(CLK_DOUT_CMU_AUD_CPU, "dout_cmu_aud_cpu", "gout_cmu_aud_cpu",
 	    CLK_CON_DIV_CLKCMU_AUD_CPU, 0, 3),
 	DIV(CLK_DOUT_CMU_BUS0_BUS, "dout_cmu_bus0_bus", "gout_cmu_bus0_bus",
@@ -889,7 +889,7 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4),
 	DIV(CLK_DOUT_CMU_CPUCL0_DBG_BUS, "dout_cmu_cpucl0_debug",
 	    "gout_cmu_cpucl0_dbg_bus", CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS,
-	    0, 3),
+	    0, 4),
 	DIV(CLK_DOUT_CMU_CPUCL0_SWITCH, "dout_cmu_cpucl0_switch",
 	    "gout_cmu_cpucl0_switch", CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 0, 3),
 	DIV(CLK_DOUT_CMU_CPUCL1_SWITCH, "dout_cmu_cpucl1_switch",
@@ -924,16 +924,11 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 0, 3),
 	DIV(CLK_DOUT_CMU_HSI0_USB31DRD, "dout_cmu_hsi0_usb31drd",
 	    "gout_cmu_hsi0_usb31drd", CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 0, 4),
-	DIV(CLK_DOUT_CMU_HSI0_USBDP_DEBUG, "dout_cmu_hsi0_usbdp_debug",
-	    "gout_cmu_hsi0_usbdp_debug", CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG,
-	    0, 4),
 	DIV(CLK_DOUT_CMU_HSI1_BUS, "dout_cmu_hsi1_bus", "gout_cmu_hsi1_bus",
 	    CLK_CON_DIV_CLKCMU_HSI1_BUS, 0, 3),
 	DIV(CLK_DOUT_CMU_HSI1_MMC_CARD, "dout_cmu_hsi1_mmc_card",
 	    "gout_cmu_hsi1_mmc_card", CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD,
 	    0, 9),
-	DIV(CLK_DOUT_CMU_HSI1_PCIE, "dout_cmu_hsi1_pcie", "gout_cmu_hsi1_pcie",
-	    CLK_CON_DIV_CLKCMU_HSI1_PCIE, 0, 7),
 	DIV(CLK_DOUT_CMU_HSI1_UFS_CARD, "dout_cmu_hsi1_ufs_card",
 	    "gout_cmu_hsi1_ufs_card", CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD,
 	    0, 3),
@@ -942,8 +937,6 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    0, 3),
 	DIV(CLK_DOUT_CMU_HSI2_BUS, "dout_cmu_hsi2_bus", "gout_cmu_hsi2_bus",
 	    CLK_CON_DIV_CLKCMU_HSI2_BUS, 0, 4),
-	DIV(CLK_DOUT_CMU_HSI2_PCIE, "dout_cmu_hsi2_pcie", "gout_cmu_hsi2_pcie",
-	    CLK_CON_DIV_CLKCMU_HSI2_PCIE, 0, 7),
 	DIV(CLK_DOUT_CMU_IPP_BUS, "dout_cmu_ipp_bus", "gout_cmu_ipp_bus",
 	    CLK_CON_DIV_CLKCMU_IPP_BUS, 0, 4),
 	DIV(CLK_DOUT_CMU_ITP_BUS, "dout_cmu_itp_bus", "gout_cmu_itp_bus",
@@ -980,7 +973,17 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	DIV(CLK_DOUT_CMU_VRA_BUS, "dout_cmu_vra_bus", "gout_cmu_vra_bus",
 	    CLK_CON_DIV_CLKCMU_VRA_BUS, 0, 4),
 	DIV(CLK_DOUT_CMU_DPU, "dout_cmu_clkcmu_dpu", "gout_cmu_dpu",
-	    CLK_CON_DIV_DIV_CLKCMU_DPU, 0, 4),
+	    CLK_CON_DIV_DIV_CLKCMU_DPU, 0, 3),
+};
+
+static const struct samsung_fixed_factor_clock cmu_top_ffactor[] __initconst = {
+	FFACTOR(CLK_DOUT_CMU_HSI1_PCIE, "dout_cmu_hsi1_pcie",
+		"gout_cmu_hsi1_pcie", 1, 8, 0),
+	FFACTOR(CLK_DOUT_CMU_OTP, "dout_cmu_otp", "oscclk", 1, 8, 0),
+	FFACTOR(CLK_DOUT_CMU_HSI0_USBDP_DEBUG, "dout_cmu_hsi0_usbdp_debug",
+		"gout_cmu_hsi0_usbdp_debug", 1, 8, 0),
+	FFACTOR(CLK_DOUT_CMU_HSI2_PCIE, "dout_cmu_hsi2_pcie",
+		"gout_cmu_hsi2_pcie", 1, 8, 0),
 };
 
 static const struct samsung_gate_clock top_gate_clks[] __initconst = {
@@ -1126,6 +1129,8 @@ static const struct samsung_cmu_info top_cmu_info __initconst = {
 	.nr_mux_clks = ARRAY_SIZE(top_mux_clks),
 	.div_clks = top_div_clks,
 	.nr_div_clks = ARRAY_SIZE(top_div_clks),
+	.fixed_factor_clks = cmu_top_ffactor,
+	.nr_fixed_factor_clks = ARRAY_SIZE(cmu_top_ffactor),
 	.gate_clks = top_gate_clks,
 	.nr_gate_clks = ARRAY_SIZE(top_gate_clks),
 	.nr_clk_ids = CLKS_NR_TOP,

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend
  2025-08-20 14:57 [PATCH v2 0/3] clk: samsung: exynos990: CMU_TOP fixes (mux regs, widths, factors) Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 1/3] clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors Denzeel Oliva
@ 2025-08-20 14:57 ` Denzeel Oliva
  2025-08-20 19:29   ` Conor Dooley
  2025-08-20 14:57 ` [PATCH v2 3/3] clk: samsung: exynos990: Fix PLL mux regs, add DPU/CMUREF Denzeel Oliva
  2 siblings, 1 reply; 7+ messages in thread
From: Denzeel Oliva @ 2025-08-20 14:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley
  Cc: linux-samsung-soc, linux-clk, linux-arm-kernel, linux-kernel,
	devicetree, Denzeel Oliva

Reorganize CMU_TOP clock definitions
and add missing clock definitions for DPU and CMUREF.

Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>
---
 include/dt-bindings/clock/samsung,exynos990.h | 402 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 203 insertions(+), 199 deletions(-)

diff --git a/include/dt-bindings/clock/samsung,exynos990.h b/include/dt-bindings/clock/samsung,exynos990.h
index 6b9df09d2822f1c8e5086a2fc0bda783ca224812..b384e271bf276a375f67659fc84e53350ea73c0e 100644
--- a/include/dt-bindings/clock/samsung,exynos990.h
+++ b/include/dt-bindings/clock/samsung,exynos990.h
@@ -9,205 +9,209 @@
 #define _DT_BINDINGS_CLOCK_EXYNOS_990_H
 
 /* CMU_TOP */
-#define CLK_FOUT_SHARED0_PLL		1
-#define CLK_FOUT_SHARED1_PLL		2
-#define CLK_FOUT_SHARED2_PLL		3
-#define CLK_FOUT_SHARED3_PLL		4
-#define CLK_FOUT_SHARED4_PLL		5
-#define CLK_FOUT_G3D_PLL		6
-#define CLK_FOUT_MMC_PLL		7
-#define CLK_MOUT_PLL_SHARED0		8
-#define CLK_MOUT_PLL_SHARED1		9
-#define CLK_MOUT_PLL_SHARED2		10
-#define CLK_MOUT_PLL_SHARED3		11
-#define CLK_MOUT_PLL_SHARED4		12
-#define CLK_MOUT_PLL_MMC		13
-#define CLK_MOUT_PLL_G3D		14
-#define CLK_MOUT_CMU_APM_BUS		15
-#define CLK_MOUT_CMU_AUD_CPU		16
-#define CLK_MOUT_CMU_BUS0_BUS		17
-#define CLK_MOUT_CMU_BUS1_BUS		18
-#define CLK_MOUT_CMU_BUS1_SSS		19
-#define CLK_MOUT_CMU_CIS_CLK0		20
-#define CLK_MOUT_CMU_CIS_CLK1		21
-#define CLK_MOUT_CMU_CIS_CLK2		22
-#define CLK_MOUT_CMU_CIS_CLK3		23
-#define CLK_MOUT_CMU_CIS_CLK4		24
-#define CLK_MOUT_CMU_CIS_CLK5		25
-#define CLK_MOUT_CMU_CMU_BOOST		26
-#define CLK_MOUT_CMU_CORE_BUS		27
-#define CLK_MOUT_CMU_CPUCL0_DBG_BUS	28
-#define CLK_MOUT_CMU_CPUCL0_SWITCH	29
-#define CLK_MOUT_CMU_CPUCL1_SWITCH	30
-#define CLK_MOUT_CMU_CPUCL2_BUSP	31
-#define CLK_MOUT_CMU_CPUCL2_SWITCH	32
-#define CLK_MOUT_CMU_CSIS_BUS		33
-#define CLK_MOUT_CMU_CSIS_OIS_MCU	34
-#define CLK_MOUT_CMU_DNC_BUS		35
-#define CLK_MOUT_CMU_DNC_BUSM		36
-#define CLK_MOUT_CMU_DNS_BUS		37
-#define CLK_MOUT_CMU_DPU		38
-#define CLK_MOUT_CMU_DPU_ALT		39
-#define CLK_MOUT_CMU_DSP_BUS		40
-#define CLK_MOUT_CMU_G2D_G2D		41
-#define CLK_MOUT_CMU_G2D_MSCL		42
-#define CLK_MOUT_CMU_HPM		43
-#define CLK_MOUT_CMU_HSI0_BUS		44
-#define CLK_MOUT_CMU_HSI0_DPGTC		45
-#define CLK_MOUT_CMU_HSI0_USB31DRD	46
-#define CLK_MOUT_CMU_HSI0_USBDP_DEBUG	47
-#define CLK_MOUT_CMU_HSI1_BUS		48
-#define CLK_MOUT_CMU_HSI1_MMC_CARD	49
-#define CLK_MOUT_CMU_HSI1_PCIE		50
-#define CLK_MOUT_CMU_HSI1_UFS_CARD	51
-#define CLK_MOUT_CMU_HSI1_UFS_EMBD	52
-#define CLK_MOUT_CMU_HSI2_BUS		53
-#define CLK_MOUT_CMU_HSI2_PCIE		54
-#define CLK_MOUT_CMU_IPP_BUS		55
-#define CLK_MOUT_CMU_ITP_BUS		56
-#define CLK_MOUT_CMU_MCSC_BUS		57
-#define CLK_MOUT_CMU_MCSC_GDC		58
-#define CLK_MOUT_CMU_CMU_BOOST_CPU	59
-#define CLK_MOUT_CMU_MFC0_MFC0		60
-#define CLK_MOUT_CMU_MFC0_WFD		61
-#define CLK_MOUT_CMU_MIF_BUSP		62
-#define CLK_MOUT_CMU_MIF_SWITCH		63
-#define CLK_MOUT_CMU_NPU_BUS		64
-#define CLK_MOUT_CMU_PERIC0_BUS		65
-#define CLK_MOUT_CMU_PERIC0_IP		66
-#define CLK_MOUT_CMU_PERIC1_BUS		67
-#define CLK_MOUT_CMU_PERIC1_IP		68
-#define CLK_MOUT_CMU_PERIS_BUS		69
-#define CLK_MOUT_CMU_SSP_BUS		70
-#define CLK_MOUT_CMU_TNR_BUS		71
-#define CLK_MOUT_CMU_VRA_BUS		72
-#define CLK_DOUT_CMU_APM_BUS		73
-#define CLK_DOUT_CMU_AUD_CPU		74
-#define CLK_DOUT_CMU_BUS0_BUS		75
-#define CLK_DOUT_CMU_BUS1_BUS		76
-#define CLK_DOUT_CMU_BUS1_SSS		77
-#define CLK_DOUT_CMU_CIS_CLK0		78
-#define CLK_DOUT_CMU_CIS_CLK1		79
-#define CLK_DOUT_CMU_CIS_CLK2		80
-#define CLK_DOUT_CMU_CIS_CLK3		81
-#define CLK_DOUT_CMU_CIS_CLK4		82
-#define CLK_DOUT_CMU_CIS_CLK5		83
-#define CLK_DOUT_CMU_CMU_BOOST		84
-#define CLK_DOUT_CMU_CORE_BUS		85
-#define CLK_DOUT_CMU_CPUCL0_DBG_BUS	86
-#define CLK_DOUT_CMU_CPUCL0_SWITCH	87
-#define CLK_DOUT_CMU_CPUCL1_SWITCH	88
-#define CLK_DOUT_CMU_CPUCL2_BUSP	89
-#define CLK_DOUT_CMU_CPUCL2_SWITCH	90
-#define CLK_DOUT_CMU_CSIS_BUS		91
-#define CLK_DOUT_CMU_CSIS_OIS_MCU	92
-#define CLK_DOUT_CMU_DNC_BUS		93
-#define CLK_DOUT_CMU_DNC_BUSM		94
-#define CLK_DOUT_CMU_DNS_BUS		95
-#define CLK_DOUT_CMU_DSP_BUS		96
-#define CLK_DOUT_CMU_G2D_G2D		97
-#define CLK_DOUT_CMU_G2D_MSCL		98
-#define CLK_DOUT_CMU_G3D_SWITCH		99
-#define CLK_DOUT_CMU_HPM		100
-#define CLK_DOUT_CMU_HSI0_BUS		101
-#define CLK_DOUT_CMU_HSI0_DPGTC		102
-#define CLK_DOUT_CMU_HSI0_USB31DRD	103
-#define CLK_DOUT_CMU_HSI0_USBDP_DEBUG	104
-#define CLK_DOUT_CMU_HSI1_BUS		105
-#define CLK_DOUT_CMU_HSI1_MMC_CARD	106
-#define CLK_DOUT_CMU_HSI1_PCIE		107
-#define CLK_DOUT_CMU_HSI1_UFS_CARD	108
-#define CLK_DOUT_CMU_HSI1_UFS_EMBD	109
-#define CLK_DOUT_CMU_HSI2_BUS		110
-#define CLK_DOUT_CMU_HSI2_PCIE		111
-#define CLK_DOUT_CMU_IPP_BUS		112
-#define CLK_DOUT_CMU_ITP_BUS		113
-#define CLK_DOUT_CMU_MCSC_BUS		114
-#define CLK_DOUT_CMU_MCSC_GDC		115
-#define CLK_DOUT_CMU_CMU_BOOST_CPU	116
-#define CLK_DOUT_CMU_MFC0_MFC0		117
-#define CLK_DOUT_CMU_MFC0_WFD		118
-#define CLK_DOUT_CMU_MIF_BUSP		119
-#define CLK_DOUT_CMU_NPU_BUS		120
-#define CLK_DOUT_CMU_OTP		121
-#define CLK_DOUT_CMU_PERIC0_BUS		122
-#define CLK_DOUT_CMU_PERIC0_IP		123
-#define CLK_DOUT_CMU_PERIC1_BUS		124
-#define CLK_DOUT_CMU_PERIC1_IP		125
-#define CLK_DOUT_CMU_PERIS_BUS		126
-#define CLK_DOUT_CMU_SSP_BUS		127
-#define CLK_DOUT_CMU_TNR_BUS		128
-#define CLK_DOUT_CMU_VRA_BUS		129
-#define CLK_DOUT_CMU_DPU		130
-#define CLK_DOUT_CMU_DPU_ALT		131
-#define CLK_DOUT_CMU_SHARED0_DIV2	132
-#define CLK_DOUT_CMU_SHARED0_DIV3	133
-#define CLK_DOUT_CMU_SHARED0_DIV4	134
-#define CLK_DOUT_CMU_SHARED1_DIV2	135
-#define CLK_DOUT_CMU_SHARED1_DIV3	136
-#define CLK_DOUT_CMU_SHARED1_DIV4	137
-#define CLK_DOUT_CMU_SHARED2_DIV2	138
-#define CLK_DOUT_CMU_SHARED4_DIV2	139
-#define CLK_DOUT_CMU_SHARED4_DIV3	140
-#define CLK_DOUT_CMU_SHARED4_DIV4	141
-#define CLK_GOUT_CMU_G3D_BUS		142
-#define CLK_GOUT_CMU_MIF_SWITCH		143
-#define CLK_GOUT_CMU_APM_BUS		144
-#define CLK_GOUT_CMU_AUD_CPU		145
-#define CLK_GOUT_CMU_BUS0_BUS		146
-#define CLK_GOUT_CMU_BUS1_BUS		147
-#define CLK_GOUT_CMU_BUS1_SSS		148
-#define CLK_GOUT_CMU_CIS_CLK0		149
-#define CLK_GOUT_CMU_CIS_CLK1		150
-#define CLK_GOUT_CMU_CIS_CLK2		151
-#define CLK_GOUT_CMU_CIS_CLK3		152
-#define CLK_GOUT_CMU_CIS_CLK4		153
-#define CLK_GOUT_CMU_CIS_CLK5		154
-#define CLK_GOUT_CMU_CORE_BUS		155
-#define CLK_GOUT_CMU_CPUCL0_DBG_BUS	156
-#define CLK_GOUT_CMU_CPUCL0_SWITCH	157
-#define CLK_GOUT_CMU_CPUCL1_SWITCH	158
-#define CLK_GOUT_CMU_CPUCL2_BUSP	159
-#define CLK_GOUT_CMU_CPUCL2_SWITCH	160
-#define CLK_GOUT_CMU_CSIS_BUS		161
-#define CLK_GOUT_CMU_CSIS_OIS_MCU	162
-#define CLK_GOUT_CMU_DNC_BUS		163
-#define CLK_GOUT_CMU_DNC_BUSM		164
-#define CLK_GOUT_CMU_DNS_BUS		165
-#define CLK_GOUT_CMU_DPU		166
-#define CLK_GOUT_CMU_DPU_BUS		167
-#define CLK_GOUT_CMU_DSP_BUS		168
-#define CLK_GOUT_CMU_G2D_G2D		169
-#define CLK_GOUT_CMU_G2D_MSCL		170
-#define CLK_GOUT_CMU_G3D_SWITCH		171
-#define CLK_GOUT_CMU_HPM		172
-#define CLK_GOUT_CMU_HSI0_BUS		173
-#define CLK_GOUT_CMU_HSI0_DPGTC		174
-#define CLK_GOUT_CMU_HSI0_USB31DRD	175
-#define CLK_GOUT_CMU_HSI0_USBDP_DEBUG	176
-#define CLK_GOUT_CMU_HSI1_BUS		177
-#define CLK_GOUT_CMU_HSI1_MMC_CARD	178
-#define CLK_GOUT_CMU_HSI1_PCIE		179
-#define CLK_GOUT_CMU_HSI1_UFS_CARD	180
-#define CLK_GOUT_CMU_HSI1_UFS_EMBD	181
-#define CLK_GOUT_CMU_HSI2_BUS		182
-#define CLK_GOUT_CMU_HSI2_PCIE		183
-#define CLK_GOUT_CMU_IPP_BUS		184
-#define CLK_GOUT_CMU_ITP_BUS		185
-#define CLK_GOUT_CMU_MCSC_BUS		186
-#define CLK_GOUT_CMU_MCSC_GDC		187
-#define CLK_GOUT_CMU_MFC0_MFC0		188
-#define CLK_GOUT_CMU_MFC0_WFD		189
-#define CLK_GOUT_CMU_MIF_BUSP		190
-#define CLK_GOUT_CMU_NPU_BUS		191
-#define CLK_GOUT_CMU_PERIC0_BUS		192
-#define CLK_GOUT_CMU_PERIC0_IP		193
-#define CLK_GOUT_CMU_PERIC1_BUS		194
-#define CLK_GOUT_CMU_PERIC1_IP		195
-#define CLK_GOUT_CMU_PERIS_BUS		196
-#define CLK_GOUT_CMU_SSP_BUS		197
-#define CLK_GOUT_CMU_TNR_BUS		198
-#define CLK_GOUT_CMU_VRA_BUS		199
+#define CLK_FOUT_G3D_PLL		1
+#define CLK_FOUT_MMC_PLL		2
+#define CLK_FOUT_SHARED0_PLL		3
+#define CLK_FOUT_SHARED1_PLL		4
+#define CLK_FOUT_SHARED2_PLL		5
+#define CLK_FOUT_SHARED3_PLL		6
+#define CLK_FOUT_SHARED4_PLL		7
+#define CLK_MOUT_PLL_G3D		8
+#define CLK_MOUT_PLL_MMC		9
+#define CLK_MOUT_PLL_SHARED0		10
+#define CLK_MOUT_PLL_SHARED1		11
+#define CLK_MOUT_PLL_SHARED2		12
+#define CLK_MOUT_PLL_SHARED3		13
+#define CLK_MOUT_PLL_SHARED4		14
+#define CLK_MOUT_CMU_DPU_BUS		15
+#define CLK_MOUT_CMU_APM_BUS		16
+#define CLK_MOUT_CMU_AUD_CPU		17
+#define CLK_MOUT_CMU_BUS0_BUS		18
+#define CLK_MOUT_CMU_BUS1_BUS		19
+#define CLK_MOUT_CMU_BUS1_SSS		20
+#define CLK_MOUT_CMU_CIS_CLK0		21
+#define CLK_MOUT_CMU_CIS_CLK1		22
+#define CLK_MOUT_CMU_CIS_CLK2		23
+#define CLK_MOUT_CMU_CIS_CLK3		24
+#define CLK_MOUT_CMU_CIS_CLK4		25
+#define CLK_MOUT_CMU_CIS_CLK5		26
+#define CLK_MOUT_CMU_CMU_BOOST		27
+#define CLK_MOUT_CMU_CORE_BUS		28
+#define CLK_MOUT_CMU_CPUCL0_DBG_BUS	29
+#define CLK_MOUT_CMU_CPUCL0_SWITCH	30
+#define CLK_MOUT_CMU_CPUCL1_SWITCH	31
+#define CLK_MOUT_CMU_CPUCL2_BUSP	32
+#define CLK_MOUT_CMU_CPUCL2_SWITCH	33
+#define CLK_MOUT_CMU_CSIS_BUS		34
+#define CLK_MOUT_CMU_CSIS_OIS_MCU	35
+#define CLK_MOUT_CMU_DNC_BUS		36
+#define CLK_MOUT_CMU_DNC_BUSM		37
+#define CLK_MOUT_CMU_DNS_BUS		38
+#define CLK_MOUT_CMU_DPU		39
+#define CLK_MOUT_CMU_DPU_ALT		40
+#define CLK_MOUT_CMU_DSP_BUS		41
+#define CLK_MOUT_CMU_G2D_G2D		42
+#define CLK_MOUT_CMU_G2D_MSCL		43
+#define CLK_MOUT_CMU_HPM		44
+#define CLK_MOUT_CMU_HSI0_BUS		45
+#define CLK_MOUT_CMU_HSI0_DPGTC		46
+#define CLK_MOUT_CMU_HSI0_USB31DRD	47
+#define CLK_MOUT_CMU_HSI0_USBDP_DEBUG	48
+#define CLK_MOUT_CMU_HSI1_BUS		49
+#define CLK_MOUT_CMU_HSI1_MMC_CARD	50
+#define CLK_MOUT_CMU_HSI1_PCIE		51
+#define CLK_MOUT_CMU_HSI1_UFS_CARD	52
+#define CLK_MOUT_CMU_HSI1_UFS_EMBD	53
+#define CLK_MOUT_CMU_HSI2_BUS		54
+#define CLK_MOUT_CMU_HSI2_PCIE		55
+#define CLK_MOUT_CMU_IPP_BUS		56
+#define CLK_MOUT_CMU_ITP_BUS		57
+#define CLK_MOUT_CMU_MCSC_BUS		58
+#define CLK_MOUT_CMU_MCSC_GDC		59
+#define CLK_MOUT_CMU_CMU_BOOST_CPU	60
+#define CLK_MOUT_CMU_MFC0_MFC0		61
+#define CLK_MOUT_CMU_MFC0_WFD		62
+#define CLK_MOUT_CMU_MIF_BUSP		63
+#define CLK_MOUT_CMU_MIF_SWITCH		64
+#define CLK_MOUT_CMU_NPU_BUS		65
+#define CLK_MOUT_CMU_PERIC0_BUS		66
+#define CLK_MOUT_CMU_PERIC0_IP		67
+#define CLK_MOUT_CMU_PERIC1_BUS		68
+#define CLK_MOUT_CMU_PERIC1_IP		69
+#define CLK_MOUT_CMU_PERIS_BUS		70
+#define CLK_MOUT_CMU_SSP_BUS		71
+#define CLK_MOUT_CMU_TNR_BUS		72
+#define CLK_MOUT_CMU_VRA_BUS		73
+#define CLK_MOUT_CMU_CMUREF		74
+#define CLK_MOUT_CMU_CLK_CMUREF		75
+#define CLK_DOUT_CMU_APM_BUS		76
+#define CLK_DOUT_CMU_AUD_CPU		77
+#define CLK_DOUT_CMU_BUS0_BUS		78
+#define CLK_DOUT_CMU_BUS1_BUS		79
+#define CLK_DOUT_CMU_BUS1_SSS		80
+#define CLK_DOUT_CMU_CIS_CLK0		81
+#define CLK_DOUT_CMU_CIS_CLK1		82
+#define CLK_DOUT_CMU_CIS_CLK2		83
+#define CLK_DOUT_CMU_CIS_CLK3		84
+#define CLK_DOUT_CMU_CIS_CLK4		85
+#define CLK_DOUT_CMU_CIS_CLK5		86
+#define CLK_DOUT_CMU_CMU_BOOST		87
+#define CLK_DOUT_CMU_CORE_BUS		88
+#define CLK_DOUT_CMU_CPUCL0_DBG_BUS	89
+#define CLK_DOUT_CMU_CPUCL0_SWITCH	90
+#define CLK_DOUT_CMU_CPUCL1_SWITCH	91
+#define CLK_DOUT_CMU_CPUCL2_BUSP	92
+#define CLK_DOUT_CMU_CPUCL2_SWITCH	93
+#define CLK_DOUT_CMU_CSIS_BUS		94
+#define CLK_DOUT_CMU_CSIS_OIS_MCU	95
+#define CLK_DOUT_CMU_DNC_BUS		96
+#define CLK_DOUT_CMU_DNC_BUSM		97
+#define CLK_DOUT_CMU_DNS_BUS		98
+#define CLK_DOUT_CMU_DSP_BUS		99
+#define CLK_DOUT_CMU_G2D_G2D		100
+#define CLK_DOUT_CMU_G2D_MSCL		101
+#define CLK_DOUT_CMU_G3D_SWITCH		102
+#define CLK_DOUT_CMU_HPM		103
+#define CLK_DOUT_CMU_HSI0_BUS		104
+#define CLK_DOUT_CMU_HSI0_DPGTC		105
+#define CLK_DOUT_CMU_HSI0_USB31DRD	106
+#define CLK_DOUT_CMU_HSI0_USBDP_DEBUG	107
+#define CLK_DOUT_CMU_HSI1_BUS		108
+#define CLK_DOUT_CMU_HSI1_MMC_CARD	109
+#define CLK_DOUT_CMU_HSI1_PCIE		110
+#define CLK_DOUT_CMU_HSI1_UFS_CARD	111
+#define CLK_DOUT_CMU_HSI1_UFS_EMBD	112
+#define CLK_DOUT_CMU_HSI2_BUS		113
+#define CLK_DOUT_CMU_HSI2_PCIE		114
+#define CLK_DOUT_CMU_IPP_BUS		115
+#define CLK_DOUT_CMU_ITP_BUS		116
+#define CLK_DOUT_CMU_MCSC_BUS		117
+#define CLK_DOUT_CMU_MCSC_GDC		118
+#define CLK_DOUT_CMU_CMU_BOOST_CPU	119
+#define CLK_DOUT_CMU_MFC0_MFC0		120
+#define CLK_DOUT_CMU_MFC0_WFD		121
+#define CLK_DOUT_CMU_MIF_BUSP		122
+#define CLK_DOUT_CMU_NPU_BUS		123
+#define CLK_DOUT_CMU_OTP		124
+#define CLK_DOUT_CMU_PERIC0_BUS		125
+#define CLK_DOUT_CMU_PERIC0_IP		126
+#define CLK_DOUT_CMU_PERIC1_BUS		127
+#define CLK_DOUT_CMU_PERIC1_IP		128
+#define CLK_DOUT_CMU_PERIS_BUS		129
+#define CLK_DOUT_CMU_SSP_BUS		130
+#define CLK_DOUT_CMU_TNR_BUS		131
+#define CLK_DOUT_CMU_VRA_BUS		132
+#define CLK_DOUT_CMU_DPU		133
+#define CLK_DOUT_CMU_DPU_ALT		134
+#define CLK_DOUT_CMU_CLK_CMUREF		135
+#define CLK_DOUT_CMU_SHARED0_DIV2	136
+#define CLK_DOUT_CMU_SHARED0_DIV3	137
+#define CLK_DOUT_CMU_SHARED0_DIV4	138
+#define CLK_DOUT_CMU_SHARED1_DIV2	139
+#define CLK_DOUT_CMU_SHARED1_DIV3	140
+#define CLK_DOUT_CMU_SHARED1_DIV4	141
+#define CLK_DOUT_CMU_SHARED2_DIV2	142
+#define CLK_DOUT_CMU_SHARED4_DIV2	145
+#define CLK_DOUT_CMU_SHARED4_DIV3	146
+#define CLK_DOUT_CMU_SHARED4_DIV4	147
+#define CLK_GOUT_CMU_G3D_BUS		148
+#define CLK_GOUT_CMU_MIF_SWITCH		149
+#define CLK_GOUT_CMU_APM_BUS		150
+#define CLK_GOUT_CMU_AUD_CPU		151
+#define CLK_GOUT_CMU_BUS0_BUS		152
+#define CLK_GOUT_CMU_BUS1_BUS		153
+#define CLK_GOUT_CMU_BUS1_SSS		154
+#define CLK_GOUT_CMU_CIS_CLK0		155
+#define CLK_GOUT_CMU_CIS_CLK1		156
+#define CLK_GOUT_CMU_CIS_CLK2		157
+#define CLK_GOUT_CMU_CIS_CLK3		158
+#define CLK_GOUT_CMU_CIS_CLK4		159
+#define CLK_GOUT_CMU_CIS_CLK5		160
+#define CLK_GOUT_CMU_CORE_BUS		161
+#define CLK_GOUT_CMU_CPUCL0_DBG_BUS	162
+#define CLK_GOUT_CMU_CPUCL0_SWITCH	163
+#define CLK_GOUT_CMU_CPUCL1_SWITCH	164
+#define CLK_GOUT_CMU_CPUCL2_BUSP	165
+#define CLK_GOUT_CMU_CPUCL2_SWITCH	166
+#define CLK_GOUT_CMU_CSIS_BUS		167
+#define CLK_GOUT_CMU_CSIS_OIS_MCU	168
+#define CLK_GOUT_CMU_DNC_BUS		169
+#define CLK_GOUT_CMU_DNC_BUSM		170
+#define CLK_GOUT_CMU_DNS_BUS		171
+#define CLK_GOUT_CMU_DPU		172
+#define CLK_GOUT_CMU_DPU_BUS		173
+#define CLK_GOUT_CMU_DSP_BUS		174
+#define CLK_GOUT_CMU_G2D_G2D		175
+#define CLK_GOUT_CMU_G2D_MSCL		176
+#define CLK_GOUT_CMU_G3D_SWITCH		177
+#define CLK_GOUT_CMU_HPM		178
+#define CLK_GOUT_CMU_HSI0_BUS		179
+#define CLK_GOUT_CMU_HSI0_DPGTC		180
+#define CLK_GOUT_CMU_HSI0_USB31DRD	181
+#define CLK_GOUT_CMU_HSI0_USBDP_DEBUG	182
+#define CLK_GOUT_CMU_HSI1_BUS		183
+#define CLK_GOUT_CMU_HSI1_MMC_CARD	184
+#define CLK_GOUT_CMU_HSI1_PCIE		185
+#define CLK_GOUT_CMU_HSI1_UFS_CARD	186
+#define CLK_GOUT_CMU_HSI1_UFS_EMBD	187
+#define CLK_GOUT_CMU_HSI2_BUS		188
+#define CLK_GOUT_CMU_HSI2_PCIE		189
+#define CLK_GOUT_CMU_IPP_BUS		190
+#define CLK_GOUT_CMU_ITP_BUS		191
+#define CLK_GOUT_CMU_MCSC_BUS		192
+#define CLK_GOUT_CMU_MCSC_GDC		193
+#define CLK_GOUT_CMU_MFC0_MFC0		194
+#define CLK_GOUT_CMU_MFC0_WFD		195
+#define CLK_GOUT_CMU_MIF_BUSP		196
+#define CLK_GOUT_CMU_NPU_BUS		197
+#define CLK_GOUT_CMU_PERIC0_BUS		198
+#define CLK_GOUT_CMU_PERIC0_IP		199
+#define CLK_GOUT_CMU_PERIC1_BUS		200
+#define CLK_GOUT_CMU_PERIC1_IP		201
+#define CLK_GOUT_CMU_PERIS_BUS		202
+#define CLK_GOUT_CMU_SSP_BUS		203
+#define CLK_GOUT_CMU_TNR_BUS		204
+#define CLK_GOUT_CMU_VRA_BUS		205
 
 /* CMU_HSI0 */
 #define CLK_MOUT_HSI0_BUS_USER				1

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/3] clk: samsung: exynos990: Fix PLL mux regs, add DPU/CMUREF
  2025-08-20 14:57 [PATCH v2 0/3] clk: samsung: exynos990: CMU_TOP fixes (mux regs, widths, factors) Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 1/3] clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors Denzeel Oliva
  2025-08-20 14:57 ` [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend Denzeel Oliva
@ 2025-08-20 14:57 ` Denzeel Oliva
  2 siblings, 0 replies; 7+ messages in thread
From: Denzeel Oliva @ 2025-08-20 14:57 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley
  Cc: linux-samsung-soc, linux-clk, linux-arm-kernel, linux-kernel,
	devicetree, Denzeel Oliva

Switch PLL muxes to PLL_CON0 to correct parent selection and
clock rates. Add DPU_BUS and CMUREF mux/div and their register
hooks and parents.

Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>
---
 drivers/clk/samsung/clk-exynos990.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 75 insertions(+), 46 deletions(-)

diff --git a/drivers/clk/samsung/clk-exynos990.c b/drivers/clk/samsung/clk-exynos990.c
index a55991ebb77bcb2988071fc156dbe5c9b100215f..c5f1dbaf45b6a718994c1dfa9f204cfccd74cb16 100644
--- a/drivers/clk/samsung/clk-exynos990.c
+++ b/drivers/clk/samsung/clk-exynos990.c
@@ -45,6 +45,7 @@
 #define PLL_CON3_PLL_SHARED3				0x024c
 #define PLL_CON0_PLL_SHARED4				0x0280
 #define PLL_CON3_PLL_SHARED4				0x028c
+#define CLK_CON_MUX_CLKCMU_DPU_BUS			0x1000
 #define CLK_CON_MUX_MUX_CLKCMU_APM_BUS			0x1004
 #define CLK_CON_MUX_MUX_CLKCMU_AUD_CPU			0x1008
 #define CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS			0x100c
@@ -103,6 +104,8 @@
 #define CLK_CON_MUX_MUX_CLKCMU_SSP_BUS			0x10e0
 #define CLK_CON_MUX_MUX_CLKCMU_TNR_BUS			0x10e4
 #define CLK_CON_MUX_MUX_CLKCMU_VRA_BUS			0x10e8
+#define CLK_CON_MUX_MUX_CLK_CMU_CMUREF			0x10f0
+#define CLK_CON_MUX_MUX_CMU_CMUREF			0x10f4
 #define CLK_CON_DIV_CLKCMU_APM_BUS			0x1800
 #define CLK_CON_DIV_CLKCMU_AUD_CPU			0x1804
 #define CLK_CON_DIV_CLKCMU_BUS0_BUS			0x1808
@@ -162,6 +165,7 @@
 #define CLK_CON_DIV_CLKCMU_VRA_BUS			0x18e0
 #define CLK_CON_DIV_DIV_CLKCMU_DPU			0x18e8
 #define CLK_CON_DIV_DIV_CLKCMU_DPU_ALT			0x18ec
+#define CLK_CON_DIV_DIV_CLK_CMU_CMUREF			0x18f0
 #define CLK_CON_DIV_PLL_SHARED0_DIV2			0x18f4
 #define CLK_CON_DIV_PLL_SHARED0_DIV3			0x18f8
 #define CLK_CON_DIV_PLL_SHARED0_DIV4			0x18fc
@@ -239,13 +243,21 @@ static const unsigned long top_clk_regs[] __initconst = {
 	PLL_LOCKTIME_PLL_SHARED2,
 	PLL_LOCKTIME_PLL_SHARED3,
 	PLL_LOCKTIME_PLL_SHARED4,
+	PLL_CON0_PLL_G3D,
 	PLL_CON3_PLL_G3D,
+	PLL_CON0_PLL_MMC,
 	PLL_CON3_PLL_MMC,
+	PLL_CON0_PLL_SHARED0,
 	PLL_CON3_PLL_SHARED0,
+	PLL_CON0_PLL_SHARED1,
 	PLL_CON3_PLL_SHARED1,
+	PLL_CON0_PLL_SHARED2,
 	PLL_CON3_PLL_SHARED2,
+	PLL_CON0_PLL_SHARED3,
 	PLL_CON3_PLL_SHARED3,
+	PLL_CON0_PLL_SHARED4,
 	PLL_CON3_PLL_SHARED4,
+	CLK_CON_MUX_CLKCMU_DPU_BUS,
 	CLK_CON_MUX_MUX_CLKCMU_APM_BUS,
 	CLK_CON_MUX_MUX_CLKCMU_AUD_CPU,
 	CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS,
@@ -304,6 +316,8 @@ static const unsigned long top_clk_regs[] __initconst = {
 	CLK_CON_MUX_MUX_CLKCMU_SSP_BUS,
 	CLK_CON_MUX_MUX_CLKCMU_TNR_BUS,
 	CLK_CON_MUX_MUX_CLKCMU_VRA_BUS,
+	CLK_CON_MUX_MUX_CLK_CMU_CMUREF,
+	CLK_CON_MUX_MUX_CMU_CMUREF,
 	CLK_CON_DIV_CLKCMU_APM_BUS,
 	CLK_CON_DIV_CLKCMU_AUD_CPU,
 	CLK_CON_DIV_CLKCMU_BUS0_BUS,
@@ -363,6 +377,7 @@ static const unsigned long top_clk_regs[] __initconst = {
 	CLK_CON_DIV_CLKCMU_VRA_BUS,
 	CLK_CON_DIV_DIV_CLKCMU_DPU,
 	CLK_CON_DIV_DIV_CLKCMU_DPU_ALT,
+	CLK_CON_DIV_DIV_CLK_CMU_CMUREF,
 	CLK_CON_DIV_PLL_SHARED0_DIV2,
 	CLK_CON_DIV_PLL_SHARED0_DIV3,
 	CLK_CON_DIV_PLL_SHARED0_DIV4,
@@ -434,6 +449,10 @@ static const unsigned long top_clk_regs[] __initconst = {
 };
 
 static const struct samsung_pll_clock top_pll_clks[] __initconst = {
+	PLL(pll_0718x, CLK_FOUT_G3D_PLL, "fout_g3d_pll", "oscclk",
+	    PLL_LOCKTIME_PLL_G3D, PLL_CON3_PLL_G3D, NULL),
+	PLL(pll_0732x, CLK_FOUT_MMC_PLL, "fout_mmc_pll", "oscclk",
+	    PLL_LOCKTIME_PLL_MMC, PLL_CON3_PLL_MMC, NULL),
 	PLL(pll_0717x, CLK_FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk",
 	    PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0, NULL),
 	PLL(pll_0717x, CLK_FOUT_SHARED1_PLL, "fout_shared1_pll", "oscclk",
@@ -444,20 +463,18 @@ static const struct samsung_pll_clock top_pll_clks[] __initconst = {
 	    PLL_LOCKTIME_PLL_SHARED3, PLL_CON3_PLL_SHARED3, NULL),
 	PLL(pll_0717x, CLK_FOUT_SHARED4_PLL, "fout_shared4_pll", "oscclk",
 	    PLL_LOCKTIME_PLL_SHARED4, PLL_CON3_PLL_SHARED4, NULL),
-	PLL(pll_0732x, CLK_FOUT_MMC_PLL, "fout_mmc_pll", "oscclk",
-	    PLL_LOCKTIME_PLL_MMC, PLL_CON3_PLL_MMC, NULL),
-	PLL(pll_0718x, CLK_FOUT_G3D_PLL, "fout_g3d_pll", "oscclk",
-	    PLL_LOCKTIME_PLL_G3D, PLL_CON3_PLL_G3D, NULL),
 };
 
 /* Parent clock list for CMU_TOP muxes */
+PNAME(mout_pll_g3d_p)			= { "oscclk", "fout_g3d_pll" };
+PNAME(mout_pll_mmc_p)			= { "oscclk", "fout_mmc_pll" };
 PNAME(mout_pll_shared0_p)		= { "oscclk", "fout_shared0_pll" };
 PNAME(mout_pll_shared1_p)		= { "oscclk", "fout_shared1_pll" };
 PNAME(mout_pll_shared2_p)		= { "oscclk", "fout_shared2_pll" };
 PNAME(mout_pll_shared3_p)		= { "oscclk", "fout_shared3_pll" };
 PNAME(mout_pll_shared4_p)		= { "oscclk", "fout_shared4_pll" };
-PNAME(mout_pll_mmc_p)			= { "oscclk", "fout_mmc_pll" };
-PNAME(mout_pll_g3d_p)			= { "oscclk", "fout_g3d_pll" };
+PNAME(mout_cmu_dpu_bus_p)		= { "dout_cmu_dpu",
+					    "dout_cmu_dpu_alt" };
 PNAME(mout_cmu_apm_bus_p)		= { "dout_cmu_shared0_div2",
 					    "dout_cmu_shared2_div2" };
 PNAME(mout_cmu_aud_cpu_p)		= { "dout_cmu_shared0_div2",
@@ -507,7 +524,7 @@ PNAME(mout_cmu_cpucl0_switch_p)		= { "fout_shared4_pll",
 					    "dout_cmu_shared0_div2",
 					    "fout_shared2_pll",
 					    "dout_cmu_shared0_div4" };
-PNAME(mout_cmu_cpucl1_switch_p)	= { "fout_shared4_pll",
+PNAME(mout_cmu_cpucl1_switch_p)		= { "fout_shared4_pll",
 					    "dout_cmu_shared0_div2",
 					    "fout_shared2_pll",
 					    "dout_cmu_shared0_div4" };
@@ -577,7 +594,7 @@ PNAME(mout_cmu_hsi1_bus_p)		= { "dout_cmu_shared0_div3",
 					    "dout_cmu_shared4_div3",
 					    "dout_cmu_shared2_div2",
 					    "fout_mmc_pll", "oscclk", "oscclk" };
-PNAME(mout_cmu_hsi1_mmc_card_p)	= { "oscclk", "fout_shared2_pll",
+PNAME(mout_cmu_hsi1_mmc_card_p)		= { "oscclk", "fout_shared2_pll",
 					    "fout_mmc_pll",
 					    "dout_cmu_shared0_div4" };
 PNAME(mout_cmu_hsi1_pcie_p)		= { "oscclk", "fout_shared2_pll" };
@@ -672,6 +689,12 @@ PNAME(mout_cmu_vra_bus_p)		= { "dout_cmu_shared0_div3",
 					    "dout_cmu_shared4_div2",
 					    "dout_cmu_shared0_div4",
 					    "dout_cmu_shared4_div3" };
+PNAME(mout_cmu_cmuref_p)		= { "oscclk",
+					    "dout_cmu_clk_cmuref" };
+PNAME(mout_cmu_clk_cmuref_p)		= { "dout_cmu_shared0_div4",
+					    "dout_cmu_shared1_div4",
+					    "dout_cmu_shared2_div2",
+					    "oscclk" };
 
 /*
  * Register name to clock name mangling strategy used in this file
@@ -688,20 +711,22 @@ PNAME(mout_cmu_vra_bus_p)		= { "dout_cmu_shared0_div3",
  */
 
 static const struct samsung_mux_clock top_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_PLL_MMC, "mout_pll_mmc", mout_pll_mmc_p,
+	    PLL_CON0_PLL_MMC, 4, 1),
+	MUX(CLK_MOUT_PLL_G3D, "mout_pll_g3d", mout_pll_g3d_p,
+	    PLL_CON0_PLL_G3D, 4, 1),
 	MUX(CLK_MOUT_PLL_SHARED0, "mout_pll_shared0", mout_pll_shared0_p,
-	    PLL_CON3_PLL_SHARED0, 4, 1),
+	    PLL_CON0_PLL_SHARED0, 4, 1),
 	MUX(CLK_MOUT_PLL_SHARED1, "mout_pll_shared1", mout_pll_shared1_p,
-	    PLL_CON3_PLL_SHARED1, 4, 1),
+	    PLL_CON0_PLL_SHARED1, 4, 1),
 	MUX(CLK_MOUT_PLL_SHARED2, "mout_pll_shared2", mout_pll_shared2_p,
-	    PLL_CON3_PLL_SHARED2, 4, 1),
+	    PLL_CON0_PLL_SHARED2, 4, 1),
 	MUX(CLK_MOUT_PLL_SHARED3, "mout_pll_shared3", mout_pll_shared3_p,
-	    PLL_CON3_PLL_SHARED3, 4, 1),
+	    PLL_CON0_PLL_SHARED3, 4, 1),
 	MUX(CLK_MOUT_PLL_SHARED4, "mout_pll_shared4", mout_pll_shared4_p,
 	    PLL_CON0_PLL_SHARED4, 4, 1),
-	MUX(CLK_MOUT_PLL_MMC, "mout_pll_mmc", mout_pll_mmc_p,
-	    PLL_CON0_PLL_MMC, 4, 1),
-	MUX(CLK_MOUT_PLL_G3D, "mout_pll_g3d", mout_pll_g3d_p,
-	    PLL_CON0_PLL_G3D, 4, 1),
+	MUX(CLK_MOUT_CMU_DPU_BUS, "mout_cmu_dpu_bus",
+	    mout_cmu_dpu_bus_p, CLK_CON_MUX_CLKCMU_DPU_BUS, 0, 1),
 	MUX(CLK_MOUT_CMU_APM_BUS, "mout_cmu_apm_bus",
 	    mout_cmu_apm_bus_p, CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 0, 1),
 	MUX(CLK_MOUT_CMU_AUD_CPU, "mout_cmu_aud_cpu",
@@ -830,37 +855,13 @@ static const struct samsung_mux_clock top_mux_clks[] __initconst = {
 	    mout_cmu_tnr_bus_p, CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 0, 3),
 	MUX(CLK_MOUT_CMU_VRA_BUS, "mout_cmu_vra_bus",
 	    mout_cmu_vra_bus_p, CLK_CON_MUX_MUX_CLKCMU_VRA_BUS, 0, 2),
+	MUX(CLK_MOUT_CMU_CMUREF, "mout_cmu_cmuref",
+	    mout_cmu_cmuref_p, CLK_CON_MUX_MUX_CMU_CMUREF, 0, 1),
+	MUX(CLK_MOUT_CMU_CLK_CMUREF, "mout_cmu_clk_cmuref",
+	    mout_cmu_clk_cmuref_p, CLK_CON_MUX_MUX_CLK_CMU_CMUREF, 0, 2),
 };
 
 static const struct samsung_div_clock top_div_clks[] __initconst = {
-	/* SHARED0 region*/
-	DIV(CLK_DOUT_CMU_SHARED0_DIV2, "dout_cmu_shared0_div2", "mout_pll_shared0",
-	    CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1),
-	DIV(CLK_DOUT_CMU_SHARED0_DIV3, "dout_cmu_shared0_div3", "mout_pll_shared0",
-	    CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2),
-	DIV(CLK_DOUT_CMU_SHARED0_DIV4, "dout_cmu_shared0_div4", "dout_cmu_shared0_div2",
-	    CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1),
-
-	/* SHARED1 region*/
-	DIV(CLK_DOUT_CMU_SHARED1_DIV2, "dout_cmu_shared1_div2", "mout_pll_shared1",
-	    CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1),
-	DIV(CLK_DOUT_CMU_SHARED1_DIV3, "dout_cmu_shared1_div3", "mout_pll_shared1",
-	    CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2),
-	DIV(CLK_DOUT_CMU_SHARED1_DIV4, "dout_cmu_shared1_div4", "dout_cmu_shared1_div2",
-	    CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1),
-
-	/* SHARED2 region */
-	DIV(CLK_DOUT_CMU_SHARED2_DIV2, "dout_cmu_shared2_div2", "mout_pll_shared2",
-	    CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1),
-
-	/* SHARED4 region*/
-	DIV(CLK_DOUT_CMU_SHARED4_DIV2, "dout_cmu_shared4_div2", "mout_pll_shared4",
-	    CLK_CON_DIV_PLL_SHARED4_DIV2, 0, 1),
-	DIV(CLK_DOUT_CMU_SHARED4_DIV3, "dout_cmu_shared4_div3", "mout_pll_shared4",
-	    CLK_CON_DIV_PLL_SHARED4_DIV3, 0, 2),
-	DIV(CLK_DOUT_CMU_SHARED4_DIV4, "dout_cmu_shared4_div4", "mout_pll_shared4",
-	    CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1),
-
 	DIV(CLK_DOUT_CMU_APM_BUS, "dout_cmu_apm_bus", "gout_cmu_apm_bus",
 	    CLK_CON_DIV_CLKCMU_APM_BUS, 0, 2),
 	DIV(CLK_DOUT_CMU_AUD_CPU, "dout_cmu_aud_cpu", "gout_cmu_aud_cpu",
@@ -887,7 +888,7 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    CLK_CON_DIV_CLKCMU_CMU_BOOST, 0, 2),
 	DIV(CLK_DOUT_CMU_CORE_BUS, "dout_cmu_core_bus", "gout_cmu_core_bus",
 	    CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4),
-	DIV(CLK_DOUT_CMU_CPUCL0_DBG_BUS, "dout_cmu_cpucl0_debug",
+	DIV(CLK_DOUT_CMU_CPUCL0_DBG_BUS, "dout_cmu_cpucl0_dbg_bus",
 	    "gout_cmu_cpucl0_dbg_bus", CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS,
 	    0, 4),
 	DIV(CLK_DOUT_CMU_CPUCL0_SWITCH, "dout_cmu_cpucl0_switch",
@@ -972,8 +973,36 @@ static const struct samsung_div_clock top_div_clks[] __initconst = {
 	    CLK_CON_DIV_CLKCMU_TNR_BUS, 0, 4),
 	DIV(CLK_DOUT_CMU_VRA_BUS, "dout_cmu_vra_bus", "gout_cmu_vra_bus",
 	    CLK_CON_DIV_CLKCMU_VRA_BUS, 0, 4),
-	DIV(CLK_DOUT_CMU_DPU, "dout_cmu_clkcmu_dpu", "gout_cmu_dpu",
+	DIV(CLK_DOUT_CMU_DPU, "dout_cmu_dpu", "gout_cmu_dpu",
 	    CLK_CON_DIV_DIV_CLKCMU_DPU, 0, 3),
+	DIV(CLK_DOUT_CMU_DPU_ALT, "dout_cmu_dpu_alt", "gout_cmu_dpu_bus",
+	    CLK_CON_DIV_DIV_CLKCMU_DPU_ALT, 0, 4),
+	DIV(CLK_DOUT_CMU_CLK_CMUREF, "dout_cmu_clk_cmuref", "mout_cmu_clk_cmuref",
+	    CLK_CON_DIV_DIV_CLK_CMU_CMUREF, 0, 2),
+	/* SHARED0 region*/
+	DIV(CLK_DOUT_CMU_SHARED0_DIV2, "dout_cmu_shared0_div2", "mout_pll_shared0",
+	    CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1),
+	DIV(CLK_DOUT_CMU_SHARED0_DIV3, "dout_cmu_shared0_div3", "mout_pll_shared0",
+	    CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2),
+	DIV(CLK_DOUT_CMU_SHARED0_DIV4, "dout_cmu_shared0_div4", "dout_cmu_shared0_div2",
+	    CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1),
+	/* SHARED1 region*/
+	DIV(CLK_DOUT_CMU_SHARED1_DIV2, "dout_cmu_shared1_div2", "mout_pll_shared1",
+	    CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1),
+	DIV(CLK_DOUT_CMU_SHARED1_DIV3, "dout_cmu_shared1_div3", "mout_pll_shared1",
+	    CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2),
+	DIV(CLK_DOUT_CMU_SHARED1_DIV4, "dout_cmu_shared1_div4", "dout_cmu_shared1_div2",
+	    CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1),
+	/* SHARED2 region */
+	DIV(CLK_DOUT_CMU_SHARED2_DIV2, "dout_cmu_shared2_div2", "mout_pll_shared2",
+	    CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1),
+	/* SHARED4 region*/
+	DIV(CLK_DOUT_CMU_SHARED4_DIV2, "dout_cmu_shared4_div2", "mout_pll_shared4",
+	    CLK_CON_DIV_PLL_SHARED4_DIV2, 0, 1),
+	DIV(CLK_DOUT_CMU_SHARED4_DIV3, "dout_cmu_shared4_div3", "mout_pll_shared4",
+	    CLK_CON_DIV_PLL_SHARED4_DIV3, 0, 2),
+	DIV(CLK_DOUT_CMU_SHARED4_DIV4, "dout_cmu_shared4_div4", "dout_cmu_shared4_div2",
+	    CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1),
 };
 
 static const struct samsung_fixed_factor_clock cmu_top_ffactor[] __initconst = {

-- 
2.49.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend
  2025-08-20 14:57 ` [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend Denzeel Oliva
@ 2025-08-20 19:29   ` Conor Dooley
  2025-08-23 17:27     ` Denzeel Oliva
  0 siblings, 1 reply; 7+ messages in thread
From: Conor Dooley @ 2025-08-20 19:29 UTC (permalink / raw)
  To: Denzeel Oliva
  Cc: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley, linux-samsung-soc, linux-clk, linux-arm-kernel,
	linux-kernel, devicetree

[-- Attachment #1: Type: text/plain, Size: 16705 bytes --]

On Wed, Aug 20, 2025 at 09:57:23AM -0500, Denzeel Oliva wrote:
> Reorganize CMU_TOP clock definitions
> and add missing clock definitions for DPU and CMUREF.
> 
> Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>

This looks like a massive ABI break, where is the justification for
doing it?

Cheers,
Conor.

> ---
>  include/dt-bindings/clock/samsung,exynos990.h | 402 ++++++++++++++++++++++++++++++++--------------------------------
>  1 file changed, 203 insertions(+), 199 deletions(-)
> 
> diff --git a/include/dt-bindings/clock/samsung,exynos990.h b/include/dt-bindings/clock/samsung,exynos990.h
> index 6b9df09d2822f1c8e5086a2fc0bda783ca224812..b384e271bf276a375f67659fc84e53350ea73c0e 100644
> --- a/include/dt-bindings/clock/samsung,exynos990.h
> +++ b/include/dt-bindings/clock/samsung,exynos990.h
> @@ -9,205 +9,209 @@
>  #define _DT_BINDINGS_CLOCK_EXYNOS_990_H
>  
>  /* CMU_TOP */
> -#define CLK_FOUT_SHARED0_PLL		1
> -#define CLK_FOUT_SHARED1_PLL		2
> -#define CLK_FOUT_SHARED2_PLL		3
> -#define CLK_FOUT_SHARED3_PLL		4
> -#define CLK_FOUT_SHARED4_PLL		5
> -#define CLK_FOUT_G3D_PLL		6
> -#define CLK_FOUT_MMC_PLL		7
> -#define CLK_MOUT_PLL_SHARED0		8
> -#define CLK_MOUT_PLL_SHARED1		9
> -#define CLK_MOUT_PLL_SHARED2		10
> -#define CLK_MOUT_PLL_SHARED3		11
> -#define CLK_MOUT_PLL_SHARED4		12
> -#define CLK_MOUT_PLL_MMC		13
> -#define CLK_MOUT_PLL_G3D		14
> -#define CLK_MOUT_CMU_APM_BUS		15
> -#define CLK_MOUT_CMU_AUD_CPU		16
> -#define CLK_MOUT_CMU_BUS0_BUS		17
> -#define CLK_MOUT_CMU_BUS1_BUS		18
> -#define CLK_MOUT_CMU_BUS1_SSS		19
> -#define CLK_MOUT_CMU_CIS_CLK0		20
> -#define CLK_MOUT_CMU_CIS_CLK1		21
> -#define CLK_MOUT_CMU_CIS_CLK2		22
> -#define CLK_MOUT_CMU_CIS_CLK3		23
> -#define CLK_MOUT_CMU_CIS_CLK4		24
> -#define CLK_MOUT_CMU_CIS_CLK5		25
> -#define CLK_MOUT_CMU_CMU_BOOST		26
> -#define CLK_MOUT_CMU_CORE_BUS		27
> -#define CLK_MOUT_CMU_CPUCL0_DBG_BUS	28
> -#define CLK_MOUT_CMU_CPUCL0_SWITCH	29
> -#define CLK_MOUT_CMU_CPUCL1_SWITCH	30
> -#define CLK_MOUT_CMU_CPUCL2_BUSP	31
> -#define CLK_MOUT_CMU_CPUCL2_SWITCH	32
> -#define CLK_MOUT_CMU_CSIS_BUS		33
> -#define CLK_MOUT_CMU_CSIS_OIS_MCU	34
> -#define CLK_MOUT_CMU_DNC_BUS		35
> -#define CLK_MOUT_CMU_DNC_BUSM		36
> -#define CLK_MOUT_CMU_DNS_BUS		37
> -#define CLK_MOUT_CMU_DPU		38
> -#define CLK_MOUT_CMU_DPU_ALT		39
> -#define CLK_MOUT_CMU_DSP_BUS		40
> -#define CLK_MOUT_CMU_G2D_G2D		41
> -#define CLK_MOUT_CMU_G2D_MSCL		42
> -#define CLK_MOUT_CMU_HPM		43
> -#define CLK_MOUT_CMU_HSI0_BUS		44
> -#define CLK_MOUT_CMU_HSI0_DPGTC		45
> -#define CLK_MOUT_CMU_HSI0_USB31DRD	46
> -#define CLK_MOUT_CMU_HSI0_USBDP_DEBUG	47
> -#define CLK_MOUT_CMU_HSI1_BUS		48
> -#define CLK_MOUT_CMU_HSI1_MMC_CARD	49
> -#define CLK_MOUT_CMU_HSI1_PCIE		50
> -#define CLK_MOUT_CMU_HSI1_UFS_CARD	51
> -#define CLK_MOUT_CMU_HSI1_UFS_EMBD	52
> -#define CLK_MOUT_CMU_HSI2_BUS		53
> -#define CLK_MOUT_CMU_HSI2_PCIE		54
> -#define CLK_MOUT_CMU_IPP_BUS		55
> -#define CLK_MOUT_CMU_ITP_BUS		56
> -#define CLK_MOUT_CMU_MCSC_BUS		57
> -#define CLK_MOUT_CMU_MCSC_GDC		58
> -#define CLK_MOUT_CMU_CMU_BOOST_CPU	59
> -#define CLK_MOUT_CMU_MFC0_MFC0		60
> -#define CLK_MOUT_CMU_MFC0_WFD		61
> -#define CLK_MOUT_CMU_MIF_BUSP		62
> -#define CLK_MOUT_CMU_MIF_SWITCH		63
> -#define CLK_MOUT_CMU_NPU_BUS		64
> -#define CLK_MOUT_CMU_PERIC0_BUS		65
> -#define CLK_MOUT_CMU_PERIC0_IP		66
> -#define CLK_MOUT_CMU_PERIC1_BUS		67
> -#define CLK_MOUT_CMU_PERIC1_IP		68
> -#define CLK_MOUT_CMU_PERIS_BUS		69
> -#define CLK_MOUT_CMU_SSP_BUS		70
> -#define CLK_MOUT_CMU_TNR_BUS		71
> -#define CLK_MOUT_CMU_VRA_BUS		72
> -#define CLK_DOUT_CMU_APM_BUS		73
> -#define CLK_DOUT_CMU_AUD_CPU		74
> -#define CLK_DOUT_CMU_BUS0_BUS		75
> -#define CLK_DOUT_CMU_BUS1_BUS		76
> -#define CLK_DOUT_CMU_BUS1_SSS		77
> -#define CLK_DOUT_CMU_CIS_CLK0		78
> -#define CLK_DOUT_CMU_CIS_CLK1		79
> -#define CLK_DOUT_CMU_CIS_CLK2		80
> -#define CLK_DOUT_CMU_CIS_CLK3		81
> -#define CLK_DOUT_CMU_CIS_CLK4		82
> -#define CLK_DOUT_CMU_CIS_CLK5		83
> -#define CLK_DOUT_CMU_CMU_BOOST		84
> -#define CLK_DOUT_CMU_CORE_BUS		85
> -#define CLK_DOUT_CMU_CPUCL0_DBG_BUS	86
> -#define CLK_DOUT_CMU_CPUCL0_SWITCH	87
> -#define CLK_DOUT_CMU_CPUCL1_SWITCH	88
> -#define CLK_DOUT_CMU_CPUCL2_BUSP	89
> -#define CLK_DOUT_CMU_CPUCL2_SWITCH	90
> -#define CLK_DOUT_CMU_CSIS_BUS		91
> -#define CLK_DOUT_CMU_CSIS_OIS_MCU	92
> -#define CLK_DOUT_CMU_DNC_BUS		93
> -#define CLK_DOUT_CMU_DNC_BUSM		94
> -#define CLK_DOUT_CMU_DNS_BUS		95
> -#define CLK_DOUT_CMU_DSP_BUS		96
> -#define CLK_DOUT_CMU_G2D_G2D		97
> -#define CLK_DOUT_CMU_G2D_MSCL		98
> -#define CLK_DOUT_CMU_G3D_SWITCH		99
> -#define CLK_DOUT_CMU_HPM		100
> -#define CLK_DOUT_CMU_HSI0_BUS		101
> -#define CLK_DOUT_CMU_HSI0_DPGTC		102
> -#define CLK_DOUT_CMU_HSI0_USB31DRD	103
> -#define CLK_DOUT_CMU_HSI0_USBDP_DEBUG	104
> -#define CLK_DOUT_CMU_HSI1_BUS		105
> -#define CLK_DOUT_CMU_HSI1_MMC_CARD	106
> -#define CLK_DOUT_CMU_HSI1_PCIE		107
> -#define CLK_DOUT_CMU_HSI1_UFS_CARD	108
> -#define CLK_DOUT_CMU_HSI1_UFS_EMBD	109
> -#define CLK_DOUT_CMU_HSI2_BUS		110
> -#define CLK_DOUT_CMU_HSI2_PCIE		111
> -#define CLK_DOUT_CMU_IPP_BUS		112
> -#define CLK_DOUT_CMU_ITP_BUS		113
> -#define CLK_DOUT_CMU_MCSC_BUS		114
> -#define CLK_DOUT_CMU_MCSC_GDC		115
> -#define CLK_DOUT_CMU_CMU_BOOST_CPU	116
> -#define CLK_DOUT_CMU_MFC0_MFC0		117
> -#define CLK_DOUT_CMU_MFC0_WFD		118
> -#define CLK_DOUT_CMU_MIF_BUSP		119
> -#define CLK_DOUT_CMU_NPU_BUS		120
> -#define CLK_DOUT_CMU_OTP		121
> -#define CLK_DOUT_CMU_PERIC0_BUS		122
> -#define CLK_DOUT_CMU_PERIC0_IP		123
> -#define CLK_DOUT_CMU_PERIC1_BUS		124
> -#define CLK_DOUT_CMU_PERIC1_IP		125
> -#define CLK_DOUT_CMU_PERIS_BUS		126
> -#define CLK_DOUT_CMU_SSP_BUS		127
> -#define CLK_DOUT_CMU_TNR_BUS		128
> -#define CLK_DOUT_CMU_VRA_BUS		129
> -#define CLK_DOUT_CMU_DPU		130
> -#define CLK_DOUT_CMU_DPU_ALT		131
> -#define CLK_DOUT_CMU_SHARED0_DIV2	132
> -#define CLK_DOUT_CMU_SHARED0_DIV3	133
> -#define CLK_DOUT_CMU_SHARED0_DIV4	134
> -#define CLK_DOUT_CMU_SHARED1_DIV2	135
> -#define CLK_DOUT_CMU_SHARED1_DIV3	136
> -#define CLK_DOUT_CMU_SHARED1_DIV4	137
> -#define CLK_DOUT_CMU_SHARED2_DIV2	138
> -#define CLK_DOUT_CMU_SHARED4_DIV2	139
> -#define CLK_DOUT_CMU_SHARED4_DIV3	140
> -#define CLK_DOUT_CMU_SHARED4_DIV4	141
> -#define CLK_GOUT_CMU_G3D_BUS		142
> -#define CLK_GOUT_CMU_MIF_SWITCH		143
> -#define CLK_GOUT_CMU_APM_BUS		144
> -#define CLK_GOUT_CMU_AUD_CPU		145
> -#define CLK_GOUT_CMU_BUS0_BUS		146
> -#define CLK_GOUT_CMU_BUS1_BUS		147
> -#define CLK_GOUT_CMU_BUS1_SSS		148
> -#define CLK_GOUT_CMU_CIS_CLK0		149
> -#define CLK_GOUT_CMU_CIS_CLK1		150
> -#define CLK_GOUT_CMU_CIS_CLK2		151
> -#define CLK_GOUT_CMU_CIS_CLK3		152
> -#define CLK_GOUT_CMU_CIS_CLK4		153
> -#define CLK_GOUT_CMU_CIS_CLK5		154
> -#define CLK_GOUT_CMU_CORE_BUS		155
> -#define CLK_GOUT_CMU_CPUCL0_DBG_BUS	156
> -#define CLK_GOUT_CMU_CPUCL0_SWITCH	157
> -#define CLK_GOUT_CMU_CPUCL1_SWITCH	158
> -#define CLK_GOUT_CMU_CPUCL2_BUSP	159
> -#define CLK_GOUT_CMU_CPUCL2_SWITCH	160
> -#define CLK_GOUT_CMU_CSIS_BUS		161
> -#define CLK_GOUT_CMU_CSIS_OIS_MCU	162
> -#define CLK_GOUT_CMU_DNC_BUS		163
> -#define CLK_GOUT_CMU_DNC_BUSM		164
> -#define CLK_GOUT_CMU_DNS_BUS		165
> -#define CLK_GOUT_CMU_DPU		166
> -#define CLK_GOUT_CMU_DPU_BUS		167
> -#define CLK_GOUT_CMU_DSP_BUS		168
> -#define CLK_GOUT_CMU_G2D_G2D		169
> -#define CLK_GOUT_CMU_G2D_MSCL		170
> -#define CLK_GOUT_CMU_G3D_SWITCH		171
> -#define CLK_GOUT_CMU_HPM		172
> -#define CLK_GOUT_CMU_HSI0_BUS		173
> -#define CLK_GOUT_CMU_HSI0_DPGTC		174
> -#define CLK_GOUT_CMU_HSI0_USB31DRD	175
> -#define CLK_GOUT_CMU_HSI0_USBDP_DEBUG	176
> -#define CLK_GOUT_CMU_HSI1_BUS		177
> -#define CLK_GOUT_CMU_HSI1_MMC_CARD	178
> -#define CLK_GOUT_CMU_HSI1_PCIE		179
> -#define CLK_GOUT_CMU_HSI1_UFS_CARD	180
> -#define CLK_GOUT_CMU_HSI1_UFS_EMBD	181
> -#define CLK_GOUT_CMU_HSI2_BUS		182
> -#define CLK_GOUT_CMU_HSI2_PCIE		183
> -#define CLK_GOUT_CMU_IPP_BUS		184
> -#define CLK_GOUT_CMU_ITP_BUS		185
> -#define CLK_GOUT_CMU_MCSC_BUS		186
> -#define CLK_GOUT_CMU_MCSC_GDC		187
> -#define CLK_GOUT_CMU_MFC0_MFC0		188
> -#define CLK_GOUT_CMU_MFC0_WFD		189
> -#define CLK_GOUT_CMU_MIF_BUSP		190
> -#define CLK_GOUT_CMU_NPU_BUS		191
> -#define CLK_GOUT_CMU_PERIC0_BUS		192
> -#define CLK_GOUT_CMU_PERIC0_IP		193
> -#define CLK_GOUT_CMU_PERIC1_BUS		194
> -#define CLK_GOUT_CMU_PERIC1_IP		195
> -#define CLK_GOUT_CMU_PERIS_BUS		196
> -#define CLK_GOUT_CMU_SSP_BUS		197
> -#define CLK_GOUT_CMU_TNR_BUS		198
> -#define CLK_GOUT_CMU_VRA_BUS		199
> +#define CLK_FOUT_G3D_PLL		1
> +#define CLK_FOUT_MMC_PLL		2
> +#define CLK_FOUT_SHARED0_PLL		3
> +#define CLK_FOUT_SHARED1_PLL		4
> +#define CLK_FOUT_SHARED2_PLL		5
> +#define CLK_FOUT_SHARED3_PLL		6
> +#define CLK_FOUT_SHARED4_PLL		7
> +#define CLK_MOUT_PLL_G3D		8
> +#define CLK_MOUT_PLL_MMC		9
> +#define CLK_MOUT_PLL_SHARED0		10
> +#define CLK_MOUT_PLL_SHARED1		11
> +#define CLK_MOUT_PLL_SHARED2		12
> +#define CLK_MOUT_PLL_SHARED3		13
> +#define CLK_MOUT_PLL_SHARED4		14
> +#define CLK_MOUT_CMU_DPU_BUS		15
> +#define CLK_MOUT_CMU_APM_BUS		16
> +#define CLK_MOUT_CMU_AUD_CPU		17
> +#define CLK_MOUT_CMU_BUS0_BUS		18
> +#define CLK_MOUT_CMU_BUS1_BUS		19
> +#define CLK_MOUT_CMU_BUS1_SSS		20
> +#define CLK_MOUT_CMU_CIS_CLK0		21
> +#define CLK_MOUT_CMU_CIS_CLK1		22
> +#define CLK_MOUT_CMU_CIS_CLK2		23
> +#define CLK_MOUT_CMU_CIS_CLK3		24
> +#define CLK_MOUT_CMU_CIS_CLK4		25
> +#define CLK_MOUT_CMU_CIS_CLK5		26
> +#define CLK_MOUT_CMU_CMU_BOOST		27
> +#define CLK_MOUT_CMU_CORE_BUS		28
> +#define CLK_MOUT_CMU_CPUCL0_DBG_BUS	29
> +#define CLK_MOUT_CMU_CPUCL0_SWITCH	30
> +#define CLK_MOUT_CMU_CPUCL1_SWITCH	31
> +#define CLK_MOUT_CMU_CPUCL2_BUSP	32
> +#define CLK_MOUT_CMU_CPUCL2_SWITCH	33
> +#define CLK_MOUT_CMU_CSIS_BUS		34
> +#define CLK_MOUT_CMU_CSIS_OIS_MCU	35
> +#define CLK_MOUT_CMU_DNC_BUS		36
> +#define CLK_MOUT_CMU_DNC_BUSM		37
> +#define CLK_MOUT_CMU_DNS_BUS		38
> +#define CLK_MOUT_CMU_DPU		39
> +#define CLK_MOUT_CMU_DPU_ALT		40
> +#define CLK_MOUT_CMU_DSP_BUS		41
> +#define CLK_MOUT_CMU_G2D_G2D		42
> +#define CLK_MOUT_CMU_G2D_MSCL		43
> +#define CLK_MOUT_CMU_HPM		44
> +#define CLK_MOUT_CMU_HSI0_BUS		45
> +#define CLK_MOUT_CMU_HSI0_DPGTC		46
> +#define CLK_MOUT_CMU_HSI0_USB31DRD	47
> +#define CLK_MOUT_CMU_HSI0_USBDP_DEBUG	48
> +#define CLK_MOUT_CMU_HSI1_BUS		49
> +#define CLK_MOUT_CMU_HSI1_MMC_CARD	50
> +#define CLK_MOUT_CMU_HSI1_PCIE		51
> +#define CLK_MOUT_CMU_HSI1_UFS_CARD	52
> +#define CLK_MOUT_CMU_HSI1_UFS_EMBD	53
> +#define CLK_MOUT_CMU_HSI2_BUS		54
> +#define CLK_MOUT_CMU_HSI2_PCIE		55
> +#define CLK_MOUT_CMU_IPP_BUS		56
> +#define CLK_MOUT_CMU_ITP_BUS		57
> +#define CLK_MOUT_CMU_MCSC_BUS		58
> +#define CLK_MOUT_CMU_MCSC_GDC		59
> +#define CLK_MOUT_CMU_CMU_BOOST_CPU	60
> +#define CLK_MOUT_CMU_MFC0_MFC0		61
> +#define CLK_MOUT_CMU_MFC0_WFD		62
> +#define CLK_MOUT_CMU_MIF_BUSP		63
> +#define CLK_MOUT_CMU_MIF_SWITCH		64
> +#define CLK_MOUT_CMU_NPU_BUS		65
> +#define CLK_MOUT_CMU_PERIC0_BUS		66
> +#define CLK_MOUT_CMU_PERIC0_IP		67
> +#define CLK_MOUT_CMU_PERIC1_BUS		68
> +#define CLK_MOUT_CMU_PERIC1_IP		69
> +#define CLK_MOUT_CMU_PERIS_BUS		70
> +#define CLK_MOUT_CMU_SSP_BUS		71
> +#define CLK_MOUT_CMU_TNR_BUS		72
> +#define CLK_MOUT_CMU_VRA_BUS		73
> +#define CLK_MOUT_CMU_CMUREF		74
> +#define CLK_MOUT_CMU_CLK_CMUREF		75
> +#define CLK_DOUT_CMU_APM_BUS		76
> +#define CLK_DOUT_CMU_AUD_CPU		77
> +#define CLK_DOUT_CMU_BUS0_BUS		78
> +#define CLK_DOUT_CMU_BUS1_BUS		79
> +#define CLK_DOUT_CMU_BUS1_SSS		80
> +#define CLK_DOUT_CMU_CIS_CLK0		81
> +#define CLK_DOUT_CMU_CIS_CLK1		82
> +#define CLK_DOUT_CMU_CIS_CLK2		83
> +#define CLK_DOUT_CMU_CIS_CLK3		84
> +#define CLK_DOUT_CMU_CIS_CLK4		85
> +#define CLK_DOUT_CMU_CIS_CLK5		86
> +#define CLK_DOUT_CMU_CMU_BOOST		87
> +#define CLK_DOUT_CMU_CORE_BUS		88
> +#define CLK_DOUT_CMU_CPUCL0_DBG_BUS	89
> +#define CLK_DOUT_CMU_CPUCL0_SWITCH	90
> +#define CLK_DOUT_CMU_CPUCL1_SWITCH	91
> +#define CLK_DOUT_CMU_CPUCL2_BUSP	92
> +#define CLK_DOUT_CMU_CPUCL2_SWITCH	93
> +#define CLK_DOUT_CMU_CSIS_BUS		94
> +#define CLK_DOUT_CMU_CSIS_OIS_MCU	95
> +#define CLK_DOUT_CMU_DNC_BUS		96
> +#define CLK_DOUT_CMU_DNC_BUSM		97
> +#define CLK_DOUT_CMU_DNS_BUS		98
> +#define CLK_DOUT_CMU_DSP_BUS		99
> +#define CLK_DOUT_CMU_G2D_G2D		100
> +#define CLK_DOUT_CMU_G2D_MSCL		101
> +#define CLK_DOUT_CMU_G3D_SWITCH		102
> +#define CLK_DOUT_CMU_HPM		103
> +#define CLK_DOUT_CMU_HSI0_BUS		104
> +#define CLK_DOUT_CMU_HSI0_DPGTC		105
> +#define CLK_DOUT_CMU_HSI0_USB31DRD	106
> +#define CLK_DOUT_CMU_HSI0_USBDP_DEBUG	107
> +#define CLK_DOUT_CMU_HSI1_BUS		108
> +#define CLK_DOUT_CMU_HSI1_MMC_CARD	109
> +#define CLK_DOUT_CMU_HSI1_PCIE		110
> +#define CLK_DOUT_CMU_HSI1_UFS_CARD	111
> +#define CLK_DOUT_CMU_HSI1_UFS_EMBD	112
> +#define CLK_DOUT_CMU_HSI2_BUS		113
> +#define CLK_DOUT_CMU_HSI2_PCIE		114
> +#define CLK_DOUT_CMU_IPP_BUS		115
> +#define CLK_DOUT_CMU_ITP_BUS		116
> +#define CLK_DOUT_CMU_MCSC_BUS		117
> +#define CLK_DOUT_CMU_MCSC_GDC		118
> +#define CLK_DOUT_CMU_CMU_BOOST_CPU	119
> +#define CLK_DOUT_CMU_MFC0_MFC0		120
> +#define CLK_DOUT_CMU_MFC0_WFD		121
> +#define CLK_DOUT_CMU_MIF_BUSP		122
> +#define CLK_DOUT_CMU_NPU_BUS		123
> +#define CLK_DOUT_CMU_OTP		124
> +#define CLK_DOUT_CMU_PERIC0_BUS		125
> +#define CLK_DOUT_CMU_PERIC0_IP		126
> +#define CLK_DOUT_CMU_PERIC1_BUS		127
> +#define CLK_DOUT_CMU_PERIC1_IP		128
> +#define CLK_DOUT_CMU_PERIS_BUS		129
> +#define CLK_DOUT_CMU_SSP_BUS		130
> +#define CLK_DOUT_CMU_TNR_BUS		131
> +#define CLK_DOUT_CMU_VRA_BUS		132
> +#define CLK_DOUT_CMU_DPU		133
> +#define CLK_DOUT_CMU_DPU_ALT		134
> +#define CLK_DOUT_CMU_CLK_CMUREF		135
> +#define CLK_DOUT_CMU_SHARED0_DIV2	136
> +#define CLK_DOUT_CMU_SHARED0_DIV3	137
> +#define CLK_DOUT_CMU_SHARED0_DIV4	138
> +#define CLK_DOUT_CMU_SHARED1_DIV2	139
> +#define CLK_DOUT_CMU_SHARED1_DIV3	140
> +#define CLK_DOUT_CMU_SHARED1_DIV4	141
> +#define CLK_DOUT_CMU_SHARED2_DIV2	142
> +#define CLK_DOUT_CMU_SHARED4_DIV2	145
> +#define CLK_DOUT_CMU_SHARED4_DIV3	146
> +#define CLK_DOUT_CMU_SHARED4_DIV4	147
> +#define CLK_GOUT_CMU_G3D_BUS		148
> +#define CLK_GOUT_CMU_MIF_SWITCH		149
> +#define CLK_GOUT_CMU_APM_BUS		150
> +#define CLK_GOUT_CMU_AUD_CPU		151
> +#define CLK_GOUT_CMU_BUS0_BUS		152
> +#define CLK_GOUT_CMU_BUS1_BUS		153
> +#define CLK_GOUT_CMU_BUS1_SSS		154
> +#define CLK_GOUT_CMU_CIS_CLK0		155
> +#define CLK_GOUT_CMU_CIS_CLK1		156
> +#define CLK_GOUT_CMU_CIS_CLK2		157
> +#define CLK_GOUT_CMU_CIS_CLK3		158
> +#define CLK_GOUT_CMU_CIS_CLK4		159
> +#define CLK_GOUT_CMU_CIS_CLK5		160
> +#define CLK_GOUT_CMU_CORE_BUS		161
> +#define CLK_GOUT_CMU_CPUCL0_DBG_BUS	162
> +#define CLK_GOUT_CMU_CPUCL0_SWITCH	163
> +#define CLK_GOUT_CMU_CPUCL1_SWITCH	164
> +#define CLK_GOUT_CMU_CPUCL2_BUSP	165
> +#define CLK_GOUT_CMU_CPUCL2_SWITCH	166
> +#define CLK_GOUT_CMU_CSIS_BUS		167
> +#define CLK_GOUT_CMU_CSIS_OIS_MCU	168
> +#define CLK_GOUT_CMU_DNC_BUS		169
> +#define CLK_GOUT_CMU_DNC_BUSM		170
> +#define CLK_GOUT_CMU_DNS_BUS		171
> +#define CLK_GOUT_CMU_DPU		172
> +#define CLK_GOUT_CMU_DPU_BUS		173
> +#define CLK_GOUT_CMU_DSP_BUS		174
> +#define CLK_GOUT_CMU_G2D_G2D		175
> +#define CLK_GOUT_CMU_G2D_MSCL		176
> +#define CLK_GOUT_CMU_G3D_SWITCH		177
> +#define CLK_GOUT_CMU_HPM		178
> +#define CLK_GOUT_CMU_HSI0_BUS		179
> +#define CLK_GOUT_CMU_HSI0_DPGTC		180
> +#define CLK_GOUT_CMU_HSI0_USB31DRD	181
> +#define CLK_GOUT_CMU_HSI0_USBDP_DEBUG	182
> +#define CLK_GOUT_CMU_HSI1_BUS		183
> +#define CLK_GOUT_CMU_HSI1_MMC_CARD	184
> +#define CLK_GOUT_CMU_HSI1_PCIE		185
> +#define CLK_GOUT_CMU_HSI1_UFS_CARD	186
> +#define CLK_GOUT_CMU_HSI1_UFS_EMBD	187
> +#define CLK_GOUT_CMU_HSI2_BUS		188
> +#define CLK_GOUT_CMU_HSI2_PCIE		189
> +#define CLK_GOUT_CMU_IPP_BUS		190
> +#define CLK_GOUT_CMU_ITP_BUS		191
> +#define CLK_GOUT_CMU_MCSC_BUS		192
> +#define CLK_GOUT_CMU_MCSC_GDC		193
> +#define CLK_GOUT_CMU_MFC0_MFC0		194
> +#define CLK_GOUT_CMU_MFC0_WFD		195
> +#define CLK_GOUT_CMU_MIF_BUSP		196
> +#define CLK_GOUT_CMU_NPU_BUS		197
> +#define CLK_GOUT_CMU_PERIC0_BUS		198
> +#define CLK_GOUT_CMU_PERIC0_IP		199
> +#define CLK_GOUT_CMU_PERIC1_BUS		200
> +#define CLK_GOUT_CMU_PERIC1_IP		201
> +#define CLK_GOUT_CMU_PERIS_BUS		202
> +#define CLK_GOUT_CMU_SSP_BUS		203
> +#define CLK_GOUT_CMU_TNR_BUS		204
> +#define CLK_GOUT_CMU_VRA_BUS		205
>  
>  /* CMU_HSI0 */
>  #define CLK_MOUT_HSI0_BUS_USER				1
> 
> -- 
> 2.49.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend
  2025-08-20 19:29   ` Conor Dooley
@ 2025-08-23 17:27     ` Denzeel Oliva
  2025-08-24  8:16       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 7+ messages in thread
From: Denzeel Oliva @ 2025-08-23 17:27 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Krzysztof Kozlowski, Sylwester Nawrocki, Chanwoo Choi,
	Alim Akhtar, Michael Turquette, Stephen Boyd, Rob Herring,
	Conor Dooley, linux-samsung-soc, linux-clk, linux-arm-kernel,
	linux-kernel, devicetree

> This looks like a massive ABI break, where is the justification for
> doing it?
>
> Cheers,
> Conor.

Hi Conor,

I reordered because the current IDs don’t match CMU_TOP:
the PLL mux select is in PLL_CON0, not CON3, which gave wrong/low rates.
I also added DPU/CMUREF and a missing fixed-factor path to stop bad rates
and clk_summary hangs on hardware.
I’d rather fix the mapping now than keep a wrong layout.

Thanks,
Denzeel


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend
  2025-08-23 17:27     ` Denzeel Oliva
@ 2025-08-24  8:16       ` Krzysztof Kozlowski
  0 siblings, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-24  8:16 UTC (permalink / raw)
  To: Denzeel Oliva, Conor Dooley
  Cc: Sylwester Nawrocki, Chanwoo Choi, Alim Akhtar, Michael Turquette,
	Stephen Boyd, Rob Herring, Conor Dooley, linux-samsung-soc,
	linux-clk, linux-arm-kernel, linux-kernel, devicetree

On 23/08/2025 19:27, Denzeel Oliva wrote:
>> This looks like a massive ABI break, where is the justification for
>> doing it?
>>
>> Cheers,
>> Conor.
> 
> Hi Conor,
> 
> I reordered because the current IDs don’t match CMU_TOP:
> the PLL mux select is in PLL_CON0, not CON3, which gave wrong/low rates.


IDs are abstract, they cannot give wrong/low rates.

> I also added DPU/CMUREF and a missing fixed-factor path to stop bad rates
> and clk_summary hangs on hardware.


Not really related to ABI.

None of these justify changing the ABI or I don't understand the problem
at all.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-08-24  8:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-20 14:57 [PATCH v2 0/3] clk: samsung: exynos990: CMU_TOP fixes (mux regs, widths, factors) Denzeel Oliva
2025-08-20 14:57 ` [PATCH v2 1/3] clk: samsung: exynos990: Fix CMU TOP mux/div widths and add fixed-factors Denzeel Oliva
2025-08-20 14:57 ` [PATCH v2 2/3] dt-bindings: clock: exynos990: Reorder IDs clocks and extend Denzeel Oliva
2025-08-20 19:29   ` Conor Dooley
2025-08-23 17:27     ` Denzeel Oliva
2025-08-24  8:16       ` Krzysztof Kozlowski
2025-08-20 14:57 ` [PATCH v2 3/3] clk: samsung: exynos990: Fix PLL mux regs, add DPU/CMUREF Denzeel Oliva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).