Samsung DTS ARM64 changes for v6.20

1. ExynosAutov920:
 - Add MFD clock controller node.

2. Google GS101:
 - Add True Random Number Generator (TRNG) and OTP nvmem nodes.
 - Correct the PMU (Power Management Unit) compatibles by dropping
   fallback to syscon.  The PMU on Samsung devices serves the role of
   syscon, however on GS101 it cannot be used via standard Linux syscon
   interface, because register accesses require custom regmap.  It was
   simply never correctly working with "syscon" compatible fallback.
 - Add phandles to System Registers SYSREG blocks in clock controllers,
   necessary for enabling automatic clock control later.

* tag 'samsung-dt64-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: gs101: add OTP node
  arm64: dts: exynos: gs101: add samsung,sysreg property to CMU nodes
  arm64: dts: exynosautov920: add CMU_MFD clock DT nodes
  arm64: dts: exynos: gs101: remove syscon compatible from pmu node
  dt-bindings: soc: samsung: exynos-pmu: remove syscon for google,gs101-pmu
  arm64: dts: exynos: gs101: add TRNG node
  dt-bindings: rng: add google,gs101-trng compatible

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann
2026-01-26 15:42:53 +01:00
4 changed files with 47 additions and 5 deletions

View File

@@ -12,9 +12,13 @@ maintainers:
properties:
compatible:
enum:
- samsung,exynos5250-trng
- samsung,exynos850-trng
oneOf:
- enum:
- samsung,exynos5250-trng
- samsung,exynos850-trng
- items:
- const: google,gs101-trng
- const: samsung,exynos850-trng
clocks:
minItems: 1
@@ -24,6 +28,9 @@ properties:
minItems: 1
maxItems: 2
power-domains:
maxItems: 1
reg:
maxItems: 1

View File

@@ -34,9 +34,10 @@ select:
properties:
compatible:
oneOf:
- enum:
- google,gs101-pmu
- items:
- enum:
- google,gs101-pmu
- samsung,exynos3250-pmu
- samsung,exynos4210-pmu
- samsung,exynos4212-pmu

View File

@@ -1462,6 +1462,17 @@
"wfd";
};
cmu_mfd: clock-controller@19e00000 {
compatible = "samsung,exynosautov920-cmu-mfd";
reg = <0x19e00000 0x8000>;
#clock-cells = <1>;
clocks = <&xtcxo>,
<&cmu_top DOUT_CLKCMU_MFD_NOC>;
clock-names = "oscclk",
"noc";
};
pinctrl_aud: pinctrl@1a460000 {
compatible = "samsung,exynosautov920-pinctrl";
reg = <0x1a460000 0x10000>;

View File

@@ -571,6 +571,14 @@
#size-cells = <1>;
ranges = <0x0 0x0 0x0 0x40000000>;
efuse@10000000 {
compatible = "google,gs101-otp";
reg = <0x10000000 0xf084>;
clocks = <&cmu_misc CLK_GOUT_MISC_OTP_CON_TOP_PCLK>;
clock-names = "pclk";
interrupts = <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH 0>;
};
cmu_misc: clock-controller@10010000 {
compatible = "google,gs101-cmu-misc";
reg = <0x10010000 0x10000>;
@@ -578,6 +586,7 @@
clocks = <&cmu_top CLK_DOUT_CMU_MISC_BUS>,
<&cmu_top CLK_DOUT_CMU_MISC_SSS>;
clock-names = "bus", "sss";
samsung,sysreg = <&sysreg_misc>;
};
sysreg_misc: syscon@10030000 {
@@ -630,6 +639,15 @@
status = "disabled";
};
trng: rng@10141400 {
compatible = "google,gs101-trng",
"samsung,exynos850-trng";
reg = <0x10141400 0x100>;
clocks = <&cmu_misc CLK_GOUT_MISC_SSS_I_ACLK>,
<&cmu_misc CLK_GOUT_MISC_SSS_I_PCLK>;
clock-names = "secss", "pclk";
};
gic: interrupt-controller@10400000 {
compatible = "arm,gic-v3";
#address-cells = <0>;
@@ -662,6 +680,7 @@
<&cmu_top CLK_DOUT_CMU_PERIC0_BUS>,
<&cmu_top CLK_DOUT_CMU_PERIC0_IP>;
clock-names = "oscclk", "bus", "ip";
samsung,sysreg = <&sysreg_peric0>;
};
sysreg_peric0: syscon@10820000 {
@@ -1208,6 +1227,7 @@
<&cmu_top CLK_DOUT_CMU_PERIC1_BUS>,
<&cmu_top CLK_DOUT_CMU_PERIC1_IP>;
clock-names = "oscclk", "bus", "ip";
samsung,sysreg = <&sysreg_peric1>;
};
sysreg_peric1: syscon@10c20000 {
@@ -1566,6 +1586,7 @@
<&cmu_top CLK_DOUT_CMU_HSI0_USBDPDBG>;
clock-names = "oscclk", "bus", "dpgtc", "usb31drd",
"usbdpdbg";
samsung,sysreg = <&sysreg_hsi0>;
};
sysreg_hsi0: syscon@11020000 {
@@ -1637,6 +1658,7 @@
<&cmu_top CLK_DOUT_CMU_HSI2_UFS_EMBD>,
<&cmu_top CLK_DOUT_CMU_HSI2_MMC_CARD>;
clock-names = "oscclk", "bus", "pcie", "ufs", "mmc";
samsung,sysreg = <&sysreg_hsi2>;
};
sysreg_hsi2: syscon@14420000 {
@@ -1697,6 +1719,7 @@
clocks = <&ext_24_5m>;
clock-names = "oscclk";
samsung,sysreg = <&sysreg_apm>;
};
sysreg_apm: syscon@17420000 {
@@ -1705,7 +1728,7 @@
};
pmu_system_controller: system-controller@17460000 {
compatible = "google,gs101-pmu", "syscon";
compatible = "google,gs101-pmu";
reg = <0x17460000 0x10000>;
google,pmu-intr-gen-syscon = <&pmu_intr_gen>;