public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC
       [not found] <CGME20240729043102epcas1p4952d0437ef733036b8fdbe28b0ef21ca@epcas1p4.samsung.com>
@ 2024-07-29  4:30 ` Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions Kwanghoon Son
                     ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-29  4:30 UTC (permalink / raw)
  To: krzk, s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel,
	Kwanghoon Son

DPUM (Display Processing Unit Main) is main dpu for Exynosautov9.

This patches enable clock for dpum, sysmmu(iommu).

Kwanghoon Son (4):
  dt-bindings: clk: exynosautov9: add dpum clock definitions
  dt-bindings: clock: exynosautov9: add schema for dpum
  arm64: dts: exynosautov9: add dpum clock DT nodes
  clk: samsung: exynosautov9: add dpum clock support

 .../clock/samsung,exynosautov9-clock.yaml     | 19 +++++
 arch/arm64/boot/dts/exynos/exynosautov9.dtsi  | 11 +++
 drivers/clk/samsung/clk-exynosautov9.c        | 83 +++++++++++++++++++
 .../dt-bindings/clock/samsung,exynosautov9.h  | 11 +++
 4 files changed, 124 insertions(+)


base-commit: c33ffdb70cc6df4105160f991288e7d2567d7ffa
-- 
2.39.2



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

* [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions
  2024-07-29  4:30 ` [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC Kwanghoon Son
@ 2024-07-29  4:30   ` Kwanghoon Son
  2024-07-29  6:03     ` Krzysztof Kozlowski
  2024-07-29  4:30   ` [PATCH 2/4] dt-bindings: clock: exynosautov9: add schema for dpum Kwanghoon Son
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-29  4:30 UTC (permalink / raw)
  To: krzk, s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel,
	Kwanghoon Son

Add dpum clk definitions.

Signed-off-by: Kwanghoon Son <k.son@samsung.com>
---
 include/dt-bindings/clock/samsung,exynosautov9.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/include/dt-bindings/clock/samsung,exynosautov9.h b/include/dt-bindings/clock/samsung,exynosautov9.h
index 3065375c2d8b..ce8fb8f7d718 100644
--- a/include/dt-bindings/clock/samsung,exynosautov9.h
+++ b/include/dt-bindings/clock/samsung,exynosautov9.h
@@ -179,6 +179,17 @@
 #define CLK_GOUT_CORE_CCI_PCLK		4
 #define CLK_GOUT_CORE_CMU_CORE_PCLK	5
 
+/* CMU_DPUM */
+#define CLK_MOUT_DPUM_BUS_USER		1
+#define CLK_DOUT_DPUM_BUSP		2
+#define CLK_GOUT_DPUM_ACLK_DECON	3
+#define CLK_GOUT_DPUM_ACLK_DMA		4
+#define CLK_GOUT_DPUM_ACLK_DPP		5
+#define CLK_GOUT_DPUM_SYSMMU_D0_CLK	6
+#define CLK_GOUT_DPUM_SYSMMU_D1_CLK	7
+#define CLK_GOUT_DPUM_SYSMMU_D2_CLK	8
+#define CLK_GOUT_DPUM_SYSMMU_D3_CLK	9
+
 /* CMU_FSYS0 */
 #define CLK_MOUT_FSYS0_BUS_USER		1
 #define CLK_MOUT_FSYS0_PCIE_USER	2
-- 
2.39.2



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

* [PATCH 2/4] dt-bindings: clock: exynosautov9: add schema for dpum
  2024-07-29  4:30 ` [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions Kwanghoon Son
@ 2024-07-29  4:30   ` Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 3/4] arm64: dts: exynosautov9: add dpum clock DT nodes Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 4/4] clk: samsung: exynosautov9: add dpum clock support Kwanghoon Son
  3 siblings, 0 replies; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-29  4:30 UTC (permalink / raw)
  To: krzk, s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel,
	Kwanghoon Son

Add "samsung,exynosautov9-cmu-dpum" compatibles.

Signed-off-by: Kwanghoon Son <k.son@samsung.com>
---
 .../clock/samsung,exynosautov9-clock.yaml     | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
index 55c4f94a14d1..9c8041fc9d4b 100644
--- a/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
+++ b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
@@ -35,6 +35,7 @@ properties:
       - samsung,exynosautov9-cmu-top
       - samsung,exynosautov9-cmu-busmc
       - samsung,exynosautov9-cmu-core
+      - samsung,exynosautov9-cmu-dpum
       - samsung,exynosautov9-cmu-fsys0
       - samsung,exynosautov9-cmu-fsys1
       - samsung,exynosautov9-cmu-fsys2
@@ -109,6 +110,24 @@ allOf:
             - const: oscclk
             - const: dout_clkcmu_core_bus
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-dpum
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_DPUM bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_dpum_bus
+
   - if:
       properties:
         compatible:
-- 
2.39.2



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

* [PATCH 3/4] arm64: dts: exynosautov9: add dpum clock DT nodes
  2024-07-29  4:30 ` [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 2/4] dt-bindings: clock: exynosautov9: add schema for dpum Kwanghoon Son
@ 2024-07-29  4:30   ` Kwanghoon Son
  2024-07-29  4:30   ` [PATCH 4/4] clk: samsung: exynosautov9: add dpum clock support Kwanghoon Son
  3 siblings, 0 replies; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-29  4:30 UTC (permalink / raw)
  To: krzk, s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel,
	Kwanghoon Son

Add dpum clock for sysmmu, dpu.

Signed-off-by: Kwanghoon Son <k.son@samsung.com>
---
 arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi
index 0248329da49a..a8e57f499fec 100644
--- a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi
@@ -251,6 +251,17 @@ cmu_fsys2: clock-controller@17c00000 {
 				      "dout_fsys2_clkcmu_ethernet";
 		};
 
+		cmu_dpum: clock-controller@18c00000 {
+			compatible = "samsung,exynosautov9-cmu-dpum";
+			reg = <0x18c00000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&xtcxo>,
+				 <&cmu_top DOUT_CLKCMU_DPUM_BUS>;
+			clock-names = "oscclk",
+				      "dout_clkcmu_dpum_bus";
+		};
+
 		cmu_core: clock-controller@1b030000 {
 			compatible = "samsung,exynosautov9-cmu-core";
 			reg = <0x1b030000 0x8000>;
-- 
2.39.2



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

* [PATCH 4/4] clk: samsung: exynosautov9: add dpum clock support
  2024-07-29  4:30 ` [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC Kwanghoon Son
                     ` (2 preceding siblings ...)
  2024-07-29  4:30   ` [PATCH 3/4] arm64: dts: exynosautov9: add dpum clock DT nodes Kwanghoon Son
@ 2024-07-29  4:30   ` Kwanghoon Son
  3 siblings, 0 replies; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-29  4:30 UTC (permalink / raw)
  To: krzk, s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel,
	Kwanghoon Son

Add dpum clock for exynosautov9.

Signed-off-by: Kwanghoon Son <k.son@samsung.com>
---
 drivers/clk/samsung/clk-exynosautov9.c | 83 ++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/drivers/clk/samsung/clk-exynosautov9.c b/drivers/clk/samsung/clk-exynosautov9.c
index f04bacacab2c..3569748b30a9 100644
--- a/drivers/clk/samsung/clk-exynosautov9.c
+++ b/drivers/clk/samsung/clk-exynosautov9.c
@@ -20,6 +20,7 @@
 #define CLKS_NR_TOP			(GOUT_CLKCMU_PERIS_BUS + 1)
 #define CLKS_NR_BUSMC			(CLK_GOUT_BUSMC_SPDMA_PCLK + 1)
 #define CLKS_NR_CORE			(CLK_GOUT_CORE_CMU_CORE_PCLK + 1)
+#define CLKS_NR_DPUM			(CLK_GOUT_DPUM_SYSMMU_D3_CLK + 1)
 #define CLKS_NR_FSYS0			(CLK_GOUT_FSYS0_PCIE_GEN3B_4L_CLK + 1)
 #define CLKS_NR_FSYS1			(CLK_GOUT_FSYS1_USB30_1_ACLK + 1)
 #define CLKS_NR_FSYS2			(CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO + 1)
@@ -1076,6 +1077,85 @@ static const struct samsung_cmu_info core_cmu_info __initconst = {
 	.clk_name		= "dout_clkcmu_core_bus",
 };
 
+/* ---- CMU_DPUM ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_DPUM (0x18c00000) */
+#define PLL_CON0_MUX_CLKCMU_DPUM_BUS_USER				0x0600
+#define CLK_CON_DIV_DIV_CLK_DPUM_BUSP					0x1800
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DECON		0x202c
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DMA		0x2030
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DPP		0x2034
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D0_DPUM_IPCLKPORT_CLK_S1	0x207c
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D1_DPUM_IPCLKPORT_CLK_S1	0x2084
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D2_DPUM_IPCLKPORT_CLK_S1	0x208c
+#define CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D3_DPUM_IPCLKPORT_CLK_S1	0x2094
+
+static const unsigned long dpum_clk_regs[] __initconst = {
+	PLL_CON0_MUX_CLKCMU_DPUM_BUS_USER,
+	CLK_CON_DIV_DIV_CLK_DPUM_BUSP,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DECON,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DMA,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DPP,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D0_DPUM_IPCLKPORT_CLK_S1,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D1_DPUM_IPCLKPORT_CLK_S1,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D2_DPUM_IPCLKPORT_CLK_S1,
+	CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D3_DPUM_IPCLKPORT_CLK_S1,
+};
+
+PNAME(mout_dpum_bus_user_p) = { "oscclk", "dout_clkcmu_dpum_bus" };
+
+static const struct samsung_mux_clock dpum_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_DPUM_BUS_USER, "mout_dpum_bus_user",
+	    mout_dpum_bus_user_p, PLL_CON0_MUX_CLKCMU_DPUM_BUS_USER, 4, 1),
+};
+
+static const struct samsung_div_clock dpum_div_clks[] __initconst = {
+	DIV(CLK_DOUT_DPUM_BUSP, "dout_dpum_busp", "mout_dpum_bus_user",
+	    CLK_CON_DIV_DIV_CLK_DPUM_BUSP, 0, 3),
+};
+
+static const struct samsung_gate_clock dpum_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_DPUM_ACLK_DECON, "gout_dpum_decon_aclk",
+	     "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DECON, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_ACLK_DMA, "gout_dpum_dma_aclk", "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DMA, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_ACLK_DPP, "gout_dpum_dpp_aclk", "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_DPUM_IPCLKPORT_ACLK_DPP, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_SYSMMU_D0_CLK, "gout_dpum_sysmmu_d0_clk",
+	     "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D0_DPUM_IPCLKPORT_CLK_S1, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_SYSMMU_D1_CLK, "gout_dpum_sysmmu_d1_clk",
+	     "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D1_DPUM_IPCLKPORT_CLK_S1, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_SYSMMU_D2_CLK, "gout_dpum_sysmmu_d2_clk",
+	     "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D2_DPUM_IPCLKPORT_CLK_S1, 21,
+	     0, 0),
+	GATE(CLK_GOUT_DPUM_SYSMMU_D3_CLK, "gout_dpum_sysmmu_d3_clk",
+	     "mout_dpum_bus_user",
+	     CLK_CON_GAT_GOUT_BLK_DPUM_UID_SYSMMU_D3_DPUM_IPCLKPORT_CLK_S1, 21,
+	     0, 0),
+};
+
+static const struct samsung_cmu_info dpum_cmu_info __initconst = {
+	.mux_clks		= dpum_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(dpum_mux_clks),
+	.div_clks		= dpum_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(dpum_div_clks),
+	.gate_clks		= dpum_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(dpum_gate_clks),
+	.nr_clk_ids		= CLKS_NR_DPUM,
+	.clk_regs		= dpum_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(dpum_clk_regs),
+	.clk_name		= "dout_clkcmu_dpum_bus",
+};
+
 /* ---- CMU_FSYS0 ---------------------------------------------------------- */
 
 /* Register Offset definitions for CMU_FSYS2 (0x17700000) */
@@ -2085,6 +2165,9 @@ static const struct of_device_id exynosautov9_cmu_of_match[] = {
 	}, {
 		.compatible = "samsung,exynosautov9-cmu-core",
 		.data = &core_cmu_info,
+	}, {
+		.compatible = "samsung,exynosautov9-cmu-dpum",
+		.data = &dpum_cmu_info,
 	}, {
 		.compatible = "samsung,exynosautov9-cmu-fsys0",
 		.data = &fsys0_cmu_info,
-- 
2.39.2



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

* Re: [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions
  2024-07-29  4:30   ` [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions Kwanghoon Son
@ 2024-07-29  6:03     ` Krzysztof Kozlowski
  2024-07-30  5:49       ` Kwanghoon Son
  0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2024-07-29  6:03 UTC (permalink / raw)
  To: Kwanghoon Son, s.nawrocki, cw00.choi, alim.akhtar, mturquette,
	sboyd, robh, conor+dt, tomasz.figa
  Cc: linux-samsung-soc, linux-clk, devicetree, linux-arm-kernel

On 29/07/2024 06:30, Kwanghoon Son wrote:
> Add dpum clk definitions.
> 
> Signed-off-by: Kwanghoon Son <k.son@samsung.com>
> ---
>  include/dt-bindings/clock/samsung,exynosautov9.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 

Why using different subject prefixes for binding patches?

Anyway, headers go with the schema/bindings file.

Best regards,
Krzysztof



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

* Re: [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions
  2024-07-29  6:03     ` Krzysztof Kozlowski
@ 2024-07-30  5:49       ` Kwanghoon Son
  0 siblings, 0 replies; 7+ messages in thread
From: Kwanghoon Son @ 2024-07-30  5:49 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: s.nawrocki, cw00.choi, alim.akhtar, mturquette, sboyd, robh,
	conor+dt, tomasz.figa, linux-samsung-soc, linux-clk, devicetree,
	linux-arm-kernel

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

On Mon, Jul 29, 2024 at 08:03:49AM +0200, Krzysztof Kozlowski wrote:
> On 29/07/2024 06:30, Kwanghoon Son wrote:
> > Add dpum clk definitions.
> > 
> > Signed-off-by: Kwanghoon Son <k.son@samsung.com>
> > ---
> >  include/dt-bindings/clock/samsung,exynosautov9.h | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> 
> Why using different subject prefixes for binding patches?
> 
> Anyway, headers go with the schema/bindings file.

Thanks for feedback. I'll squash patch 1,2 in v2.

Kwang.

> 
> Best regards,
> Krzysztof
> 

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

end of thread, other threads:[~2024-07-30  5:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20240729043102epcas1p4952d0437ef733036b8fdbe28b0ef21ca@epcas1p4.samsung.com>
2024-07-29  4:30 ` [PATCH 0/4] dpum clock support for Exynos Auto v9 SoC Kwanghoon Son
2024-07-29  4:30   ` [PATCH 1/4] dt-bindings: clk: exynosautov9: add dpum clock definitions Kwanghoon Son
2024-07-29  6:03     ` Krzysztof Kozlowski
2024-07-30  5:49       ` Kwanghoon Son
2024-07-29  4:30   ` [PATCH 2/4] dt-bindings: clock: exynosautov9: add schema for dpum Kwanghoon Son
2024-07-29  4:30   ` [PATCH 3/4] arm64: dts: exynosautov9: add dpum clock DT nodes Kwanghoon Son
2024-07-29  4:30   ` [PATCH 4/4] clk: samsung: exynosautov9: add dpum clock support Kwanghoon Son

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox