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