From nobody Mon Oct 6 08:31:22 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 B2D3EA31 for ; Wed, 23 Jul 2025 10:02:15 +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=1753264937; cv=none; b=qLympNTpmdYNXqba9Y/FOxDwkmysVh6xwasybff+YnipsU7Q31jajjqUEsLQgleLOcI05up1QCiFbCNR9QUBCe8xx+w9+Zj149PJIMAg1i9ypGIgvAOnquKaNLYkwdTogJwjDO/enEjljN+g/51bi92z2R7DFbXvVSUe+Hf++PM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753264937; c=relaxed/simple; bh=5kMgxutJotWHcn+GjfQR8lDKiExane0jM29wizaS1do=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=flKCk7BaZo4iG9kt80yi+l5Xj9i+Gucfam5SxhwLpyay5cc+A0OxydlcHgzJoV/q+dlTY3sd5N7MqLKDZFOyY4pJ9CBYYCKzxhodlcBAE3pi4ch9ox/WczyBfgsOflOjjvHP9DY2lhD4PmNFKRsvGmgRrXX7zNzNhPBwevtHLIY= 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=cjZ4zjxa; 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="cjZ4zjxa" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4561ed868b5so44295245e9.0 for ; Wed, 23 Jul 2025 03:02:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753264934; x=1753869734; 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=rUYJkiCckDIL5Ouw6onN64YYh2QkIaR4fkS2n+72LBg=; b=cjZ4zjxa0P+CUWvp1sZFUzi6JULdcMScwHVAZnRc+Ls2KKfzoQQhJzMw0hlCQ3B/Ua wb2EGmtBCmr+JRTPyrTrCre8JBnzINpcyMDJ+WdP5aaFNy6FSog3h2QS9iKZhDJiN+in /3wqSLJ1HLelD4P//7f2T1VrPuXhBSPV/vQvz7vHX0KcFy1nQ9jRu06EZj34n9tXCvc2 gGrLgYZcyWmwRSYfONllY9MuznuJONgw4frQ8f1D6pSDJKj/bepxJE36QWCOpXSOmPX0 mxuYoIsDgFzF9cUs1ehlqr8tAG8hWUbMrMpNyBjTTMWFXnPGRUAJ4/1ksdgxuh3/ETNf Gj4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753264934; x=1753869734; 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=rUYJkiCckDIL5Ouw6onN64YYh2QkIaR4fkS2n+72LBg=; b=SPRom87uqbk3fezlEKzX+ZF+6uhKkLPQfDr7rIV+UavWS2udjlYZjQDCF1tOH7/Shx Xbf+JdOrNMHWnAAmc455q8NLZd+LKxGffWGueT7xitypXw/VCPx+0JCKRDuH7NcvKLm2 epu5M6wXMe5W6rsKWuEtPOzQdAO2IoGDuimhMTM3kBYCSk87b+pOrBrRM6wSnW1ygQiG qFrwnGWQZQHMX04qDU0DIKuCPXN+qupNeAr6eynkFahSMdJm3/nPGN5o9NL44QQtvOui w5lZc9nE1fDWF0SLivR2vTut0oA/uUbURkKhEO+ssQiUP7AxUCpT9MplKGYlftVa80A4 Fd/A== X-Forwarded-Encrypted: i=1; AJvYcCUgTXynHWsImlQm8znAj75Vb1ARQH+yfG57QXgezJmm+ZEzPa9J5edrKSOYIR1cZP/8fr3WTaibGhq/c8U=@vger.kernel.org X-Gm-Message-State: AOJu0YwaJvtcXUx3/2mbkouNa2jCe+oQspITX1e3zQ+jHwc0MvHZ6VLh RZxrSc8s4XYDKv0H7JS8jJfa91E7+4zExMScBDzFbj6EYo0JXKKhg/mVv7wpejp3R6o= X-Gm-Gg: ASbGncvwnTxNskud7VxbZ0MXJ0tGNDl+9MJZuRejZW4bcJ2o7OOzwZjy/flOGrwVifM DZFy3ppP8wF16AxFO1nLuhd6Z0h6tvYPuJU8B3adruJlkFJrkneJYlwtuQ0Je2VM2bHNMmAtYur KlLxmYSo9Wf6wE/iBzX8KiuRsy2sJjiAeQyqaashfdX98KnMXlZW2iT6ZyvVsygf5/oY9qhlHuz diLRcDbx4tAvyCFvDnnnLAuKgeFrFsWhfoVGlMwtRW1UHC6KlXFyUkC4ywnM5rblpu2cyLJrKFD 3K88m7pR2MX/i5LyqZDDjUBPthCyopzC3EDwq6OePPkSkiIzQinxU/9ZnVbNHxiWXX2LrjI230u XdE25G//aiVsIetksHEsQJfkBHafVo1bzj9a/EF4ERELL+lS3 X-Google-Smtp-Source: AGHT+IGmA92VovbPEOSffV2mRQSpT8/xk+7T4j49WCzpvzEE6bu2Q+8HVGTdw+FBzKL6uOtYI1tUsA== X-Received: by 2002:a05:600c:1d05:b0:456:173c:8a53 with SMTP id 5b1f17b1804b1-45868c822d5mr19796545e9.2.1753264933934; Wed, 23 Jul 2025 03:02:13 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:6066:6737:c27:90a6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b61ca31394sm15930793f8f.37.2025.07.23.03.02.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 03:02:13 -0700 (PDT) From: Pawel Zalewski Date: Wed, 23 Jul 2025 11:02:06 +0100 Subject: [PATCH v6 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: <20250723-leds-is31fl3236a-v6-1-210328058625@thegoodpenguin.co.uk> References: <20250723-leds-is31fl3236a-v6-0-210328058625@thegoodpenguin.co.uk> In-Reply-To: <20250723-leds-is31fl3236a-v6-0-210328058625@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=1753264931; l=4843; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=pYc8fwZ9xvPA38qYZqIbcn2vrzfKKe4H36j/51JnX6c=; b=TE/RG8MwJfH1QcEIOfrd5s3wNEzkwFcvYvV0Xpu/UXQpTreve6aBlMv1aAE2mI0xm2HuhDeeu ekvmrjYG2PCDIPv8+tABRgBFDu/WwM7C8g1S/48p1H/GHQC86Q0jhRx 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 Reviewed-by: Krzysztof Kozlowski --- .../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..c778866d51fe6ba947631ee8074= 1f0d8a02f82ee --- /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/IS31FL3216_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3235_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf + +properties: + compatible: + enum: + - issi,is31fl3216 + - issi,is31fl3218 + - issi,is31fl3235 + - issi,is31fl3236 + - si-en,sn3216 + - si-en,sn3218 + + reg: + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^led@([1-9a-f]|1[0-9a-f]|2[0-4])$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + description: + LED channel number (1..N) + minimum: 1 + maximum: 36 + + 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 <1>; + label =3D "led1:red"; + }; + led@2 { + reg =3D <2>; + label =3D "led1:green"; + }; + led@3 { + reg =3D <3>; + 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 08:31:22 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 C3BA428A407 for ; Wed, 23 Jul 2025 10:02:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753264938; cv=none; b=fqMffHRylc6G2QJxVQYe0+MuLcH8JTLEW/r5FAN0AltiM2PYo1qUmAOmCx2/V2UrQjI72tt7y2188qvn8dNFY+4Thwj2HGW74IFQEISWzhFAaZVJ4INDLlwY3Jkve5pZDuso6cla6moqFwKSXPVfb7+8xveTeBkgxAcOaTHhBKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753264938; c=relaxed/simple; bh=cc5BZaAROg3hR6jmHXFsW2REoH4SgVJ71CzqrNwe0HM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SnV0d85T0b0o0BaK0xzXASq4tAUhFRbllWv1lr8ppO9WakCpUcMI//wAmJrQjqxDfI2t7jhpCaL9LuYYXXJlHQEzfWC30fvkrNc1nzTbwWCQBq6eZd7yOe+UMsCNAVDNyhrb++NpDYAw4yeEgx9Z2lrhi/NGFQgEcCmrEgwMeic= 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=buxXO2mq; arc=none smtp.client-ip=209.85.128.54 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="buxXO2mq" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-45619d70c72so6749125e9.0 for ; Wed, 23 Jul 2025 03:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753264935; x=1753869735; 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=WlqSkXY8/eWL8QswhAWWKjIEfwL5h0gj2X3KVSyjUzI=; b=buxXO2mqfMNMQq06B4iZRrT97+cYd13dnwwCHDR8UzK9lyz8uoGSI9bxH3C13lyi/K wL2/8wBS/EqWmYTo4QxepAY4vIAn/0pa6rPi8odM9oa2IZ/sihi5vQAP/wO5PhDkbjys YYtyCZ2BmojA27OqQ2DKE03znAfJRQMDkS2cIK77Zxy3jGFRbRV5N/WZSK+K3gF6ACdW HcUUfg/XZUpnf1gKx1kEG3WdFSUk2xNphjffaLSQ5YiXq0cIs61z4GKAXVwZlBtZqKa4 BKUYCx9lir4J3hxgOv4ZcOL4G4PD17Bd/2VSe+Cg6223b9hLwLZSIt1WKIUtuVVqCMIr bRiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753264935; x=1753869735; 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=WlqSkXY8/eWL8QswhAWWKjIEfwL5h0gj2X3KVSyjUzI=; b=EEbeTulhChJcYP+KTCkFxWBrw/dowRjPXfb2HjwuOjHijWR8T4BUQ/FYwMitH5nEB1 EejumrmCeMO5HAPIjL3fzpFIe0+5scnlFbQrYD+jdAjoRD+Xepd5U7JjQyQpyszkeQuL 25J/bmY7OEj11CqkwNp0+cxw7kaMuLZ43fPHPC0d3XrRVcPXl/5jP0TtzocOKvCJwptc U3nsnvCroYPWD/bmskjLfevyQXYg5YzUjPO3EnK3BqeOB553NhJIczX2FrV1vAUubxvj UucoSwXyCy0luINXOL9kNVwDJKnWAYucix1obE2JVSEjLASZcUrs5++KFVg0HAizbewW C4yw== X-Forwarded-Encrypted: i=1; AJvYcCUx9r29B/hML3lhQ2lDz4kTqnjaeVE2KqljQ21GwI9doMQqvOjgCyvkTzu/hUaru1pNfcGSN4AAJ+grYZc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8DkmRYgI5i05b4ih1W4N5cuw6w6+wvA0XWRaqKWiVNQbytXAD 8uTKd+ayCv0/vA8HDeoDk+PyPeLu9oP3LuokSjQfiYBEEAF0XrCtK7EMNTZxCVJyNK4= X-Gm-Gg: ASbGncvTf1oTepvsfyn1TzuoHX9NWVu3EBNau9YBiC2Ak1re0q4WTtraTqTP953jVQV MAKdvrtxC+y2I9Pa0ZaeeP+luXIby4nqkFPdyZAecfiVVToyoWchaBz7/z0DwjlJmnJsGvpGqnQ aNFqnQzjQo0FA+Gaj74mTQw5HUNEguB0w38a7e6AyHfcuO52rgDbTTnRad0lXQaW5ZkIeVhWgnx NU5tHygPrAsF/xgFi9Je3hxX3Zes4TZ6nMTs3d5IP728/Mkw/Jd2e5jiRJeqFljLDHwDLvMPneC oVpIwit7ESGK/xRrWOM/cnINGTSwnwzibZ9tvzH0i4vx37Qa6t4vyQpMrugU7d1qAhRkDF+ZWI4 pQYV2p55gzwZ5ce0RuHuDphZ5oV4OC/L2mHjPng== X-Google-Smtp-Source: AGHT+IEhgsJzsV7IfravQSqZYJmOjKxH8Jaad3zEB+E4m32fhG3tLEMWBLJlEsgKuzSLLBJCvm+mrQ== X-Received: by 2002:a05:600c:458b:b0:455:efd7:17dc with SMTP id 5b1f17b1804b1-458627512c0mr63332405e9.11.1753264934992; Wed, 23 Jul 2025 03:02:14 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:6066:6737:c27:90a6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b61ca31394sm15930793f8f.37.2025.07.23.03.02.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 03:02:14 -0700 (PDT) From: Pawel Zalewski Date: Wed, 23 Jul 2025 11:02:07 +0100 Subject: [PATCH v6 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: <20250723-leds-is31fl3236a-v6-2-210328058625@thegoodpenguin.co.uk> References: <20250723-leds-is31fl3236a-v6-0-210328058625@thegoodpenguin.co.uk> In-Reply-To: <20250723-leds-is31fl3236a-v6-0-210328058625@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=1753264931; l=2144; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=cc5BZaAROg3hR6jmHXFsW2REoH4SgVJ71CzqrNwe0HM=; b=6bJwpk+Lu4obClf839BR+6undZ9888r4NE0TXX8Fb6fHr6oeacfp5DymQu0D87UOBw3ezj/Tx bEbKz8564wcCpkZn2fVeW+DMRQqYp3cQ6/dn49+iDB+cNpT7GbfWlek 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 --- .../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 c778866d51fe6ba947631ee80741f0d8a02f82ee..3886a67dca71a5030fe90e946b1= dcbfc9d727cf7 100644 --- a/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml +++ b/Documentation/devicetree/bindings/leds/issi,is31fl3236.yaml @@ -20,6 +20,7 @@ description: | https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf https://www.lumissil.com/assets/pdf/core/IS31FL3235_DS.pdf https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3236A_DS.pdf =20 properties: compatible: @@ -28,6 +29,7 @@ properties: - issi,is31fl3218 - issi,is31fl3235 - issi,is31fl3236 + - issi,is31fl3236a - si-en,sn3216 - si-en,sn3218 =20 @@ -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]|1[0-9a-f]|2[0-4])$": type: object @@ -56,6 +64,22 @@ patternProperties: required: - reg =20 +allOf: + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3216 + - issi,is31fl3218 + - issi,is31fl3235 + - issi,is31fl3236 + - si-en,sn3216 + - si-en,sn3218 + then: + properties: + issi,22khz-pwm: false + required: - compatible - reg --=20 2.48.1 From nobody Mon Oct 6 08:31:22 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 DD72928C2B1 for ; Wed, 23 Jul 2025 10:02:17 +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=1753264941; cv=none; b=Zd+5mb0oushLvkmbvclPgtDu1nWHudweEoEzyGiBc+s5C1kwR0cfDRqvSxaenYjA3xV6DWJQU2bpyZ68lwVeoWmJ4j6kz0nlRG9ecGxiCA3Q8FENnjH1ZeIXDNItknWJHFTt3ydf/SvTFygXqyIbuyYmjPYLvT3sjoio7LXPezw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753264941; c=relaxed/simple; bh=X4RB/EqdDISFFUSuCWVjDZVIt5Na2IXaogngEJR9LaM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l9RjMF3jWAFlDIaAEp+zBV8vyXO5sMt3hl8gn+vZFV3s/NtNrFlKRDixcPTl0MHPgRCKvaAA7pyk1eglRENqJnUVuAJlIaK/npZVICsWCV82RiCn3ZwikGyHzk4AenWpia1llSiyN4Xpdm81ELGM1dvkWBXs5VEfKFFe2lFCLaI= 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=WKs3JYUQ; 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="WKs3JYUQ" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-45611a6a706so34786445e9.1 for ; Wed, 23 Jul 2025 03:02:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thegoodpenguin-co-uk.20230601.gappssmtp.com; s=20230601; t=1753264936; x=1753869736; 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=pZfYdzfHt38wkKRTaEHNUDVSiTE/Ug90q+HPqIdL9i0=; b=WKs3JYUQV4ChxOE7nGpmCJcZqogMPDbRP3ax3lYp0QYIykuZc/8KLC6LwAeaMsgu3K 7UnSjIHquQ7BH1AtJyLmlBI72UDdE0t0kBlHmJ8kZ8B7gXFHjxeyYna1Jj9tzs29nRyt RiO6MRtmpxY/c0pcHh55miIFHeNwqpGT1mNrI7CeMes5gNS7DWpjwNFtXjLRydq6toV8 b88C6EBBT5JIbFaSjdXkah+TLmvlPs24ANOuYk4S/+T9w16MUszwTjTkgeWqFK5bbAGZ RbY2X+/5QMf2Sex6o4rHGuNbZe5ee7ObYlXKPgYQd+rwgDEZYhmGOqEWTT91X8uG6FaY cZsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753264936; x=1753869736; 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=pZfYdzfHt38wkKRTaEHNUDVSiTE/Ug90q+HPqIdL9i0=; b=ujSWFJiOW84AZBUUEpTAkfgaxGoKtR+10ZIQWIjcomxbVK01tKaBfuffkhmMOKoc7l sHgtDKh4ECVbGnSMD89lrpM2hRYbPFEhipRCPxqRG9tFxNg6uagwuSIydEbxKQU2dPAX v+l0ALqjvY0mOYB0lhnIqYHmKxwB2fDiJs32xpWKQaLNfRQ71Q8scMssx109VKRCTl7Z Bfd5/JU6c7wJ6B3hTnAABaNnSB0R+jOAbkl8FqdrHpVxKuNyhkSz+jOwhmE4+8ExoHZ5 gqQKk3yFrgk347PsQEsDLlwNQMmbcVryZnuDTc2hGCky+QOE5D/VjKg6CPyO0iDDKUxr t9sQ== X-Forwarded-Encrypted: i=1; AJvYcCUwxkcj2Oq8JI304UNEzSKugLbY3d1uLtQa4IL0PyLIiDfR3KLmBTpX8IYpaSBRHwf5ve0mj8LVeH2rgDk=@vger.kernel.org X-Gm-Message-State: AOJu0YzmQnrwPYIPk+LOX+loVaSAGCVXVRHJKO317XBGXexbG9yOqpzE F7LTTMlKkKI9rDOO/8Sq638X7guzTV7/z1ziXMGg/Eiql3KK/AgDjUWyRuuZGco8GUY= X-Gm-Gg: ASbGncvqLrUxxWy8oiGfGo1E+xFc86yd+z0MZsmKJiOOKo20lvPnFazM0Cipdax+YOR fmHsuPpED+aiRqMSJ8FQFBy20cESiN9tN175PwIhDVS2v31KjGgEmGCJWaOyAIGe1UD1mlOrU3G /psFjGgIMyyZpT8BSeRD/RTg317ldZrkzguy2kf6RUbxdZJ+DqKyijpxKoZoxeLKM8VQGZ0HAa9 TwbNCuYG4UEymAW8gA4SREw9EXfSKbgkC46yzbcvjTaLr41s4N6XTpUw6Rv4YDSyczCDNYUBYNs hSLqjtS3D8zxDVGnM0zPIwllMrI+D8tOH5XE1WKX3+v2brvQ77B+ub8kZPkpRNDmWQJbjABQ+zH omb3ZGLZQUTxa+wfv8RPQn6ZvL6ibGUqeYy4WTg== X-Google-Smtp-Source: AGHT+IFG00Ka7dTTXqD5R72xnTJ1FgjEk2W34dnzJ7eV8qjczJLkCd3qHfafX0BnqVEz8vMVuYSrkQ== X-Received: by 2002:a05:600c:3107:b0:440:6a79:6df0 with SMTP id 5b1f17b1804b1-45868d2c693mr14672425e9.22.1753264936189; Wed, 23 Jul 2025 03:02:16 -0700 (PDT) Received: from [127.0.1.1] ([2a00:23c7:1d1a:9c01:6066:6737:c27:90a6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b61ca31394sm15930793f8f.37.2025.07.23.03.02.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Jul 2025 03:02:15 -0700 (PDT) From: Pawel Zalewski Date: Wed, 23 Jul 2025 11:02:08 +0100 Subject: [PATCH v6 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: <20250723-leds-is31fl3236a-v6-3-210328058625@thegoodpenguin.co.uk> References: <20250723-leds-is31fl3236a-v6-0-210328058625@thegoodpenguin.co.uk> In-Reply-To: <20250723-leds-is31fl3236a-v6-0-210328058625@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=1753264931; l=5531; i=pzalewski@thegoodpenguin.co.uk; s=20250625; h=from:subject:message-id; bh=X4RB/EqdDISFFUSuCWVjDZVIt5Na2IXaogngEJR9LaM=; b=osBH6/HI1wRntHwW6t4fGMXMNUBccGGwzkGcNtaDNJfFf58F5Tw3iubILCajoCGDhA22rbET0 jR56yYMXa2YAKOPZhhknm9UZGdILft2L6szjIDoHWDW/1PtEGedF56T 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..dc9349f9d3501b179af493e0c87= 7ec7b27a78157 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