From: Sam Ravnborg <sam@ravnborg.org>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Barebox List <barebox@lists.infradead.org>
Subject: Re: [PATCH 1/2] watchdog: i.MX: add soc_reset operation
Date: Fri, 20 Jan 2017 06:39:03 +0100 [thread overview]
Message-ID: <20170120053903.GA25134@ravnborg.org> (raw)
In-Reply-To: <20170119150352.5421-1-s.hauer@pengutronix.de>
On Thu, Jan 19, 2017 at 04:03:51PM +0100, Sascha Hauer wrote:
> On i.MX21 watchdog type the reset operation is really different
> from the watchdog enable/set timeout operation, so create an
> extra callback for this instead of folding both things together.
>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> drivers/watchdog/imxwd.c | 32 +++++++++++++++++++++-----------
> 1 file changed, 21 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c
> index 03e116ea2..c736fdaa3 100644
> --- a/drivers/watchdog/imxwd.c
> +++ b/drivers/watchdog/imxwd.c
> @@ -26,6 +26,7 @@ struct imx_wd;
>
> struct imx_wd_ops {
> int (*set_timeout)(struct imx_wd *, int);
With this change the timeout argument could be unsigned int.
> + void (*soc_reset)(struct imx_wd *);
> int (*init)(struct imx_wd *);
> };
>
> @@ -76,10 +77,7 @@ static int imx1_watchdog_set_timeout(struct imx_wd *priv, int timeout)
> return 0;
> }
>
> - if (timeout > 0)
> - val = (timeout * 2 - 1) << 8;
> - else
> - val = 0;
> + val = (timeout * 2 - 1) << 8;
>
> writew(val, priv->base + IMX1_WDOG_WCR);
> writew(IMX1_WDOG_WCR_WDE | val, priv->base + IMX1_WDOG_WCR);
Otherwise the timeout < 0 should somehow be handled here.
> @@ -91,6 +89,11 @@ static int imx1_watchdog_set_timeout(struct imx_wd *priv, int timeout)
> return 0;
> }
>
> +static void imx1_soc_reset(struct imx_wd *priv)
> +{
> + writew(IMX1_WDOG_WCR_WDE, priv->base + IMX1_WDOG_WCR);
> +}
> +
> static int imx21_watchdog_set_timeout(struct imx_wd *priv, int timeout)
> {
> u16 val;
> @@ -103,13 +106,9 @@ static int imx21_watchdog_set_timeout(struct imx_wd *priv, int timeout)
> if (timeout == 0) /* bit 2 (WDE) cannot be set to 0 again */
> return -ENOSYS;
>
> - if (timeout > 0)
> - val = ((timeout * 2 - 1) << 8) | IMX21_WDOG_WCR_SRS |
> - IMX21_WDOG_WCR_WDA;
> - else
> - val = 0;
> + val = ((timeout * 2 - 1) << 8) | IMX21_WDOG_WCR_SRS |
> + IMX21_WDOG_WCR_WDA;
Likewise.
Sam
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2017-01-20 5:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-19 15:03 [PATCH 1/2] watchdog: i.MX: add soc_reset operation Sascha Hauer
2017-01-19 15:03 ` [PATCH 2/2] watchdog: i.MX: Fix internal/external reset Sascha Hauer
2017-01-20 5:39 ` Sam Ravnborg [this message]
2017-01-20 5:44 ` [PATCH 1/2] watchdog: i.MX: add soc_reset operation Sam Ravnborg
2017-01-20 8:10 ` Sascha Hauer
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=20170120053903.GA25134@ravnborg.org \
--to=sam@ravnborg.org \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@pengutronix.de \
/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.