Re: [PATCH] iio: light: bh1750: Add hardware reset support via GPIO

From: Sergio Pérez
Date: Tue Mar 18 2025 - 12:08:19 EST



El 18/03/2025 a las 16:16, Krzysztof Kozlowski escribió:
On 18/03/2025 15:16, Sergio Pérez wrote:
Hello,

El 17/03/2025 a las 8:24, Krzysztof Kozlowski escribió:
On 16/03/2025 15:55, Sergio Perez wrote:
Some BH1750 sensors require a hardware reset before they can be
detected on the I2C bus. This patch adds support for an optional
reset GPIO that can be specified in the device tree.

The reset sequence pulls the GPIO low and then high before
initializing the sensor, which enables proper detection with
tools like i2cdetect.

Update the devicetree binding documentation to include the new
reset-gpios property with examples.

Signed-off-by: Sergio Perez <sergio@xxxxxxxxxxx>
Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also `scripts/checkpatch.pl --strict` and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.
You keep ignoring paragraphs. Did you read this?

I pass this check several times and every time I do any step to make sure I am well.

scripts/checkpatch.pl -f drivers/iio/light/bh1750.c
total: 0 errors, 0 warnings, 354 lines checked

drivers/iio/light/bh1750.c has no obvious style problems and is ready for submission.
(patches) sergio@ultron:/mnt/c/Users/sergio/source/pr/linux$ scripts/checkpatch.pl --strict -f drivers/iio/light/bh1750.c

and:

scripts/checkpatch.pl --strict -f drivers/iio/light/bh1750.c
CHECK: struct mutex definition without comment
#44: FILE: drivers/iio/light/bh1750.c:44:
+       struct mutex lock;

CHECK: Alignment should match open parenthesis
#194: FILE: drivers/iio/light/bh1750.c:194:
+static ssize_t bh1750_show_int_time_available(struct device *dev,
+               struct device_attribute *attr, char *buf)

total: 0 errors, 0 warnings, 2 checks, 354 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

drivers/iio/light/bh1750.c has style problems, please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.


The two CHECKS on lines 44 and 194 are not part of my contribution, but I can solve them if you want. Do I solve them too? I thought that I should not modify anything that exists.


<form letter>
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.

Tools like b4 or scripts/get_maintainer.pl provide you proper list of
people, so fix your workflow. Tools might also fail if you work on some
ancient tree (don't, instead use mainline) or work on fork of kernel
(don't, instead use mainline). Just use b4 and everything should be
fine, although remember about `b4 prep --auto-to-cc` if you added new
patches to the patchset.

You missed at least devicetree list (maybe more), so this won't be
tested by automated tooling. Performing review on untested code might be
a waste of time.

Please kindly resend and include all necessary To/Cc entries.
</form letter>

Sorry, I had run the scripts/get_maintainer.pl tool and got fewer
recipients than necessary.  I have redone everything in a clean
installation and now I have obtained more recipients.
Please work on latest mainline tree, not some old clones. The cleanness
of tree does not matter here.

I get the latest versión doing: git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

I checked versión doing:

$ make kernelversion
6.14.0-rc7

The list I got is where I'm sending the patch, 9 recipients. The same ones to whom I have sent this email.


Any fixes I make in the patch I send to this same thread or should I
send it with git send-mail? I say this because perhaps I have done it
incorrectly and possibly created 3 versions, I apologize. My latest
version (v3) includes all the suggestions mentioned but due to my
Not sure, maybe some, but not all. You still did not acknowledge the
first feedback I repeated here and v3 makes the same mistake.


ignorance of the procedure I thought they should be sent to the list
again as before. Can I delete v2 and v3 and keep only the first version?
You cannot delete things sent to people. That's why you should check
things prior sending. Everything you send is archives and available for
everyone, publicly.

---
.../devicetree/bindings/iio/light/bh1750.yaml | 20 +++-
drivers/iio/light/bh1750.c | 113 ++++++++++++------
... and please go through your patch and see what happened there.
2 files changed, 95 insertions(+), 38 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/light/bh1750.yaml b/Documentation/devicetree/bindings/iio/light/bh1750.yaml
index 1a88b3c253d5..d53b221eb84b 100644
--- a/Documentation/devicetree/bindings/iio/light/bh1750.yaml
+++ b/Documentation/devicetree/bindings/iio/light/bh1750.yaml
@@ -11,6 +11,9 @@ maintainers:
description: |
Ambient light sensor with an i2c interface.
+
+ Some BH1750 sensors require a hardware reset before being properly detected
+ on the I2C bus. This can be done using the optional reset-gpios property.
properties:
compatible:
@@ -23,6 +26,10 @@ properties:
reg:
maxItems: 1
+
+ reset-gpios:
+ description: GPIO connected to the sensor's reset line (active low)
+ maxItems: 1
required:
- compatible
@@ -41,5 +48,16 @@ examples:
reg = <0x23>;
};
};
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ light-sensor@23 {
+ compatible = "rohm,bh1750";
+ reg = <0x23>;
+ reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+ };
+ };
-...
+...
\ No newline at end of file
You have unrelated changed all over the place.


Best regards,
Krzysztof
Yes, in the patch I have prepared I have solved this problem, it only
adds the exact lines and does not modify anything else.
OK, so this one is solved, what about all the rest?
I think I have everything right, just tell me if you prefer me to solve the 2 strict checks of the existing code and I will do it.


Best regards,
Krzysztof