From: Jonathan Cameron <jic23@kernel.org>
To: Svyatoslav Ryhel <clamor95@gmail.com>
Cc: "Lee Jones" <lee@kernel.org>,
"Daniel Thompson" <danielt@kernel.org>,
"Jingoo Han" <jingoohan1@gmail.com>,
"Pavel Machek" <pavel@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Helge Deller" <deller@gmx.de>, "Johan Hovold" <johan@kernel.org>,
dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-iio@vger.kernel.org, linux-fbdev@vger.kernel.org
Subject: Re: [PATCH v3 05/11] mfd: lm3533: Convert to use OF bindings
Date: Tue, 2 Jun 2026 14:46:40 +0100 [thread overview]
Message-ID: <20260602144640.433b4d35@jic23-huawei> (raw)
In-Reply-To: <20260601151831.76350-6-clamor95@gmail.com>
On Mon, 1 Jun 2026 18:18:25 +0300
Svyatoslav Ryhel <clamor95@gmail.com> wrote:
> Since there are no users of this driver via platform data, remove the
> platform data support and switch to using Device Tree bindings.
>
> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
> index 52136ca1abc9..55b35467a722 100644
> --- a/drivers/iio/light/lm3533-als.c
> +++ b/drivers/iio/light/lm3533-als.c
> @@ -16,16 +16,19 @@
> #include <linux/module.h>
> #include <linux/mutex.h>
> #include <linux/mfd/core.h>
> +#include <linux/mod_devicetable.h>
> #include <linux/platform_device.h>
> +#include <linux/property.h>
> #include <linux/regmap.h>
> #include <linux/slab.h>
> #include <linux/uaccess.h>
> +#include <linux/units.h>
>
> #include <linux/mfd/lm3533.h>
>
>
> -#define LM3533_ALS_RESISTOR_MIN 1
> -#define LM3533_ALS_RESISTOR_MAX 127
> +#define LM3533_ALS_RESISTOR_MIN 1575
> +#define LM3533_ALS_RESISTOR_MAX 200000
> #define LM3533_ALS_CHANNEL_CURRENT_MAX 2
> #define LM3533_ALS_THRESH_MAX 3
> #define LM3533_ALS_ZONE_MAX 4
> @@ -57,6 +60,9 @@ struct lm3533_als {
>
> atomic_t zone;
> struct mutex thresh_mutex;
> +
> + bool pwm_mode;
> + u32 r_select;
> };
>
>
> @@ -411,7 +417,7 @@ static ssize_t show_thresh_either_en(struct device *dev,
> int enable;
> int ret;
>
> - if (als->irq) {
> + if (als->irq > 0) {
> ret = lm3533_als_get_int_mode(indio_dev, &enable);
> if (ret)
> return ret;
> @@ -716,30 +722,34 @@ static const struct attribute_group lm3533_als_attribute_group = {
> .attrs = lm3533_als_attributes
> };
>
> -static int lm3533_als_setup(struct lm3533_als *als,
> - const struct lm3533_als_platform_data *pdata)
> +static int lm3533_als_setup(struct lm3533_als *als)
> {
> struct device *dev = &als->pdev->dev;
> int ret;
>
> + als->pwm_mode = device_property_read_bool(dev, "ti,pwm-mode");
> +
> ret = regmap_update_bits(als->lm3533->regmap, LM3533_REG_ALS_CONF,
> LM3533_ALS_INPUT_MODE_MASK,
> - pdata->pwm_mode ? LM3533_ALS_INPUT_MODE_MASK : 0);
> + als->pwm_mode ? LM3533_ALS_INPUT_MODE_MASK : 0);
> if (ret)
> return dev_err_probe(dev, ret, "failed to set input mode %d\n",
> - pdata->pwm_mode);
> -
> + als->pwm_mode);
>
> /* ALS input is always high impedance in PWM-mode. */
> - if (!pdata->pwm_mode) {
> - if (pdata->r_select < LM3533_ALS_RESISTOR_MIN ||
> - pdata->r_select > LM3533_ALS_RESISTOR_MAX) {
> - dev_err(&als->pdev->dev, "invalid resistor value\n");
> - return -EINVAL;
> - }
> + if (!als->pwm_mode) {
> + ret = device_property_read_u32(dev, "ti,resistor-value-ohms",
> + &als->r_select);
> + if (ret)
> + return dev_err_probe(dev, ret,
> + "failed to ger resistor value\n");
> +
> + als->r_select = clamp(als->r_select, LM3533_ALS_RESISTOR_MIN,
> + LM3533_ALS_RESISTOR_MAX);
If we are getting garbage from DT I think I'd rather error out that paper over
that problem. So similar to before, check valid value and if not fail probe
so that hopefully someone goes and fixes it!
> + als->r_select = DIV_ROUND_UP(2 * MICRO, 10 * als->r_select);
Why do we need this when we didn't before? The range checks are the same
so it smells like it shouldn't need transforming. I'd also rather we didn't do
rewriting of the meaning of r_select like this. Just use a local variable for
the intermediate result.
>
> ret = regmap_write(als->lm3533->regmap, LM3533_REG_ALS_RESISTOR_SELECT,
> - pdata->r_select);
> + als->r_select);
> if (ret)
> return dev_err_probe(dev, ret, "failed to set resistor\n");
next prev parent reply other threads:[~2026-06-02 13:46 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-01 15:18 [PATCH v3 00/11] mfd: lm3533: convert to OF bindings, improve support Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 01/11] dt-bindings: leds: Document TI LM3533 LED controller Svyatoslav Ryhel
2026-06-02 13:49 ` Daniel Thompson
2026-06-01 15:18 ` [PATCH v3 02/11] mfd: lm3533: Remove driver specific regmap wrappers Svyatoslav Ryhel
2026-06-02 8:05 ` Andy Shevchenko
2026-06-02 10:18 ` Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 03/11] iio: light: lm3533-als: Remove redundant pdata helpers Svyatoslav Ryhel
2026-06-02 8:07 ` Andy Shevchenko
2026-06-02 13:42 ` Jonathan Cameron
2026-06-02 13:45 ` Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 04/11] mfd: lm3533-core: " Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 05/11] mfd: lm3533: Convert to use OF bindings Svyatoslav Ryhel
2026-06-02 8:23 ` Andy Shevchenko
2026-06-02 10:31 ` Svyatoslav Ryhel
2026-06-02 11:05 ` Andy Shevchenko
2026-06-02 12:00 ` Svyatoslav Ryhel
2026-06-02 13:46 ` Jonathan Cameron [this message]
2026-06-02 13:50 ` Svyatoslav Ryhel
2026-06-02 14:20 ` Jonathan Cameron
2026-06-02 14:28 ` Svyatoslav Ryhel
2026-06-02 13:49 ` Daniel Thompson
2026-06-01 15:18 ` [PATCH v3 06/11] mfd: lm3533: Add support for VIN power supply Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 07/11] mfd: lm3533: Set DMA mask Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 08/11] video: backlight: lm3533_bl: Improve linear sysfs logic Svyatoslav Ryhel
2026-06-02 8:09 ` Andy Shevchenko
2026-06-02 10:19 ` Svyatoslav Ryhel
2026-06-02 11:07 ` Andy Shevchenko
2026-06-02 11:59 ` Svyatoslav Ryhel
2026-06-02 13:55 ` Daniel Thompson
2026-06-01 15:18 ` [PATCH v3 09/11] video: backlight: lm3533_bl: Set initial mapping mode from DT Svyatoslav Ryhel
2026-06-02 14:05 ` Daniel Thompson
2026-06-01 15:18 ` [PATCH v3 10/11] video: backlight: lm3533_bl: Implement backlight_scale property Svyatoslav Ryhel
2026-06-02 14:06 ` Daniel Thompson
2026-06-01 15:18 ` [PATCH v3 11/11] video: leds: backlight: lm3533: Support getting LED sources from DT Svyatoslav Ryhel
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=20260602144640.433b4d35@jic23-huawei \
--to=jic23@kernel.org \
--cc=andy@kernel.org \
--cc=clamor95@gmail.com \
--cc=conor+dt@kernel.org \
--cc=danielt@kernel.org \
--cc=deller@gmx.de \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jingoohan1@gmail.com \
--cc=johan@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=pavel@kernel.org \
--cc=robh@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox