From: "Nuno Sá" <noname.nuno@gmail.com>
To: Lee Jones <lee@kernel.org>, nuno.sa@analog.com
Cc: linux-gpio@vger.kernel.org, linux-pwm@vger.kernel.org,
devicetree@vger.kernel.org, linux-input@vger.kernel.org,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Liu Ying" <victor.liu@nxp.com>
Subject: Re: [PATCH v4 03/20] mfd: adp5585: enable oscilator during probe
Date: Thu, 12 Jun 2025 15:40:12 +0100 [thread overview]
Message-ID: <4736b759609a9939b3a99a5c87df0fd5518a6af0.camel@gmail.com> (raw)
In-Reply-To: <20250612142001.GH381401@google.com>
On Thu, 2025-06-12 at 15:20 +0100, Lee Jones wrote:
> On Wed, 21 May 2025, Nuno Sá via B4 Relay wrote:
>
> > From: Nuno Sá <nuno.sa@analog.com>
> >
> > Make sure to enable the oscillator in the top device. This will allow to
> > not control this in the child PWM device as that would not work with
> > future support for keyboard matrix where the oscillator needs to be
> > always enabled (and so cannot be disabled by disabling PWM).
> >
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Signed-off-by: Nuno Sá <nuno.sa@analog.com>
> > ---
> > drivers/mfd/adp5585.c | 23 +++++++++++++++++++++++
> > drivers/pwm/pwm-adp5585.c | 5 -----
> > 2 files changed, 23 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/mfd/adp5585.c b/drivers/mfd/adp5585.c
> > index
> > 806867c56d6fb4ef1f461af26a424a3a05f46575..f3b74f7d6040413d066eb6dbaecfa3d5e6
> > ee06bd 100644
> > --- a/drivers/mfd/adp5585.c
> > +++ b/drivers/mfd/adp5585.c
> > @@ -147,6 +147,13 @@ static int adp5585_add_devices(struct device *dev)
> > return ret;
> > }
> >
> > +static void adp5585_osc_disable(void *data)
> > +{
> > + const struct adp5585_dev *adp5585 = data;
> > +
> > + regmap_write(adp5585->regmap, ADP5585_GENERAL_CFG, 0);
> > +}
> > +
> > static int adp5585_i2c_probe(struct i2c_client *i2c)
> > {
> > const struct regmap_config *regmap_config;
> > @@ -175,6 +182,22 @@ static int adp5585_i2c_probe(struct i2c_client *i2c)
> > return dev_err_probe(&i2c->dev, -ENODEV,
> > "Invalid device ID 0x%02x\n", id);
> >
> > + /*
> > + * Enable the internal oscillator, as it's shared between multiple
> > + * functions.
> > + *
> > + * As a future improvement, power consumption could possibly be
> > + * decreased in some use cases by enabling and disabling the
> > oscillator
> > + * dynamically based on the needs of the child drivers.
>
> This is normal. What's stopping us from doing this from the offset?
This is always needed when we have the input device registered. From my testing,
we also need it for GPIOs configured as input. So basically the only reason this
is not being done now is that it would not be trivial or really straightforward
and honestly the series is already big enough :)
Laurent also agreed with this not being mandatory now so hopefully it's also
fine with you.
- Nuno Sá
>
> > + */
> > + ret = regmap_set_bits(adp5585->regmap, ADP5585_GENERAL_CFG,
> > ADP5585_OSC_EN);
> > + if (ret)
> > + return ret;
> > +
> > + ret = devm_add_action_or_reset(&i2c->dev, adp5585_osc_disable,
> > adp5585);
> > + if (ret)
> > + return ret;
> > +
> > return adp5585_add_devices(&i2c->dev);
> > }
> >
> > diff --git a/drivers/pwm/pwm-adp5585.c b/drivers/pwm/pwm-adp5585.c
> > index
> > 40472ac5db6410a33e4f790fe8e6c23b517502be..c8821035b7c1412a55a642e6e8a46b66e6
> > 93a5af 100644
> > --- a/drivers/pwm/pwm-adp5585.c
> > +++ b/drivers/pwm/pwm-adp5585.c
> > @@ -62,7 +62,6 @@ static int pwm_adp5585_apply(struct pwm_chip *chip,
> > int ret;
> >
> > if (!state->enabled) {
> > - regmap_clear_bits(regmap, ADP5585_GENERAL_CFG,
> > ADP5585_OSC_EN);
> > regmap_clear_bits(regmap, ADP5585_PWM_CFG, ADP5585_PWM_EN);
> > return 0;
> > }
> > @@ -100,10 +99,6 @@ static int pwm_adp5585_apply(struct pwm_chip *chip,
> > if (ret)
> > return ret;
> >
> > - ret = regmap_set_bits(regmap, ADP5585_GENERAL_CFG, ADP5585_OSC_EN);
> > - if (ret)
> > - return ret;
> > -
> > return regmap_set_bits(regmap, ADP5585_PWM_CFG, ADP5585_PWM_EN);
> > }
> >
> >
> > --
> > 2.49.0
> >
> >
next prev parent reply other threads:[~2025-06-12 14:40 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-21 13:02 [PATCH v4 00/20] mfd: adp5585: support keymap events and drop legacy Input driver Nuno Sá via B4 Relay
2025-05-21 13:02 ` [PATCH v4 01/20] dt-bindings: mfd: adp5585: ease on the required properties Nuno Sá via B4 Relay
2025-05-21 13:02 ` [PATCH v4 02/20] mfd: adp5585: only add devices given in FW Nuno Sá via B4 Relay
2025-05-23 14:51 ` Lee Jones
2025-05-23 15:07 ` Nuno Sá
2025-05-23 15:19 ` Lee Jones
2025-05-23 15:45 ` Nuno Sá
2025-06-12 14:17 ` Lee Jones
2025-05-21 13:02 ` [PATCH v4 03/20] mfd: adp5585: enable oscilator during probe Nuno Sá via B4 Relay
2025-06-12 14:20 ` Lee Jones
2025-06-12 14:40 ` Nuno Sá [this message]
2025-06-12 15:20 ` Lee Jones
2025-06-13 9:43 ` Nuno Sá
2025-05-21 13:02 ` [PATCH v4 04/20] mfd: adp5585: make use of MFD_CELL_NAME() Nuno Sá via B4 Relay
2025-05-23 14:53 ` Lee Jones
2025-05-21 13:02 ` [PATCH v4 05/20] dt-bindings: mfd: adp5585: document adp5589 I/O expander Nuno Sá via B4 Relay
2025-05-21 13:02 ` [PATCH v4 06/20] mfd: adp5585: refactor how regmap defaults are handled Nuno Sá via B4 Relay
2025-05-23 15:03 ` Lee Jones
2025-05-27 10:08 ` Nuno Sá
2025-05-21 13:02 ` [PATCH v4 07/20] mfd: adp5585: add support for adp5589 Nuno Sá via B4 Relay
2025-05-23 15:15 ` Lee Jones
2025-05-27 10:20 ` Nuno Sá
2025-05-21 13:02 ` [PATCH v4 08/20] mfd: adp5585: add a per chip reg struture Nuno Sá via B4 Relay
2025-06-12 14:22 ` Lee Jones
2025-05-21 13:02 ` [PATCH v4 09/20] gpio: adp5585: add support for the adp5589 expander Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 10/20] pwm: adp5585: add support for adp5589 Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 11/20] dt-bindings: mfd: adp5585: add properties for input events Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 12/20] mfd: adp5585: add support for event handling Nuno Sá via B4 Relay
2025-06-12 14:29 ` Lee Jones
2025-05-21 13:03 ` [PATCH v4 13/20] mfd: adp5585: support reset and unlock events Nuno Sá via B4 Relay
2025-06-12 14:55 ` Lee Jones
2025-06-13 9:48 ` Nuno Sá
2025-06-13 13:07 ` Lee Jones
2025-06-13 13:13 ` Nuno Sá
2025-06-13 13:27 ` Lee Jones
2025-05-21 13:03 ` [PATCH v4 14/20] mfd: adp5585: add support for input devices Nuno Sá via B4 Relay
2025-06-12 15:16 ` Lee Jones
2025-05-21 13:03 ` [PATCH v4 15/20] gpio: adp5585: support gpi events Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 16/20] Input: adp5585: Add Analog Devices ADP5585/89 support Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 17/20] Input: adp5589: remove the driver Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 18/20] mfd: adp5585: support getting vdd regulator Nuno Sá via B4 Relay
2025-06-12 15:17 ` Lee Jones
2025-05-21 13:03 ` [PATCH v4 19/20] dt-bindings: mfd: adp5585: document reset gpio Nuno Sá via B4 Relay
2025-05-21 13:03 ` [PATCH v4 20/20] mfd: adp5585: add support for a reset pin Nuno Sá via B4 Relay
2025-06-12 15:18 ` 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=4736b759609a9939b3a99a5c87df0fd5518a6af0.camel@gmail.com \
--to=noname.nuno@gmail.com \
--cc=brgl@bgdev.pl \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=ukleinek@kernel.org \
--cc=victor.liu@nxp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).