[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1c92e4ad-3aef-4eec-8f90-989884262415@tuxon.dev>
Date: Sat, 18 Jan 2025 16:38:33 +0200
From: Claudiu Beznea <claudiu.beznea@...on.dev>
To: Andrei Simion <andrei.simion@...rochip.com>, nicolas.ferre@...rochip.com,
alexandre.belloni@...tlin.com, robh@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org
Cc: devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ARM: dts: microchip: at91-sam9x75_curiosity: Add PMIC
suspend voltage configuration
Hi, Andrei,
On 13.01.2025 09:17, Andrei Simion wrote:
> Add missing essential configuration for the PMIC rails, which is necessary
> for proper low-power mode operation. This patch adds the required settings
> to ensure that the regulators behave correctly during Suspend-to-RAM and
> Standby states. Otherwise, after resuming, it receives: "No configuration"
> message.
>
> Our driver implements the set_suspend_voltage and set_suspend_mode
> callbacks, which require the `regulator-suspend-microvolt` property to be
> specified in the device tree for each regulator node. This property defines
> the voltage level that the regulator should maintain during suspend mode.
>
> Additionally, according to the datasheet, some regulators need to be turned
> on or off during suspend mode. This patch addresses these requirements by
> adding the `regulator-on-in-suspend` and `regulator-off-in-suspend`
> properties where appropriate.
>
> Fixes: 371a47c9a58a ("ARM: dts: microchip: sam9x75_curiosity: add sam9x75 curiosity board")
> Signed-off-by: Andrei Simion <andrei.simion@...rochip.com>
> ---
> .../dts/microchip/at91-sam9x75_curiosity.dts | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm/boot/dts/microchip/at91-sam9x75_curiosity.dts b/arch/arm/boot/dts/microchip/at91-sam9x75_curiosity.dts
> index 1a6a909a5043..5514ad10cda5 100644
> --- a/arch/arm/boot/dts/microchip/at91-sam9x75_curiosity.dts
> +++ b/arch/arm/boot/dts/microchip/at91-sam9x75_curiosity.dts
> @@ -110,10 +110,12 @@ vdd_3v3: VDD_IO {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> regulator-mode = <4>;
> };
>
> regulator-state-mem {
> + regulator-off-in-suspend;
> regulator-mode = <4>;
> };
> };
> @@ -128,11 +130,13 @@ vddioddr: VDD_DDR {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1350000>;
> regulator-mode = <4>;
> };
>
> regulator-state-mem {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1350000>;
> regulator-mode = <4>;
> };
> };
> @@ -147,10 +151,12 @@ vddcore: VDD_CORE {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1150000>;
> regulator-mode = <4>;
> };
>
> regulator-state-mem {
> + regulator-off-in-suspend;
Is this correct? In the upstream kernel the SAM9X7 supports only standby
and ULP0 (see sam9x7_pm_init()). I don't think it is correct to turn off
the CPU while in ULP0.
Moreover, AFAICT, the MCP16502 will not transition out of active state
according to the FIGURE 4-2: Finite State Machine (FSM) States Diagram for
MCP16502AC from [1] and the schematics from Figure 3-6. Power Management
Integrated Circuit described in [2]. The LPM, HPM are tied to the ground
and SHDN is currently controlled (in the upstream kernel) only for backup
and self-refresh mode (see at91_backup_mode). Am I wrong?
Thank you,
Claudiu
[1]
https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP16502-Data-Sheet-DS20006275.pdf
[2]
https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/UserGuides/SAM9X75-Curiosity-User-Guide-DS60001859.pdf
> regulator-mode = <4>;
> };
> };
> @@ -166,10 +172,12 @@ dcdc4: VDD_OTHER {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1150000>;
> regulator-mode = <4>;
> };
>
> regulator-state-mem {
> + regulator-off-in-suspend;
> regulator-mode = <4>;
> };
> };
> @@ -182,6 +190,11 @@ vldo1: LDO1 {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> + };
> +
> + regulator-state-mem {
> + regulator-off-in-suspend;
> };
> };
>
> @@ -192,6 +205,11 @@ vldo2: LDO2 {
>
> regulator-state-standby {
> regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1800000>;
> + };
> +
> + regulator-state-mem {
> + regulator-off-in-suspend;
> };
> };
> };
>
> base-commit: 37136bf5c3a6f6b686d74f41837a6406bec6b7bc
Powered by blists - more mailing lists