From: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: mazziesaccount@gmail.com, heikki.haikola@fi.rohmeurope.com,
mikko.mutanen@fi.rohmeurope.com, lee.jones@linaro.org,
robh+dt@kernel.org, mark.rutland@arm.com, broonie@kernel.org,
gregkh@linuxfoundation.org, rafael@kernel.org,
mturquette@baylibre.com, sboyd@kernel.org,
linus.walleij@linaro.org, bgolaszewski@baylibre.com,
sre@kernel.org, lgirdwood@gmail.com, a.zummo@towertech.it,
alexandre.belloni@bootlin.com, wim@linux-watchdog.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org,
linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org,
linux-watchdog@vger.kernel.org
Subject: Re: [RFC PATCH v5 10/10] watchdog: bd70528: Initial support for ROHM BD70528 watchdog block
Date: Tue, 5 Feb 2019 09:20:27 +0200 [thread overview]
Message-ID: <20190205072027.GA2817@localhost.localdomain> (raw)
In-Reply-To: <a76ec2b9-a95e-a17a-f231-c1d04ec8e846@roeck-us.net>
On Mon, Feb 04, 2019 at 06:38:43AM -0800, Guenter Roeck wrote:
> On 2/4/19 4:49 AM, Matti Vaittinen wrote:
> > Initial support for watchdog block included in ROHM BD70528
> > power management IC.
> >
> > Configurations for low power states are still to be checked.
> >
> > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> > ---
> > drivers/watchdog/Kconfig | 12 +++
> > drivers/watchdog/Makefile | 1 +
> > drivers/watchdog/bd70528_wdt.c | 187 +++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 200 insertions(+)
> > create mode 100644 drivers/watchdog/bd70528_wdt.c
> >
> > +
> > +struct wdtbd70528 {
> > + struct device *dev;
> > + struct regmap *regmap;
> > + struct mutex *rtc_lock;
> > + struct watchdog_device wdt;
> > +};
> > +
> > +static int bd70528_wdt_set_locked(struct wdtbd70528 *w, int enable)
> > +{
> > + struct bd70528 *bd70528;
> > +
> > + bd70528 = container_of(w->rtc_lock, struct bd70528, rtc_timer_lock);
> > + return bd70528->wdt_set(bd70528, enable, NULL);
> > +}
>
> Please add an empty line here.
Ok.
> > +static int bd70528_wdt_set(struct wdtbd70528 *w, int enable)
> > +{
> > + int ret;
> > +
> > + mutex_lock(w->rtc_lock);
> > + ret = bd70528_wdt_set_locked(w, enable);
> > + mutex_unlock(w->rtc_lock);
> > +
> > + return ret;
> > +}
> > +
> > +static int bd70528_wdt_start(struct watchdog_device *wdt)
> > +{
> > + struct wdtbd70528 *w = watchdog_get_drvdata(wdt);
> > +
> > + dev_dbg(w->dev, "WDT ping...\n");
> > + return bd70528_wdt_set(w, 1);
> > +}
> > +
> > +static int bd70528_wdt_stop(struct watchdog_device *wdt)
> > +{
> > + struct wdtbd70528 *w = watchdog_get_drvdata(wdt);
> > +
> > + dev_dbg(w->dev, "WDT stopping...\n");
> > + return bd70528_wdt_set(w, 0);
> > +}
> > +
> > +static int bd70528_wdt_set_timeout(struct watchdog_device *wdt,
> > + unsigned int timeout)
> > +{
> > + unsigned int hours;
> > + unsigned int minutes;
> > + unsigned int seconds;
> > + int ret;
> > + struct wdtbd70528 *w = watchdog_get_drvdata(wdt);
> > +
> > + seconds = timeout;
> > + hours = timeout / (60 * 60);
> > + /* Maximum timeout is 1h 59m 59s => hours is 1 or 0 */
> > + if (hours)
> > + seconds -= (60 * 60);
> > + minutes = seconds / 60;
> > + seconds = seconds % 60;
> > +
> > + mutex_lock(w->rtc_lock);
> > +
> > + ret = bd70528_wdt_set_locked(w, 0);
> > + if (ret)
> > + goto out_unlock;
> > +
> > + ret = regmap_update_bits(w->regmap, BD70528_REG_WDT_HOUR,
> > + BD70528_MASK_WDT_HOUR, hours);
> > + if (ret) {
> > + dev_err(w->dev, "Failed to set WDT hours\n");
> > + goto out_en_unlock;
> > + }
> > + ret = regmap_update_bits(w->regmap, BD70528_REG_WDT_MINUTE,
> > + BD70528_MASK_WDT_MINUTE, bin2bcd(minutes));
> > + if (ret) {
> > + dev_err(w->dev, "Failed to set WDT minutes\n");
> > + goto out_en_unlock;
> > + }
> > + ret = regmap_update_bits(w->regmap, BD70528_REG_WDT_SEC,
> > + BD70528_MASK_WDT_SEC, bin2bcd(seconds));
> > + if (ret)
> > + dev_err(w->dev, "Failed to set WDT seconds\n");
> > + else
> > + dev_dbg(w->dev, "WDT tmo set to %u\n", timeout);
> > +
> > +out_en_unlock:
> > + ret = bd70528_wdt_set_locked(w, 1);
> > +out_unlock:
> > + mutex_unlock(w->rtc_lock);
> > +
> > + return ret;
> > +}
> > +
> > +static const struct watchdog_info bd70528_wdt_info = {
> > + .identity = "bd70528-wdt",
> > + .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
> > +};
> > +
> > +static const struct watchdog_ops bd70528_wdt_ops = {
> > + .start = bd70528_wdt_start,
> > + .stop = bd70528_wdt_stop,
> > + .set_timeout = bd70528_wdt_set_timeout,
> > +};
> > +
> > +/* Max time we can set is 1 hour, 59 minutes and 59 seconds */
> > +#define WDT_MAX_MS ((2 * 60 * 60 - 1) * 1000)
> > +/* Minimum time is 1 second */
> > +#define WDT_MIN_MS 1000
> > +#define DEFAULT_TIMEOUT 60
> > +
>
> Please move to top, and tab-align the values.
Ok.
> Otherwise I am ok with the patch.
>
> On a side note, isn't it past time to drop the RFC ?
Well, the two main things for me to send this as RFC were the
regmap-irq change (which I had already discussed with Mark, and which is
now applied already - so that's Ok) and splitting the existing
include/linux/mfd/rohm-bd718x7.h header (patches 1 - 3). I hoped to get
commnts from Lee, Stephen and Mark for the idea of header split (this
impacts to already submitted bd718x7 driver and I was unsure if this good
or bad approach) but I haven't heard of Lee or Stephen yet.
Still, I have now received acks for dt-bindings, regulators, gpio and
now also for wdt - and I don't think these are heavily impacted even if
the header split was not Ok - so I guess dropping the RFC makes sense.
Thanks for pointing that out.
I'll send v6 with changes you suggested here and drop the RFC.
Br,
Matti Vaittinen
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then, he vanished ~~~
prev parent reply other threads:[~2019-02-05 7:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-04 12:44 [RFC PATCH v5 00/10] support ROHM BD70528 PMIC Matti Vaittinen
2019-02-04 12:45 ` [RFC PATCH v5 01/10] mfd: bd718x7.h split to ROHM common and bd718x7 specific parts Matti Vaittinen
2019-02-04 12:46 ` [RFC PATCH v5 02/10] regulator: bd718x7 use chip specific and generic data structs Matti Vaittinen
2019-02-04 12:46 ` [RFC PATCH v5 03/10] clk: bd718x7: " Matti Vaittinen
2019-02-04 12:46 ` [RFC PATCH v5 04/10] mfd: bd70528: Support ROHM bd70528 PMIC - core Matti Vaittinen
2019-02-04 12:47 ` [RFC PATCH v5 05/10] clk: bd718x7: Support ROHM BD70528 clk block Matti Vaittinen
2019-02-04 12:47 ` [RFC PATCH v5 06/10] devicetree: bindings: Document first ROHM BD70528 bindings Matti Vaittinen
2019-02-04 12:48 ` [RFC PATCH v5 07/10] gpio: Initial support for ROHM bd70528 GPIO block Matti Vaittinen
2019-02-04 12:48 ` [RFC PATCH v5 08/10] rtc: bd70528: Initial support for ROHM bd70528 RTC Matti Vaittinen
2019-02-04 12:48 ` [RFC PATCH v5 09/10] power: supply: Initial support for ROHM BD70528 PMIC charger block Matti Vaittinen
2019-02-04 12:49 ` [RFC PATCH v5 10/10] watchdog: bd70528: Initial support for ROHM BD70528 watchdog block Matti Vaittinen
2019-02-04 14:38 ` Guenter Roeck
2019-02-05 7:20 ` Matti Vaittinen [this message]
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=20190205072027.GA2817@localhost.localdomain \
--to=matti.vaittinen@fi.rohmeurope.com \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@bootlin.com \
--cc=bgolaszewski@baylibre.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.haikola@fi.rohmeurope.com \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=mazziesaccount@gmail.com \
--cc=mikko.mutanen@fi.rohmeurope.com \
--cc=mturquette@baylibre.com \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sboyd@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.