* [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350
@ 2026-09-07 16:44 Alexander Koskovich
2026-09-09 11:52 ` Konrad Dybcio
2026-09-09 12:12 ` Dmitry Baryshkov
0 siblings, 2 replies; 4+ messages in thread
From: Alexander Koskovich @ 2026-09-07 16:44 UTC (permalink / raw)
To: Sebastian Reichel
Cc: linux-arm-msm, linux-pm, linux-kernel, Alexander Koskovich
On the PMK8350 the SOFT_RB_SPARE register does not exist, the reset
reason is instead kept in SDAM and written through the reboot-reason
nvmem cell.
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
Would like some feedback on this as I'm seeing conflicting results,
SOFT_RB_SPARE does not exist on HLOS but it looks like the downstream
qpnp-power-on driver writes to XVDD_RB_SPARE2 for GEN3, which is on PBS.
Though, targets like waipio don't seem to have access to write to PBS
from HLOS? Get SPMI errors when I try. Didn't have an issue doing so on
milos though.
Besides, the bindings doesn't allow reboot modes on PMK8350 so maybe
setting no reason shift is correct regardless so it gets skipped?
---
drivers/power/reset/qcom-pon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
index 7e108982a582..9cd55f5536b4 100644
--- a/drivers/power/reset/qcom-pon.c
+++ b/drivers/power/reset/qcom-pon.c
@@ -90,7 +90,7 @@ static const struct of_device_id qcom_pon_id_table[] = {
{ .compatible = "qcom,pm8941-pon", .data = (void *)NO_REASON_SHIFT },
{ .compatible = "qcom,pms405-pon", .data = (void *)GEN1_REASON_SHIFT },
{ .compatible = "qcom,pm8998-pon", .data = (void *)GEN2_REASON_SHIFT },
- { .compatible = "qcom,pmk8350-pon", .data = (void *)GEN2_REASON_SHIFT },
+ { .compatible = "qcom,pmk8350-pon", .data = (void *)NO_REASON_SHIFT },
{ }
};
MODULE_DEVICE_TABLE(of, qcom_pon_id_table);
---
base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
change-id: 20260907-pon-pbs-76b7ecaafe33
Best regards,
--
Alexander Koskovich <akoskovich@pm.me>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350
2026-09-07 16:44 [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350 Alexander Koskovich
@ 2026-09-09 11:52 ` Konrad Dybcio
2026-09-10 6:25 ` Fenglin Wu
2026-09-09 12:12 ` Dmitry Baryshkov
1 sibling, 1 reply; 4+ messages in thread
From: Konrad Dybcio @ 2026-09-09 11:52 UTC (permalink / raw)
To: Alexander Koskovich, Sebastian Reichel, Kamal Wadhwa, Fenglin Wu
Cc: linux-arm-msm, linux-pm, linux-kernel
On 9/7/26 6:44 PM, Alexander Koskovich wrote:
> On the PMK8350 the SOFT_RB_SPARE register does not exist, the reset
> reason is instead kept in SDAM and written through the reboot-reason
> nvmem cell.
>
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
> Would like some feedback on this as I'm seeing conflicting results,
> SOFT_RB_SPARE does not exist on HLOS but it looks like the downstream
> qpnp-power-on driver writes to XVDD_RB_SPARE2 for GEN3, which is on PBS.
>
> Though, targets like waipio don't seem to have access to write to PBS
> from HLOS? Get SPMI errors when I try. Didn't have an issue doing so on
> milos though.
>
> Besides, the bindings doesn't allow reboot modes on PMK8350 so maybe
> setting no reason shift is correct regardless so it gets skipped?
> ---
Maybe +Kamal or +Fenglin would know more
Konrad
> drivers/power/reset/qcom-pon.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
> index 7e108982a582..9cd55f5536b4 100644
> --- a/drivers/power/reset/qcom-pon.c
> +++ b/drivers/power/reset/qcom-pon.c
> @@ -90,7 +90,7 @@ static const struct of_device_id qcom_pon_id_table[] = {
> { .compatible = "qcom,pm8941-pon", .data = (void *)NO_REASON_SHIFT },
> { .compatible = "qcom,pms405-pon", .data = (void *)GEN1_REASON_SHIFT },
> { .compatible = "qcom,pm8998-pon", .data = (void *)GEN2_REASON_SHIFT },
> - { .compatible = "qcom,pmk8350-pon", .data = (void *)GEN2_REASON_SHIFT },
> + { .compatible = "qcom,pmk8350-pon", .data = (void *)NO_REASON_SHIFT },
> { }
> };
> MODULE_DEVICE_TABLE(of, qcom_pon_id_table);
>
> ---
> base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
> change-id: 20260907-pon-pbs-76b7ecaafe33
>
> Best regards,
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350
2026-09-07 16:44 [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350 Alexander Koskovich
2026-09-09 11:52 ` Konrad Dybcio
@ 2026-09-09 12:12 ` Dmitry Baryshkov
1 sibling, 0 replies; 4+ messages in thread
From: Dmitry Baryshkov @ 2026-09-09 12:12 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Sebastian Reichel, linux-arm-msm, linux-pm, linux-kernel
On Mon, Sep 07, 2026 at 04:44:29PM +0000, Alexander Koskovich wrote:
> On the PMK8350 the SOFT_RB_SPARE register does not exist, the reset
> reason is instead kept in SDAM and written through the reboot-reason
> nvmem cell.
>
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
> Would like some feedback on this as I'm seeing conflicting results,
> SOFT_RB_SPARE does not exist on HLOS but it looks like the downstream
> qpnp-power-on driver writes to XVDD_RB_SPARE2 for GEN3, which is on PBS.
>
> Though, targets like waipio don't seem to have access to write to PBS
> from HLOS? Get SPMI errors when I try. Didn't have an issue doing so on
> milos though.
It well might be that the PMIC has the spare register but whether it
gets used or not depends on the platform (and the firmware) rather than
the PMIC.
>
> Besides, the bindings doesn't allow reboot modes on PMK8350 so maybe
> setting no reason shift is correct regardless so it gets skipped?
> ---
> drivers/power/reset/qcom-pon.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
> index 7e108982a582..9cd55f5536b4 100644
> --- a/drivers/power/reset/qcom-pon.c
> +++ b/drivers/power/reset/qcom-pon.c
> @@ -90,7 +90,7 @@ static const struct of_device_id qcom_pon_id_table[] = {
> { .compatible = "qcom,pm8941-pon", .data = (void *)NO_REASON_SHIFT },
> { .compatible = "qcom,pms405-pon", .data = (void *)GEN1_REASON_SHIFT },
> { .compatible = "qcom,pm8998-pon", .data = (void *)GEN2_REASON_SHIFT },
> - { .compatible = "qcom,pmk8350-pon", .data = (void *)GEN2_REASON_SHIFT },
> + { .compatible = "qcom,pmk8350-pon", .data = (void *)NO_REASON_SHIFT },
> { }
> };
> MODULE_DEVICE_TABLE(of, qcom_pon_id_table);
>
> ---
> base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
> change-id: 20260907-pon-pbs-76b7ecaafe33
>
> Best regards,
> --
> Alexander Koskovich <akoskovich@pm.me>
>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350
2026-09-09 11:52 ` Konrad Dybcio
@ 2026-09-10 6:25 ` Fenglin Wu
0 siblings, 0 replies; 4+ messages in thread
From: Fenglin Wu @ 2026-09-10 6:25 UTC (permalink / raw)
To: Konrad Dybcio, Alexander Koskovich, Sebastian Reichel,
Kamal Wadhwa
Cc: linux-arm-msm, linux-pm, linux-kernel
On 9/9/2026 7:52 PM, Konrad Dybcio wrote:
> On 9/7/26 6:44 PM, Alexander Koskovich wrote:
>> On the PMK8350 the SOFT_RB_SPARE register does not exist, the reset
>> reason is instead kept in SDAM and written through the reboot-reason
>> nvmem cell.
>>
>> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
>> ---
>> Would like some feedback on this as I'm seeing conflicting results,
>> SOFT_RB_SPARE does not exist on HLOS but it looks like the downstream
>> qpnp-power-on driver writes to XVDD_RB_SPARE2 for GEN3, which is on PBS.
>>
>> Though, targets like waipio don't seem to have access to write to PBS
>> from HLOS? Get SPMI errors when I try. Didn't have an issue doing so on
>> milos though.
>>
>> Besides, the bindings doesn't allow reboot modes on PMK8350 so maybe
>> setting no reason shift is correct regardless so it gets skipped?
>> ---
>
> Maybe +Kamal or +Fenglin would know more
>
> Konrad
>
For pmk8350 HLOS_PON, I can see a register at 0x8f,
PON_HLOS_DVDD_RB_SPARE2 in the dVdd_RB block, that may not retain the
reset reason during a device reboot. The downstream qpnp-power-on driver
stores the reset reason in PBS_PON register 0x8f,
PON_PBS_XVDD_RB_SPARE2, which belongs to the xVdd_RB block where all
register values are retained during normal reboot.
The downstream driver manages PON/reset behavior primarily through the
PBS_PON module, whereas HLOS_PON is mainly used for power/reset keys.
Since I don't have a waipio device available, I couldn't verify the SPMI
access permission issue you mentioned. My assumption is that it should
work correctly; otherwise, all reset-related functionality would be
broken internally, unless the PMIC module ownership settings in BOOT SW
were changed on your device.
>> drivers/power/reset/qcom-pon.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c
>> index 7e108982a582..9cd55f5536b4 100644
>> --- a/drivers/power/reset/qcom-pon.c
>> +++ b/drivers/power/reset/qcom-pon.c
>> @@ -90,7 +90,7 @@ static const struct of_device_id qcom_pon_id_table[] = {
>> { .compatible = "qcom,pm8941-pon", .data = (void *)NO_REASON_SHIFT },
>> { .compatible = "qcom,pms405-pon", .data = (void *)GEN1_REASON_SHIFT },
>> { .compatible = "qcom,pm8998-pon", .data = (void *)GEN2_REASON_SHIFT },
>> - { .compatible = "qcom,pmk8350-pon", .data = (void *)GEN2_REASON_SHIFT },
>> + { .compatible = "qcom,pmk8350-pon", .data = (void *)NO_REASON_SHIFT },
>> { }
>> };
>> MODULE_DEVICE_TABLE(of, qcom_pon_id_table);
>>
>> ---
>> base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
>> change-id: 20260907-pon-pbs-76b7ecaafe33
>>
>> Best regards,
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-09-10 6:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-07 16:44 [PATCH RFC] power: reset: qcom-pon: Drop reason shift for PMK8350 Alexander Koskovich
2026-09-09 11:52 ` Konrad Dybcio
2026-09-10 6:25 ` Fenglin Wu
2026-09-09 12:12 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox