From: Lee Jones <lee@kernel.org>
To: Matti Vaittinen <mazziesaccount@gmail.com>
Cc: Andreas Kemnade <andreas@kemnade.info>,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 2/2] mfd: rohm-bd71828: Add power off functionality
Date: Thu, 11 Apr 2024 15:07:50 +0100 [thread overview]
Message-ID: <20240411140750.GA2399047@google.com> (raw)
In-Reply-To: <f89d63ca-1db2-47fa-8d66-943fc7454643@gmail.com>
On Thu, 11 Apr 2024, Matti Vaittinen wrote:
> On 4/11/24 14:50, Lee Jones wrote:
> > On Tue, 02 Apr 2024, Andreas Kemnade wrote:
> >
> > > Since the chip can power off the system, add the corresponding
> > > functionality.
> > > Based on https://github.com/kobolabs/Kobo-Reader/raw/master/hw/imx6sll-clara2e/kernel.tar.bz2
> > >
> > > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> > > Acked-by: Matti Vaittinen <mazziesaccount@gmail.com>
> > > ---
> > > drivers/mfd/rohm-bd71828.c | 36 +++++++++++++++++++++++++++++++-
> > > include/linux/mfd/rohm-bd71828.h | 3 +++
> > > 2 files changed, 38 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/mfd/rohm-bd71828.c b/drivers/mfd/rohm-bd71828.c
> > > index 594718f7e8e1..4a1fa8a0d76a 100644
> > > --- a/drivers/mfd/rohm-bd71828.c
> > > +++ b/drivers/mfd/rohm-bd71828.c
> > > @@ -464,6 +464,27 @@ static int set_clk_mode(struct device *dev, struct regmap *regmap,
> > > OUT32K_MODE_CMOS);
> > > }
> > > +static struct i2c_client *bd71828_dev;
> > > +static void bd71828_power_off(void)
> > > +{
> > > + while (true) {
> > > + s32 val;
> > > +
> > > + /* We are not allowed to sleep, so do not use regmap involving mutexes here. */
> > > + val = i2c_smbus_read_byte_data(bd71828_dev, BD71828_REG_PS_CTRL_1);
> > > + if (val >= 0)
> > > + i2c_smbus_write_byte_data(bd71828_dev,
> > > + BD71828_REG_PS_CTRL_1,
> > > + BD71828_MASK_STATE_HBNT | (u8)val);
> > > + mdelay(500);
> > > + }
> > > +}
> > > +
> > > +static void bd71828_remove_poweroff(void *data)
> > > +{
> > > + pm_power_off = NULL;
> > > +}
> > > +
> > > static int bd71828_i2c_probe(struct i2c_client *i2c)
> > > {
> > > struct regmap_irq_chip_data *irq_data;
> > > @@ -542,7 +563,20 @@ static int bd71828_i2c_probe(struct i2c_client *i2c)
> > > ret = devm_mfd_add_devices(&i2c->dev, PLATFORM_DEVID_AUTO, mfd, cells,
> > > NULL, 0, regmap_irq_get_domain(irq_data));
> > > if (ret)
> > > - dev_err_probe(&i2c->dev, ret, "Failed to create subdevices\n");
> > > + return dev_err_probe(&i2c->dev, ret, "Failed to create subdevices\n");
> > > +
> > > + if (of_device_is_system_power_controller(i2c->dev.of_node) &&
> > > + chip_type == ROHM_CHIP_TYPE_BD71828) {
> > > + if (!pm_power_off) {
> > > + bd71828_dev = i2c;
> > > + pm_power_off = bd71828_power_off;
> > > + ret = devm_add_action_or_reset(&i2c->dev,
> > > + bd71828_remove_poweroff,
> > > + NULL);
> > > + } else {
> > > + dev_warn(&i2c->dev, "Poweroff callback already assigned\n");
> > > + }
> > > + }
> > > return ret;
> > > }
> > > diff --git a/include/linux/mfd/rohm-bd71828.h b/include/linux/mfd/rohm-bd71828.h
> > > index 3b5f3a7db4bd..9776fde1262d 100644
> > > --- a/include/linux/mfd/rohm-bd71828.h
> > > +++ b/include/linux/mfd/rohm-bd71828.h
> > > @@ -4,6 +4,7 @@
> > > #ifndef __LINUX_MFD_BD71828_H__
> > > #define __LINUX_MFD_BD71828_H__
> > > +#include <linux/bits.h>
> > > #include <linux/mfd/rohm-generic.h>
> > > #include <linux/mfd/rohm-shared.h>
> > > @@ -41,6 +42,8 @@ enum {
> > > #define BD71828_REG_PS_CTRL_2 0x05
> > > #define BD71828_REG_PS_CTRL_3 0x06
> > > +#define BD71828_MASK_STATE_HBNT BIT(1)
> > > +
> > > //#define BD71828_REG_SWRESET 0x06
> >
> > How did this get in here?
>
> Don't blame me, blame git... Errm... :)
> [mvaittin@fedora linux]$ git blame include/linux/mfd/rohm-bd71828.h |grep
> \/\/
> 1c743ad523bb2 (Matti Vaittinen 2020-01-20 15:43:28 +0200 44) //#define
> BD71828_REG_SWRESET 0x06
> 1c743ad523bb2 (Matti Vaittinen 2020-01-20 15:43:28 +0200 136) //#define
> BD71828_REG_LDO6_VOLT 0x4
>
> I can send a clean-up patch unless you want to do it while applying other
> stuff...
Please submit a patch.
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2024-04-11 14:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-02 11:16 [PATCH v3 0/2] mfd: rohm-bd71828: Add power off Andreas Kemnade
2024-04-02 11:16 ` [PATCH v3 1/2] dt-bindings: mfd: Add ROHM BD71828 system-power-controller property Andreas Kemnade
2024-04-02 13:15 ` Matti Vaittinen
2024-04-02 11:17 ` [PATCH v3 2/2] mfd: rohm-bd71828: Add power off functionality Andreas Kemnade
2024-04-11 11:50 ` Lee Jones
2024-04-11 12:14 ` Matti Vaittinen
2024-04-11 14:07 ` Lee Jones [this message]
2024-04-11 11:51 ` [PATCH v3 0/2] mfd: rohm-bd71828: Add power off Lee Jones
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=20240411140750.GA2399047@google.com \
--to=lee@kernel.org \
--cc=andreas@kemnade.info \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mazziesaccount@gmail.com \
--cc=robh+dt@kernel.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.