From: Ahmad Byagowi <ahmadexp@gmail.com>
To: netdev@vger.kernel.org
Cc: Lee Jones <lee@kernel.org>, Pavel Machek <pavel@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Andi Shyti <andi.shyti@kernel.org>,
Peter Rosin <peda@lysator.liu.se>,
Nam Tran <trannamatk@gmail.com>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Richard Cochran <richardcochran@gmail.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Kees Cook <kees@kernel.org>,
"Gustavo A . R . Silva" <gustavoars@kernel.org>,
linux-leds@vger.kernel.org, devicetree@vger.kernel.org,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: [PATCH net-next v5 1/7] dt-bindings: leds: Add IS32FL3207 controller
Date: Fri, 14 Aug 2026 16:10:49 -0700 [thread overview]
Message-ID: <d5df0bb5c312478279f0d2fd5ec6305e41add5ae.1786747084.git.ahmadexp@gmail.com> (raw)
In-Reply-To: <cover.1786746757.git.ahmadexp@gmail.com>
The IS32FL3207 is an 18-channel constant-current LED controller with
per-output PWM and current scaling.
Describe I2C addressing, power and shutdown controls, RISET, and
individual or multicolor output groupings. Require board current limits
for each output and document their relationship to the RISET-derived full
scale.
Allow dash-suffixed multicolor group names when a group begins at channel
16 or 17, which cannot be represented by the common schema unit-address
form.
Signed-off-by: Ahmad Byagowi <ahmadexp@gmail.com>
---
.../bindings/leds/issi,is32fl3207.yaml | 281 ++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 287 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml
diff --git a/Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml b/Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml
new file mode 100644
index 000000000000..2e53aa1e202d
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml
@@ -0,0 +1,281 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/issi,is32fl3207.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Lumissil IS32FL3207 18-channel LED controller
+
+maintainers:
+ - Ahmad Byagowi <ahmadexp@gmail.com>
+
+description: |
+ The IS32FL3207 is an I2C LED controller with 18 individually controlled
+ constant-current outputs. Each output has 8-bit current scaling. PWM
+ brightness control uses the controller's default 8-bit, 62 kHz mode.
+ Outputs may be exposed as individual LEDs or grouped as multicolor LEDs.
+
+ The data sheet is available at:
+ https://www.lumissil.com/assets/pdf/core/IS32FL3207_DS.pdf
+
+properties:
+ compatible:
+ const: issi,is32fl3207
+
+ reg:
+ enum: [0x34, 0x35, 0x36, 0x37]
+
+ vcc-supply:
+ description: Regulator providing power to the VCC pin.
+
+ enable-gpios:
+ maxItems: 1
+ description: GPIO connected to SDB, asserted to enable the controller.
+
+ issi,riset-ohms:
+ minimum: 2000
+ maximum: 76500000
+ description: |
+ Resistance in ohms of the external RISET resistor. The resistor sets the
+ full-scale output current according to IOUT(MAX) = 76.5 / RISET amperes.
+ Each LED's led-max-microamp value selects a board-safe peak current no
+ greater than this full scale, using the per-output scaling register.
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+patternProperties:
+ "^led@[0-9a-f]+$":
+ type: object
+ $ref: common.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+ maximum: 17
+ description: |
+ Zero-based LED output number. Values 0 through 17 correspond to
+ OUT1 through OUT18.
+
+ led-max-microamp:
+ minimum: 1
+ maximum: 38250
+ description: |
+ Board-safe peak current for this output. The value must not exceed
+ the full-scale current derived from issi,riset-ohms.
+
+ color:
+ oneOf:
+ - minimum: 0
+ maximum: 7
+ - minimum: 10
+ maximum: 14
+
+ max-brightness:
+ minimum: 1
+ maximum: 255
+
+ default-state:
+ description:
+ The driver performs a software reset and clears the PWM state during
+ initialization, so an existing state cannot be preserved.
+ enum: ["on", "off"]
+
+ default-brightness:
+ maximum: 255
+ description: |
+ Brightness used when default-state is "on". This value must not
+ exceed max-brightness when max-brightness is specified.
+
+ anyOf:
+ - required:
+ - function
+ - required:
+ - color
+
+ required:
+ - reg
+ - led-max-microamp
+
+ "^multi-led(@[0-9a-f]|-[0-9]+)?$":
+ type: object
+ $ref: leds-class-multicolor.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+ maximum: 15
+ description: |
+ Optional zero-based lowest-numbered output used by a group named
+ multi-led@N. Values 0 through 15 correspond to OUT1 through OUT16.
+ For a multi-led-N group without reg, the driver derives the lowest
+ output from its component nodes. This form permits groups beginning
+ at channels 16 or 17 while following the common multicolor node-name
+ schema.
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ max-brightness:
+ minimum: 1
+ maximum: 255
+
+ default-state:
+ description:
+ The driver performs a software reset and clears the PWM state during
+ initialization, so an existing state cannot be preserved.
+ enum: ["on", "off"]
+
+ default-brightness:
+ maximum: 255
+ description: |
+ Brightness used when default-state is "on". This value must not
+ exceed max-brightness when max-brightness is specified.
+
+ patternProperties:
+ "^led@[0-9a-f]+$":
+ type: object
+ $ref: common.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+ maximum: 17
+ description: |
+ Zero-based LED output number. Values 0 through 17 correspond to
+ OUT1 through OUT18.
+
+ led-max-microamp:
+ minimum: 1
+ maximum: 38250
+ description: |
+ Board-safe peak current for this output. The value must not
+ exceed the full-scale current derived from issi,riset-ohms.
+
+ color:
+ oneOf:
+ - minimum: 0
+ maximum: 7
+ - minimum: 10
+ maximum: 14
+
+ max-brightness: false
+
+ default-state: false
+
+ default-brightness: false
+
+ retain-state-shutdown: false
+
+ required:
+ - reg
+ - color
+ - led-max-microamp
+
+ anyOf:
+ - required: [led@0]
+ - required: [led@1]
+ - required: [led@2]
+ - required: [led@3]
+ - required: [led@4]
+ - required: [led@5]
+ - required: [led@6]
+ - required: [led@7]
+ - required: [led@8]
+ - required: [led@9]
+ - required: [led@a]
+ - required: [led@b]
+ - required: [led@c]
+ - required: [led@d]
+ - required: [led@e]
+ - required: [led@f]
+ - required: [led@10]
+ - required: [led@11]
+
+ required:
+ - "#address-cells"
+ - "#size-cells"
+
+required:
+ - compatible
+ - reg
+ - issi,riset-ohms
+ - "#address-cells"
+ - "#size-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/leds/common.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led-controller@34 {
+ compatible = "issi,is32fl3207";
+ reg = <0x34>;
+ #address-cells = <1>;
+ enable-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+ #size-cells = <0>;
+ vcc-supply = <&led_3v3>;
+ issi,riset-ohms = <4700>;
+
+ multi-led@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+ #size-cells = <0>;
+
+ led@0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_RED>;
+ led-max-microamp = <8100>;
+ };
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_GREEN>;
+ led-max-microamp = <8100>;
+ };
+
+ led@2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_BLUE>;
+ led-max-microamp = <8100>;
+ };
+ };
+
+ multi-led-1 {
+ #address-cells = <1>;
+ color = <LED_COLOR_ID_MULTI>;
+ function = LED_FUNCTION_INDICATOR;
+ #size-cells = <0>;
+
+ led@10 {
+ reg = <16>;
+ color = <LED_COLOR_ID_AMBER>;
+ led-max-microamp = <8100>;
+ };
+
+ led@11 {
+ reg = <17>;
+ color = <LED_COLOR_ID_WHITE>;
+ led-max-microamp = <8100>;
+ };
+ };
+ };
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 991460050da7..448e7b7be8df 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13827,6 +13827,12 @@ S: Maintained
F: Documentation/filesystems/isofs.rst
F: fs/isofs/
+ISSI IS32FL3207 LED DRIVER
+M: Ahmad Byagowi <ahmadexp@gmail.com>
+L: linux-leds@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml
+
IT87 HARDWARE MONITORING DRIVER
M: Jean Delvare <jdelvare@suse.com>
L: linux-hwmon@vger.kernel.org
--
2.50.1 (Apple Git-155)
next prev parent reply other threads:[~2026-08-14 23:11 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-14 23:10 [PATCH net-next v5 0/7] ptp: ocp: Add R4006 and V9 I2C peripheral support Ahmad Byagowi
2026-08-14 23:10 ` Ahmad Byagowi [this message]
2026-08-14 23:10 ` [PATCH net-next v5 2/7] leds: is32fl3207: Add controller driver Ahmad Byagowi
2026-08-14 23:10 ` [PATCH net-next v5 3/7] i2c: mux: Propagate software nodes to channel adapters Ahmad Byagowi
2026-08-14 23:10 ` [PATCH net-next v5 4/7] ptp: ocp: Track EEPROM fields independently Ahmad Byagowi
2026-08-14 23:10 ` [PATCH net-next v5 5/7] ptp: ocp: Add profile-driven I2C topology support Ahmad Byagowi
2026-08-14 23:10 ` [PATCH net-next v5 6/7] ptp: ocp: Add R4006 I2C peripheral topology Ahmad Byagowi
2026-08-14 23:10 ` [PATCH net-next v5 7/7] ptp: ocp: Add Time Card V9 " Ahmad Byagowi
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=d5df0bb5c312478279f0d2fd5ec6305e41add5ae.1786747084.git.ahmadexp@gmail.com \
--to=ahmadexp@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=gustavoars@kernel.org \
--cc=kees@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavel@kernel.org \
--cc=peda@lysator.liu.se \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=trannamatk@gmail.com \
--cc=vadim.fedorenko@linux.dev \
/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