From: Raghav Sharma <raghav.s@samsung.com>
To: krzk@kernel.org, s.nawrocki@samsung.com, cw00.choi@samsung.com,
peter.griffin@linaro.org, alim.akhtar@samsung.com,
sboyd@kernel.org, bmasney+clk@redhat.com,
jbrunet+clk@baylibre.com, robh@kernel.org, conor+dt@kernel.org,
raghav.s@samsung.com
Cc: linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, is.gandhi@samsung.com,
ts.amit@samsung.com, pokala.reddy@samsung.com
Subject: [PATCH v2 02/14] dt-bindings: clock: exynos8855: add top & peric clock definitions
Date: Fri, 9 Oct 2026 17:31:25 +0530 [thread overview]
Message-ID: <20261009120137.2801911-3-raghav.s@samsung.com> (raw)
In-Reply-To: <20261009120137.2801911-1-raghav.s@samsung.com>
Add device tree clock binding definitions for CMU_TOP & CMU_PERIC
Signed-off-by: Raghav Sharma <raghav.s@samsung.com>
---
.../clock/samsung,exynos8855-clock.yaml | 115 ++++++++++
.../dt-bindings/clock/samsung,exynos8855.h | 206 ++++++++++++++++++
2 files changed, 321 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynos8855-clock.yaml
create mode 100644 include/dt-bindings/clock/samsung,exynos8855.h
diff --git a/Documentation/devicetree/bindings/clock/samsung,exynos8855-clock.yaml b/Documentation/devicetree/bindings/clock/samsung,exynos8855-clock.yaml
new file mode 100644
index 000000000000..073c19debd0d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/samsung,exynos8855-clock.yaml
@@ -0,0 +1,115 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/samsung,exynos8855-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung Exynos 8855 SoC clock controller
+
+maintainers:
+ - Raghav Sharma <raghav.s@samsung.com>
+
+description: |
+ Exynos 8855 clock controller is comprised of several CMU units, generating
+ clocks for different domains. Those CMU units are modeled as separate device
+ tree nodes, and might depend on each other. Root clocks in that clock tree are
+ two external clocks:: OSCCLK/XTCXO (76.8 MHz) and RTCCLK/XrtcXTI (32768 Hz).
+ The external OSCCLK must be defined as fixed-rate clock in dts.
+
+ CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
+ dividers; all other clocks of function blocks (other CMUs) are usually
+ derived from CMU_TOP.
+
+ Each clock is assigned an identifier and client nodes can use this identifier
+ to specify the clock which they consume. All clocks available for usage
+ in clock consumer nodes are defined as preprocessor macros in
+ 'include/dt-bindings/clock/samsung,exynos8855.h' header.
+
+properties:
+ compatible:
+ enum:
+ - samsung,exynos8855-cmu-peric
+ - samsung,exynos8855-cmu-top
+
+ clocks:
+ minItems: 1
+ maxItems: 4
+
+ clock-names:
+ minItems: 1
+ maxItems: 4
+
+ "#clock-cells":
+ const: 1
+
+ reg:
+ maxItems: 1
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: samsung,exynos8855-cmu-peric
+
+ then:
+ properties:
+ clocks:
+ items:
+ - description: External reference clock (76.8 MHz)
+ - description: CMU_PERIC NOC clock (from CMU_TOP)
+ - description: CMU_PERIC MMC_CARD clock (from CMU_TOP)
+ - description: CMU_PERIC IP clock (from CMU_TOP)
+
+ clock-names:
+ items:
+ - const: oscclk
+ - const: bus
+ - const: mmc_card
+ - const: ip
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: samsung,exynos8855-cmu-top
+
+ then:
+ properties:
+ clocks:
+ items:
+ - description: External reference clock (76.8 MHz)
+
+ clock-names:
+ items:
+ - const: oscclk
+
+required:
+ - compatible
+ - "#clock-cells"
+ - clocks
+ - clock-names
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/samsung,exynos8855.h>
+
+ cmu_peric0: clock-controller@15400000 {
+ compatible = "samsung,exynos8855-cmu-peric";
+ reg = <0x15400000 0x8000>;
+ #clock-cells = <1>;
+
+ clocks = <&xtcxo>,
+ <&cmu_top CLKCMU_DOUT_PERIC_NOC>,
+ <&cmu_top CLKCMU_DOUT_PERIC_MMC_CARD>,
+ <&cmu_top CLKCMU_DOUT_PERIC_IP>;
+ clock-names = "oscclk",
+ "bus",
+ "mmc_card",
+ "ip";
+ };
+
+...
diff --git a/include/dt-bindings/clock/samsung,exynos8855.h b/include/dt-bindings/clock/samsung,exynos8855.h
new file mode 100644
index 000000000000..cd445bb45070
--- /dev/null
+++ b/include/dt-bindings/clock/samsung,exynos8855.h
@@ -0,0 +1,206 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2026 Samsung Electronics Co., Ltd.
+ * Author: Raghav Sharma <raghav.s@samsung.com>
+ *
+ * Device Tree binding constants for Exynos 8855 clock controller.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_EXYNOS8855_H
+#define _DT_BINDINGS_CLOCK_EXYNOS8855_H
+
+/* CMU_TOP */
+#define FOUT_SHARED0_PLL 1
+#define FOUT_SHARED1_PLL 2
+#define FOUT_SHARED2_PLL 3
+#define FOUT_SHARED3_PLL 4
+#define FOUT_SHARED4_PLL 5
+#define FOUT_MMC_PLL 6
+#define MOUT_SHARED0_PLL 7
+#define MOUT_SHARED1_PLL 8
+#define MOUT_SHARED2_PLL 9
+#define MOUT_SHARED3_PLL 10
+#define MOUT_SHARED4_PLL 11
+#define MOUT_MMC_PLL 12
+#define CLKCMU_MOUT_PERIC_NOC 13
+#define CLKCMU_MOUT_PERIC_MMC_CARD 14
+#define CLKCMU_MOUT_PERIC_IP 15
+#define CLKCMU_DOUT_PERIC_NOC 16
+#define CLKCMU_DOUT_PERIC_MMC_CARD 17
+#define CLKCMU_DOUT_PERIC_IP 18
+#define DOUT_SHARED0_DIV1 19
+#define DOUT_SHARED0_DIV2 20
+#define DOUT_SHARED0_DIV3 21
+#define DOUT_SHARED0_DIV4 22
+#define DOUT_SHARED1_DIV1 23
+#define DOUT_SHARED1_DIV2 24
+#define DOUT_SHARED1_DIV3 25
+#define DOUT_SHARED1_DIV4 26
+#define DOUT_SHARED2_DIV1 27
+#define DOUT_SHARED2_DIV2 28
+#define DOUT_SHARED2_DIV3 29
+#define DOUT_SHARED2_DIV4 30
+#define DOUT_SHARED3_DIV1 31
+#define DOUT_SHARED3_DIV2 32
+#define DOUT_SHARED3_DIV3 33
+#define DOUT_SHARED3_DIV4 34
+#define DOUT_SHARED4_DIV1 35
+#define DOUT_SHARED4_DIV2 36
+#define DOUT_SHARED4_DIV3 37
+#define DOUT_SHARED4_DIV4 38
+#define FOUT_MMC_PLL_DIV1 39
+#define FOUT_MMC_PLL_DIV2 40
+#define CLKCMU_MOUT_PERIS_GIC 41
+#define CLKCMU_MOUT_PERIS_NOC 42
+#define CLKCMU_DOUT_PERIS_GIC 43
+#define CLKCMU_DOUT_PERIS_NOC 44
+#define FOUT_MMC_PLL_CLKOUT_DIV2 45
+#define CLKCMU_MOUT_HSI_NOC 46
+#define CLKCMU_MOUT_HSI_UFS_EMBD 47
+#define CLKCMU_DOUT_HSI_NOC 48
+#define CLKCMU_DOUT_HSI_UFS_EMBD 49
+#define CLKCMU_MOUT_USB_NOC 50
+#define CLKCMU_MOUT_USB_USB20DRD 51
+#define CLKCMU_DOUT_USB_NOC 52
+#define CLKCMU_DOUT_USB_USB20DRD 53
+#define FOUT_MIF_SWITCH_PLL 54
+#define MOUT_MIF_SWITCH_PLL 55
+#define FOUT_MMC_PLL_DIV3 56
+#define FOUT_MMC_PLL_DIV4 57
+#define FOUT_MIF_SWITCH_PLL_DIV1 58
+#define FOUT_MIF_SWITCH_PLL_DIV2 59
+#define FOUT_MIF_SWITCH_PLL_DIV3 60
+#define FOUT_MIF_SWITCH_PLL_DIV4 61
+#define CLKCMU_MOUT_AUD_CPU 62
+#define CLKCMU_MOUT_AUD_NOC 63
+#define CLKCMU_MOUT_CPUCL0_SWITCH 64
+#define CLKCMU_MOUT_CPUCL0_NOCP 65
+#define CLKCMU_MOUT_DSU_SWITCH 66
+#define CLKCMU_MOUT_CPUCL1_SWITCH 67
+#define CLKCMU_MOUT_CIS_CLK0 68
+#define CLKCMU_MOUT_CIS_CLK1 69
+#define CLKCMU_MOUT_CIS_CLK2 70
+#define CLKCMU_MOUT_CIS_CLK3 71
+#define CLKCMU_MOUT_CIS_CLK4 72
+#define CLKCMU_MOUT_CMU_BOOST_TOP 73
+#define CLKCMU_MOUT_CMU_BOOST 74
+#define CLKCMU_MOUT_CMU_BOOST_CPU 75
+#define CLKCMU_MOUT_CMU_BOOST_MIF0 76
+#define CLKCMU_MOUT_CSIS_NOC 77
+#define CLKCMU_MOUT_CSTAT_NOC 78
+#define CLKCMU_MOUT_CSTAT_BYRP 79
+#define CLKCMU_MOUT_DPU_NOC 80
+#define CLKCMU_MOUT_G3DCORE_SWITCH 81
+#define CLKCMU_MOUT_M2M_NOC 82
+#define CLKCMU_MOUT_M2M_JPEG 83
+#define CLKCMU_MOUT_M2M_GDC 84
+#define CLKCMU_MOUT_MIF1_NOCP 85
+#define CLKCMU_MOUT_MFC_NOC 86
+#define CLKCMU_MOUT_MIF0_NOCP 87
+#define CLKCMU_MOUT_NOCL0_NOC 88
+#define CLKCMU_MOUT_NOCL1A_NOC 89
+#define CLKCMU_MOUT_RGBP_NOC 90
+#define CLKCMU_MOUT_YUVP_NOC 91
+#define CLKCMU_MOUT_ALIVE_NOC 92
+#define CLKCMU_MOUT_CSIS_DCPHY 93
+#define CLKCMU_MOUT_CSIS_OIS 94
+#define CLKCMU_MOUT_ICPU_NOCD_0 95
+#define CLKCMU_MOUT_ICPU_NOCD_1 96
+#define CLKCMU_MOUT_GNPU0_NOC 97
+#define CLKCMU_MOUT_GNPU0_XMAA 98
+#define CLKCMU_MOUT_SDMA_NOC 99
+#define CLKCMU_MOUT_DNC_HTU 100
+#define CLKCMU_MOUT_DNC_NOC 101
+#define CLKCMU_MOUT_PSP_NOC 102
+#define CLKCMU_MOUT_G3D_NOCP 103
+#define CLKCMU_MOUT_USI_NOC 104
+#define CLKCMU_MOUT_USI_IP 105
+#define CLKCMU_MOUT_CPUCL0_DBG_NOC 106
+#define CLKCMU_MOUT_BOOST_RCO 107
+#define CLKCMU_MOUT_MIF0_SWITCH 108
+#define CLKCMU_MOUT_MIF1_SWITCH 109
+#define CLKCMU_MOUT_NOCL1B_NOC 110
+#define CLKCMU_MOUT_CPUCL2_SWITCH 111
+#define CLKCMU_MOUT_CMU_BOOST_MIF1 112
+#define CLKCMU_MOUT_CSTAT_MCSC 113
+#define CLKCMU_MOUT_G3D_HTU 114
+#define CLKCMU_DOUT_AUD_CPU 115
+#define CLKCMU_DOUT_AUD_NOC 116
+#define CLKCMU_DOUT_CPUCL0_SWITCH 117
+#define CLKCMU_DOUT_CPUCL0_NOCP 118
+#define CLKCMU_DOUT_DSU_SWITCH 119
+#define CLKCMU_DOUT_CPUCL1_SWITCH 120
+#define CLKCMU_DOUT_CIS_CLK0 121
+#define CLKCMU_DOUT_CIS_CLK1 122
+#define CLKCMU_DOUT_CIS_CLK2 123
+#define CLKCMU_DOUT_CIS_CLK3 124
+#define CLKCMU_DOUT_CIS_CLK4 125
+#define CLKCMU_DOUT_CMU_BOOST_TOP 126
+#define CLKCMU_DOUT_CMU_BOOST 127
+#define CLKCMU_DOUT_CMU_BOOST_CPU 128
+#define CLKCMU_DOUT_CMU_BOOST_MIF0 129
+#define CLKCMU_DOUT_CSIS_NOC 130
+#define CLKCMU_DOUT_CSTAT_NOC 131
+#define CLKCMU_DOUT_CSTAT_BYRP 132
+#define CLKCMU_DOUT_DPU_NOC 133
+#define CLKCMU_DOUT_G3DCORE_SWITCH 134
+#define CLKCMU_DOUT_M2M_NOC 135
+#define CLKCMU_DOUT_M2M_JPEG 136
+#define CLKCMU_DOUT_M2M_GDC 137
+#define CLKCMU_DOUT_MIF1_NOCP 138
+#define CLKCMU_DOUT_MFC_NOC 139
+#define CLKCMU_DOUT_MIF0_NOCP 140
+#define CLKCMU_DOUT_NOCL0_NOC 141
+#define CLKCMU_DOUT_NOCL1A_NOC 142
+#define CLKCMU_DOUT_RGBP_NOC 143
+#define CLKCMU_DOUT_YUVP_NOC 144
+#define CLKCMU_DOUT_ALIVE_NOC 145
+#define CLKCMU_DOUT_CSIS_DCPHY 146
+#define CLKCMU_DOUT_CSIS_OIS 147
+#define CLKCMU_DOUT_ICPU_NOCD_0 148
+#define CLKCMU_DOUT_ICPU_NOCD_1 149
+#define CLKCMU_DOUT_GNPU0_NOC 150
+#define CLKCMU_DOUT_GNPU0_XMAA 151
+#define CLKCMU_DOUT_SDMA_NOC 152
+#define CLKCMU_DOUT_DNC_HTU 153
+#define CLKCMU_DOUT_DNC_NOC 154
+#define CLKCMU_DOUT_PSP_NOC 155
+#define CLKCMU_DOUT_G3D_NOCP 156
+#define CLKCMU_DOUT_USI_NOC 157
+#define CLKCMU_DOUT_USI_IP 158
+#define CLKCMU_DOUT_CPUCL0_DBG_NOC 159
+#define CLKCMU_DOUT_NOCL1B_NOC 160
+#define CLKCMU_DOUT_CPUCL2_SWITCH 161
+#define CLKCMU_DOUT_CMU_BOOST_MIF1 162
+#define CLKCMU_DOUT_CSTAT_MCSC 163
+#define CLKCMU_DOUT_G3D_HTU 164
+
+/* CMU_PERIC */
+#define CLK_MOUT_PERIC_IP_USER 1
+#define CLK_MOUT_PERIC_MMC_CARD_USER 2
+#define CLK_MOUT_PERIC_NOC_USER 3
+#define CLK_MOUT_PERIC_I2C 4
+#define CLK_MOUT_PERIC_UART_DBG 5
+#define CLK_MOUT_PERIC_USI00 6
+#define CLK_MOUT_PERIC_USI01 7
+#define CLK_MOUT_PERIC_USI02 8
+#define CLK_MOUT_PERIC_USI03 9
+#define CLK_MOUT_PERIC_USI04 10
+#define CLK_MOUT_PERIC_USI09_USI_OIS 11
+#define CLK_MOUT_PERIC_USI10_USI_OIS 12
+#define CLK_DOUT_PERIC_NOCP 13
+#define CLK_DOUT_PERIC_UART_DBG 14
+#define CLK_DOUT_PERIC_USI00_USI 15
+#define CLK_DOUT_PERIC_USI01_USI 16
+#define CLK_DOUT_PERIC_USI02_USI 17
+#define CLK_DOUT_PERIC_USI03_USI 18
+#define CLK_DOUT_PERIC_USI04_USI 19
+#define CLK_DOUT_PERIC_USI09_USI_OIS 20
+#define CLK_DOUT_PERIC_USI10_USI_OIS 21
+#define CLK_DOUT_PERIC_USI_I2C 22
+#define CLK_GOUT_CMU_PERIC 23
+#define CLK_GOUT_SYSREG_PERIC 24
+#define CLK_GOUT_UART_DBG_PERIC 25
+#define CLK_GOUT_USI_PERIC 26
+
+#endif /* _DT_BINDINGS_CLOCK_EXYNOS8855_H */
--
2.34.1
next prev parent reply other threads:[~2026-10-09 11:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20261009114331epcas5p37f60df8cdaf502a0cc492ad5eacf5e05@epcas5p3.samsung.com>
2026-10-09 12:01 ` [PATCH v2 00/14] Add clock support for Exynos8855 SoC Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 01/14] dt-bindings: soc: samsung: Exynos8855 SYSREG compatibles Raghav Sharma
2026-10-09 12:01 ` Raghav Sharma [this message]
2026-10-09 12:01 ` [PATCH v2 03/14] dt-bindings: clock: exynos8855: add peris clock definitions Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 04/14] dt-bindings: clock: exynos8855: add hsi " Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 05/14] dt-bindings: clock: exynos8855: add usb " Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 06/14] clk: samsung: clk-pll: Add support for pll_4313 Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 07/14] clk: samsung: exynos8855: add block top and peric clock support Raghav Sharma
2026-10-09 12:12 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 08/14] clk: samsung: exynos8855: add block peris " Raghav Sharma
2026-10-09 12:23 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 09/14] clk: samsung: exynos8855: add block hsi " Raghav Sharma
2026-10-09 12:30 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 10/14] clk: samsung: exynos8855: add block usb " Raghav Sharma
2026-10-09 12:48 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 11/14] arm64: dts: exynos8855: add cmu_top & cmu_peric clock DT nodes Raghav Sharma
2026-10-09 12:57 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 12/14] arm64: dts: exynos8855: add cmu_peris " Raghav Sharma
2026-10-09 12:01 ` [PATCH v2 13/14] arm64: dts: exynos8855: add cmu_hsi " Raghav Sharma
2026-10-09 13:11 ` sashiko-bot
2026-10-09 12:01 ` [PATCH v2 14/14] arm64: dts: exynos8855: add cmu_usb " Raghav Sharma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261009120137.2801911-3-raghav.s@samsung.com \
--to=raghav.s@samsung.com \
--cc=alim.akhtar@samsung.com \
--cc=bmasney+clk@redhat.com \
--cc=conor+dt@kernel.org \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=is.gandhi@samsung.com \
--cc=jbrunet+clk@baylibre.com \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=peter.griffin@linaro.org \
--cc=pokala.reddy@samsung.com \
--cc=robh@kernel.org \
--cc=s.nawrocki@samsung.com \
--cc=sboyd@kernel.org \
--cc=ts.amit@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox