From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0A5F3E2AD7 for ; Fri, 14 Aug 2026 23:11:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786749071; cv=none; b=ent0Y5QGjlyEmXYsadoOPQsitWWBhIlrC6QPd7t7gVnXmUQXQHCCrIndkOIqEfTvmMKEB8Lxw0fZ3uIbwwHqw5crAL8RfRfJL3nxWnAxtoDXxjW5oxWw10EySezYw/uahXnufrNW+0D9dVUhxi36J3zBqYwVTT2UshjAYuNC2k0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786749071; c=relaxed/simple; bh=44ug/C+wAEBpOTrhMYNtqAXfr0HoJRYwJfcphkPhMgQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TlJGr8kBLa4mBdV1Myw9QTbjbSEP/X+kXOQEIWv2zIIrt9BKpBgvfM7PrY87G0niKRYoR7NsyM40R8nO8jedP9zsHcl83Ho+gue2Sv26ycshU3SP5iVXa51chaCyMLxKSN2VHsmgmboxCUJDMVYiZXZ4f+NowqrBDWi/eZ1H/GA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OtdBbP5v; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OtdBbP5v" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2d032846c95so23213535ad.1 for ; Fri, 14 Aug 2026 16:11:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786749067; x=1787353867; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ouiR3ivZXFGLAlzqaEsoWP9s70nb+07A9Idd51+C0NY=; b=OtdBbP5viyaFBCpnilni49s3Aj0WXt7Tp+O6YA/Ikvy4gu75n4gYFy4bhvtCZDoKcK n9CdNMfmOFulC9OGH+/1KboBbpcnMVMeQZwlrvenu03irjqLTLsNYJRicwpAzG44I9s+ kCN1SCpGwZa7BGmOE/R5bSEpXZl3bkmjJiAph/KqPldCeoLvXNStgbP0VBq5u4gqraCx 6itlDlOUEbZba/Ii7tMh8rojtVo4ozvhLxCpq3cwS18+VqM0AV9ToLhjoXLS9E08uA8s 8mjbL19t33u3dEbM7XKi6v3nzRm3+6YMZI0QlfXxY0LKt/m0k4999pSXvpiU1gyebjui zLrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786749067; x=1787353867; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=ouiR3ivZXFGLAlzqaEsoWP9s70nb+07A9Idd51+C0NY=; b=JJfnFAeK1gjXyKJoqkrHkhNYfRyMcDXOHsXWZ15/heGG28jDHAW9ql2VXGEXV4Bpo1 ihQUWTmcZARwKrM5bvvX2QIIUXysuMHW5eBe8mQj95K+Hj1cdO3MCE4HPeQ/Pip1o/Q+ BUwJFvYbciey7vVUSUjbgDys221dTDGrIczGOrLSmHlBy1cjmYZSsibU4lW722rehWYw 4PB6X1MCyBFisCVMBMsNuFo9QgXLdEectACp3YlqWKF5QFIEqgNyKx3SjiCxa3GAmtsc RMukII5123QcCMJWsj+K93IARDu9grroi0qDJblws0PTjmONI8Ach9pJQLZkW9wj5dHH fAWg== X-Forwarded-Encrypted: i=1; AHgh+RpCi+i7jQNBy+HvVAleW6eEHMNG3pOTRwi075YyeWQyPorkCTi9lZpC1B2vy3kyhY5AY4ak93VsV25FO84=@vger.kernel.org X-Gm-Message-State: AOJu0YwDL3kkJcFZvLRZ/uUdI8oUoVtld1Y04x73vW/41Sv1aarVBo6x GqY+jBjxXXNIxDiTFqErvjgMsyUYhbjjvjHSm/yCMyd4bT0F9CBjeEph X-Gm-Gg: AR+sD135nCrMSctKH3iU1dWNpLOWH3P6hYA6Z0mow0K/kRLCSznRvE5cGQAePNdM9Bm 8ORH9WIysfjfUngTRA2BxYcdOLV+5fL4N50nBrOU80tNi/XeXudvmcOL+OYhrIrEsSMfFFTGCap kw7oXHx9Y6hIUUDu5NINadyr7WULFhawx4ET7MNpdLhza4XWhm1a+chspjrbQifFRRm7gjNJS5L 6mVGaN+fRh0TavQbBpgBc2EfQBZvUA9K4mX8WQfCfiQ9TzmO5475a3PDuYM8JvJKaPGM/W25SQQ qQa7Br6nJuS8EoYclXm5vDh0uLqR6J2BPh5nkK1Kj5d2OM0s2/sni7xmEjnl5lfZZ7R6QO1KzWM iW23j2XKQs4NfqL/ki+1cvbTRMxY71xi7PMXowiSrw+i5LpS6fnY3oDcOT9ddISD/3Cz7ffeFa9 oqKRoJ7wGCmpFJgF0nMGZXU0loiCrR46Ke44QQ9PsteJS8J6Ryl/RG0d2S0oLBGWDtKJIZCwsAn jNaEaocbQNQb4fJGw== X-Received: by 2002:a05:6372:a743:b0:3cc:8f53:26c0 with SMTP id adf61e73a8af0-3cc8f532b1bmr417457637.17.1786749067016; Fri, 14 Aug 2026 16:11:07 -0700 (PDT) Received: from Mac.localdomain ([12.162.234.74]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-320d61e1568sm8563607eec.11.2026.08.14.16.11.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 14 Aug 2026 16:11:06 -0700 (PDT) From: Ahmad Byagowi To: netdev@vger.kernel.org Cc: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andi Shyti , Peter Rosin , Nam Tran , Vadim Fedorenko , Richard Cochran , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Kees Cook , "Gustavo A . R . Silva" , 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 Message-ID: X-Mailer: git-send-email 2.50.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 --- .../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 + +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 + #include + + 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 = ; + function = LED_FUNCTION_STATUS; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + led-max-microamp = <8100>; + }; + + led@1 { + reg = <1>; + color = ; + led-max-microamp = <8100>; + }; + + led@2 { + reg = <2>; + color = ; + led-max-microamp = <8100>; + }; + }; + + multi-led-1 { + #address-cells = <1>; + color = ; + function = LED_FUNCTION_INDICATOR; + #size-cells = <0>; + + led@10 { + reg = <16>; + color = ; + led-max-microamp = <8100>; + }; + + led@11 { + reg = <17>; + color = ; + 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 +L: linux-leds@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/leds/issi,is32fl3207.yaml + IT87 HARDWARE MONITORING DRIVER M: Jean Delvare L: linux-hwmon@vger.kernel.org -- 2.50.1 (Apple Git-155)