From nobody Mon Oct 6 13:41:18 2025 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 057C0221D9E for ; Mon, 21 Jul 2025 10:55:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095342; cv=none; b=uGf7aru9JfPaJbzIlx1qyr25Ntr3o20cZJxPoIed1n1zYSYwZ//wsoX5F3/TvvKaPFu/LPQIeQ+gSavbzknisSO0AMW+BBmuJ3k+NW6VwbagM723PFN+VfXqZ9gBXKduXHh66f2UT3zgJ8CEGE1DDvZ+AT6BazghYGhsVjbmtDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095342; c=relaxed/simple; bh=TgVl7dC61Y5U2p2yEkCTbEecDupg6FgH1sAthqZOW3M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HC6YvioVYMYK0qYtWXK2/HJZ8Hhgcv9PV/K3lIZ+nlmc/rA0S7QaQu4sfC1wZyu2dTmncBZ9a4P/QJj3bNtRguYCi6wmb7giyvjlEYRS2DJAdjh5dFO7C/MNA4tHTw8bEir8060HY9I28vEaio5xf040ONHjkht14qgUh702o4s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk; spf=pass smtp.mailfrom=thegoodpenguin.co.uk; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b=kyaC81xy; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b="kyaC81xy" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-3a4fb9c2436so2373104f8f.1 for ; Mon, 21 Jul 2025 03:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753095338; x=1753700138; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ycVAZqI5LQT7lZNaWUVfxbEM5bSOrJDX9KRmJH4SN/w=; b=kyaC81xyaX7uTSlw84EjThpdQAKi+LAur32X1/ugS+/sLQD4uDmgPipdTN043BtpBk hO5jLvSxwL0vAwQHB62IWWB+aM3lkz48PTjcSvz1ERjF/+LzEoTivElSshgIo3f/KMf0 zMeKumImBW5kDubJ6p8Jhy/I8tW5bd2NBS/8lC4as+CM9caciSfo42+RKBsj0CaNTFoZ fIxXpjXGZ/UsEYFdEVNNU9o9D0aZcjmXZupapbP5mfoybxL3DFgUkdOw8EM184kuG2sD 6ZiwcsezKrJfgEU7AUc72hFuTv2+3wE8uaWxgEZj0L+oqUbeMy3NT7aMYVIzXqa8Yd/j SFoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753095338; x=1753700138; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ycVAZqI5LQT7lZNaWUVfxbEM5bSOrJDX9KRmJH4SN/w=; b=l+63Ci1PS546Q8XdxUQ4tpVN1ximLKqwwPQl8Cr16qi711OZVGx0kc345duH2mi1S5 AWlqJitsC6v7D2mfGDIdBevStdjWBB4NxZ29w+JgfWsbrAUL4hEi0tom/oMYIfeHsHAb 09KxY9RrovJFsu+nZOB0F97euguVu2Ygo1nj7OfaV0y9QQGQGHTnvLb0VRyEUSBz6Bzt dCtLK4gbRT9W8uH3md3GRxLxIcDDl4gXpSLXHDJ421yp3/z51+3Y7cnf7DsW0Mu71z8R 8E60MzhlyeQLVREg2WhoYMLOUAsH1aULxg/a0rEm81J7Fbu6ORmcZpEgouJT6FIyL8dR iIZw== X-Forwarded-Encrypted: i=1; AJvYcCWGsQeMf1g9xe5u3POC0g8iZqIrZYe5mGSnWVza8QbqL3XraA++F7AD/1H0Kae0al8KbylHGdUREsdCC7c=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0X8BfB1Q6JYePysdc8SpLVp8ORBzz6EvsXegVHUtbrp9+WL3K MFbseu7TyBShOEfGHuDed4W8e3c6lAUY00nmEkdzTSY88P5JmnaPZUYKZ7WD8Ng386g= X-Gm-Gg: ASbGncuI73axCEOMhiGOAK+Nqw94McVQx3T70rKIq9BSMvsZ6bvPwE6bFv2vYL7WD2L 65kuDPCc9LLHRdfEJT4glxooLh6q66kVmwI5ZyscjeCVOfACmJ9Jn5TQYqeTTWH+4YUd2sth2eF nH+ipfbMEH5HX5pWqav44NHLf/TGFHtV8mljT469bebckntsnh3Cc1gI5nNTtply76lRSUfskKq 8cWJfX4bXIIDkMOC0Q/DkrAp/+fyQcZt4WnQRBqzCfiTWrDq35OSBIF4S1mr1gupY3oXVPfnxjl SNqxhz0GYK+jYY8N8D6P9k0GdoI7LPlOK80kRd+NVxM7VAnBXuTD8cl7R/t7+YjtE8hsuBgTu7+ ydc19gW5Vbj1FKgwsmYZQPd9CQckE5PIZt9QVIxw= X-Google-Smtp-Source: AGHT+IGXFGxm09yXGJIDAEqcCGjJ+mK7CFUuEYNuvaZxgHdBDa9im85smor/oqTDcwhviffIrdYGCQ== X-Received: by 2002:a05:6000:250f:b0:3a4:f63b:4bfc with SMTP id ffacd0b85a97d-3b61b217f24mr9347151f8f.34.1753095338305; Mon, 21 Jul 2025 03:55:38 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:f373:f0d1:903c:a9bc]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4566dd6b8bfsm18141065e9.35.2025.07.21.03.55.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:55:37 -0700 (PDT) From: Pawel Zalewski Date: Mon, 21 Jul 2025 11:55:34 +0100 Subject: [PATCH v5 1/3] dt-bindings: leds: is31fl32xx: convert the binding to yaml Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-leds-is31fl3236a-v5-1-264e841f4da9@thegoodpenguin.co.uk> References: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> In-Reply-To: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> To: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Pavel Machek , devicetree@vger.kernel.org, Pawel Zalewski , Lucca Fachinetti X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753095336; l=4843; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=buHhN/I38dEbtoGSlq09UPwG7zAjjuIi+fxQTSyF5bc=; b=tML5IaLH+t/W0XPrhx2Lftyl320m4OjdebpA+wa+Luh3VDW0C0NUZkyeFhmVz/9bwpMXROthT nRwSz4T1VLeCWJihgw9Ulw8S/EEcfKPnyDzSUrQy1/197R2hr8vF2O7 X-Developer-Key: i=pzalewski@thegoodpenguin.co.uk; a=ed25519; pk=hHrwBom/yjrVTqpEvKpVXLYfxr6nqBNP16RkQopIRrI= From: Lucca Fachinetti Add datasheets for reference, NB that I was not able to find an up-to-date, funtional direct URL for si-en products datasheet so they were skipped. Signed-off-by: Lucca Fachinetti Co-developed-by: Pawel Zalewski Signed-off-by: Pawel Zalewski --- .../devicetree/bindings/leds/issi,is31fl3236.yaml | 96 ++++++++++++++++++= ++++ .../devicetree/bindings/leds/leds-is31fl32xx.txt | 52 ------------ 2 files changed, 96 insertions(+), 52 deletions(-) diff --git a/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml b/= Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d8164876611f5e629215fe2715e= bff1745f93a26 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/issi,is31fl3236.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: is31fl32xx and Si-En SN32xx IC LED driver + +maintainers: + - Pavel Machek + - Lee Jones + +description: | + The is31fl32xx/SN32xx family of LED drivers are I2C devices with multiple + constant-current channels, each with independent 256-level PWM control. + Each LED is represented as a sub-node of the device. + + For more product information please see the links below: + https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3235_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3216_DS.pdf + +properties: + compatible: + enum: + - issi,is31fl3236 + - issi,is31fl3235 + - issi,is31fl3218 + - issi,is31fl3216 + - si-en,sn3218 + - si-en,sn3216 + + reg: + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^led@[1-9a-f][0-9a-f]*$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + description: + LED channel number (1..N) + minimum: 0x1 + maximum: 0x24 + + required: + - reg + +required: + - compatible + - reg + - "#size-cells" + - "#address-cells" + +additionalProperties: false + +examples: + - | + #include + + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + led-controller@3c { + compatible =3D "issi,is31fl3236"; + reg =3D <0x3c>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@1 { + reg =3D <0x1>; + label =3D "led1:red"; + }; + led@2 { + reg =3D <0x2>; + label =3D "led1:green"; + }; + led@3 { + reg =3D <0x3>; + label =3D "led1:blue"; + }; + }; + }; +... + diff --git a/Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt b/D= ocumentation/devicetree/bindings/leds/leds-is31fl32xx.txt deleted file mode 100644 index 926c2117942c4dc200fcd68156864f544b11a326..000000000000000000000000000= 0000000000000 --- a/Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt +++ /dev/null @@ -1,52 +0,0 @@ -Binding for ISSI IS31FL32xx and Si-En SN32xx LED Drivers - -The IS31FL32xx/SN32xx family of LED drivers are I2C devices with multiple -constant-current channels, each with independent 256-level PWM control. -Each LED is represented as a sub-node of the device. - -Required properties: -- compatible: one of - issi,is31fl3236 - issi,is31fl3235 - issi,is31fl3218 - issi,is31fl3216 - si-en,sn3218 - si-en,sn3216 -- reg: I2C slave address -- address-cells : must be 1 -- size-cells : must be 0 - -LED sub-node properties: -- reg : LED channel number (1..N) -- label : (optional) - see Documentation/devicetree/bindings/leds/common.txt -- linux,default-trigger : (optional) - see Documentation/devicetree/bindings/leds/common.txt - - -Example: - -is31fl3236: led-controller@3c { - compatible =3D "issi,is31fl3236"; - reg =3D <0x3c>; - #address-cells =3D <1>; - #size-cells =3D <0>; - - led@1 { - reg =3D <1>; - label =3D "EB:blue:usr0"; - }; - led@2 { - reg =3D <2>; - label =3D "EB:blue:usr1"; - }; - ... - led@36 { - reg =3D <36>; - label =3D "EB:blue:usr35"; - }; -}; - -For more product information please see the links below: -http://www.issi.com/US/product-analog-fxled-driver.shtml -http://www.si-en.com/product.asp?parentid=3D890 --=20 2.48.1 From nobody Mon Oct 6 13:41:18 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 D2EC629827B for ; Mon, 21 Jul 2025 10:55:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095343; cv=none; b=qnzLW28gnj7uKA7dc1IAyhD/DMBNvYN8kMU6d25gd7RPnUTvmeJQ7YeQ4M+fqLF/1amNHDn3KY6g8grBRW6seUWvCeNn38aevbWavUVhyUC1NeDeN8rY7lq/byg44YRxqsqh1L5O9vnzCJTMiLm5B3Rvy1bG8XQH30kXQnlmYpQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095343; c=relaxed/simple; bh=QtNA1Zw67oY6g9wXhby6BPpqc4kJTg0rFQpE0bGv9MM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HGOHatijkbNPuxGp1zcYfecCLEfVb7X9cE1gF3kSHuG61B5Rtu2Khs/yOwCfsjKEzAG/HH1IapLyX0kdoHVYaoqgMhunQKhq0CsbRhQP3+UgXWyH4BJNi6jnYadA7qRgHPC5ylJtkhWmlOCLsTwbM7dpEbjuKqPpcf7Ri0RFkxg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk; spf=pass smtp.mailfrom=thegoodpenguin.co.uk; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b=pT0ltWUY; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b="pT0ltWUY" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4560add6cd2so33944645e9.0 for ; Mon, 21 Jul 2025 03:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753095339; x=1753700139; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=mHC9dKSjhgDmCS3Dc0Ob+PRUH+xtz/BK7VzlQay8jS0=; b=pT0ltWUYe6TkCAuKWAeopr/nLRLmlB0Dknr+5QhNuaJUBhqC4ELiWsnPXh0s43/qgZ NBjzLOSF/3Qspr/MIbWEVIib8WXZE7HWs7l1ntqss3nywoOnI3EMUqAaEDoopCGFVAuX A3KlEGyXy+boNDvFrCprRAT8E5GsuQ2MD1e6cLhaLjBjqxB6MXYXiuIwEGPVUPAC3sIh QrvwGOi8K0mRcx+FMBadG7vGrqTs8H9CjvbkrcroS7dr8YSdi/m5f7B8hOtO2IzXgEiY RDzHlPMrDxBp+9Zgf0pDBeETtQOJGAPvWMDqmQ0QQHZ/yD8PxuRgPsKGofUUqhoLCTG5 ScmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753095339; x=1753700139; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mHC9dKSjhgDmCS3Dc0Ob+PRUH+xtz/BK7VzlQay8jS0=; b=XHtRVR7TnR8ptdpI5vBZ+fUmAa3vIexuVD6Oggt8IRljiPB7JHoubwB5K9QT3TePN1 ZEnr7BZUPngrSNdJCJz/RxrD/yElYbaXTcxhflK5XoBzL28nfrFyWtgqWH0bqKe04b+M UrGDOj+gG+v4fNCaV2XqIE9acozoTJecpiA1un52nSCttXlUBIPJiZcc/G6A5qbUQ0Z3 fOvFuToiC5/oF9Dv9K2piIKVliOfsnEDo3CtjKseJTzw3gRqcGOp42vZsc1idSWSOsls J+uoX3u8Ooh8F0Hp3zLSDCdPfF2CNRduhtahl/CACTiyRIjrn8jB/rIfxIeU1Vz/HxLP FZBQ== X-Forwarded-Encrypted: i=1; AJvYcCWZOJWSvGsDFvF7kdKoxysdbwKynJ68cvQ7kMqks5vQ1bMg9A7IwYSvmx4dgAoG/gS3E3BzRjIbGest/kg=@vger.kernel.org X-Gm-Message-State: AOJu0YwneySdzw44eNEhx7zOqrCcucqx9qgEFUWdj+pJdA4wKXKQPXwR fvSJeMnpvdpPkwjV2zOzGIgruTXxTYFUSFfWheUaL2c/T4NuUMyEWEUUALOwHKrGFfM= X-Gm-Gg: ASbGncv4JsEVDtXCxv0njIFGjaRmCl9W4HvU6FVy7dNn7bDkkSwy9+bzhJyOdGlAGvE b2x5GALCFxynAMxV5ejQvBa7fATObZby15D99FWKufzD/sXXjERLC7ighzKNJzphnweZ+2EK4h7 iQCLSxWM2qpBr9FckAN+Md9nXtdsKww7rUfmHVWQEY4x0TV+J/mowXDWPgWDI/tyuu5cKUyhyTf 6Db4Q4vIthUJt4MSmz96ZTpH+NUlBift8tTpJ6S2KHrxze2vdT+lO4c+WQPVbVQhFLLuOZp+U1s eQrLMsYcPk82M+kWucu4ODR6pwG6jhzbmpo/LDRwHXRLLIhxlDy4D+7cBMJuH77/iiA0YHzTA7B wNUn73y5iXv3P8zjx8QebEPyAtykwOqjbuWkhsn8= X-Google-Smtp-Source: AGHT+IEMnp6KbrZ/evTevPv2kZc+1Fdq1BSnaHkk6zE9iOTVsYyUW2/Ifq29t44BarT0k46Gkbj4Pg== X-Received: by 2002:a05:600c:a113:b0:456:18e:eb7f with SMTP id 5b1f17b1804b1-4563a4fcf8bmr96958405e9.3.1753095339250; Mon, 21 Jul 2025 03:55:39 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:f373:f0d1:903c:a9bc]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4566dd6b8bfsm18141065e9.35.2025.07.21.03.55.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:55:38 -0700 (PDT) From: Pawel Zalewski Date: Mon, 21 Jul 2025 11:55:35 +0100 Subject: [PATCH v5 2/3] dt-bindings: leds: issi,is31fl3236: add support for is31fl3236a Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-leds-is31fl3236a-v5-2-264e841f4da9@thegoodpenguin.co.uk> References: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> In-Reply-To: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> To: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Pavel Machek , devicetree@vger.kernel.org, Pawel Zalewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753095336; l=2235; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=QtNA1Zw67oY6g9wXhby6BPpqc4kJTg0rFQpE0bGv9MM=; b=kl9gQTsUW6V3nUgx7XzUBEW8xg/8kh7RSP58BqI2GETCvvwvvwT3kfXLGwKz3vr5oecVu+B8C LSu8L6wqtEhDmtZaFE5ShDr9kOIaUm6zZWTQBGNdariuj2bn1izZyGu X-Developer-Key: i=pzalewski@thegoodpenguin.co.uk; a=ed25519; pk=hHrwBom/yjrVTqpEvKpVXLYfxr6nqBNP16RkQopIRrI= Add an additional and optional control property for setting the output PWM frequency to 22kHz that exists on is31fl3236a. The default is 3kHz and this option puts the operational frequency outside of the audible range. Signed-off-by: Pawel Zalewski Acked-by: Krzysztof Kozlowski --- .../devicetree/bindings/leds/issi,is31fl3236.yaml | 24 ++++++++++++++++++= ++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml b/= Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml index d8164876611f5e629215fe2715ebff1745f93a26..58f5aa4d0b644fe550e2c48b141= c41c37fdf98e9 100644 --- a/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml +++ b/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml @@ -17,6 +17,7 @@ description: | =20 For more product information please see the links below: https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3236A_DS.pdf https://www.lumissil.com/assets/pdf/core/IS31FL3235_DS.pdf https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf https://www.lumissil.com/assets/pdf/core/IS31FL3216_DS.pdf @@ -25,6 +26,7 @@ properties: compatible: enum: - issi,is31fl3236 + - issi,is31fl3236a - issi,is31fl3235 - issi,is31fl3218 - issi,is31fl3216 @@ -40,6 +42,12 @@ properties: "#size-cells": const: 0 =20 + issi,22kHz-pwm: + type: boolean + description: + When present, the chip's PWM will operate at ~22kHz as opposed + to ~3kHz to move the operating frequency out of the audible range. + patternProperties: "^led@[1-9a-f][0-9a-f]*$": type: object @@ -56,6 +64,22 @@ patternProperties: required: - reg =20 +allOf: + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3236 + - issi,is31fl3235 + - issi,is31fl3218 + - issi,is31fl3216 + - si-en,sn3218 + - si-en,sn3216 + then: + properties: + issi,22kHz-pwm: false + required: - compatible - reg --=20 2.48.1 From nobody Mon Oct 6 13:41:18 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 C6887299A84 for ; Mon, 21 Jul 2025 10:55:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095344; cv=none; b=TUyOrj1u7lmKuV+swYqDToCNyDGJnUq7iy2q2tQQsQjwYYZceCAleO0SAoL8oXIsy/90seyPc0GkcMQFHmB5CyhIAeJ0fj66uCPGh5CFw/vEU/MVLc4JguRKj9ZlH3YN2YrA+Grkxxsw3cnqvFcYnSjsMl9kkopBPDgJizucoyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753095344; c=relaxed/simple; bh=NuZrXXQ5tlfhJZ6G10mYOT34Gf1XyPJpaO9Kpu9cCUo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c7ABsSei93DD03VSuYcTvU+db/CgpzL2ooqoUJ2nGYPY+/WTBXkO5cEGxHgsUM0q3yl/B5ew9WAyplXf7MKzjQ22+XqV+gZS4BAEQA/uG5kZv/K8iOSbaXDO3MNDxy4cmGXF0jwJ9TBhDk3lodmJJhLDYHeSmVaCWdCg9KSN0jw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk; spf=pass smtp.mailfrom=thegoodpenguin.co.uk; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b=LWqUugeQ; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=thegoodpenguin.co.uk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=thegoodpenguin-co-uk.20230601.gappssmtp.com header.i=@thegoodpenguin-co-uk.20230601.gappssmtp.com header.b="LWqUugeQ" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-4561514c7f0so43241755e9.0 for ; Mon, 21 Jul 2025 03:55:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753095340; x=1753700140; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=EUbJHYYUJ4dPHD8beah1zUaqGMO0MQts8CvEiFdKGdo=; b=LWqUugeQ5RkIRGygqMiwrtg2DBwyxkLNypEd8Jp58VF+eBw1NtgXez0YvtIW8Dgj2j vDJnjcicFrU/BOEIsWp8/esF+BToBCyzVWaiIWnFdqYZ3tx00UHWNmsREpuiXCeVcU29 EcGaoKzkZxcmk2FjECbebemVGu5Ylepk7dQI6fB2Rb+NcqQXzPVPLY2jYlu7LahcHN5z nflrZ146wa1caHs0YBpzm+JAijNtMahFIcL64NXklt0o0gi9ukP1UzxEBuqmk7+oKSAA HMNsYTXMynr+AeDDU/ZxidMDwh76n3xr8sTMy6aFoup3bhAHNHYpUzfGYzLXr6/XbirN Zp1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753095340; x=1753700140; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EUbJHYYUJ4dPHD8beah1zUaqGMO0MQts8CvEiFdKGdo=; b=RiKy8RiGVWyO865eNwIZAN2ngVW6XT9smAawAPdor9slsnzNdAjOcp3tBnlL3BvVOS m1hVQz/YcROq+F30DyyUPtRvXgor6wSFUcU5YzEdlcSMJIT2kLg7ZoUpIgWKafIHW1RJ qU31a0NlN92KWFiMD6WtJbS19hpAWjDfSvo0Fws4iuu8U1TtJNHTfCQrNDexScH6jPjb V8nz6GMrr0QBj0w9xXvlZdD2XQtSQOXNh4ypXJ9RjafydfnvpefCndvVGmaDI6jRiVn9 ZMBcujs7bjEia7sP59zG8U/h/h7WTmHxJb+7/G0FEJ4LiGLYBz5JxtftlSLy8dc4JWtD EHrg== X-Forwarded-Encrypted: i=1; AJvYcCWaQ5x3Jz0A6q5ELGAtChvAabujsSlCdJ3DnDpFknX/9a+4AAH4cvZXyERleqMXQnrW1pRbEzGHo/267+o=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7Fggo7OvTrZXhyKSIzSN4Oq2n8o2z5TUAX85BG4+sHl5PYGQv xFJa8JJVaNWUemXPcHMLaL684caK5ddcpJt6U2GxQt6OlW50Kx5kWHf7VgYnxjLLDDU= X-Gm-Gg: ASbGncv/u9NhjMCXGfbe61TZPy2ooMvRz1kTHhtu7/gHtbMho6mT4pP8rQO3I48m39B acsFjy2MciprnUI3bofoyAzn8Cdacl+8IIgSEg90cC3VV4VUhqeZd4wReRzmXS7BaasnWBhOeK9 plt2YYp8YtxKQMwCt97sb6u8+aTaJ0GgT0AOWagd6950Ocyk4dLeQ+yy8/V7ri15pgalsp3jQYn pAo5HJMlmqbX8043gIOjx1Q0cMVoRVRFVllpCmwKFrfHH+V7j/B4GtMaT2bqPap1IF6pHU7aF4i qkQIi3OYRVtT4tIEBVkB7Fhf7TeaYFXQCwCW64M2r+q1xriVgmZNtg+nVLs1aNxg78dqHs6OtmD ty2TCbrb9CUuyXZpeJJoSnK9gHPbKaDLn5ek5ZBE= X-Google-Smtp-Source: AGHT+IF1lmSOzgL4wDUJq39mEQD7x5P6qMzn1mwA8CQY8we75CiW8GMTh1i/iH0wgp7RlTwS3s3l4g== X-Received: by 2002:a05:600c:4fc5:b0:456:1156:e5f5 with SMTP id 5b1f17b1804b1-456359ee0a4mr154457615e9.31.1753095340104; Mon, 21 Jul 2025 03:55:40 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:f373:f0d1:903c:a9bc]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4566dd6b8bfsm18141065e9.35.2025.07.21.03.55.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:55:39 -0700 (PDT) From: Pawel Zalewski Date: Mon, 21 Jul 2025 11:55:36 +0100 Subject: [PATCH v5 3/3] leds/leds-is31fl32xx: add support for is31fl3236a Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-leds-is31fl3236a-v5-3-264e841f4da9@thegoodpenguin.co.uk> References: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> In-Reply-To: <20250721-leds-is31fl3236a-v5-0-264e841f4da9@thegoodpenguin.co.uk> To: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Pavel Machek , devicetree@vger.kernel.org, Pawel Zalewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753095336; l=5531; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=NuZrXXQ5tlfhJZ6G10mYOT34Gf1XyPJpaO9Kpu9cCUo=; b=8m1UXArXyLCiGvkxeYE/a0sz6nuFLtKPTmQuTeEfmsFp7iYUi4rpc6ijCcpK9xskZ4FbActwI U0fVdXhuxalAnrqa8oDklbiWyBsEPSNzBsXMAcnUP9RZu7ytZ8wbpev X-Developer-Key: i=pzalewski@thegoodpenguin.co.uk; a=ed25519; pk=hHrwBom/yjrVTqpEvKpVXLYfxr6nqBNP16RkQopIRrI= Add an additional and optional control register for setting the output PWM frequency to 22kHz. The default is 3kHz and this option puts the operational frequency outside of the audible range. Signed-off-by: Pawel Zalewski --- drivers/leds/leds-is31fl32xx.c | 47 ++++++++++++++++++++++++++++++++++++--= ---- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/drivers/leds/leds-is31fl32xx.c b/drivers/leds/leds-is31fl32xx.c index 8793330dd4142f49f15d6ee9d87468c08509859f..5ec1ca71f326378e3a714a88626= 0b86002feffa9 100644 --- a/drivers/leds/leds-is31fl32xx.c +++ b/drivers/leds/leds-is31fl32xx.c @@ -32,6 +32,8 @@ #define IS31FL3216_CONFIG_SSD_ENABLE BIT(7) #define IS31FL3216_CONFIG_SSD_DISABLE 0 =20 +#define IS31FL32XX_PWM_FREQUENCY_22kHz 0x01 + struct is31fl32xx_priv; struct is31fl32xx_led_data { struct led_classdev cdev; @@ -53,6 +55,7 @@ struct is31fl32xx_priv { * @pwm_update_reg : address of PWM Update register * @global_control_reg : address of Global Control register (optional) * @reset_reg : address of Reset register (optional) + * @output_frequency_setting_reg: address of output frequency register (op= tional) * @pwm_register_base : address of first PWM register * @pwm_registers_reversed: : true if PWM registers count down instead of = up * @led_control_register_base : address of first LED control register (opt= ional) @@ -76,6 +79,7 @@ struct is31fl32xx_chipdef { u8 pwm_update_reg; u8 global_control_reg; u8 reset_reg; + u8 output_frequency_setting_reg; u8 pwm_register_base; bool pwm_registers_reversed; u8 led_control_register_base; @@ -90,6 +94,19 @@ static const struct is31fl32xx_chipdef is31fl3236_cdef = =3D { .pwm_update_reg =3D 0x25, .global_control_reg =3D 0x4a, .reset_reg =3D 0x4f, + .output_frequency_setting_reg =3D IS31FL32XX_REG_NONE, + .pwm_register_base =3D 0x01, + .led_control_register_base =3D 0x26, + .enable_bits_per_led_control_register =3D 1, +}; + +static const struct is31fl32xx_chipdef is31fl3236a_cdef =3D { + .channels =3D 36, + .shutdown_reg =3D 0x00, + .pwm_update_reg =3D 0x25, + .global_control_reg =3D 0x4a, + .reset_reg =3D 0x4f, + .output_frequency_setting_reg =3D 0x4b, .pwm_register_base =3D 0x01, .led_control_register_base =3D 0x26, .enable_bits_per_led_control_register =3D 1, @@ -101,6 +118,7 @@ static const struct is31fl32xx_chipdef is31fl3235_cdef = =3D { .pwm_update_reg =3D 0x25, .global_control_reg =3D 0x4a, .reset_reg =3D 0x4f, + .output_frequency_setting_reg =3D IS31FL32XX_REG_NONE, .pwm_register_base =3D 0x05, .led_control_register_base =3D 0x2a, .enable_bits_per_led_control_register =3D 1, @@ -112,6 +130,7 @@ static const struct is31fl32xx_chipdef is31fl3218_cdef = =3D { .pwm_update_reg =3D 0x16, .global_control_reg =3D IS31FL32XX_REG_NONE, .reset_reg =3D 0x17, + .output_frequency_setting_reg =3D IS31FL32XX_REG_NONE, .pwm_register_base =3D 0x01, .led_control_register_base =3D 0x13, .enable_bits_per_led_control_register =3D 6, @@ -126,6 +145,7 @@ static const struct is31fl32xx_chipdef is31fl3216_cdef = =3D { .pwm_update_reg =3D 0xB0, .global_control_reg =3D IS31FL32XX_REG_NONE, .reset_reg =3D IS31FL32XX_REG_NONE, + .output_frequency_setting_reg =3D IS31FL32XX_REG_NONE, .pwm_register_base =3D 0x10, .pwm_registers_reversed =3D true, .led_control_register_base =3D 0x01, @@ -363,8 +383,21 @@ static struct is31fl32xx_led_data *is31fl32xx_find_led= _data( static int is31fl32xx_parse_dt(struct device *dev, struct is31fl32xx_priv *priv) { + const struct is31fl32xx_chipdef *cdef =3D priv->cdef; int ret =3D 0; =20 + if ((cdef->output_frequency_setting_reg !=3D IS31FL32XX_REG_NONE) && + of_property_read_bool(dev_of_node(dev), "issi,22kHz-pwm")) { + + ret =3D is31fl32xx_write(priv, cdef->output_frequency_setting_reg, + IS31FL32XX_PWM_FREQUENCY_22kHz); + + if (ret) { + dev_err(dev, "Failed to write output PWM frequency register\n"); + return ret; + } + } + for_each_available_child_of_node_scoped(dev_of_node(dev), child) { struct led_init_data init_data =3D {}; struct is31fl32xx_led_data *led_data =3D @@ -404,12 +437,13 @@ static int is31fl32xx_parse_dt(struct device *dev, } =20 static const struct of_device_id of_is31fl32xx_match[] =3D { - { .compatible =3D "issi,is31fl3236", .data =3D &is31fl3236_cdef, }, - { .compatible =3D "issi,is31fl3235", .data =3D &is31fl3235_cdef, }, - { .compatible =3D "issi,is31fl3218", .data =3D &is31fl3218_cdef, }, - { .compatible =3D "si-en,sn3218", .data =3D &is31fl3218_cdef, }, - { .compatible =3D "issi,is31fl3216", .data =3D &is31fl3216_cdef, }, - { .compatible =3D "si-en,sn3216", .data =3D &is31fl3216_cdef, }, + { .compatible =3D "issi,is31fl3236", .data =3D &is31fl3236_cdef, }, + { .compatible =3D "issi,is31fl3236a", .data =3D &is31fl3236a_cdef, }, + { .compatible =3D "issi,is31fl3235", .data =3D &is31fl3235_cdef, }, + { .compatible =3D "issi,is31fl3218", .data =3D &is31fl3218_cdef, }, + { .compatible =3D "si-en,sn3218", .data =3D &is31fl3218_cdef, }, + { .compatible =3D "issi,is31fl3216", .data =3D &is31fl3216_cdef, }, + { .compatible =3D "si-en,sn3216", .data =3D &is31fl3216_cdef, }, {}, }; =20 @@ -466,6 +500,7 @@ static void is31fl32xx_remove(struct i2c_client *client) */ static const struct i2c_device_id is31fl32xx_id[] =3D { { "is31fl3236" }, + { "is31fl3236a" }, { "is31fl3235" }, { "is31fl3218" }, { "sn3218" }, --=20 2.48.1