linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] gs101 s2mpg10 initial enablement & reboot update (DT)
@ 2025-06-27 13:29 André Draszik
  2025-06-27 13:29 ` [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM André Draszik
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: André Draszik @ 2025-06-27 13:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree, André Draszik

This series goes on top of krzk/for-next commit 62cd64f5b915 ("Merge
branch 'next/dt64' into for-next") [1] for the reason outlined at the
bottom of this cover letter.

This series enables the s2mpg10 PMIC, updates the DT for Google Pixel 6
and 6 Pro (oriole / raven) boards accordingly, and switches these
boards to cold-reboot (instead of warm).

A cold-reboot is a bit more secure than warm-reboot as e.g. RAM
contents will be wiped, and the bootloader will not assume the HLOS has
crashed (as it does with warm-reboot) and will therefore be ready a bit
faster.

For cold-reboot to fully work, the reboot mode (i.e. what to do after
reboot) needs to have been stored in NVMEM for the bootloader.
Therefore this series runtime-depends on the Maxim MAX77759 nvmem
enablement from [2], which was applied to krzk/linux.git (for-next).

Link: https://git.kernel.org/krzk/c/62cd64f5b915 [1]
Link: https://lore.kernel.org/all/20250524-b4-max77759-mfd-dts-v2-0-b479542eb97d@linaro.org/ [2]

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
André Draszik (3):
      arm64: defconfig: enable Samsung PMIC over ACPM
      arm64: dts: exynos: gs101-pixel-common: add main PMIC node
      arm64: dts: exynos: gs101: switch to gs101 specific reboot

 .../boot/dts/exynos/google/gs101-pixel-common.dtsi   | 20 ++++++++++++++++++++
 arch/arm64/boot/dts/exynos/google/gs101.dtsi         |  5 +----
 arch/arm64/configs/defconfig                         |  1 +
 3 files changed, 22 insertions(+), 4 deletions(-)
---
base-commit: 62cd64f5b915617ea7978205b336ff21f0801c95
change-id: 20250627-gs101-reboot3-83f8c247a0bb

Best regards,
-- 
André Draszik <andre.draszik@linaro.org>



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

* [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM
  2025-06-27 13:29 [PATCH 0/3] gs101 s2mpg10 initial enablement & reboot update (DT) André Draszik
@ 2025-06-27 13:29 ` André Draszik
  2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski
  2025-06-27 13:29 ` [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node André Draszik
  2025-06-27 13:29 ` [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot André Draszik
  2 siblings, 1 reply; 7+ messages in thread
From: André Draszik @ 2025-06-27 13:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree, André Draszik

Enable the Samsung s2mpg1x driver as this is used by the gs101-oriole
and gs101-raven (Google Pixel 6 and Pixel 6 Pro) boards.

It communicates over ACPM instead of I2C, hence the additional
defconfig item.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index a86cab889eac60256b28619b2cd2703765b081ee..557b592821d5d1fe8a5fab0619967e4f98894bc1 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -775,6 +775,7 @@ CONFIG_MFD_MT6397=y
 CONFIG_MFD_SPMI_PMIC=y
 CONFIG_MFD_RK8XX_I2C=y
 CONFIG_MFD_RK8XX_SPI=y
+CONFIG_MFD_SEC_ACPM=m
 CONFIG_MFD_SEC_I2C=y
 CONFIG_MFD_SL28CPLD=y
 CONFIG_RZ_MTU3=y

-- 
2.50.0.727.gbf7dc18ff4-goog



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

* [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node
  2025-06-27 13:29 [PATCH 0/3] gs101 s2mpg10 initial enablement & reboot update (DT) André Draszik
  2025-06-27 13:29 ` [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM André Draszik
@ 2025-06-27 13:29 ` André Draszik
  2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski
  2025-06-27 13:29 ` [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot André Draszik
  2 siblings, 1 reply; 7+ messages in thread
From: André Draszik @ 2025-06-27 13:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree, André Draszik

On Pixel 6 (and Pro), a Samsung S2MPG10 is used as main PMIC, which
contains the following functional blocks:
    * common / speedy interface
    * regulators
    * 3 clock outputs
    * RTC
    * power meters
    * GPIO interfaces

This change enables the PMIC itself and the RTC. We're still working on
the remaining parts or waiting for bindings to be merged, hence only a
small subset of the functional is being enabled.

The regulators fall into the same category (still being finalised), but
since the binding requires a 'regulators' node, an empty node is being
added to avoid validation errors at this stage.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
 .../boot/dts/exynos/google/gs101-pixel-common.dtsi    | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi b/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
index cd8e1b8a10b111190b984e104f749d04514d0449..c1b51f4cfb8c174852b44690f84ed1aa0b4057c2 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
@@ -100,6 +100,19 @@ cont_splash_mem: splash@fac00000 {
 	};
 };
 
+&acpm_ipc {
+	pmic {
+		compatible = "samsung,s2mpg10-pmic";
+		interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pmic_int>;
+		wakeup-source;
+
+		regulators {
+		};
+	};
+};
+
 &ext_24_5m {
 	clock-frequency = <24576000>;
 };
@@ -290,6 +303,12 @@ if_pmic_int: if-pmic-int-pins {
 };
 
 &pinctrl_gpio_alive {
+	pmic_int: pmic-int-pins {
+		samsung,pins = "gpa0-6";
+		samsung,pin-function = <GS101_PIN_FUNC_EINT>;
+		samsung,pin-pud = <GS101_PIN_PULL_NONE>;
+	};
+
 	key_power: key-power-pins {
 		samsung,pins = "gpa10-1";
 		samsung,pin-function = <GS101_PIN_FUNC_EINT>;

-- 
2.50.0.727.gbf7dc18ff4-goog



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

* [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot
  2025-06-27 13:29 [PATCH 0/3] gs101 s2mpg10 initial enablement & reboot update (DT) André Draszik
  2025-06-27 13:29 ` [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM André Draszik
  2025-06-27 13:29 ` [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node André Draszik
@ 2025-06-27 13:29 ` André Draszik
  2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski
  2 siblings, 1 reply; 7+ messages in thread
From: André Draszik @ 2025-06-27 13:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree, André Draszik

gs101 (Google Pixel 6 and Pixel 6 Pro) supports cold- and warm-reboot.
Cold-reset is useful because it is more secure, e.g. wiping all RAM
contents, while the warm-reboot allows RAM contents to be retained
across the reboot, e.g. to collect potential crash information.

Add the required DT changes to switch to the gs101-specific reboot
method, which knows how to issue either reset as requested by the OS.

The PMIC plays a role in this as well, so mark it as
'system-power-controller', which in this case ensures that the device
will wake up again after a cold-reboot, ensuring the full power-cycle
is successful.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
 arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi | 1 +
 arch/arm64/boot/dts/exynos/google/gs101.dtsi              | 5 +----
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi b/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
index c1b51f4cfb8c174852b44690f84ed1aa0b4057c2..84ff3e047d3b31b5f96d4d6c78ec933bb05f3e6b 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101-pixel-common.dtsi
@@ -106,6 +106,7 @@ pmic {
 		interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&pmic_int>;
+		system-power-controller;
 		wakeup-source;
 
 		regulators {
diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index 7fc3d803de39e654c1e8102b5e0f68995c3ab8e2..79a15fe7d336af3dcd9104d286bea525bb73e9e9 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -1418,10 +1418,7 @@ poweroff: syscon-poweroff {
 			};
 
 			reboot: syscon-reboot {
-				compatible = "syscon-reboot";
-				offset = <0x3a00>; /* SYSTEM_CONFIGURATION */
-				mask = <0x2>; /* SWRESET_SYSTEM */
-				value = <0x2>; /* reset value */
+				compatible = "google,gs101-reboot";
 			};
 
 			reboot-mode {

-- 
2.50.0.727.gbf7dc18ff4-goog



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

* Re: (subset) [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM
  2025-06-27 13:29 ` [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM André Draszik
@ 2025-06-30  6:56   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-30  6:56 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar,
	André Draszik
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree


On Fri, 27 Jun 2025 14:29:30 +0100, André Draszik wrote:
> Enable the Samsung s2mpg1x driver as this is used by the gs101-oriole
> and gs101-raven (Google Pixel 6 and Pixel 6 Pro) boards.
> 
> It communicates over ACPM instead of I2C, hence the additional
> defconfig item.
> 
> 
> [...]

Applied, thanks!

[1/3] arm64: defconfig: enable Samsung PMIC over ACPM
      https://git.kernel.org/krzk/linux/c/a7d7aebed4005b9c287f9bd9d22c273da63c9028

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>



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

* Re: (subset) [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node
  2025-06-27 13:29 ` [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node André Draszik
@ 2025-06-30  6:56   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-30  6:56 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar,
	André Draszik
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree


On Fri, 27 Jun 2025 14:29:31 +0100, André Draszik wrote:
> On Pixel 6 (and Pro), a Samsung S2MPG10 is used as main PMIC, which
> contains the following functional blocks:
>     * common / speedy interface
>     * regulators
>     * 3 clock outputs
>     * RTC
>     * power meters
>     * GPIO interfaces
> 
> [...]

Applied, thanks!

[2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node
      https://git.kernel.org/krzk/linux/c/cb98b8a8d6e2797f1e4a0e433a20c57492daf783

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>



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

* Re: (subset) [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot
  2025-06-27 13:29 ` [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot André Draszik
@ 2025-06-30  6:56   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-30  6:56 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Peter Griffin, Tudor Ambarus,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Alim Akhtar,
	André Draszik
  Cc: Will McVicker, kernel-team, linux-arm-kernel, linux-kernel,
	linux-samsung-soc, devicetree


On Fri, 27 Jun 2025 14:29:32 +0100, André Draszik wrote:
> gs101 (Google Pixel 6 and Pixel 6 Pro) supports cold- and warm-reboot.
> Cold-reset is useful because it is more secure, e.g. wiping all RAM
> contents, while the warm-reboot allows RAM contents to be retained
> across the reboot, e.g. to collect potential crash information.
> 
> Add the required DT changes to switch to the gs101-specific reboot
> method, which knows how to issue either reset as requested by the OS.
> 
> [...]

Applied, thanks!

[3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot
      https://git.kernel.org/krzk/linux/c/98be2d60fdb70b53e29a04c807ee62e06fb9c08f

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>



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

end of thread, other threads:[~2025-06-30  7:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-27 13:29 [PATCH 0/3] gs101 s2mpg10 initial enablement & reboot update (DT) André Draszik
2025-06-27 13:29 ` [PATCH 1/3] arm64: defconfig: enable Samsung PMIC over ACPM André Draszik
2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski
2025-06-27 13:29 ` [PATCH 2/3] arm64: dts: exynos: gs101-pixel-common: add main PMIC node André Draszik
2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski
2025-06-27 13:29 ` [PATCH 3/3] arm64: dts: exynos: gs101: switch to gs101 specific reboot André Draszik
2025-06-30  6:56   ` (subset) " Krzysztof Kozlowski

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).