From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C92B12222D0 for ; Wed, 15 Jul 2026 13:44:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784123075; cv=none; b=Gl7PtJu/2lVxDiImsOUqQmXuXlfPgTPU8IEyayvgY4ZEQ3z1n4gqPwqTS5mMLd48QxtgcwoUx9ZqxbpOt+OndzzZHDvlGJIC/zp/Ag8v+OsiPNTD0nFvoypdroG8Q9yKdWKsZlu+djAfPjdOt5M0taMmpjwdgY4QfqJNuiYnL7g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784123075; c=relaxed/simple; bh=4T/4q/GKcuXdMHDGzev5LfJPjRNiNnzaYIn4FFK8R8Q=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=bV7sq3ULbQepJ5JAB7sLb00fN80BgTe/hE1RfcpqAL5v+1I4LqWQaySCkIzchgcU3kbGF65H65pPOzq0nxHWxEOC6O5uSb+YiIi0dyYeGgB81kjSlr3DZzSzopJk3DYDBVlNdRFYPgwT+uMV0mgRuW3JuH28nKJ4/pU74YPOFsM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=LPkjc+ub; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Y6ixmzdp; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="LPkjc+ub"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Y6ixmzdp" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66FBconR3479772 for ; Wed, 15 Jul 2026 13:44:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=HjdSK/FcnmoQgdARK7EzP+ X8SwoN63IAkBGR1xi3pEU=; b=LPkjc+ubl6Wpz42InI2PEn+HIn41VcHl77/od6 DfC6iZG0tvCP3IgXIu/ezH6VEr/afVwfF16p31ny1fCWxtECsnqlZNwQ1cyenTjB g4WSsY93vRimid7XiPqMRHwEdSiTM/dcH1MrlvEdt+wfXoBKoAv0Kucc2Y8E/gyE 95V3nylq46E8U3C0KF3TOOnxFveu53++TJy7vMOJiRTCsoqy4BZuTnrSrOsP+wcH s0o34/Vg9ca7ur1Wk3mmbU3/cqgZsUwOQn6zivHS1Evlrbfg0huS0hUDwcKTh0cs hC8FepNEFJkV7YoHETGeIYGSU8pYeHy4aMaqDqfcobNpc11A== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fds9g3vw7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Jul 2026 13:44:32 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-51c110a3b6aso31020161cf.1 for ; Wed, 15 Jul 2026 06:44:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784123072; x=1784727872; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=HjdSK/FcnmoQgdARK7EzP+X8SwoN63IAkBGR1xi3pEU=; b=Y6ixmzdplow2zcS7EIiihzfT7og+RAE5BepOUL4ig04M4ZIKHzv9RYuzJPCIDiJWIW cQfeMxfaFRi1SEWflCYTpODhSZAnr36i0spQfstcrkms609cqX4mdbyHdxDfks/Lf21Z f66j7xJnz7JeBW5cy7LAvF6h21YR3GxLoFJS3YFbWDkjrDLVhDfIsllbJy4Xxkcget2H dgfh0ow3ulepAwBHkOahKuYReku0TafRKfP64UFlAKxTEi7XUG6A0V+QydT8/C+gmKe/ gvufJE5diV6BtYJ5lz1D6V3LwrY9wIJt5EhP/ldkiHKQaBAXdc5UnIBkq2gtChYujKdX /FnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784123072; x=1784727872; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=HjdSK/FcnmoQgdARK7EzP+X8SwoN63IAkBGR1xi3pEU=; b=C9xToJANFr2QW4YZWbJU3KQGzUJ13nCseYkGkvpC11XlbY/p/5tu7krzD7tsRK7/2x vx2ntaje1Z5QW+8js2ZMOIU5lkW4jd17VNTI5SCn1kWZQ9DpOQcaZUpJpG3moUHcXRq9 0PZBeZ08syZYw8MZ6mdfSXF40tC3s4yiz4TJ/KbzDLJlLkwMKkFNiTnvbBDl3WLyBEsO JddoVx3kQ8DyTjotaqm/BRFlok1ZyzX7C4zy8j3WSU/vbl/JEReU9SC7Z1N0WBweKOiS YLJAtasks+iFWIcxfH1LWN9BxxE0fFJXmnDIHgOrtjRfNYTEMujiUxr1phMl55aF92bO vvGA== X-Forwarded-Encrypted: i=1; AHgh+RrRJSkM+1cODXDSq2zURSodzQpsA5e3EifSjcosRAvlxhYhwSnhjlBG9ZwvuaJXMG0d6ORbRvNnWw9M7UA=@vger.kernel.org X-Gm-Message-State: AOJu0YzCnYFLG5erEjZXbQthNe0vHu9GkKr09fPhMKw3b+cwyZq6bDuN bgTe0jnZo68v1uuVP/bqxGwguyQc5sH7mMdp9dSOF9irOsMQOAzsJXgUMEp3fimnjY884R9wmA/ AJLxCR4ViJgeDgeQsXkxsgNyolDjL1dq2s8/DeFpSIYWD0p1T4gvA/V/lFVGd/x7EX0A= X-Gm-Gg: AfdE7cnY4epzMw/vDt3+e/42P+FH6wZRGn++hshM7fXCg3tymSCjnz4agTH8eCmSdJZ LHrR9gtghaOSbSkR7Uw9b7fh5Wiq9YdxugKD2P8NSseZx/i2vrSw03bJ5bi3RyBZkyxOxgSITaZ Tiuj0hPbpi+PrTFgEh8B+ARFICznqhb8KShkCkNiJhYf7MFeOuNly4IjeyrM57CMRgi4OAaOhIK nKGufZ2KF+OL+DlB+ZMrt0qPEOzFpzVKhQPssZpmt2qP+iqvvP2XP2ZeL1X0cU9Xre4qMlcG/J7 laNq+mxpAL43AiOZ7gaZnBx4b+K682ch9eYezMkCYnokhhpnnGN2+aEQ8fcJ1xwJ389XVGuREN3 nyvxn+EJWjbaOE/DsWB+fr+iKLgd566XrP6ndS7ivyeMd8hUCPwj2JdKUFoEi/c3ehSwTv8G7nV mXu4w4758RwZzyr/6YttY6K5BF3DGosYPH+45LdneU/zaq5FSl2uKUfRRJE0I7WA== X-Received: by 2002:a05:622a:190d:b0:51c:196:98d3 with SMTP id d75a77b69052e-51cbf2f9fdamr175540181cf.66.1784123070828; Wed, 15 Jul 2026 06:44:30 -0700 (PDT) X-Received: by 2002:a05:622a:190d:b0:51c:196:98d3 with SMTP id d75a77b69052e-51cbf2f9fdamr175539821cf.66.1784123070337; Wed, 15 Jul 2026 06:44:30 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:751c:d61c:c91:60dd]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69cd28a17d3sm3041215a12.12.2026.07.15.06.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 06:44:29 -0700 (PDT) From: Loic Poulain Subject: [PATCH v6 0/4] leds: pca963x: Add multicolor support and enable Monza RGB LEDs Date: Wed, 15 Jul 2026 15:44:26 +0200 Message-Id: <20260715-monza-leds-v6-0-d1724bb7fe3d@oss.qualcomm.com> 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: 8bit X-B4-Tracking: v=1; b=H4sIALqOV2oC/3XPTW7CMBAF4Ksgr2tkjx3/dNV7IBbOxCmWSEzjE tGi3J0JGxKJbEZ6I71PM3dW4pBiYZ+7OxvimErKPQXzsWN4Cv135KmhzECAEQY873L/H/g5NoU jeIjGoQ/aMypchtim2xM7HCmfUvnNw9/THuW8fcuMkgsusLUogm1Q6q9cyv7nGs6Yu25Pg83aC C/BCrkSgASUdRS1tnSU2RDUUjArQZGgbAz0jXPKqA1BLwW3EjQJwQZssQKNot4QqoUgxUqoZsF 5Cw04BNe+EaZpegBvv515swEAAA== X-Change-ID: 20260629-monza-leds-c292e68c9a49 To: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Laurent Pinchart , Bjorn Andersson , Konrad Dybcio Cc: linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Loic Poulain , Conor Dooley , Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDEzNiBTYWx0ZWRfX+SGhnN3dX+W0 r0ei6jNuJ74pE2E9/+p6US22zFlIeyzz4THJVDtS6HWyN76bp4TMM3hTqLLpzQZV0/aV6kBQoj+ 2qPbPZcwMybpcuwlHHo57zkf/2dfqBI= X-Proofpoint-ORIG-GUID: EQnkbr7cuMmySqvjMaGwTymV4MNcZaTC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDEzNiBTYWx0ZWRfXymKf5l/o07wp bEGLe9FXjWD1yijHXOi+AF4MM89EGrAlZYtNV/fG95kGfdVIYU1inrdNfR+E9U59ilIIRAXiy9M 3AxO6ZyUQVolFzXv8O9N0e6lnvKiocYGk916dldGiETI8FePti3duSC4leABQBYCH3C1s4PjHhl 5z393/CGf2X1M/KOq2aBYo2KZURSrbYfNwS9XnMC56ifNwAUdkZxNAo9Tz2w9KWJn1PmCCH1Jm+ tpOX9p6DqgOkXx0dPQzbQMO9bC00+8rqk7aw2XPh3YEvArtBoKo9LIbrX7rjyo2/eVdLqAFcrPk ofeogBqIlnh73gAsTYckfB3YunGSg5I7owP9Z0YC3xUJGI7T7PkwzklupoT8BPGCczsNMkOq2Yu ZaK3lKnYppqR/etIYjBTnw+wlqykuh0b+18EH2qNcrlRbrj7MmHFvb5l3tpFR7pc3zcfn8Tc14D P2UKZSdrDKiD++o4WkA== X-Proofpoint-GUID: EQnkbr7cuMmySqvjMaGwTymV4MNcZaTC X-Authority-Analysis: v=2.4 cv=VoATxe2n c=1 sm=1 tr=0 ts=6a578ec0 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=vowN3T5aPRO3JaQcBOgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-15_02,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150136 Some devices use PCA963x controllers to drive RGB LEDs, where multiple PWM channels correspond to a single logical LED. Add support for grouping such channels into a multicolor LED device, using the LED multicolor class framework. The DT bindings are extended to describe these groupings via a multi-led@N node with sub-nodes representing individual color channels. This follows conventions used by other multicolor LED drivers, while maintaining full backward compatibility with existing single-color LED definitions. The PCA963x driver is updated accordingly to detect these grouped definitions and register multicolor LEDs. Finally, the Monaco Arduino Monza device tree is updated to expose the onboard MCU-controlled LEDs (compatible with PCA9635). The MCU manages four RGB LEDs mapped to channels 0–11, which are described using the new multicolor bindings. Signed-off-by: Loic Poulain --- Changes in v6: - pca963x: keep chip sleep/wake state consistent with tracked per-channel state on I2C failure mid-loop in pca963x_led_mc_set() (sashiko). - dts: drop deprecated 'label' from the multi-led@ nodes and use function = LED_FUNCTION_INDICATOR with function-enumerator <1..4> for predictable per-LED naming (sashiko). - Link to v5: https://lore.kernel.org/r/20260710-monza-leds-v5-0-a8972d28c28f@oss.qualcomm.com Changes in v5: - pca963x: fix multicolor power-state tracking (leds_on now updated per sub-channel, avoiding wrong sleep/wake state). - pca963x: dedup the single/multicolor registration paths into a common pca963x_register_led(), with mc parsing split into pca963x_parse_mc_subleds() (Lee). - pca963x: use dev_err_probe() on the probe error paths (Lee). - pca963x: pca963x_led_mc_set() cleanups: drop the extra loop variable, use 'for (int i ...)', etc. (Lee). - Link to v4: https://lore.kernel.org/r/20260708-monza-leds-v4-0-a7acfc524c0b@oss.qualcomm.com Changes in v4: - Narrow the led node-name regex to allow only hardware-supported addresses. - Remove useless 'minimum: 0' prop, and add 'maximum: 15' in the default block. - Link to v3: https://lore.kernel.org/r/20260706-monza-leds-v3-0-37ea8c988363@oss.qualcomm.com Changes in v3: - Add color to required multi-color leds (sashiko/Conor) - Bounded registers value for nested led subnodes (sashiko/Conor) - Add fix for PCA6535 reg limit (extend it to spec) - Link to v2: https://lore.kernel.org/r/20260701-monza-leds-v2-0-c1be0b472926@oss.qualcomm.com Changes in v2: - bindings: Reworded commit message to explain the motivation (Krzysztof) - bindings: Kept the "^led@..." pattern and modeled multicolor groups via a dedicated "^multi-led@..." subtree. - dts: Renamed node from "leds-controller@22" to "led-controller@22" and dropped the unused label. (Konrad). - dts: Moved "reg" to directly follow "compatible" (Konrad). - dts: Fixed unit addresses to lowercase hex (sashiko). - Fixed checkpatch issues - Link to v1: https://lore.kernel.org/r/20260629-monza-leds-v1-0-0cf7c0a7dc14@oss.qualcomm.com --- Loic Poulain (4): dt-bindings: leds: nxp,pca963x: fix reg maximum for pca9635 dt-bindings: leds: nxp,pca963x: add multicolor LED support leds: pca963x: add multicolor LED class support arm64: dts: monaco-arduino-monza: microcontroller LEDs .../devicetree/bindings/leds/nxp,pca963x.yaml | 108 +++++++++++++- arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 110 ++++++++++++++ drivers/leds/Kconfig | 1 + drivers/leds/leds-pca963x.c | 162 ++++++++++++++++----- 4 files changed, 341 insertions(+), 40 deletions(-) --- base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482 change-id: 20260629-monza-leds-c292e68c9a49 Best regards, -- Loic Poulain