From: Kevin Hilman <khilman@baylibre.com>
To: "Markus Schneider-Pargmann" <msp@baylibre.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Tony Lindgren" <tony@atomide.com>,
"John Ogness" <john.ogness@linutronix.de>,
"Markus Schneider-Pargmann" <msp@baylibre.com>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Ronald Wahl" <ronald.wahl@raritan.com>,
"Thomas Richard" <thomas.richard@bootlin.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Vignesh Raghavendra" <vigneshr@ti.com>
Cc: Vibhore Vardhan <vibhore@ti.com>, Dhruva Gole <d-gole@ti.com>,
linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH 4/5] serial: 8250: omap: Support wakeup pinctrl state
Date: Tue, 30 Jul 2024 14:16:12 -0700 [thread overview]
Message-ID: <7hmsly60o3.fsf@baylibre.com> (raw)
In-Reply-To: <20240523075819.1285554-5-msp@baylibre.com>
Markus Schneider-Pargmann <msp@baylibre.com> writes:
> UART can be used as a wakeup source for am62 from a powered-off SoC
nit: To be a bit more precise, instead of saying UART can be used as a
wakeup source, I think you should say:
Certain UART pins can be used...
> state. To enable wakeup from UART am62 requires a wakeup flag being set
> in the pinctrl.
>
> If the device is marked as wakeup enabled, select the 'wakeup' pinctrl
> state on sys_off.
>
> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
> ---
> drivers/tty/serial/8250/8250_omap.c | 39 +++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
> index 5b7508dfb5d8..617a421a1396 100644
> --- a/drivers/tty/serial/8250/8250_omap.c
> +++ b/drivers/tty/serial/8250/8250_omap.c
> @@ -27,8 +27,10 @@
> #include <linux/pm_qos.h>
> #include <linux/pm_wakeirq.h>
> #include <linux/dma-mapping.h>
> +#include <linux/reboot.h>
> #include <linux/sys_soc.h>
> #include <linux/pm_domain.h>
> +#include <linux/pinctrl/consumer.h>
>
> #include "8250.h"
>
> @@ -149,6 +151,9 @@ struct omap8250_priv {
> spinlock_t rx_dma_lock;
> bool rx_dma_broken;
> bool throttled;
> +
> + struct pinctrl *pinctrl;
> + struct pinctrl_state *pinctrl_wakeup;
> };
>
> struct omap8250_dma_params {
> @@ -1345,6 +1350,30 @@ static int omap8250_no_handle_irq(struct uart_port *port)
> return 0;
> }
>
> +static int omap8250_select_wakeup_pinctrl(struct device *dev,
> + struct omap8250_priv *priv)
> +{
> + if (IS_ERR_OR_NULL(priv->pinctrl_wakeup))
> + return 0;
> +
> + if (!device_may_wakeup(dev))
> + return 0;
> +
> + return pinctrl_select_state(priv->pinctrl, priv->pinctrl_wakeup);
> +}
> +
> +static int omap8250_sysoff_handler(struct sys_off_data *data)
> +{
> + struct omap8250_priv *priv = dev_get_drvdata(data->dev);
> + int ret;
> +
> + ret = omap8250_select_wakeup_pinctrl(data->dev, priv);
> + if (ret)
> + dev_err(data->dev, "Failed to select pinctrl state 'wakeup', continuing poweroff\n");
> +
> + return NOTIFY_DONE;
> +}
> +
> static struct omap8250_dma_params am654_dma = {
> .rx_size = SZ_2K,
> .rx_trigger = 1,
> @@ -1566,6 +1595,16 @@ static int omap8250_probe(struct platform_device *pdev)
> priv->line = ret;
> pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
> +
> + priv->pinctrl = devm_pinctrl_get(&pdev->dev);
> + if (!IS_ERR_OR_NULL(priv->pinctrl))
> + priv->pinctrl_wakeup = pinctrl_lookup_state(priv->pinctrl, "wakeup");
> +
> + devm_register_sys_off_handler(&pdev->dev,
> + SYS_OFF_MODE_POWER_OFF_PREPARE,
> + SYS_OFF_PRIO_DEFAULT,
> + omap8250_sysoff_handler, NULL);
> +
> return 0;
> err:
> pm_runtime_dont_use_autosuspend(&pdev->dev);
> --
> 2.43.0
next prev parent reply other threads:[~2024-07-30 21:16 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 7:58 [PATCH 0/5] serial: 8250: omap: Add am62 wakeup support Markus Schneider-Pargmann
2024-05-23 7:58 ` [PATCH 1/5] dt-bindings: serial: 8250_omap: Add wakeup pinctrl state Markus Schneider-Pargmann
2024-05-28 16:01 ` Rob Herring (Arm)
2024-05-23 7:58 ` [PATCH 2/5] serial: 8250: omap: Remove unused wakeups_enabled Markus Schneider-Pargmann
2024-05-23 7:58 ` [PATCH 3/5] serial: 8250: omap: Set wakeup capable, do not enable Markus Schneider-Pargmann
2024-05-27 16:31 ` Andy Shevchenko
2024-07-30 19:33 ` Kevin Hilman
2024-07-30 21:19 ` Kevin Hilman
2024-05-23 7:58 ` [PATCH 4/5] serial: 8250: omap: Support wakeup pinctrl state Markus Schneider-Pargmann
2024-05-27 16:34 ` Andy Shevchenko
2024-07-30 21:16 ` Kevin Hilman [this message]
2024-05-23 7:58 ` [PATCH 5/5] serial: 8250: omap: Set wakeup pinctrl on suspend Markus Schneider-Pargmann
2024-07-30 21:22 ` Kevin Hilman
2024-05-23 19:07 ` [PATCH 0/5] serial: 8250: omap: Add am62 wakeup support Francesco Dolcini
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=7hmsly60o3.fsf@baylibre.com \
--to=khilman@baylibre.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=conor+dt@kernel.org \
--cc=d-gole@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=john.ogness@linutronix.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=msp@baylibre.com \
--cc=robh@kernel.org \
--cc=ronald.wahl@raritan.com \
--cc=tglx@linutronix.de \
--cc=thomas.richard@bootlin.com \
--cc=tony@atomide.com \
--cc=u.kleine-koenig@pengutronix.de \
--cc=vibhore@ti.com \
--cc=vigneshr@ti.com \
/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.