[PATCH 2/2] power: reset: at91-reset: add sysfs interface to the power on reason

Sebastian Reichel sebastian.reichel at collabora.com
Fri Jun 9 16:36:59 PDT 2023


Hi,

On Fri, Jun 09, 2023 at 04:39:12PM +0200, Miquel Raynal wrote:
> From: Kamel Bouhara <kamel.bouhara at bootlin.com>
> 
> Introduce a list of generic reset sources and use them to export the
> power on reason through sysfs. Update the ABI documentation to describe
> this new interface.
> 
> Signed-off-by: Kamel Bouhara <kamel.bouhara at bootlin.com>
> Acked-by: Nicolas Ferre <nicolas.ferre at microchip.com>
> [Miquel Raynal: Follow-up on Kamel's work, 4 years later]
> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
> ---
>  .../testing/sysfs-platform-power-on-reason    | 10 +++++
>  drivers/power/reset/at91-reset.c              | 42 +++++++++++++------
>  include/linux/power/power_on_reason.h         | 19 +++++++++
>  3 files changed, 59 insertions(+), 12 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-platform-power-on-reason
>  create mode 100644 include/linux/power/power_on_reason.h
> 
> diff --git a/Documentation/ABI/testing/sysfs-platform-power-on-reason b/Documentation/ABI/testing/sysfs-platform-power-on-reason
> new file mode 100644
> index 000000000000..12020d017543
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-platform-power-on-reason
> @@ -0,0 +1,10 @@
> +What:		/sys/devices/platform/.../power_on_reason
> +Date:		October 2019
> +KernelVersion:	5.4

That needs to be updated :)

> +Contact:	Kamel Bouhara <kamel.bouhara at bootlin.com>
> +Description:	This file shows system power on reason. Possible sources are:
> +		General system power-on, RTC wakeup, watchdog timeout, software
> +		reset, user pressed reset button, CPU clock failure, oscillator
> +		failure, low power mode exit, unknown.
> +
> +		The file is read only.

This should list the exact strings generated by the kernel. They are
ABI. Also it should be mentioned, that the list might be extended in
the future.

> diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c

[...]

> diff --git a/include/linux/power/power_on_reason.h b/include/linux/power/power_on_reason.h
> new file mode 100644
> index 000000000000..4b92eb0519c4
> --- /dev/null
> +++ b/include/linux/power/power_on_reason.h
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Author: Kamel Bouhra <kamel.bouhara at bootlin.com>
> + */
> +
> +#ifndef POWER_ON_REASON_H
> +#define POWER_ON_REASON_H
> +
> +#define POWER_ON_REASON_GENERAL "general"

What's the difference between "general" and "unknown"?

> +#define POWER_ON_REASON_RTC "RTC wakeup"
> +#define POWER_ON_REASON_WATCHDOG "watchdog timeout"
> +#define POWER_ON_REASON_SOFTWARE "software"

"software reset"

> +#define POWER_ON_REASON_USER "user"

user is quite confusing. This should be something like

#define POWER_ON_REASON_RST_BTN "reset button"

> +#define POWER_ON_REASON_CPU_FAIL "CPU clock failure"

POWER_ON_REASON_CPU_CLK_FAIL

> +#define POWER_ON_REASON_XTAL_FAIL "crystal oscillator failure"
> +#define POWER_ON_REASON_LOW_POWER "low power exit"

when is this reported?

> +#define POWER_ON_REASON_UNKNOWN "unknown"
> +
> +#endif /* POWER_ON_REASON_H */

Greetings,

-- Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20230610/8db48039/attachment.sig>


More information about the linux-arm-kernel mailing list