lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250915-exynos9610-clocks-v1-4-3f615022b178@chimac.ro>
Date: Sun, 14 Sep 2025 21:19:57 +0000
From: Alexandru Chimac <alex@...mac.ro>
To: Krzysztof Kozlowski <krzk@...nel.org>, Sylwester Nawrocki <s.nawrocki@...sung.com>, Chanwoo Choi <cw00.choi@...sung.com>, Alim Akhtar <alim.akhtar@...sung.com>, Michael Turquette <mturquette@...libre.com>, Stephen Boyd <sboyd@...nel.org>, Rob Herring <robh@...nel.org>, Conor Dooley <conor+dt@...nel.org>, Alexandru Chimac <alexchimac@...tonmail.com>, Krzysztof Kozlowski <krzk+dt@...nel.org>
Cc: linux-samsung-soc@...r.kernel.org, linux-clk@...r.kernel.org, devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org, Alexandru Chimac <alex@...mac.ro>
Subject: [PATCH 4/8] arm64: dts: exynos9610: Enable clock support

Add CMU (Clock Management Unit) nodes and required
fixed clocks.

Signed-off-by: Alexandru Chimac <alex@...mac.ro>
---
 arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts |   1 +
 arch/arm64/boot/dts/exynos/exynos9610.dtsi       | 205 +++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts b/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts
index f455af22ff872c6f07b9bcfc68b1ae1f45d0def3..1a09d5e8ebaa130e9cd0b7f3266ee2c9dac4cf9a 100644
--- a/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts
+++ b/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts
@@ -10,6 +10,7 @@
 #include "exynos9610.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/clock/samsung,exynos9610.h>
 
 / {
 	compatible = "samsung,gta4xl", "samsung,exynos9610";
diff --git a/arch/arm64/boot/dts/exynos/exynos9610.dtsi b/arch/arm64/boot/dts/exynos/exynos9610.dtsi
index 852f7111e5cdfd82b5afc350792e8b539fe87d39..2a15986c459d6af9f83362c27cdcc3a2646c256b 100644
--- a/arch/arm64/boot/dts/exynos/exynos9610.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos9610.dtsi
@@ -6,6 +6,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/samsung,exynos9610.h>
 
 / {
 	compatible = "samsung,exynos9610";
@@ -161,6 +162,41 @@ oscclk: clock-osc {
 		clock-frequency = <26000000>;
 	};
 
+	dll_dco: clock-dll-dco {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-output-names = "dll_dco";
+		clock-frequency = <360000000>;
+	};
+
+	oscclk_rco_cmgp: clock-osc-rco {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-output-names = "oscclk_rco";
+		clock-frequency = <30000000>;
+	};
+
+	ioclk_audiocdclk0: clock-audiocdclk0 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-output-names = "ioclk_audiocdclk0";
+		clock-frequency = <10000000>;
+	};
+
+	ioclk_audiocdclk1: clock-audiocdclk1 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-output-names = "ioclk_audiocdclk1";
+		clock-frequency = <100000000>;
+	};
+
+	tick_usb: clock-tick-usb {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-output-names = "tick_usb";
+		clock-frequency = <60000000>;
+	};
+
 	soc: soc@0 {
 		compatible = "simple-bus";
 		ranges = <0x0 0x0 0x0 0x20000000>;
@@ -174,12 +210,81 @@ chipid@...00000 {
 			reg = <0x10000000 0x100>;
 		};
 
+		cmu_peri: clock-controller@...30000 {
+			compatible = "samsung,exynos9610-cmu-peri";
+			reg = <0x10030000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_PERI_BUS>,
+				 <&cmu_top CLK_DOUT_CMU_PERI_IP>,
+				 <&cmu_top CLK_DOUT_CMU_PERI_UART>;
+			clock-names = "oscclk",
+				      "dout_cmu_peri_bus",
+				      "dout_cmu_peri_ip",
+				      "dout_cmu_peri_uart";
+		};
+
+		cmu_cpucl1: clock-controller@...0800000 {
+			compatible = "samsung,exynos9610-cmu-cpucl1";
+			reg = <0x10800000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_CPUCL1_SWITCH>,
+				 <&cmu_top CLK_DOUT_CMU_HPM>;
+			clock-names = "oscclk",
+				      "dout_cmu_cpucl1_switch",
+				      "dout_cmu_hpm";
+		};
+
+		cmu_cpucl0: clock-controller@...0900000 {
+			compatible = "samsung,exynos9610-cmu-cpucl0";
+			reg = <0x10900000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_CPUCL0_DBG>,
+				 <&cmu_top CLK_DOUT_CMU_CPUCL0_SWITCH>,
+				 <&cmu_top CLK_DOUT_CMU_HPM>;
+			clock-names = "oscclk",
+				      "dout_cmu_cpucl0_dbg",
+				      "dout_cmu_cpucl0_switch",
+				      "dout_cmu_hpm";
+		};
+
 		pinctrl_shub: pinctrl@...80000 {
 			compatible = "samsung,exynos9610-pinctrl";
 			reg = <0x11080000 0x1000>;
 			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+		cmu_g3d: clock-controller@...30000 {
+			compatible = "samsung,exynos9610-cmu-g3d";
+			reg = <0x11430000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_G3D_SWITCH>,
+				 <&cmu_top CLK_DOUT_CMU_HPM>;
+			clock-names = "oscclk",
+				      "dout_cmu_g3d_switch",
+				      "dout_cmu_hpm";
+		};
+
+		cmu_apm: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-apm";
+			reg = <0x11800000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&dll_dco>,
+				 <&cmu_top CLK_DOUT_CMU_APM_BUS>;
+			clock-names = "oscclk",
+				      "dll_dco",
+				      "dout_cmu_apm_bus";
+		};
+
 		pinctrl_alive: pinctrl@...50000 {
 			compatible = "samsung,exynos9610-pinctrl";
 			reg = <0x11850000 0x1000>;
@@ -191,11 +296,48 @@ wakeup-interrupt-controller {
 			};
 		};
 
+		cmu_cmgp: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-cmgp";
+			reg = <0x11c00000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&oscclk_rco_cmgp>,
+				 <&cmu_apm CLK_GOUT_CMU_CMGP_BUS>;
+			clock-names = "oscclk",
+				      "oscclk_rco",
+				      "gout_cmu_cmgp_bus";
+		};
+
 		pinctrl_cmgp: pinctrl@...20000 {
 			compatible = "samsung,exynos9610-pinctrl";
 			reg = <0x11c20000 0x1000>;
 		};
 
+		cmu_core: clock-controller@...f0000 {
+			compatible = "samsung,exynos9610-cmu-core";
+			reg = <0x120f0000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_CORE_BUS>,
+				 <&cmu_top CLK_DOUT_CMU_CORE_CCI>,
+				 <&cmu_top CLK_DOUT_CMU_CORE_G3D>;
+			clock-names = "oscclk",
+				      "dout_cmu_core_bus",
+				      "dout_cmu_core_cci",
+				      "dout_cmu_core_g3d";
+		};
+
+		cmu_top: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-top";
+			reg = <0x12100000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>;
+			clock-names = "oscclk";
+		};
+
 		gic: interrupt-controller@...00000 {
 			compatible = "arm,gic-400";
 			#interrupt-cells = <3>;
@@ -209,6 +351,37 @@ gic: interrupt-controller@...00000 {
 						 IRQ_TYPE_LEVEL_HIGH)>;
 		};
 
+		cmu_g2d: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-g2d";
+			reg = <0x12e00000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_G2D_G2D>,
+				 <&cmu_top CLK_DOUT_CMU_G2D_MSCL>;
+
+			clock-names = "oscclk",
+				      "dout_cmu_g2d_g2d",
+				      "dout_cmu_g2d_mscl";
+		};
+
+		cmu_fsys: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-fsys";
+			reg = <0x13400000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_FSYS_BUS>,
+				 <&cmu_top CLK_DOUT_CMU_FSYS_MMC_CARD>,
+				 <&cmu_top CLK_DOUT_CMU_FSYS_MMC_EMBD>,
+				 <&cmu_top CLK_DOUT_CMU_FSYS_UFS_EMBD>;
+			clock-names = "oscclk",
+				      "dout_cmu_fsys_bus",
+				      "dout_cmu_fsys_mmc_card",
+				      "dout_cmu_fsys_mmc_embd",
+				      "dout_cmu_fsys_ufs_embd";
+		};
+
 		pinctrl_fsys: pinctrl@...90000 {
 			compatible = "samsung,exynos9610-pinctrl";
 			reg = <0x13490000 0x1000>;
@@ -221,6 +394,38 @@ pinctrl_top: pinctrl@...b0000 {
 			interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+		cmu_cam: clock-controller@...00000 {
+			compatible = "samsung,exynos9610-cmu-cam";
+			reg = <0x14500000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&cmu_top CLK_DOUT_CMU_CAM_BUS>;
+			clock-names = "oscclk",
+				      "dout_cmu_cam_bus";
+		};
+
+		cmu_dispaud: clock-controller@...80000 {
+			compatible = "samsung,exynos9610-cmu-dispaud";
+			reg = <0x14980000 0x8000>;
+			#clock-cells = <1>;
+
+			clocks = <&oscclk>,
+				 <&ioclk_audiocdclk0>,
+				 <&ioclk_audiocdclk1>,
+				 <&tick_usb>,
+				 <&cmu_top CLK_DOUT_CMU_DISPAUD_AUD>,
+				 <&cmu_top CLK_DOUT_CMU_DISPAUD_CPU>,
+				 <&cmu_top CLK_DOUT_CMU_DISPAUD_DISP>;
+			clock-names = "oscclk",
+				      "ioclk_audiocdclk0",
+				      "ioclk_audiocdclk1",
+				      "tick_usb",
+				      "dout_cmu_dispaud_aud",
+				      "dout_cmu_dispaud_cpu",
+				      "dout_cmu_dispaud_disp";
+		};
+
 		pinctrl_dispaud: pinctrl@...60000 {
 			compatible = "samsung,exynos9610-pinctrl";
 			reg = <0x14a60000 0x1000>;

-- 
2.47.3



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ