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