All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Junhao Xie <bigfoot@classfun.cn>,
	devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org,
	linux-watchdog@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org
Cc: Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee@kernel.org>, Sebastian Reichel <sre@kernel.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Heiko Stuebner <heiko@sntech.de>, Chukun Pan <amadeus@jmu.edu.cn>
Subject: Re: [PATCH 2/9] power: reset: add Photonicat PMU poweroff driver
Date: Fri, 6 Sep 2024 11:44:54 +0200	[thread overview]
Message-ID: <90a5b41b-84cd-4daa-b102-04a29c2cd46b@kernel.org> (raw)
In-Reply-To: <20240906093630.2428329-3-bigfoot@classfun.cn>

On 06/09/2024 11:36, Junhao Xie wrote:
> This driver implements the shutdown function of Photonicat PMU:
> 
> - Host notifies PMU to shutdown:
>   When powering off, a shutdown command (0x0F) needs to be sent
>   to the MCU.
> 
> - PMU notifies host to shutdown:
>   If the power button is long pressed, the MCU will send a shutdown
>   command (0x0D) to the system.
>   If system does not shutdown within 60 seconds,
>   the power will be turned off directly.
> 
> Signed-off-by: Junhao Xie <bigfoot@classfun.cn>
> ---
>  drivers/power/reset/Kconfig               | 12 +++
>  drivers/power/reset/Makefile              |  1 +
>  drivers/power/reset/photonicat-poweroff.c | 95 +++++++++++++++++++++++
>  3 files changed, 108 insertions(+)
>  create mode 100644 drivers/power/reset/photonicat-poweroff.c
> 
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index fece990af4a7..c59529ce25a2 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -148,6 +148,18 @@ config POWER_RESET_ODROID_GO_ULTRA_POWEROFF
>  	help
>  	  This driver supports Power off for Odroid Go Ultra device.
>  
> +config POWER_RESET_PHOTONICAT_POWEROFF
> +	tristate "Photonicat PMU power-off driver"
> +	depends on MFD_PHOTONICAT_PMU

|| COMPILE_TEST, no?

> +	help
> +	  This driver supports Power off for Photonicat PMU device.
> +
> +	  Supports operations:
> +	    Host notifies PMU to shutdown
> +	    PMU notifies host to shutdown
> +
> +	  Say Y if you have a Photonicat board.
> +
>  config POWER_RESET_PIIX4_POWEROFF
>  	tristate "Intel PIIX4 power-off driver"
>  	depends on PCI
> diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
> index a95d1bd275d1..339b36812b95 100644
> --- a/drivers/power/reset/Makefile
> +++ b/drivers/power/reset/Makefile
> @@ -17,6 +17,7 @@ obj-$(CONFIG_POWER_RESET_MT6323) += mt6323-poweroff.o
>  obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
>  obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
>  obj-$(CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF) += odroid-go-ultra-poweroff.o
> +obj-$(CONFIG_POWER_RESET_PHOTONICAT_POWEROFF) += photonicat-poweroff.o
>  obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
>  obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
>  obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
> diff --git a/drivers/power/reset/photonicat-poweroff.c b/drivers/power/reset/photonicat-poweroff.c
> new file mode 100644
> index 000000000000..f9f1ea179247
> --- /dev/null
> +++ b/drivers/power/reset/photonicat-poweroff.c
> @@ -0,0 +1,95 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) 2024 Junhao Xie <bigfoot@classfun.cn>
> + */
> +
> +#include <linux/mfd/photonicat-pmu.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +
> +struct pcat_poweroff {
> +	struct device *dev;
> +	struct pcat_pmu *pmu;
> +	struct notifier_block nb;
> +};
> +
> +static int pcat_do_poweroff(struct sys_off_data *data)
> +{
> +	struct pcat_poweroff *poweroff = data->cb_data;
> +
> +	dev_info(poweroff->dev, "Host request PMU shutdown\n");
> +	pcat_pmu_write_data(poweroff->pmu, PCAT_CMD_HOST_REQUEST_SHUTDOWN,
> +			    NULL, 0);
> +
> +	return NOTIFY_DONE;
> +}
> +
> +static int pcat_poweroff_notify(struct notifier_block *nb, unsigned long action,
> +				void *data)
> +{
> +	struct pcat_poweroff *poweroff =
> +		container_of(nb, struct pcat_poweroff, nb);
> +
> +	if (action != PCAT_CMD_PMU_REQUEST_SHUTDOWN)
> +		return NOTIFY_DONE;
> +
> +	dev_info(poweroff->dev, "PMU request host shutdown\n");

Nope. Drop.

> +	orderly_poweroff(true);
> +
> +	return NOTIFY_DONE;
Best regards,
Krzysztof


WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Junhao Xie <bigfoot@classfun.cn>,
	devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org,
	linux-watchdog@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org
Cc: Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>, Pavel Machek <pavel@ucw.cz>,
	Lee Jones <lee@kernel.org>, Sebastian Reichel <sre@kernel.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Heiko Stuebner <heiko@sntech.de>, Chukun Pan <amadeus@jmu.edu.cn>
Subject: Re: [PATCH 2/9] power: reset: add Photonicat PMU poweroff driver
Date: Fri, 6 Sep 2024 11:44:54 +0200	[thread overview]
Message-ID: <90a5b41b-84cd-4daa-b102-04a29c2cd46b@kernel.org> (raw)
In-Reply-To: <20240906093630.2428329-3-bigfoot@classfun.cn>

On 06/09/2024 11:36, Junhao Xie wrote:
> This driver implements the shutdown function of Photonicat PMU:
> 
> - Host notifies PMU to shutdown:
>   When powering off, a shutdown command (0x0F) needs to be sent
>   to the MCU.
> 
> - PMU notifies host to shutdown:
>   If the power button is long pressed, the MCU will send a shutdown
>   command (0x0D) to the system.
>   If system does not shutdown within 60 seconds,
>   the power will be turned off directly.
> 
> Signed-off-by: Junhao Xie <bigfoot@classfun.cn>
> ---
>  drivers/power/reset/Kconfig               | 12 +++
>  drivers/power/reset/Makefile              |  1 +
>  drivers/power/reset/photonicat-poweroff.c | 95 +++++++++++++++++++++++
>  3 files changed, 108 insertions(+)
>  create mode 100644 drivers/power/reset/photonicat-poweroff.c
> 
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index fece990af4a7..c59529ce25a2 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -148,6 +148,18 @@ config POWER_RESET_ODROID_GO_ULTRA_POWEROFF
>  	help
>  	  This driver supports Power off for Odroid Go Ultra device.
>  
> +config POWER_RESET_PHOTONICAT_POWEROFF
> +	tristate "Photonicat PMU power-off driver"
> +	depends on MFD_PHOTONICAT_PMU

|| COMPILE_TEST, no?

> +	help
> +	  This driver supports Power off for Photonicat PMU device.
> +
> +	  Supports operations:
> +	    Host notifies PMU to shutdown
> +	    PMU notifies host to shutdown
> +
> +	  Say Y if you have a Photonicat board.
> +
>  config POWER_RESET_PIIX4_POWEROFF
>  	tristate "Intel PIIX4 power-off driver"
>  	depends on PCI
> diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
> index a95d1bd275d1..339b36812b95 100644
> --- a/drivers/power/reset/Makefile
> +++ b/drivers/power/reset/Makefile
> @@ -17,6 +17,7 @@ obj-$(CONFIG_POWER_RESET_MT6323) += mt6323-poweroff.o
>  obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
>  obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
>  obj-$(CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF) += odroid-go-ultra-poweroff.o
> +obj-$(CONFIG_POWER_RESET_PHOTONICAT_POWEROFF) += photonicat-poweroff.o
>  obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
>  obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
>  obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
> diff --git a/drivers/power/reset/photonicat-poweroff.c b/drivers/power/reset/photonicat-poweroff.c
> new file mode 100644
> index 000000000000..f9f1ea179247
> --- /dev/null
> +++ b/drivers/power/reset/photonicat-poweroff.c
> @@ -0,0 +1,95 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (c) 2024 Junhao Xie <bigfoot@classfun.cn>
> + */
> +
> +#include <linux/mfd/photonicat-pmu.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +
> +struct pcat_poweroff {
> +	struct device *dev;
> +	struct pcat_pmu *pmu;
> +	struct notifier_block nb;
> +};
> +
> +static int pcat_do_poweroff(struct sys_off_data *data)
> +{
> +	struct pcat_poweroff *poweroff = data->cb_data;
> +
> +	dev_info(poweroff->dev, "Host request PMU shutdown\n");
> +	pcat_pmu_write_data(poweroff->pmu, PCAT_CMD_HOST_REQUEST_SHUTDOWN,
> +			    NULL, 0);
> +
> +	return NOTIFY_DONE;
> +}
> +
> +static int pcat_poweroff_notify(struct notifier_block *nb, unsigned long action,
> +				void *data)
> +{
> +	struct pcat_poweroff *poweroff =
> +		container_of(nb, struct pcat_poweroff, nb);
> +
> +	if (action != PCAT_CMD_PMU_REQUEST_SHUTDOWN)
> +		return NOTIFY_DONE;
> +
> +	dev_info(poweroff->dev, "PMU request host shutdown\n");

Nope. Drop.

> +	orderly_poweroff(true);
> +
> +	return NOTIFY_DONE;
Best regards,
Krzysztof


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  reply	other threads:[~2024-09-06  9:45 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-06  9:36 [PATCH 0/9] Introduce Photonicat power management MCU driver Junhao Xie
2024-09-06  9:36 ` Junhao Xie
2024-09-06  9:36 ` [PATCH 1/9] mfd: Add driver for Photonicat power management MCU Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:43   ` Krzysztof Kozlowski
2024-09-06  9:43     ` Krzysztof Kozlowski
2024-09-06 10:40     ` Junhao Xie
2024-09-06 10:40       ` Junhao Xie
2024-09-07  8:10   ` Markus Elfring
2024-09-07  8:10     ` Markus Elfring
2024-09-07 14:46     ` Junhao Xie
2024-09-07 14:46       ` Junhao Xie
2024-09-07  8:44   ` Markus Elfring
2024-09-07  8:44     ` Markus Elfring
2024-09-07 14:33     ` Junhao Xie
2024-09-07 14:33       ` Junhao Xie
2024-09-08  8:14       ` Krzysztof Kozlowski
2024-09-08  8:14         ` Krzysztof Kozlowski
2024-09-12  7:55         ` Lee Jones
2024-09-12  7:55           ` Lee Jones
2024-09-06  9:36 ` [PATCH 2/9] power: reset: add Photonicat PMU poweroff driver Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:44   ` Krzysztof Kozlowski [this message]
2024-09-06  9:44     ` Krzysztof Kozlowski
2024-09-06 10:05     ` Junhao Xie
2024-09-06 10:05       ` Junhao Xie
2024-09-06  9:36 ` [PATCH 3/9] watchdog: Add Photonicat PMU watchdog driver Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06 11:52   ` Guenter Roeck
2024-09-06 11:52     ` Guenter Roeck
2024-09-06 13:41     ` Junhao Xie
2024-09-06 13:41       ` Junhao Xie
2024-09-06  9:36 ` [PATCH 4/9] power: supply: photonicat-supply: Add Photonicat PMU battery and charger Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:36 ` [PATCH 5/9] rtc: Add Photonicat PMU real-time clock Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:36 ` [PATCH 6/9] hwmon: Add support for Photonicat PMU board temperature sensor Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06 11:41   ` Guenter Roeck
2024-09-06 11:41     ` Guenter Roeck
2024-09-06 13:49     ` Junhao Xie
2024-09-06 13:49       ` Junhao Xie
2024-09-06 14:33       ` Guenter Roeck
2024-09-06 14:33         ` Guenter Roeck
2024-09-06  9:36 ` [PATCH 7/9] leds: add Photonicat PMU LED driver Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-10-02 15:35   ` Lee Jones
2024-10-02 15:35     ` Lee Jones
2024-11-08  3:48     ` Junhao Xie
2024-11-08  3:48       ` Junhao Xie
2024-09-06  9:36 ` [PATCH 8/9] dt-bindings: Add documentation for Photonicat PMU Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:51   ` Krzysztof Kozlowski
2024-09-06  9:51     ` Krzysztof Kozlowski
2024-09-07 14:27     ` Junhao Xie
2024-09-07 14:27       ` Junhao Xie
2024-09-08  8:13       ` Krzysztof Kozlowski
2024-09-08  8:13         ` Krzysztof Kozlowski
2024-09-06  9:36 ` [PATCH 9/9] arm64: dts: rockchip: add Photonicat PMU support for Ariaboard Photonicat Junhao Xie
2024-09-06  9:36   ` Junhao Xie
2024-09-06  9:53   ` Krzysztof Kozlowski
2024-09-06  9:53     ` Krzysztof Kozlowski
2024-09-06 13:56     ` Junhao Xie
2024-09-06 13:56       ` Junhao Xie
2024-09-06  9:45 ` [PATCH 0/9] Introduce Photonicat power management MCU driver Krzysztof Kozlowski
2024-09-06  9:45   ` Krzysztof Kozlowski
2024-09-06 10:20   ` Junhao Xie
2024-09-06 10:20     ` Junhao Xie
2024-09-08  9:30 ` Chukun Pan
2024-09-08  9:30   ` Chukun Pan
2024-09-11  6:23   ` Junhao Xie
2024-09-11  6:23     ` Junhao Xie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=90a5b41b-84cd-4daa-b102-04a29c2cd46b@kernel.org \
    --to=krzk@kernel.org \
    --cc=alexandre.belloni@bootlin.com \
    --cc=amadeus@jmu.edu.cn \
    --cc=bigfoot@classfun.cn \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=jdelvare@suse.com \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=pavel@ucw.cz \
    --cc=robh@kernel.org \
    --cc=sre@kernel.org \
    --cc=wim@linux-watchdog.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.