From nobody Fri Jul 24 21:53:10 2026 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 EC9133B27C7 for ; Fri, 24 Jul 2026 07:48:21 +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=1784879303; cv=none; b=BzT/15ITEYtFOfC3+p6erfa/XcqnTcCfZkqeIk+P/c7AVIoYPO4/phyPFOkCrG5k4kzBeEDeRSPHFfWfcdVvHBIOyfv9yVJGSrmWisB29b6ogfasAZCmLHnbBi0oFbzVpZOQIr771gDN4MeFMWNsvyFB69+vMRWoqThF6SpIpGU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879303; c=relaxed/simple; bh=d09lYffK7NKQtWks133wtN3qnkJ/qWtJQRxHm1karAo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CiLns79mr1WiSA9ufBOUiYazzydCe86RG6sNtfU5smLdeDtF9DsN3B+27jhFIYXxsNW+ts1hoG1Px+d7lc8v3sYAbI/OkaFDYvYkL+VlO2w0yB/oG/GxdYH4gFLguKGinC6YPdqy9DWNRERF7XbR6iI76ViwoD8Qvz+dHF1J1RU= 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=BPDv5Ihq; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RSq+IU1o; 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="BPDv5Ihq"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RSq+IU1o" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66O4lK4X2162929 for ; Fri, 24 Jul 2026 07:48:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= GQ2mUQRBJOhBt3jiMHO33GZLC4ik6IchEt7Uxsn85FA=; b=BPDv5IhqRz24VEPV Z8D6jAwAVmRHskvEeR/zbjVpWAQMrMnl3/Kkv8GctaRTnGvYHQ6dt8BYUULR1MoJ W07bj/3/zZIgIgptMdTzszxj5RpbOpOW1AR1bLrxRkNciJWTH/jPOYprT9Wv3q2g 5xL1dLWxsLG07V1vqzH8Fm4BBlO9XMa59QASARgfSANvSaTa29eTnIlStzcAPROH DD54wOIEKRinSmXwz6KoUYA2RdZpPEmLJLGhH9UqXMuMXqFqUoQMkVJkTdPxlBmr 0+cbuXDyzsLCAtYPEbjy81y+gAKFIy5XwdIpqqwDYSpAbzIzFc7PO4lWSqIZthyd 5dllEg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fkp5vk403-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Jul 2026 07:48:20 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5174a23afcbso1139491cf.3 for ; Fri, 24 Jul 2026 00:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784879300; x=1785484100; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=GQ2mUQRBJOhBt3jiMHO33GZLC4ik6IchEt7Uxsn85FA=; b=RSq+IU1o6q6ydOcrtpn0eY0WB1B/DYKHW8MUWZieOiQQfCudhJYNtHUUJog6Q+NShy eklljUUHibhYVxAD03IV3WZqHE6dfs1O+An7Lb4j/4bsKkS6G96FYFRR+NfkUlW2iRbN VDVkFypLQ8jBWZxO/zKZL13g4G436qeQ47WYZ5cHazZpEF6BZUE3tsx6hl/xme34YYWp sEN2IHUopg3uSL3i4xkJ9xNey1EtGH+ZeoESDMh4fuBpu3NrxJFlW97bBs3H+dGqYcyM XoOr624BvdlLn3AmxHjepqF3lFMxZhewudqzkPCwzTgDIgrV1yqWBZ/Wk0Mj22BOQKRt rwTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784879300; x=1785484100; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=GQ2mUQRBJOhBt3jiMHO33GZLC4ik6IchEt7Uxsn85FA=; b=IQ7aNSIEx8S+HDwzWvOvIMj5i3bSe/DMR08f8EWfdZZ9yjFKguf4keH/jucQQSCbws upFncdRNZ6jnY7JI83y/0oNSzb7kRKI1ccnRlKdmhsNAOYFPVstbnmiXwGDAzjg30Beq ueDI2g0RRAatfk9C3lszeUAMaWY7hSMO6s1tEeEVNwAa9HwlQJSeREoaJHZwqvK04C9e ENHrDgGHRYqhdAyJRMtJYyE8SOEWprXcaSIBmxMvr2+lsCtnwwnsYYeslONT7dwtjgjd Gf/I4/tSRrcH/W7f5ss6GKUJQETOJlhXH9KbrWATnY1pZ7cgDTq7p6+RkHi/J3AHdjdR x17Q== X-Forwarded-Encrypted: i=1; AHgh+RqLuTNEuor+BE2jbcLrwropiPzluhi2PA7dm8CY8E0zg1FvkeomGl/l9AdiHqHNa+zWKNSXRaGq8Zhccx0=@vger.kernel.org X-Gm-Message-State: AOJu0YzzwoIpiMHVMOJhs4g4MUSjRmRzWyIGmnvabV5jiYeNurKDAPc/ o+sHcPTWTpLNIYl1YEMTNTrKvaUTuTYigOhL8WAfPp3i8zB2yW9Pl6uPn+VrjV3SENN9erTpLGm gpi6DQtll+r4MmNmedBZ+Z2dxVdUrUSaTPEsfVOTvwGW3GnbRM7POYxmvdBPPsLB9I4g= X-Gm-Gg: AR+sD10d9zdE/oRTaJlLVkOE+IxX8fG/NNlymNxQMHF1L3TUovx+8nuyaFh/ccO5b0m c/6Lm5VlaebMpqoMRTM32rzYnr7tXeQMFlrxpjgKm+rFC7cXSPxYR2Z0nc3YTrhroakFFSn22sb YjO2YEFjOIs99rN03wfjk9XpZVrBAZzbc7w33kccqU+rha9gmbBVpqkPX3YTl72GOUB7pOkF4lV kVoBdMzGXUd+egHIsvIBmC3l6DVTfkXXVvYvSVn4jnDYok+CIBqa9wB6SASXbD+bf3sb6aWNgme cxrghbofJXHFe/d4htKpNAEhgV8vgNlyawFm9oYShHjNDajiHMWxoG8H4R5/RU5iAcNUTRaesEX aZEURYGUbnSdYuT24flY/pSfIhTmlf+vrAn6vFOcRJvdDdMVXxgE+JM8aVLkdwnE8t7DMkpszTX ymiw5AIb+cQzQD1lBkF2akO5TiQJCVxs2y2UpivL6VO+i+xC/HfA== X-Received: by 2002:ac8:594f:0:b0:51c:7b12:1208 with SMTP id d75a77b69052e-5283dfd4f37mr63032371cf.86.1784879300244; Fri, 24 Jul 2026 00:48:20 -0700 (PDT) X-Received: by 2002:ac8:594f:0:b0:51c:7b12:1208 with SMTP id d75a77b69052e-5283dfd4f37mr63032151cf.86.1784879299708; Fri, 24 Jul 2026 00:48:19 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:48e:a2cc:6c4:c92a]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1c32a798a5sm320764566b.9.2026.07.24.00.48.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 00:48:19 -0700 (PDT) From: Loic Poulain Date: Fri, 24 Jul 2026 09:48:15 +0200 Subject: [PATCH v7 1/4] dt-bindings: leds: nxp,pca963x: fix reg maximum for pca9635 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: <20260724-monza-leds-v7-1-0125a3bfea98@oss.qualcomm.com> References: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> In-Reply-To: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> 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 X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfXwEzatNBnGcWE jrhJXARuWKu+KfRkZGVtZK2JExgid3vJi0a4a+Sgc7FRTGtUwEyQMU+lVZ+u3bmrKZQen73/SRz mr4obh08sbvOwNvSYg/EcUsorJjUp80= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX66OFZhECRsGk 6+tPcUAPLW1N/MNYcgPAmyPL9VjVioyMUFOYB3maeN09kVpiZkobde+DAeAxoCpgtQQBvOJCnSN d/xZdX6kVqZbwHvXONTIHMonE7S5CI/cWb9OT47sJS1oKzB/4G8xjJ93f7/h8e98AhfKlzj5YQB 4k14POlpr13PuGys2EPjNkTwOJzKfrlTcWZOqhMst9J2Rme4U1ESTw2ndMtj2sALQmAFCHWydbI ypn+SCkgkJNkHmCkkI3SDg3DdNYQ4UvGxP2+u3CEHCPOxAB/bpKeiUCt7SJ2JGCu0nMy9o/cK+I zOLLxO6Wvo7EDFSZNnHAv/gaM8Ts6+37WIHnz8qwRqU6yayLkz1G58f+Aderm7xf9UNAGxDsf2B BV8ndvcPWO9Hna/xub4U2Y/ZdAfvPY0oh1V6Y0chbsm5eXJW5RPCG60DdG7+T4blH8Kbl2HxR6b 2mdV6ZZAAyrVpboZVlQ== X-Authority-Analysis: v=2.4 cv=Z9Dc2nRA c=1 sm=1 tr=0 ts=6a6318c4 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=XYAwZIGsAAAA:8 a=EUspDBNiAAAA:8 a=yPTVd8cUMD2GasGf7IAA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 a=E8ToXWR_bxluHZ7gmE-Z:22 X-Proofpoint-GUID: B6tDj9NGLslwhBnO4GPebzcazSXyJi7S X-Proofpoint-ORIG-GUID: B6tDj9NGLslwhBnO4GPebzcazSXyJi7S 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-24_01,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240069 The pca9635 supports 16 LED channels, unlike the pca9634 which only supports 8. The allOf conditional grouped both chips under a single else branch capping reg at a maximum of 7. Give pca9634 its own if/then block and set maximum: 15 unconditionally in the top-level led@ node, making it the default for pca9635 and any future compatible. Also tighten the node name regex from [0-9a-f]+ to [0-9a-f] to match the single-digit hardware limit. Acked-by: Conor Dooley Signed-off-by: Loic Poulain --- Documentation/devicetree/bindings/leds/nxp,pca963x.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml b/Docu= mentation/devicetree/bindings/leds/nxp,pca963x.yaml index 938d0e48fe51bce82779c4457c8e99cb6d80fe70..4fda602912f7a9443b8a77e46bc= 015e244f82e08 100644 --- a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml +++ b/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml @@ -62,14 +62,14 @@ properties: open-drain, newer chips to totem pole). =20 patternProperties: - "^led@[0-9a-f]+$": + "^led@[0-9a-f]$": type: object $ref: common.yaml# unevaluatedProperties: false =20 properties: reg: - minimum: 0 + maximum: 15 =20 required: - reg @@ -88,7 +88,13 @@ allOf: properties: reg: maximum: 3 - else: + - if: + properties: + compatible: + contains: + enum: + - nxp,pca9634 + then: patternProperties: "^led@[0-9a-f]+$": properties: --=20 2.34.1 From nobody Fri Jul 24 21:53:10 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 AF87D3B2FFF for ; Fri, 24 Jul 2026 07:48:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879305; cv=none; b=fDoDxIg/lZWg3IWhPpp7IByJQxYY8AdODtkdcF1O91udxoYtK24Lt2KRkrHsYDisehAwtLRJ0ogy2tBRa/TIsi2btF9elrCy5LbrS5i/3k5TNzycnxuAQds/gYOonekgY4u0s+/P7TfxJPlxG5JQW6IEKjGS0tbjzSKV903CoHI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879305; c=relaxed/simple; bh=yhfsNlH0RS+IypgukP+bK07b4g+Hfp3VDvpALH2BQRg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=irodCn5xfnBOb2KtS+oevT33h382B4vhUZcQt/EzVRFXZzdl+Y6jqBoCxTfejpUsUfTpll4965DOl+96abs0JGqejGvYcdwnbTpEZLYWKZaizFEWr3TCXDubngC6Wf/6xxsMeXEtXOx5GIF4k/Sty8yKLqVviyp2Wh1+B4wlwuY= 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=BXcHTWa+; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ck6QSB1h; arc=none smtp.client-ip=205.220.168.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="BXcHTWa+"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ck6QSB1h" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66O4siLl1897284 for ; Fri, 24 Jul 2026 07:48:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= xw1CkDWjLhQVF/dM2ooBjoypzkFyoYlTxDKQRjStW5Y=; b=BXcHTWa+XdhLzidT UzspvCo4elz9OZrnaRGbWgH2zpQ/GWYE9LccH0sMVP7WAJw3SuRxFYtG88PnzXNN eQtkNHLcJBEK/XbQppjf2Mcs0vY01OzEY8mZJoEeRYHDh2yijtT+tFOmV4tFi0xd 8bMT6w5Tpbej5Nw+Q2zLCbVUpDhvs1+5dO4I6aCxINQdAYTmvuH74DijrYQ78jSm 1xFadpDXjYxwZ05eadgN8GkHVu2JbCRxyQP16KIDVfzvV+A6YHWKAIk7UWTP/B4d Cm5TQFV4ILMXtA5jZQiONPlzlu3PZzHfikCFmTYVBQ6JGqHHEHFBVG0R3zbkMbW9 +dZPGw== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fm1em8k2p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Jul 2026 07:48:22 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c1d7886cdso2722281cf.1 for ; Fri, 24 Jul 2026 00:48:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784879302; x=1785484102; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xw1CkDWjLhQVF/dM2ooBjoypzkFyoYlTxDKQRjStW5Y=; b=Ck6QSB1hz/JIR7GayCYG8YoSgEH7RE8vK7yx6ehyLXCKIT00Dp4PJogyry1Rdtu4+s L7Y/mZ7isqBrvhEkRnOClUb07qFgJRy+sDXCeYzo9yoCVEOlFnCmNCNgjPjfjxn4mIFQ //YLL/c2zzhNKuBPExLnRDgtaLKPrx6CmaQBOAH2Y3eeN9JlKYw1gmCXOeSIXDG1553m OFe5Kij1tBoFWVE6xY7mOqb8Vjayw+0l8ZMLr08RLN3J1O5zHN8NRCLyP9pI+ED3pCcJ uQp8nvTC00BBHKDlUXZByGHDIGuaZY6VT9wXBGJlJcssCbzMIyyw6OjppEonGaL/pHXa RXHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784879302; x=1785484102; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xw1CkDWjLhQVF/dM2ooBjoypzkFyoYlTxDKQRjStW5Y=; b=onVysbmwhd4fhLV75YCLK2bVzMq5qqxcK11hpnr2TcUJvFNNKw3gDd3KVzHBwk8Oqg zohctSqH/BcIy7BwT9T/YQoU/yHzfyxVZSoGGBk8MmSQHk3JwV2C57Zh5hb+U7/VxMWx WkZNGknTTjp/Qb+sXHbrlB89vaT1E9axcp3Zka/azNncqk6+2x93QVJLxMk35j9p1OzX aPeUav1uC3uplJ8EHBn9L3fwKxSiHNoPWsR6Y/+BU2NRFA/nmSgrjxGfkHdVIreokeCf Bc9lR3Jsd+Hvfc7Iz1m1AFJZwCGyWujSz1TL9FwXp79EtVo0FWXs53iCjETegm+6jmJG eHmw== X-Forwarded-Encrypted: i=1; AHgh+Rpdcex4/Vi335SEdb3Z1z5YW8WZlb9TWuG8oSwc0gCvErU2hV1il+VWOtg2pgCyXpvmj2LKEBVV9koSN5I=@vger.kernel.org X-Gm-Message-State: AOJu0YyuSxFgDZUNbRp962Skaoy5B6Q68+XDSjwTtA+i0R31kZRfRhj4 u0pYyDI3XAOSI8AyWm8yE1c5ZkBvXKJxWdpFZ6liabfNJxLum7CpxLABMNTSi2lYVRDh3Cl2+U6 nlc/jnSGqjiOK4+4uFCPW2D1aj7RRERFF2RJTtxqq/aRb+lkxJUIyDkQldkDRTlg73RA= X-Gm-Gg: AR+sD11rE+87DXPkg7NeUcgrUxbF31NVKpU58e4FQZHn3z4XDNMIU6GN/S+bkApxELK qcgN2TfaeCzw7ErcnbhrbEuZNzTAQ2Cxd1DcnYXc5Up/DpBdqIrZrsriKudg3RQtCuTWwK9nxWe bZvSXGmgKq1J+BL7DVXgbC2Ny5SDYTErowGAeqviDztbo/XVAs6/cZ4CsxxugXQYGZoXQQ9tJqh Ua7yG3zN2O5rSl6HLvg15ZxIaHb2yKr+jwWQ00ONwmBbuN40F126EbIt2q3lHhVw7GpOlKxD6Hc XcGuwvzobrxuENKfO5v7A++ahXTxj8uILbSzw0CwgLg+yTzAOwEKuSUQDCu35ymTpJ4AT85QK9f dsQa0OlcVOtCsk9mDDpJGMVVhkOCUNP3uBUnDTeytiaUuB0qxBcu7QoHV8Eog841AGd28jFN/8E BJCyxs66675PX6p081u4dn0EpmJQBZxoeYFUTy4PXVu4RRqhHqXg== X-Received: by 2002:a05:622a:1a8e:b0:51c:1590:8e13 with SMTP id d75a77b69052e-5283ddd1751mr62829411cf.4.1784879301765; Fri, 24 Jul 2026 00:48:21 -0700 (PDT) X-Received: by 2002:a05:622a:1a8e:b0:51c:1590:8e13 with SMTP id d75a77b69052e-5283ddd1751mr62829231cf.4.1784879301298; Fri, 24 Jul 2026 00:48:21 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:48e:a2cc:6c4:c92a]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1c32a798a5sm320764566b.9.2026.07.24.00.48.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 00:48:20 -0700 (PDT) From: Loic Poulain Date: Fri, 24 Jul 2026 09:48:16 +0200 Subject: [PATCH v7 2/4] dt-bindings: leds: nxp,pca963x: add multicolor LED support 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: <20260724-monza-leds-v7-2-0125a3bfea98@oss.qualcomm.com> References: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> In-Reply-To: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> 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 X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX2NyrgmQw8imf wzhRdQxWzM4Fc2eVVJy69CVIcCGBOT8QGVYd3O73DTv5dvKm85sKB9VQ6GWKT/Xu3ZjVLIA5CXS JpzyJ5uBa02AXIXbaMMNWiHX9MSIrRs= X-Authority-Analysis: v=2.4 cv=BIODalQG c=1 sm=1 tr=0 ts=6a6318c6 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=XYAwZIGsAAAA:8 a=EUspDBNiAAAA:8 a=OnDUQqxwl_I-XVlDrPYA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=E8ToXWR_bxluHZ7gmE-Z:22 X-Proofpoint-ORIG-GUID: SwWNvhpfEBn__zI4R6UxRP1E4LZ2xQ72 X-Proofpoint-GUID: SwWNvhpfEBn__zI4R6UxRP1E4LZ2xQ72 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX9udU1nVZPxMb d3LxwVsg6y7ZEGn6yyJz3h40+us4/eHSmHaUo2jjOEpK1UFskoqXQqZoJ8bbBz3CYZKjNRtc4XR DQeMIxV6eVSNKjLYfOCkuV0hlCUd7yCA/BdHQDKCQ+1UaGhBHsyMUvVUyMAs2clLEK4ePASi5J+ g+7KrdER2MOXU7vogkuw2Kmbv1HGLbq8DzVla9CrdMnAN1W52OrG/Co776eWMxm1rNSNCm4qNx3 GS1zXq5d9whYiGzljbI1oBWaVXYKG1114DjSNIDyaYFyfvcDgCNlR7E2MDHqFICLi+h3/JixY19 8dlOh3BZF0qiyp08JTe6rNnz8zvMBaeTIW46gARHib/jR8Ql6BvoFMOgnn1gnzxNntL5Zqm/iVf XFiaSrP5TYVj130CmpsxUbNDO2ZvylYBbFl10LQILep3J+cnLckA2v+RI/SGI3z2ufctsrH5AQK jb9ZnZP0KJ8ICWLOeqw== 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-24_01,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240069 Add support for grouping individual PCA963x channels into a multicolor LED by introducing a multi-led@N node pattern. This follows the convention established by other multicolor LED drivers such as kinetic,ktd202x. This is necessary to support and model hardware setups where multiple PWM channels drive a single physical RGB LED. Acked-by: Conor Dooley Signed-off-by: Loic Poulain --- .../devicetree/bindings/leds/nxp,pca963x.yaml | 96 ++++++++++++++++++= +++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml b/Docu= mentation/devicetree/bindings/leds/nxp,pca963x.yaml index 4fda602912f7a9443b8a77e46bc015e244f82e08..eccf37de51285a0dc6d28ffaba2= d47a9f93d867f 100644 --- a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml +++ b/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml @@ -74,6 +74,40 @@ patternProperties: required: - reg =20 + "^multi-led@[0-9a-f]$": + type: object + $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false + + properties: + reg: + maximum: 15 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^led@[0-9a-f]$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + maximum: 15 + + required: + - reg + - color + + required: + - reg + - "#address-cells" + - "#size-cells" + allOf: - if: properties: @@ -84,10 +118,16 @@ allOf: - nxp,pca9633 then: patternProperties: - "^led@[0-9a-f]+$": + "^.*led@[0-9a-f]$": properties: reg: maximum: 3 + "^multi-led@[0-9a-f]$": + patternProperties: + "^led@[0-9a-f]$": + properties: + reg: + maximum: 3 - if: properties: compatible: @@ -96,10 +136,16 @@ allOf: - nxp,pca9634 then: patternProperties: - "^led@[0-9a-f]+$": + "^.*led@[0-9a-f]$": properties: reg: maximum: 7 + "^multi-led@[0-9a-f]$": + patternProperties: + "^led@[0-9a-f]$": + properties: + reg: + maximum: 7 =20 additionalProperties: false =20 @@ -143,4 +189,50 @@ examples: }; }; =20 + - | + #include + + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + led-controller@62 { + compatible =3D "nxp,pca9633"; + reg =3D <0x62>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + /* Three channels controlling one RGB LED */ + multi-led@0 { + reg =3D <0>; + color =3D ; + function =3D LED_FUNCTION_STATUS; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@0 { + reg =3D <0>; + color =3D ; + }; + + led@1 { + reg =3D <1>; + color =3D ; + }; + + led@2 { + reg =3D <2>; + color =3D ; + }; + }; + + /* Remaining channel used as a plain white LED */ + led@3 { + reg =3D <3>; + color =3D ; + function =3D LED_FUNCTION_STATUS; + }; + }; + }; + ... --=20 2.34.1 From nobody Fri Jul 24 21:53:10 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 86F943B3898 for ; Fri, 24 Jul 2026 07:48:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879308; cv=none; b=T06jHlmJGtayx+UBImc0nEckIHmzd3ZcVqfw94Vbt4bL/PVnmgD5t9tMfwy9O8AkoPV8Hr6He0E1qIdhPHfz8mBSTPQuVjJ3+PD6K3p0cmMRkgCnpeAXEXqypUS9XQSZTGTLYgaJsZRT72TMnUQ53+T1Msr3SFgcLwF7Md+1Pas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879308; c=relaxed/simple; bh=JFuRaEWkd6AEg/D4Kn7dMdgECcZCUibiqxgUujGCgDU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z2MY+n6Khmv2jef0KpcJ9thRziY9K9Bev9l2MJ9OG0YR1Q2WcSc0ufzhcZwU47Dpiba+yhm4g0PeUDBK8j9Wb4YT1bvWRrR9tZbIoy4FiRNNM/7J5tHJFV2DyqZ1ZRhK/3fH0LNFo9xqfmV3HrPgS1ON1NpZY2rfJIC8FRjFSRU= 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=Efpka0wX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iqtlr2mv; arc=none smtp.client-ip=205.220.168.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="Efpka0wX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iqtlr2mv" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66O5xRWE1892434 for ; Fri, 24 Jul 2026 07:48:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UupxP501b4XH76W2a8UPuy7EAmtwJieHdpU9wLp2hlI=; b=Efpka0wX/4rUi6Pl sf9xqIoa7OjX0GvS1D9+vxPMQTBzxoriB96WjQ1wZI4cErPX7GdQ8ZnLAsORSoxX 509dTSCt5erfIZ4OKRfqClfx2rBH/qDlTIzDUxQdgvBvZ33S5bBYk8+gqSaRYoQ0 HgX10ZRCpKjMkgtb91c0QrRX6rcJlsfRCry+SS1VbwC7JYJ3HQmoYgFZ/WRcb6O0 qNl0zzUWFe6WyB8+kLGA8t7QlukJty9d9ucSzLdh03mpE3XaAT3nrSmeJ6RQMa99 fDi9mZg3pb3+1Le5Tleq+93iJ5SEXczzLCl5KEOuORL/JIY7kctbmJV4cbIs383Q nP1tLA== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fm2cx8ddt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Jul 2026 07:48:24 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5174a236220so1972821cf.3 for ; Fri, 24 Jul 2026 00:48:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784879303; x=1785484103; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=UupxP501b4XH76W2a8UPuy7EAmtwJieHdpU9wLp2hlI=; b=iqtlr2mvdBREnmWRa0uAmKADGcL9i1lHM6wdduRxkSWO8Q7F7de6HOiut4qOANfCDB mLpOIXJzwncRUq+bcCRxOp+9KfsTlJt3u/GMTSQ62PGDRxtdWYGp9iTK8+WDxQ/cPkTm zG1g87aYppy80esYtg3jDutvFEt6rIxjYWNOXnDx/kT1fTO7xJY43uoevRRm5kvSH85H +santwUPOIWVV4WT3j1m9XfJvteWs9gfh2SD1YyV6TFR6gkWMxopz9y2NtdFu9FSApKl ++Sb4V+wqLmA6zw4r3ERhSjsiD+IHzMBQiHNQ3K3zaGRvNM942p5unl5F8/9WgduSQQH CrMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784879303; x=1785484103; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=UupxP501b4XH76W2a8UPuy7EAmtwJieHdpU9wLp2hlI=; b=mH0U93HtzdOb8YFRXdCVvv5OHHQHo9dcOxPN3MLi3MSSQJA/vzQ4TK2y60mBkjgc2i 0IBqFsYAih93X1YsHQFzQ2yFrBCifObmnezJiAlw59QB9kqSNfUw/ChTq7jGVSf/XHOS mRAdwX+/+l8fwI3sNKdx7JZKExUGBHBoup1wHpAC6sSzPt3U2AUTpOtEflD2E7NOg5Em y0ESMNmSwYl+RTBb4h6vI5ZX3bqFnB3FPrRdgN6dCBmHW/WnVIAOMOVhR4jvGZCyX4xa qaHaoOUXQ79ob/QtIqSImCr02RUS8pjPMU/NTtVx9O3GRpG7Gfmo+mXbnj2Oyi7ctdrL xj8g== X-Forwarded-Encrypted: i=1; AHgh+Rojqp6aWHS4n/jhELnRU7xljlO4ZrfBO5E6jY2UIx0QPZaRqqGi2twbVRRM6u8xQabnIHTTn0SZrDY3DGY=@vger.kernel.org X-Gm-Message-State: AOJu0YzIRkSwmTN4u51zlMvFGcqYINrlcu02tNVaXfUIctntE8fnpNSv SObFHH7YzWhTTzJqHkoxuOS2lYDy9wUiF+EihTWujp/p+IgQBx+iLbqvSxPKXgrpfbSE4SCib0S k/0JkaFnz2wlpm/odaKDw8x6xhkOVzsrpIuFslQBSvm7pEZCt/zODOgaQGgAuGD1iaFE= X-Gm-Gg: AR+sD1006jAiOoG8gcWmF2SQ/Ya8Vsd5PcgfOHh9gY3bmV+VxZ5nH5sDN6x/6NHhETd IpJBrsO9H1efbJFphKYM4ZLI3SBVjBeTuyHFkacEZ/0+R5rdkkqCxH0sEcgP78mE6CKkKcJnQ4p d0juSuiAYjOuzg93QtmVCK+61kHjDYk7R3elNfD6fSmIg9EkTHj6VaX5KQQOk0JSHbclmuASECY sYcMf4pKL2CpXkmS0a3JWCX08bWRHiJrGkeqezJ60Rj8ojXr/l4Ux7/UUC5ydTOrbqE/RIi+bzX l/hh9Ze7ntoJeb/MhGt9TIgwfZXrR+KJRFiqv/m7CW9lI5lhBm6Dj4HQNTEXBeu3pS0pWlOAaWt bXQC68BwIXILBFHvMlVMbSUdtmZzTYhiLgR40084WL4dwgan4iDOZukb9QHxaqUb3dYd0+gXPhZ Dzujji3ReWAEY+0wyN74m5bLZhelxaxBi7gvrzg5vjKIbVZnGPEA== X-Received: by 2002:ac8:5a02:0:b0:51c:1590:8e28 with SMTP id d75a77b69052e-5283de1c72cmr62766661cf.25.1784879303389; Fri, 24 Jul 2026 00:48:23 -0700 (PDT) X-Received: by 2002:ac8:5a02:0:b0:51c:1590:8e28 with SMTP id d75a77b69052e-5283de1c72cmr62766431cf.25.1784879302828; Fri, 24 Jul 2026 00:48:22 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:48e:a2cc:6c4:c92a]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1c32a798a5sm320764566b.9.2026.07.24.00.48.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 00:48:22 -0700 (PDT) From: Loic Poulain Date: Fri, 24 Jul 2026 09:48:17 +0200 Subject: [PATCH v7 3/4] leds: pca963x: add multicolor LED class support 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: <20260724-monza-leds-v7-3-0125a3bfea98@oss.qualcomm.com> References: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> In-Reply-To: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> 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 X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: AZ33gflsWVzmCbD8XKc0jCgRXwNhmfKS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfXwXvsII0hPhqh idj/yo8mT6feHANzbTh8mhRftJ023iAqWmHJbFEgJ1Ww/XAlcqh6b6xn6Oo/rl/uPlksM5JaAKH obciftW6emAiAy8DbnnhauXb7454n8vMQYwAABneroje4f9/dvgeIwZO4Es8ZOZLwde6TzT1mRD o5yaDNHHGsXFsbHtd7X+Zdwe2lntI5wLu/Qt1CbCA9zqFuu68PdWRLLlvR5NkaDjPKdt1XQXeKV FgFpMwnhigPam7/20VHOiEr7i/TqIGYpPat0JcZIk+swlp8t7UwiPVf3vsvTnIWzx5eAPIX0NVy hJnADbXAp9sGiVa/lRJPBdeoG/AQPvjXCmnIFwJGWk+BhWwuhdVKP+5P5aQvQIaPf80YiONq4gI on2dWNKS8PGZOIuGsKzA1RkHk4J8zX+gLEcyB2P18wY6/5NtwtYpneIjbytPKwPQi2QDD+2mgCx 3nkScwFSxmT/LC1EnAQ== X-Authority-Analysis: v=2.4 cv=X51i7mTe c=1 sm=1 tr=0 ts=6a6318c8 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=aHOEH6Kt_s_Zyy5T-bIA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: AZ33gflsWVzmCbD8XKc0jCgRXwNhmfKS X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX2nmPkcyRDEwi xbnW7GVLRehUptmH4nm47YVmcSZwE8uOsi/u09x9Fbou6qGkgbDJMJy6YjvIu46gAe4KZA/vzc3 Zhm9oLJfhxNof+36rtT7F1cBJ+KIaRg= 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-24_01,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 priorityscore=1501 adultscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240069 Allow grouping of individual PCA963x PWM channels into a single multicolor LED device by adding support for the LED multicolor class. A child node with sub-children is treated as a multicolor group, others are treated as single leds, keeping full backwards compatibility. Signed-off-by: Loic Poulain --- drivers/leds/Kconfig | 1 + drivers/leds/leds-pca963x.c | 189 ++++++++++++++++++++++++++++++++++------= ---- 2 files changed, 148 insertions(+), 42 deletions(-) diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index f4a0a3c8c8705e0f10ba26584277dbb2d5eac5b5..14df88f92b12bbe43908b67f948= 0cf23056e27e2 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -596,6 +596,7 @@ config LEDS_PCA963X tristate "LED support for PCA963x I2C chip" depends on LEDS_CLASS depends on I2C + select LEDS_CLASS_MULTICOLOR help This option enables support for LEDs connected to the PCA963x LED driver chip accessed via the I2C bus. Supported diff --git a/drivers/leds/leds-pca963x.c b/drivers/leds/leds-pca963x.c index e3a81c60ee27c96e5050a829523dfd43e1f0663f..605cf7497e4c3ff97dc606ad210= 5f40df68950b5 100644 --- a/drivers/leds/leds-pca963x.c +++ b/drivers/leds/leds-pca963x.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -101,8 +102,11 @@ struct pca963x; struct pca963x_led { struct pca963x *chip; struct led_classdev led_cdev; + struct led_classdev_mc mc_cdev; + struct mc_subled subleds[4]; int led_num; /* 0 .. 15 potentially */ bool blinking; + bool is_mc; u8 gdc; u8 gfrq; }; @@ -115,7 +119,7 @@ struct pca963x { struct pca963x_led leds[]; }; =20 -static int pca963x_brightness(struct pca963x_led *led, +static int pca963x_brightness(struct pca963x_led *led, unsigned int led_nu= m, enum led_brightness brightness) { struct i2c_client *client =3D led->chip->client; @@ -124,8 +128,8 @@ static int pca963x_brightness(struct pca963x_led *led, int shift; int ret; =20 - ledout_addr =3D chipdef->ledout_base + (led->led_num / 4); - shift =3D 2 * (led->led_num % 4); + ledout_addr =3D chipdef->ledout_base + (led_num / 4); + shift =3D 2 * (led_num % 4); mask =3D 0x3 << shift; ledout =3D i2c_smbus_read_byte_data(client, ledout_addr); =20 @@ -135,7 +139,7 @@ static int pca963x_brightness(struct pca963x_led *led, val =3D (ledout & ~mask) | (PCA963X_LED_GRP_PWM << shift); ret =3D i2c_smbus_write_byte_data(client, PCA963X_PWM_BASE + - led->led_num, + led_num, LED_FULL); } else { val =3D (ledout & ~mask) | (PCA963X_LED_ON << shift); @@ -150,7 +154,7 @@ static int pca963x_brightness(struct pca963x_led *led, default: ret =3D i2c_smbus_write_byte_data(client, PCA963X_PWM_BASE + - led->led_num, + led_num, brightness); if (ret < 0) return ret; @@ -199,20 +203,24 @@ static void pca963x_blink(struct pca963x_led *led) led->blinking =3D true; } =20 -static int pca963x_power_state(struct pca963x_led *led) +static void pca963x_track_power_state(struct pca963x_led *led, unsigned in= t led_num, + enum led_brightness brightness) { - struct i2c_client *client =3D led->chip->client; unsigned long *leds_on =3D &led->chip->leds_on; - unsigned long cached_leds =3D *leds_on; =20 - if (led->led_cdev.brightness) - set_bit(led->led_num, leds_on); + if (brightness) + set_bit(led_num, leds_on); else - clear_bit(led->led_num, leds_on); + clear_bit(led_num, leds_on); +} =20 - if (!(*leds_on) !=3D !cached_leds) +static int pca963x_sync_power_state(struct pca963x_led *led, unsigned long= cached_leds) +{ + struct i2c_client *client =3D led->chip->client; + + if (!led->chip->leds_on !=3D !cached_leds) return i2c_smbus_write_byte_data(client, PCA963X_MODE1, - *leds_on ? 0 : BIT(4)); + led->chip->leds_on ? 0 : BIT(4)); =20 return 0; } @@ -221,22 +229,60 @@ static int pca963x_led_set(struct led_classdev *led_c= dev, enum led_brightness value) { struct pca963x_led *led; + unsigned long cached_leds; int ret; =20 led =3D container_of(led_cdev, struct pca963x_led, led_cdev); =20 mutex_lock(&led->chip->mutex); =20 - ret =3D pca963x_brightness(led, value); - if (ret < 0) + cached_leds =3D led->chip->leds_on; + ret =3D pca963x_brightness(led, led->led_num, value); + if (ret) goto unlock; - ret =3D pca963x_power_state(led); + + pca963x_track_power_state(led, led->led_num, value); + ret =3D pca963x_sync_power_state(led, cached_leds); =20 unlock: mutex_unlock(&led->chip->mutex); return ret; } =20 +static int pca963x_led_mc_set(struct led_classdev *led_cdev, + enum led_brightness value) +{ + struct led_classdev_mc *mc_cdev =3D lcdev_to_mccdev(led_cdev); + struct pca963x_led *led =3D container_of(mc_cdev, struct pca963x_led, mc_= cdev); + unsigned long cached_leds; + int ret =3D 0, sync_ret; + + led_mc_calc_color_components(mc_cdev, value); + + guard(mutex)(&led->chip->mutex); + + cached_leds =3D led->chip->leds_on; + for (unsigned int i =3D 0; i < mc_cdev->num_colors; i++) { + unsigned int channel =3D mc_cdev->subled_info[i].channel; + + ret =3D pca963x_brightness(led, channel, + mc_cdev->subled_info[i].brightness); + if (ret) + break; + + pca963x_track_power_state(led, channel, + mc_cdev->subled_info[i].brightness); + } + + /* + * Some channels may already have been updated before the error, so + * still sync the global on/off state to reflect what actually changed. + */ + sync_ret =3D pca963x_sync_power_state(led, cached_leds); + + return ret ? : sync_ret; +} + static unsigned int pca963x_period_scale(struct pca963x_led *led, unsigned int val) { @@ -300,6 +346,81 @@ static int pca963x_blink_set(struct led_classdev *led_= cdev, return 0; } =20 +static int pca963x_parse_mc_subleds(struct device *dev, struct pca963x_led= *led, + struct fwnode_handle *fwnode, + const struct pca963x_chipdef *chipdef) +{ + unsigned int num_colors =3D 0; + int ret; + + fwnode_for_each_child_node_scoped(fwnode, sub) { + u32 color, subreg; + + if (num_colors >=3D ARRAY_SIZE(led->subleds)) + return dev_err_probe(dev, -EINVAL, "Too many LEDs for node %pfw\n", fwn= ode); + + ret =3D fwnode_property_read_u32(sub, "reg", &subreg); + if (ret) + return dev_err_probe(dev, ret, "Missing 'reg' for sub-LED %pfw\n", sub); + if (subreg >=3D chipdef->n_leds) + return dev_err_probe(dev, -EINVAL, "Invalid 'reg' for sub-LED %pfw\n", = sub); + + ret =3D fwnode_property_read_u32(sub, "color", &color); + if (ret) + return dev_err_probe(dev, ret, "Missing 'color' for sub-LED %pfw\n", su= b); + + led->subleds[num_colors].channel =3D subreg; + led->subleds[num_colors].color_index =3D color; + led->subleds[num_colors].intensity =3D LED_FULL; + num_colors++; + } + + led->mc_cdev.subled_info =3D led->subleds; + led->mc_cdev.num_colors =3D num_colors; + led->mc_cdev.led_cdev.max_brightness =3D LED_FULL; + led->mc_cdev.led_cdev.brightness_set_blocking =3D pca963x_led_mc_set; + + return 0; +} + +static int pca963x_register_led(struct device *dev, struct pca963x_led *le= d, + u32 reg, struct fwnode_handle *fwnode, + const struct pca963x_chipdef *chipdef, + bool hw_blink) +{ + struct i2c_client *client =3D led->chip->client; + struct led_init_data init_data =3D {}; + char label[32]; + int ret; + + led->led_num =3D reg; + + /* A node with sub-children groups several channels into a multicolor LED= . */ + led->is_mc =3D fwnode_get_child_node_count(fwnode) > 0; + + if (led->is_mc) { + ret =3D pca963x_parse_mc_subleds(dev, led, fwnode, chipdef); + if (ret) + return ret; + } else { + led->led_cdev.brightness_set_blocking =3D pca963x_led_set; + if (hw_blink) + led->led_cdev.blink_set =3D pca963x_blink_set; + } + + init_data.fwnode =3D fwnode; + /* Keep the legacy device name to preserve existing sysfs LED names. */ + init_data.devicename =3D "pca963x"; + snprintf(label, sizeof(label), "%d:%.2x:%u", client->adapter->nr, client-= >addr, reg); + init_data.default_label =3D label; + + if (led->is_mc) + return devm_led_classdev_multicolor_register_ext(dev, &led->mc_cdev, + &init_data); + + return devm_led_classdev_register_ext(dev, &led->led_cdev, &init_data); +} + static int pca963x_register_leds(struct i2c_client *client, struct pca963x *chip) { @@ -338,37 +459,21 @@ static int pca963x_register_leds(struct i2c_client *c= lient, return ret; =20 device_for_each_child_node_scoped(dev, child) { - struct led_init_data init_data =3D {}; - char default_label[32]; - ret =3D fwnode_property_read_u32(child, "reg", ®); - if (ret || reg >=3D chipdef->n_leds) { - dev_err(dev, "Invalid 'reg' property for node %pfw\n", - child); - return -EINVAL; - } + if (ret) + return dev_err_probe(dev, ret, + "Missing 'reg' property for node %pfw\n", child); + if (reg >=3D chipdef->n_leds) + return dev_err_probe(dev, -EINVAL, + "Invalid 'reg' property for node %pfw\n", child); =20 - led->led_num =3D reg; led->chip =3D chip; - led->led_cdev.brightness_set_blocking =3D pca963x_led_set; - if (hw_blink) - led->led_cdev.blink_set =3D pca963x_blink_set; led->blinking =3D false; =20 - init_data.fwnode =3D child; - /* for backwards compatibility */ - init_data.devicename =3D "pca963x"; - snprintf(default_label, sizeof(default_label), "%d:%.2x:%u", - client->adapter->nr, client->addr, reg); - init_data.default_label =3D default_label; - - ret =3D devm_led_classdev_register_ext(dev, &led->led_cdev, - &init_data); - if (ret) { - dev_err(dev, "Failed to register LED for node %pfw\n", - child); - return ret; - } + ret =3D pca963x_register_led(dev, led, reg, child, chipdef, hw_blink); + if (ret) + return dev_err_probe(dev, ret, "Failed to register LED for node %pfw\n", + child); =20 ++led; } --=20 2.34.1 From nobody Fri Jul 24 21:53:10 2026 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 3EB723B2FCD for ; Fri, 24 Jul 2026 07:48:27 +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=1784879309; cv=none; b=XfQzf9GvNniJT8rhVT0D4zDElcjV7RWr5JnDoaRv+JHqGWMMPuicTCRD37Wr5f/xOZaGh5EBmqRZteSxxd9tNhJpbvphFGQDxAvGmk2xN1vfj+PzHRGnKEtUgf27UxzyjP4wp3MDlwxHvM7r2DpPdVkxKLuaYE+QTQUJosMHs9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784879309; c=relaxed/simple; bh=0Rq8D/NoyC39EmLSzNVbHI8oYiwR5Wkjwf+f9tdSuzw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KopJsnYcDvBBpvJpA0sh0UKkzPiCCvqUAl2HYUk2PybIcafkABZJ9P3r95v1YaF9WiSuqf6naZspdYzYWj0iCh2W9g89WqziGNGm7/aHRcN74ufsJUGuYnoBSONfGvGXApixIBfGsF34BQySii3/ryuE9pcvxw5X8suoqvl4zKU= 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=MOLvKDSJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IQgEQSGV; 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="MOLvKDSJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IQgEQSGV" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66O4lOGC2162961 for ; Fri, 24 Jul 2026 07:48:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hKaEQZIQPMdPO6UTKBRGpr3T8o+KrcRClYBwgH8RUsc=; b=MOLvKDSJDwCdMF7G c/hsWbeURg66kQg48xz8qmW0sIIYhdzQw8QneA0LcJffA2IQJ9J2TFKJSdbkPwss wghNg7yL2Z6zZ13uYWLBWMpEfyQFqSrGHWL/024wKdCNb5d7KgzljTmgXvP1lHHk +G+a6Ot4yY3yKrK/WpiFGunsNaeoG0VNVUNvQOwvQ8scBKjZ5qcQPfECMitFaAAI P/L7m/IWmMmZhV/EO+uM4LmDLcGSX58EjlTVvkcWudm9M3+/NYXO4CTc2QOXPB98 Xhk6tyK68KhoNtFj3IbcCGz1dx2RPkk4aRiXhEbQtnICGEuH5VqJIhMMXDmsBKsb 9eyecw== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fkp5vk40j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 24 Jul 2026 07:48:25 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c0408254aso25157391cf.0 for ; Fri, 24 Jul 2026 00:48:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784879305; x=1785484105; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hKaEQZIQPMdPO6UTKBRGpr3T8o+KrcRClYBwgH8RUsc=; b=IQgEQSGVr4nx0SV7Gn0fBEA1PLuVEAX+fGISkpZj/5RmTRWpcJsrSKpM/HQalISCRQ aW/RvE4kMoFgemnBHxkL01Ilxg2mKLAgvyqjYq2SU3bKZ6H4GfzB5HSFfg/iCaGfhw9L 8n/xLIZ7ngzN+OYUc5iAbzvYzGtjMFJu5ZRcjA1vXLk1mOi9zDDnOCFkMX4k98BAUGe9 Zm7++foOdABjzfAeCqo7XOV3V86w4PGiKg9Fh97AHr1ToyQK8ILkiDZvLzIFUyc/HS1V tZK/1NkBWtDE+7LG79k1t7Cg8ZC+eZz76wz4hNAUSixqk+IIJOK3knyu0s5cepOV8fNS 7gQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784879305; x=1785484105; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=hKaEQZIQPMdPO6UTKBRGpr3T8o+KrcRClYBwgH8RUsc=; b=Rbc2knKwvED18lM7wgzjGO+7YlbPxNRm6CFKsU+Qps7Hew1FQs4BgZLqG9hirZDq49 /lyISx4KqhaE+nsu+0dpi9oyj4h/q/06D+IwdQHcPbasmT9piG6Wn5LGtcISsDKcZEIQ PnHvVjU9/B9Ig9aQ6k+Pz8nY2LVJMbHIMIKKoiHWvJQEMNvA9Z41QfHmwpbiG4u+oT3N kiablF375xUxxuSiKLHIf2hSMZrW/Pt5f5IcgPRYpVLrLkRDv0jzbY2YWaG2ev5AEmY2 gtGefz9FmMRkK4VzxeMGcT31/XNGTk9SY0O8eVVTIJkh1rkZX0+p+Mi0HuczoFVxSN2M 64oQ== X-Forwarded-Encrypted: i=1; AHgh+RoNQpdowR7ga5wRdsCP7s6/BbvPdQMdV8CBGMxcYbbJ0gQkFnkQZmY9MtIOTLjz4Q753fKPIIZPQaMKGZY=@vger.kernel.org X-Gm-Message-State: AOJu0YytvosTo+w4UMJ2cYMLrdHhZs9ZKMAvmgfWrNU8HyOJrnUJFBiJ txHhjX8jAbEzynbOW6gyWjDwSCzQNDENgFOy+d7wUqKK+v1PXDWqrwjDCO/mUxCv9WU8c0+0qja ZRWvIVlWOUgAhZSx01azIoRKqE6QtZrfvjw7X1DlgX1+oFRRQ7XSESjR4cCxJJFcM5Xo= X-Gm-Gg: AR+sD13NwyFGV8FfMHALkaBCgbxCHw/5Qjhk13rH3WusKPYDq1oYB96dQRPty/xwqUW d+3P5KpAu4fqfARTny+iuwRQwYX9Lt3aTN7m5fG/IHH0acZvFX8BM6VEBHIebZYPnO0NjqmUPb9 8i84EUAKxZOUbW/gqx64mE/7SSi+4m8ZZng1BZDLGzwOSXUIrXwSVWNzfY6UJ/7JJ5GvdHXvU0T zVCpqAjwmwq/xIxKcmu2tNtXb4wBCJFGD7dtY0+kU7W/DKCxAVtan1Pqa6xB02a64TBs09z6zXF Xid5Y2BU9ejOwvIWyAKktF926glB564sIsXawHPJ0303UvPtIOc53YP2ysMoHjcAbjnU725YEM4 mkKw4t9VgznWD0RFLccZhiIzH2nl6qDOQN+zABvOeXjMIB1Z+FdyGdNRjXRjbd9nMbJJIhHtSKo gtnaxG1tNSFkl3V2wuvx68dRkGDli+icPwAkpmaSv0jwhgKsSNrg== X-Received: by 2002:a05:622a:2c2:b0:51c:98f:f288 with SMTP id d75a77b69052e-5283edce89bmr55302941cf.25.1784879305049; Fri, 24 Jul 2026 00:48:25 -0700 (PDT) X-Received: by 2002:a05:622a:2c2:b0:51c:98f:f288 with SMTP id d75a77b69052e-5283edce89bmr55302711cf.25.1784879304551; Fri, 24 Jul 2026 00:48:24 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:48e:a2cc:6c4:c92a]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1c32a798a5sm320764566b.9.2026.07.24.00.48.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 00:48:23 -0700 (PDT) From: Loic Poulain Date: Fri, 24 Jul 2026 09:48:18 +0200 Subject: [PATCH v7 4/4] arm64: dts: monaco-arduino-monza: microcontroller LEDs 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: <20260724-monza-leds-v7-4-0125a3bfea98@oss.qualcomm.com> References: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> In-Reply-To: <20260724-monza-leds-v7-0-0125a3bfea98@oss.qualcomm.com> 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 , Konrad Dybcio , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX+qz46YB2/fQF QZHEpdSKC1MG808QLFxg9PrfT4pf7o0JlBevh3PWdEtSDwSpmaoBxzvnlTIvvILqg5R5K5kMSgz +KgdOWPH2XN3/b2pJsnspCoprJOuc7k= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDA2OSBTYWx0ZWRfX/LPHhxBLfr8A eYeE5xAaaCT8CjBG2lbAuJT4jKyWSG8cXG0G9HXnPyRMGrahufnHj2zz9X0TiVhl68c2mPOYvK/ tHxRJlYQkt2NFMtOHbQiTx+aX45lQj22vRJOPPpEOyn3EnYd5+3vCV13c0k8CzQuDm/yBOS/v8M 3TfpE5Vh3VxuD9/BpPYi2eeT+LPv4Wk/Qu4qDz6LvpE+2trVt0unTk/RonfiIWLucaCZT9gb2uk fVwNmewe649ZDdEXKhoOmXJfZhNNZeRpJTaSS64urBbirCdmwsgS2DnTuJJLhn5kseZfRgo15w+ hElsuE5p//GwmobXdxoM+MKqL3gMMVmi1g0zlyxqnLGYOztDBTDZLoQp/e31Orc0w/AMFa9XLyU 50Qhdki/zJUf3MIFqoS0y1I5dlrTbg2WRNDmPtXQ2h/CUD7ZEGtX3WvfNaY4wPWO2JlyfgYaT4L 1ItRKmG2WKRASuJupWg== X-Authority-Analysis: v=2.4 cv=Z9Dc2nRA c=1 sm=1 tr=0 ts=6a6318c9 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=1BEw5LmG3YzgyHxDt7YA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: RLus9h0FJRe2lCgpDRBqXAAI-Wp-_KHv X-Proofpoint-ORIG-GUID: RLus9h0FJRe2lCgpDRBqXAAI-Wp-_KHv 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-24_01,2026-07-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240069 Onboard MCU/STM32 implements a led controller compatible with PCA9635. There are four RGB LEDs controlled via channels 0-2, 3-5, 6-8 and 9-11. Reviewed-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov Signed-off-by: Loic Poulain --- arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 110 ++++++++++++++++++= ++++ 1 file changed, 110 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64= /boot/dts/qcom/monaco-arduino-monza.dts index 379b796f261f4c8f6b7712c5d340b20be1b9217c..21e32df66667eab2f882731f6ef= 09b7b6e29e61b 100644 --- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts @@ -7,6 +7,7 @@ =20 #include #include +#include #include =20 #include "monaco.dtsi" @@ -156,6 +157,115 @@ vreg_nvme: regulator-3p3-m2 { }; }; =20 +&cci1 { + status =3D "okay"; +}; + +&cci1_i2c1 { + led-controller@22 { + compatible =3D "nxp,pca9635"; + reg =3D <0x22>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + multi-led@0 { + reg =3D <0>; + color =3D ; + function =3D LED_FUNCTION_INDICATOR; + function-enumerator =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@0 { + reg =3D <0>; + color =3D ; + }; + + led@1 { + reg =3D <1>; + color =3D ; + }; + + led@2 { + reg =3D <2>; + color =3D ; + }; + }; + + multi-led@1 { + reg =3D <1>; + color =3D ; + function =3D LED_FUNCTION_INDICATOR; + function-enumerator =3D <2>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@3 { + reg =3D <3>; + color =3D ; + }; + + led@4 { + reg =3D <4>; + color =3D ; + }; + + led@5 { + reg =3D <5>; + color =3D ; + }; + }; + + multi-led@2 { + reg =3D <2>; + color =3D ; + function =3D LED_FUNCTION_INDICATOR; + function-enumerator =3D <3>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@6 { + reg =3D <6>; + color =3D ; + }; + + led@7 { + reg =3D <7>; + color =3D ; + }; + + led@8 { + reg =3D <8>; + color =3D ; + }; + }; + + multi-led@3 { + reg =3D <3>; + color =3D ; + function =3D LED_FUNCTION_INDICATOR; + function-enumerator =3D <4>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@9 { + reg =3D <9>; + color =3D ; + }; + + led@a { + reg =3D <10>; + color =3D ; + }; + + led@b { + reg =3D <11>; + color =3D ; + }; + }; + }; +}; + ðernet0 { phy-mode =3D "2500base-x"; phy-handle =3D <&hsgmii_phy0>; --=20 2.34.1