From nobody Wed Jun 10 12:28:47 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 2437E390CA1 for ; Mon, 11 May 2026 12:44:39 +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=1778503480; cv=none; b=EHLV6l840+5KfS00RAfdQEEjrOdRBtqs0tDV0Yev05o2xC+u3+QkrR9byu7grbXH35VIv+gS0C/Z8yoyumnld/kbHrxAGyH9qtzSA5ZmStG2qtnIqWOzp5sjb+YG5Bnfz3clAm1oJgCWKpOOIP97afXBpOzlT1jHtQwQy6QOTAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503480; c=relaxed/simple; bh=zFarwFyP7Mwjc36+jVJxSXy6/e4tQoyriPLsSHSmWgM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W5bhsTAfPX5Oz0b4PrWDZngrpumCaaDiqu3u01kNNfSgZmC0o58x7YaX4nUDTZl+0ORidbXSMAGMU8VT2V+v+lR/APeKZ+rw9G6vYa0c9vqcbXuJ9uJpnXd9SpnEGlK9WHEfB8VsbhptjO/Tfxcj+/nOwTUCmk9lvDgG6QIAwBE= 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=MkDjHxjy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HqXiQj4N; 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="MkDjHxjy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HqXiQj4N" 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 64BA52E82039449 for ; Mon, 11 May 2026 12:44:38 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= hUZQteOkDmv1t57NkB6ARC1fQRP9JD9uH5Ktg+HthLo=; b=MkDjHxjyTMIt61R2 za9VUFS5uTkWlSCaQZu+C0BoD8BuLB7RXbpVT5qKEVpHIMBIYq7EXdDK8K6B35wk tCDnJ/OObrzgjiqb+wis9lQ3tNFLCXM0anXPyBe2bHTq6QVQGrCEqNPUogZp8euu 5zJ+PVHlWUisX+XHjCTJxuRRg03Pt4AEXvitc++22ejCj84IZQ2yqcjpszpfEE1N C3fQWR8VGOs23NUndE4pFqZ4lO97sq10QxWXfZUYcqfa4M/Ix2R/wtunl9GJKupO sQJkC8xFm9BUILhq6TmQIZXzg1iI8+hXkpa1TJ3ipHtSpj6JXRFaYUBw1yZ4ioGJ p6B9jQ== Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3d22rh1p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:44:38 +0000 (GMT) Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-7bd5c421975so41632857b3.3 for ; Mon, 11 May 2026 05:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503477; x=1779108277; 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=hUZQteOkDmv1t57NkB6ARC1fQRP9JD9uH5Ktg+HthLo=; b=HqXiQj4NG+qTDYdqzV50NKnFI09Zo2G/Mng8ezwcAvH7p5/3IIENQoelR2P+4xypv1 oA9OdMkTIe8oFpbD8Hly3jH88SKQ1rXVoam3PUL5eUOF5XHQkH9q52/wk4SGhByiVs+B E9dXEqyEjn4SbC8Xr7sYZ1P2QFhZUU4kW95zcER49dX9mT+doAOavzJq0hUeNkkhdgwC xm+qxXVtZPsxAjR9P3P4k/Vs1xPUsHSVjMaw9iZPodOHgdkLlr2H/izg30CcFZilvroX 9rydW2BeA8HqJC02b6yeBG+pHrr1M4xq/A2O1coIZJjOXyn4i5HNcVugh0byH2A/G2J9 tAxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503477; x=1779108277; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=hUZQteOkDmv1t57NkB6ARC1fQRP9JD9uH5Ktg+HthLo=; b=dhtkK8V4HCiEDkGnf8m4JINO7kBhHb/PEf4O+EhOWQY2+BrVT2VvA4cEIIE+hsvuhb fAaLtxoxABkYLIRHmX8J/DwSYcpAe3SGj3l8KROey2guGWVG6PIghWc1Ho5wsvEiveiF /JcTZJh1+hkJ39eXvNnM11a93h8CXBK0oWa3ewQmUmW27q89hF6lkt2zRgdqDRA9BLq1 Z/2xaoInC/pkUl2GCuhldHCf9Tr6dx5q4RluU80e27I/W96A596jjjwngOsgoRyM7RO0 hwrFx4PqlhCwXpZfN4IR0qK+QhoYqQJk6u0NsYKfz/0eZ8UTRdQalMtFlHp18pfycFrN p9Uw== X-Forwarded-Encrypted: i=1; AFNElJ9IFTHQ4Pwi0Q/JPGCmvDoZToR+VFLCq8YShxeqLmIqDqKsYApFYjMpvha6pLztIzF22ajRuRwMfc8T5FM=@vger.kernel.org X-Gm-Message-State: AOJu0YzsX8ZfnhX7WfJAKxVQfWNGhdQjVCGbKL6u5PMu9vWudv8NeXQH 7dZ77FjnXk/FKMPYAgIJR6tDLFLS5m2+Bo9uUPtbdSWNXg6CX7SpUVU7RfxdWExFCaXvJI1Pn1p EARttXNuDnKc0vkyZGPbu+goYPLsnRNqeBedJUO1QIEcPBvVFk7lCO2Jc+RbQt3C7+7E= X-Gm-Gg: Acq92OEtJeP3LGdiHMqrRfZ1o66ypOPk5S7fcmJZ7pEqfu/dHl4XH80EEuNm4F0xzp9 UJnDQZsjhQryp2yKZmL/VPnp2qMEdni+JUku6vDzOrtSIbNNbfGZrRa7QM3MRpIXB/wPYdwdv5Y FHQr6FISyuwAYkRoq4wTNLyaXI6WGIfT1SC1FrG/L6LHqQl8UIxAXpoabc71n5eUP0uxNZTCGsm 7cVNPQm6FIHa5E29xinPe9a4kKFYvTvhF3Oo5kol6runOKOz4ZreujICha0/4U9nDN0wE/+BO48 6H3NwFuLB2FR8+gpeAYI0+Hw6Qtnl0aQGjXJJywmxIiSNfiEU0AMvNtMKEHvYTjoMlXQmhi7YRN 2YtWvpf1T5yVqzXzf5c+E0ryYEHkr4zsojVOUjCmbOoxKjNtXqpbuYLpO1+P9vgsCAHIj7SpGWU tbHTYOgrl0R2sDtnYaWrEg01ZupkyKutXI1A== X-Received: by 2002:a05:690c:6989:b0:7bd:a6ea:c508 with SMTP id 00721157ae682-7c104dab240mr82943327b3.24.1778503477425; Mon, 11 May 2026 05:44:37 -0700 (PDT) X-Received: by 2002:a05:690c:6989:b0:7bd:a6ea:c508 with SMTP id 00721157ae682-7c104dab240mr82942977b3.24.1778503476919; Mon, 11 May 2026 05:44:36 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.44.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:44:36 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:19 +0530 Subject: [PATCH v9 1/6] dt-bindings: embedded-controller: Add Qualcomm reference device EC description 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: <20260511-add-driver-for-ec-v9-1-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Maya Matuszczyk , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=2330; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=p1qib2l7A/JEOeiEFUXoqiCJEoH/aeCCTCy9wrPvB6A=; b=FCKxXhfphZfzNrqt3+fgaJMTaJIkPxTyUKk1I2quUplNtgZlNkRiJFkRS+Erh/joPXZuPFGRi nA+DuAdTtQXA7FrOkEGSNkCK2JaHd45xLiw55hQB25jfFuhnaHt3Qq8 X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Authority-Analysis: v=2.4 cv=EaT4hvmC c=1 sm=1 tr=0 ts=6a01cf36 cx=c_pps a=NMvoxGxYzVyQPkMeJjVPKg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=gEfo2CItAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=p9JF3S6fNoJM7NwPcqUA:9 a=QEXdDO2ut3YA:10 a=kLokIza1BN8a-hAJ3hfR:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-GUID: BKLexjQnLie1aZq3vlYlrt_PcymHZV5Y X-Proofpoint-ORIG-GUID: BKLexjQnLie1aZq3vlYlrt_PcymHZV5Y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfX4UG7Pq1nDdHB C0e43gOGNl8+Y42BE8j91tayiuUeWbQqASFfCygTzNFxFTFPFKOefwd0ulYaBHDSoVwbIg+CUUI RKGLiLzCkV+wYX2u3Y1gNfTlx3yXvNNFYNomyoNYztraw9QBUI1Vcc+9onJTCetzdKFjuoqpiBT 3DwcreVcoZ1iSgHTn95ZoejK4vrT7Sc8Hd4saqnnM6N2CBBJcv50Pqtuu/tApAfVkfXjSVlyPo8 ug8ilRy/Fqh+1FrinRxNS7cm6c2E2C4DWhrxwpYtk8/WU+jv1OcpFec3puDNrpo7fTPlSi6CrFi hDN7YT1PeVs5nSmOSjXUcwrgrozv2RDDGqgJ7XdqFIY4lyVFMsW1AEQMQ4ZMNbgYQRX7wnppZKI mkoAo0ciHqKEmpom+KNGbyHM82R2ao1df6vlY5PAfO3ruaMqXLTbkg4W2S1zzGoFbRWCstoFo/5 UWpDX4lW7WatGKzBOaQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0 impostorscore=0 clxscore=1015 bulkscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 From: Maya Matuszczyk Add description for the EC firmware running on Hamoa/Purwa and Glymur reference devices. Signed-off-by: Maya Matuszczyk Co-developed-by: Sibi Sankar Signed-off-by: Sibi Sankar Reviewed-by: Krzysztof Kozlowski Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- .../embedded-controller/qcom,hamoa-crd-ec.yaml | 56 ++++++++++++++++++= ++++ 1 file changed, 56 insertions(+) diff --git a/Documentation/devicetree/bindings/embedded-controller/qcom,ham= oa-crd-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/qcom= ,hamoa-crd-ec.yaml new file mode 100644 index 000000000000..ac5a08f8f76d --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/qcom,hamoa-crd-= ec.yaml @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/qcom,hamoa-crd-ec.y= aml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Hamoa Embedded Controller + +maintainers: + - Sibi Sankar + - Anvesh Jain P + +description: + Qualcomm Snapdragon based Hamoa/Purwa and Glymur reference devices have = an + EC running on different MCU chips. The EC handles things like fan contro= l, + temperature sensors, access to EC internal state changes. + +properties: + compatible: + oneOf: + - items: + - enum: + - qcom,glymur-crd-ec + - qcom,hamoa-iot-evk-ec + - const: qcom,hamoa-crd-ec + - enum: + - qcom,hamoa-crd-ec + + reg: + const: 0x76 + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + embedded-controller@76 { + compatible =3D "qcom,hamoa-crd-ec"; + reg =3D <0x76>; + + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_LEVEL_HIGH>; + }; + }; +... --=20 2.34.1 From nobody Wed Jun 10 12:28:47 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 A92FD3A1A2F for ; Mon, 11 May 2026 12:44:46 +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=1778503488; cv=none; b=EDMndFzeKJJD5qUQVhJ44qxg8H6hBQC9YJSSNKAz8ouMhD+VZz77z8/w6snCDP/fmn2ihbeNd69dwKnxHCXF97DGBTeYCJW0enrvk3Ge5Hxu79eRgPRs51o/VPj7NMaLBy9goZXUgPAdWrVPDLgSyzRZiJhvCO4SOyvacJrcNgo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503488; c=relaxed/simple; bh=tquUi0qkeEM5gYssY1RFmofWvQxEtYcOHt/A6q6CGu4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qxGNs68yyo+SXzKJIjKshxdhx9vd6TJQhP2V5swgr4eQe9T29B3MiX0xUUMCT4r/xEjPXzUrEzpIPaXAYmy7xTFh4wzRgL/XMGpb+iS6jKZ0GzfjbOetPZ2R+euSU/GCwRYc/jC27uNdVyVXHpy0Ks+11e9y6XV+3pQu5DOadDI= 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=gXyD26xs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TbAUVqvh; 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="gXyD26xs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TbAUVqvh" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64BBITlF1344461 for ; Mon, 11 May 2026 12:44:45 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= JbtBInJ7Ws6hrzg+ky4DCVksc9oFMhR8sz0B+n0k6og=; b=gXyD26xsess5A/KC Su08FkJ+jFmmaP4EkNzYH6nXO4B1Gv3RN4wfvwKUhP2tHJwm2PjpcrAF+gKN2hgc 08he0qz+13x9viJ68ML0V4SpduRD+KtCz39i9p6crD66Cp1CHkI3/oidlmubxrgE TBP7jY70uWmjJ/j+737DRkDBfb7BLpQ0Z3puMzEQgy43SDru2Kbcz6SvXifX3ECv 3aYI/9bkdBi52xJK3sUcU/CFXOOAl/DWZfy0WYByzXUTOVqw4DSo28zb4xFPjAiW 52Q+p1DQafVMmVl2sYXTcvbBYw6LaSQF57E0SoHPylvYRYHcACdYVB9/J5ZNAHO3 pLOHxg== Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3e4988u5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:44:45 +0000 (GMT) Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-7c24193e2b8so20214367b3.0 for ; Mon, 11 May 2026 05:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503485; x=1779108285; 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=JbtBInJ7Ws6hrzg+ky4DCVksc9oFMhR8sz0B+n0k6og=; b=TbAUVqvhfOj2fV4mKoKm+7tGxqm5GizBB8h+F48xQvEdfIC3YfptC4QN6nDdCIWSWL GjxcklIhOpHbndete2drxs7EcDj/yUYFFP+wA2Vfx+EUd8v5uTmxTEgi/ULYssQ6fcHF oc5lQzeumDHKZvuYun4dRb4qQlWGOuYnrYV5zHDdgc9IdJp41DuWMSuuB1p787n0WbK0 PGf/gwpqeBMyeoMz3F+T4V5czdNQl0KsMjCqz18CYXAzBRRqtm0Ru6n/E+f60v+xBmnO mn0uQKkQw2CbaChvcKpqe6joLObLWcWSNR1mRoWvKPdHeoKkioH1iTjUBhhJD/fVWzO2 sxQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503485; x=1779108285; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=JbtBInJ7Ws6hrzg+ky4DCVksc9oFMhR8sz0B+n0k6og=; b=QmNLuaDOKMUQ1dVcgrNmWIfxW3nqEVHcvqJ1fxHuY8IOFz49DjIZJLE4lQVi+fjAmt grJK9bi8ohdeK4dP52yZqv3wIR7MLbfSJHVdjevkH0eIisfqR2mAnL0S8leeD7x8kyA4 N8qGYr/ThZ56tVwL1v/0Qh8Ce/QjGKrl/phvodW6eHiibfeJs6hE57P/6BinyAkWggQD T8AyZ3n/4paIDoPPmThAY+oguTLZ+bW5rmxF1UjdN7QmJ/BWNehShAHcZcJTdh1KjPPM ngsKm4xdGGQvPhwFszjDPRTP0ngahUnFwQRlriNz0HeVd0m3CkfSWlESQ0Uwej5ywKy1 LPtw== X-Forwarded-Encrypted: i=1; AFNElJ8nDseyklDTdSAaGFwO4kkmkZvFYuawOhW2anGWnqwVS5ZkI3tiu4lKUY4Yp4SEz8kZpnShMghnU8GghCc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/56U8AFWzHEDNsOmK9VSKhcMWsx96Aq3CB3Hiwo5FI9wY7Ref 9QUJDMMWE9f788jk5YhjYGeJ/uEL43ds6o5u1Ju9Sdo+bFfrjy0j6iSH9CPKXH4wy4xvJjn9q/w MFxwiHT23xV37EUna3nEnG0ID+3ROwiAJw907g13enbGL8amWVUkSG1sF6pdXs/T+xGA= X-Gm-Gg: Acq92OFwAPGdaZjOOsLTbgZxnpiFI9dyLJ6qTom8Nh8KOv0wLODwuKBSElTxsIu+JYN 8GU3I9psrI4gxorkpN37ZBYvMg7T2vjVS8EIvzRaH5H3Jn9CqpjPGO11nsLW2IOBiu0W1ohPknS 40KUGy4uHrgbZxJlJacytEOHFeN30gIk/nern/98nCEt0p6VgljUR1ECwoR+mTPYFajLE6R1rrV VY7X2PdcYvW5Qor8PXancOXc13coXr8WcVS+de0zp1KF/jS1Enkyj5JawydGdlxVbERRBDl4H7K yYPNLHsvDg4L/UCAiy6qSKkvhJXCCYAaO/qfha0TTEJ0JYWtt2cB96zNBeeJpQTWX1USejI1rUJ FwbiAN9AmPfhUOGCd6LzmCNFjXgIZjAUFYeuHYY+SZDGKKo642ogpkP4Pf5662zvrDBLIPc5ZBT /3CCJBQY45w2YG0F1zVkWJebVyLvlHUZM/fw== X-Received: by 2002:a05:690c:e3ca:b0:7b2:136d:240a with SMTP id 00721157ae682-7c10275fbd5mr89650267b3.9.1778503484725; Mon, 11 May 2026 05:44:44 -0700 (PDT) X-Received: by 2002:a05:690c:e3ca:b0:7b2:136d:240a with SMTP id 00721157ae682-7c10275fbd5mr89649857b3.9.1778503484214; Mon, 11 May 2026 05:44:44 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.44.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:44:43 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:20 +0530 Subject: [PATCH v9 2/6] platform: arm64: Add driver for EC found on Qualcomm reference devices 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: <20260511-add-driver-for-ec-v9-2-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Maya Matuszczyk , Dmitry Baryshkov , Konrad Dybcio , Akhil P Oommen X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=17419; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=b6x8gPazBI5TdNXIMW+vB0fdq4vYpyucobQi4E+RGrY=; b=SFmmxIWZ5AvayBAqJQXn/0TSa+Lsx9CYq0iCrIaTncRqF4DnKiRwT6FYadKXtMr8Y/72W+KjJ //0ozVI9wJaBefzQeYUzeVkfHeV181EE1p+LBX1o9jgI/yS9eH5CJw2 X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-GUID: h-RY7znfqOVMdn8B2x2pIfARey-zhACH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfX1/Gcp0T1sGkW IDI4D42idpIpJaW11sioC8DmPs3Z3hKIs6vYR3zHwOl23tGa0ZAMoQ8U9wMjvUh5MzHQo4vYcJv Z9W+JxtlwwwO/mELNmLJZn5GjsR8f1nbtVXujPwcvXUPrw9Y7bNKod8qtcMnhexykfXwTpZlwuC 6rBpGyvJmkYs/2LKUzOjRUI75DHYzxHI6QWkOF3OkaKJDVA+bYfbyf2W6ED0zyJX5iX/5SgTtfc NwSJ7O8FYvTg+xwtcxjZW+o4Nwf67ytYQNayR8XFut3CZqBMRDywqhEcxkifxFMiNrzCMC35CQz 661yqW9fyILef8ph4QqiqYT0uiV9ZBPgG+gvAuPpUJgYSzm2cIwAcEDwc2ba1l9LmHEW7F1TuQu G8lfdnpw0VQ4rOmmm1MWoN2QhMfaO2fMxcUkvsPWQk9B9TDTxILWeEwh2XTFnJBY8TEOwS/Uh7m V2GsH7yRvTb6KrDKtPQ== X-Proofpoint-ORIG-GUID: h-RY7znfqOVMdn8B2x2pIfARey-zhACH X-Authority-Analysis: v=2.4 cv=Yr0/gYYX c=1 sm=1 tr=0 ts=6a01cf3d cx=c_pps a=g1v0Z557R90hA0UpD/5Yag==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=VwQbUJbxAAAA:8 a=ZZkxa-lhXBFmNfqa1H8A:9 a=QEXdDO2ut3YA:10 a=MFSWADHSvvjO3QEy5MdX:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 From: Sibi Sankar Add Embedded controller driver support for Hamoa/Purwa/Glymur qualcomm reference boards. It handles fan control, temperature sensors, access to EC state changes and supports reporting suspend entry/exit to the EC. Co-developed-by: Maya Matuszczyk Signed-off-by: Maya Matuszczyk Signed-off-by: Sibi Sankar Reviewed-by: Dmitry Baryshkov Acked-by: Konrad Dybcio Tested-by: Akhil P Oommen Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- MAINTAINERS | 8 + drivers/platform/arm64/Kconfig | 13 + drivers/platform/arm64/Makefile | 1 + drivers/platform/arm64/qcom-hamoa-ec.c | 451 +++++++++++++++++++++++++++++= ++++ 4 files changed, 473 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index f877e5aaf2c7..6331b8a39d8c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22005,6 +22005,14 @@ F: Documentation/devicetree/bindings/misc/qcom,fas= trpc.yaml F: drivers/misc/fastrpc.c F: include/uapi/misc/fastrpc.h =20 +QUALCOMM HAMOA EMBEDDED CONTROLLER DRIVER +M: Anvesh Jain P +M: Sibi Sankar +L: linux-arm-msm@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/embedded-controller/qcom,hamoa-crd-ec= .yaml +F: drivers/platform/arm64/qcom-hamoa-ec.c + QUALCOMM HEXAGON ARCHITECTURE M: Brian Cain L: linux-hexagon@vger.kernel.org diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig index 10f905d7d6bf..e32e01b2a9bd 100644 --- a/drivers/platform/arm64/Kconfig +++ b/drivers/platform/arm64/Kconfig @@ -90,4 +90,17 @@ config EC_LENOVO_THINKPAD_T14S =20 Say M or Y here to include this support. =20 +config EC_QCOM_HAMOA + tristate "Embedded Controller driver for Qualcomm Hamoa/Glymur reference = devices" + depends on ARCH_QCOM || COMPILE_TEST + depends on I2C + depends on THERMAL || THERMAL=3Dn + help + Say M or Y here to enable the Embedded Controller driver for Qualcomm + Snapdragon-based Hamoa/Glymur reference devices. The driver handles fan + control, temperature sensors, access to EC state changes and supports + reporting suspend entry/exit to the EC. + + This driver currently supports Hamoa/Purwa/Glymur reference devices. + endif # ARM64_PLATFORM_DEVICES diff --git a/drivers/platform/arm64/Makefile b/drivers/platform/arm64/Makef= ile index 60c131cff6a1..7681be4a46e9 100644 --- a/drivers/platform/arm64/Makefile +++ b/drivers/platform/arm64/Makefile @@ -9,3 +9,4 @@ obj-$(CONFIG_EC_ACER_ASPIRE1) +=3D acer-aspire1-ec.o obj-$(CONFIG_EC_HUAWEI_GAOKUN) +=3D huawei-gaokun-ec.o obj-$(CONFIG_EC_LENOVO_YOGA_C630) +=3D lenovo-yoga-c630.o obj-$(CONFIG_EC_LENOVO_THINKPAD_T14S) +=3D lenovo-thinkpad-t14s.o +obj-$(CONFIG_EC_QCOM_HAMOA) +=3D qcom-hamoa-ec.o diff --git a/drivers/platform/arm64/qcom-hamoa-ec.c b/drivers/platform/arm6= 4/qcom-hamoa-ec.c new file mode 100644 index 000000000000..a018f7bf35d2 --- /dev/null +++ b/drivers/platform/arm64/qcom-hamoa-ec.c @@ -0,0 +1,451 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2024 Maya Matuszczyk + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define EC_SCI_EVT_READ_CMD 0x05 +#define EC_FW_VERSION_CMD 0x0e +#define EC_MODERN_STANDBY_CMD 0x23 +#define EC_FAN_DBG_CONTROL_CMD 0x30 +#define EC_SCI_EVT_CONTROL_CMD 0x35 +#define EC_THERMAL_CAP_CMD 0x42 + +#define EC_FW_VERSION_RESP_LEN 4 +#define EC_THERMAL_CAP_RESP_LEN 3 +#define EC_FAN_DEBUG_CMD_LEN 6 +#define EC_FAN_SPEED_DATA_SIZE 4 + +#define EC_MODERN_STANDBY_ENTER 0x01 +#define EC_MODERN_STANDBY_EXIT 0x00 + +#define EC_FAN_DEBUG_MODE_OFF 0 +#define EC_FAN_DEBUG_MODE_ON BIT(0) +#define EC_FAN_ON BIT(1) +#define EC_FAN_DEBUG_TYPE_PWM BIT(2) +#define EC_MAX_FAN_CNT 2 +#define EC_FAN_NAME_SIZE 20 +#define EC_FAN_MAX_PWM 255 + +enum qcom_ec_sci_events { + EC_FAN1_STATUS_CHANGE_EVT =3D 0x30, + EC_FAN2_STATUS_CHANGE_EVT, + EC_FAN1_SPEED_CHANGE_EVT, + EC_FAN2_SPEED_CHANGE_EVT, + EC_NEW_LUT_SET_EVT, + EC_FAN_PROFILE_SWITCH_EVT, + EC_THERMISTOR_1_THRESHOLD_CROSS_EVT, + EC_THERMISTOR_2_THRESHOLD_CROSS_EVT, + EC_THERMISTOR_3_THRESHOLD_CROSS_EVT, + /* Reserved: 0x39 - 0x3c/0x3f */ + EC_RECOVERED_FROM_RESET_EVT =3D 0x3d, +}; + +struct qcom_ec_version { + u8 main_version; + u8 sub_version; + u8 test_version; +}; + +struct qcom_ec_thermal_cap { +#define EC_THERMAL_FAN_CNT(x) (FIELD_GET(GENMASK(1, 0), (x))) +#define EC_THERMAL_FAN_TYPE(x) (FIELD_GET(GENMASK(4, 2), (x))) +#define EC_THERMAL_THERMISTOR_MASK(x) (FIELD_GET(GENMASK(7, 0), (x))) + u8 fan_cnt; + u8 fan_type; + u8 thermistor_mask; +}; + +struct qcom_ec_cooling_dev { + struct thermal_cooling_device *cdev; + struct device *parent_dev; + u8 fan_id; + u8 state; +}; + +struct qcom_ec { + struct qcom_ec_cooling_dev *ec_cdev; + struct qcom_ec_thermal_cap thermal_cap; + struct qcom_ec_version version; + struct i2c_client *client; +}; + +static int qcom_ec_read(struct qcom_ec *ec, u8 cmd, u8 resp_len, u8 *resp) +{ + int ret; + + ret =3D i2c_smbus_read_i2c_block_data(ec->client, cmd, resp_len, resp); + if (ret < 0) + return ret; + else if (ret =3D=3D 0 || ret =3D=3D 0xff) + return -EOPNOTSUPP; + + if (resp[0] >=3D resp_len) + return -EINVAL; + + return 0; +} + +/* + * EC Device Firmware Version: + * + * Read Response: + * ---------------------------------------------------------------------- + * | Offset | Name | Description | + * ---------------------------------------------------------------------- + * | 0x00 | Byte count | Number of bytes in response | + * | | | (excluding byte count) | + * ---------------------------------------------------------------------- + * | 0x01 | Test-version | Test-version of EC firmware | + * ---------------------------------------------------------------------- + * | 0x02 | Sub-version | Sub-version of EC firmware | + * ---------------------------------------------------------------------- + * | 0x03 | Main-version | Main-version of EC firmware | + * ---------------------------------------------------------------------- + * + */ +static int qcom_ec_read_fw_version(struct device *dev) +{ + struct i2c_client *client =3D to_i2c_client(dev); + struct qcom_ec *ec =3D i2c_get_clientdata(client); + struct qcom_ec_version *version =3D &ec->version; + u8 resp[EC_FW_VERSION_RESP_LEN]; + int ret; + + ret =3D qcom_ec_read(ec, EC_FW_VERSION_CMD, EC_FW_VERSION_RESP_LEN, resp); + if (ret < 0) + return ret; + + version->main_version =3D resp[3]; + version->sub_version =3D resp[2]; + version->test_version =3D resp[1]; + + dev_dbg(dev, "EC Version %d.%d.%d\n", + version->main_version, version->sub_version, version->test_version); + + return 0; +} + +/* + * EC Device Thermal Capabilities: + * + * Read Response: + * -----------------------------------------------------------------------= ------- + * | Offset | Name | Description | + * -----------------------------------------------------------------------= ------- + * | 0x00 | Byte count | Number of bytes in response | + * | | | (excluding byte count) | + * -----------------------------------------------------------------------= ------- + * | 0x02 (LSB) | EC Thermal | Bit 0-1: Number of fans | + * | 0x03 | Capabilities | Bit 2-4: Type of fan | + * | | | Bit 5-6: Reserved | + * | | | Bit 7: Data Valid/Invalid | + * | | | (Valid - 1, Invalid - 0) | + * | | | Bit 8-15: Thermistor 0 - 7 presence | + * | | | (1 present, 0 absent) | + * -----------------------------------------------------------------------= ------- + * + */ +static int qcom_ec_thermal_capabilities(struct device *dev) +{ + struct i2c_client *client =3D to_i2c_client(dev); + struct qcom_ec *ec =3D i2c_get_clientdata(client); + struct qcom_ec_thermal_cap *cap =3D &ec->thermal_cap; + u8 resp[EC_THERMAL_CAP_RESP_LEN]; + int ret; + + ret =3D qcom_ec_read(ec, EC_THERMAL_CAP_CMD, EC_THERMAL_CAP_RESP_LEN, res= p); + if (ret < 0) + return ret; + + cap->fan_cnt =3D min(EC_MAX_FAN_CNT, EC_THERMAL_FAN_CNT(resp[1])); + cap->fan_type =3D EC_THERMAL_FAN_TYPE(resp[1]); + cap->thermistor_mask =3D EC_THERMAL_THERMISTOR_MASK(resp[2]); + + dev_dbg(dev, "Fan count: %d Fan Type: %d Thermistor Mask: %x\n", + cap->fan_cnt, cap->fan_type, cap->thermistor_mask); + + return 0; +} + +static irqreturn_t qcom_ec_irq(int irq, void *data) +{ + struct qcom_ec *ec =3D data; + struct device *dev =3D &ec->client->dev; + int val; + + val =3D i2c_smbus_read_byte_data(ec->client, EC_SCI_EVT_READ_CMD); + if (val < 0) { + dev_err_ratelimited(dev, "Failed to read EC SCI Event: %d\n", val); + return IRQ_HANDLED; + } + + switch (val) { + case EC_FAN1_STATUS_CHANGE_EVT: + dev_dbg_ratelimited(dev, "Fan1 status changed\n"); + break; + case EC_FAN2_STATUS_CHANGE_EVT: + dev_dbg_ratelimited(dev, "Fan2 status changed\n"); + break; + case EC_FAN1_SPEED_CHANGE_EVT: + dev_dbg_ratelimited(dev, "Fan1 speed crossed low/high trip point\n"); + break; + case EC_FAN2_SPEED_CHANGE_EVT: + dev_dbg_ratelimited(dev, "Fan2 speed crossed low/high trip point\n"); + break; + case EC_NEW_LUT_SET_EVT: + dev_dbg_ratelimited(dev, "New LUT set\n"); + break; + case EC_FAN_PROFILE_SWITCH_EVT: + dev_dbg_ratelimited(dev, "FAN Profile switched\n"); + break; + case EC_THERMISTOR_1_THRESHOLD_CROSS_EVT: + dev_dbg_ratelimited(dev, "Thermistor 1 threshold crossed\n"); + break; + case EC_THERMISTOR_2_THRESHOLD_CROSS_EVT: + dev_dbg_ratelimited(dev, "Thermistor 2 threshold crossed\n"); + break; + case EC_THERMISTOR_3_THRESHOLD_CROSS_EVT: + dev_dbg_ratelimited(dev, "Thermistor 3 threshold crossed\n"); + break; + case EC_RECOVERED_FROM_RESET_EVT: + dev_dbg_ratelimited(dev, "EC recovered from reset\n"); + break; + default: + dev_notice_ratelimited(dev, "Unknown EC event: %d\n", val); + break; + } + + return IRQ_HANDLED; +} + +static int qcom_ec_sci_evt_control(struct device *dev, bool enable) +{ + struct i2c_client *client =3D to_i2c_client(dev); + + return i2c_smbus_write_byte_data(client, EC_SCI_EVT_CONTROL_CMD, enable ?= 1 : 0); +} + +static int qcom_ec_fan_get_max_state(struct thermal_cooling_device *cdev, = unsigned long *state) +{ + *state =3D EC_FAN_MAX_PWM; + + return 0; +} + +static int qcom_ec_fan_get_cur_state(struct thermal_cooling_device *cdev, = unsigned long *state) +{ + struct qcom_ec_cooling_dev *ec_cdev =3D cdev->devdata; + + *state =3D ec_cdev->state; + + return 0; +} + +/* + * Fan Debug control command: + * + * Command Payload: + * -----------------------------------------------------------------------= --------------- + * | Offset | Name | Description | + * -----------------------------------------------------------------------= --------------- + * | 0x00 | Command | Fan control command | + * -----------------------------------------------------------------------= --------------- + * | 0x01 | Fan ID | 0x1 : Fan 1 | + * | | | 0x2 : Fan 2 | + * -----------------------------------------------------------------------= --------------- + * | 0x02 | Byte count =3D 4| Size of data to set fan speed | + * -----------------------------------------------------------------------= --------------- + * | 0x03 | Mode | Bit 0: Debug Mode On/Off (0 - OFF, 1 - ON ) | + * | | | Bit 1: Fan On/Off (0 - Off, 1 - ON) | + * | | | Bit 2: Debug Type (0 - RPM, 1 - PWM) | + * -----------------------------------------------------------------------= --------------- + * | 0x04 (LSB) | Speed in RPM | RPM value, if mode selected is RPM | + * | 0x05 | | | + * -----------------------------------------------------------------------= --------------- + * | 0x06 | Speed in PWM | PWM value, if mode selected is PWM (0 - 255) | + * _______________________________________________________________________= _______________ + * + */ +static int qcom_ec_fan_debug_mode_off(struct qcom_ec_cooling_dev *ec_cdev) +{ + struct device *dev =3D ec_cdev->parent_dev; + struct i2c_client *client =3D to_i2c_client(dev); + u8 request[6] =3D { ec_cdev->fan_id, EC_FAN_SPEED_DATA_SIZE, + EC_FAN_DEBUG_MODE_OFF, 0, 0, 0 }; + int ret; + + ret =3D i2c_smbus_write_i2c_block_data(client, EC_FAN_DBG_CONTROL_CMD, + sizeof(request), request); + if (ret) { + dev_err(dev, "Failed to turn off fan%d debug mode: %d\n", + ec_cdev->fan_id, ret); + } + + return ret; +} + +static int qcom_ec_fan_set_cur_state(struct thermal_cooling_device *cdev, = unsigned long state) +{ + struct qcom_ec_cooling_dev *ec_cdev =3D cdev->devdata; + struct device *dev =3D ec_cdev->parent_dev; + struct i2c_client *client =3D to_i2c_client(dev); + u8 request[6] =3D { ec_cdev->fan_id, EC_FAN_SPEED_DATA_SIZE, + EC_FAN_DEBUG_MODE_ON | EC_FAN_ON | EC_FAN_DEBUG_TYPE_PWM, + 0, 0, state }; + int ret; + + ret =3D i2c_smbus_write_i2c_block_data(client, EC_FAN_DBG_CONTROL_CMD, + sizeof(request), request); + if (ret) { + dev_err(dev, "Failed to set fan pwm: %d\n", ret); + return ret; + } + + ec_cdev->state =3D state; + + return 0; +} + +static const struct thermal_cooling_device_ops qcom_ec_thermal_ops =3D { + .get_max_state =3D qcom_ec_fan_get_max_state, + .get_cur_state =3D qcom_ec_fan_get_cur_state, + .set_cur_state =3D qcom_ec_fan_set_cur_state, +}; + +static int qcom_ec_resume(struct device *dev) +{ + struct i2c_client *client =3D to_i2c_client(dev); + + return i2c_smbus_write_byte_data(client, EC_MODERN_STANDBY_CMD, + EC_MODERN_STANDBY_EXIT); +} + +static int qcom_ec_suspend(struct device *dev) +{ + struct i2c_client *client =3D to_i2c_client(dev); + + return i2c_smbus_write_byte_data(client, EC_MODERN_STANDBY_CMD, + EC_MODERN_STANDBY_ENTER); +} + +static int qcom_ec_probe(struct i2c_client *client) +{ + struct device *dev =3D &client->dev; + struct qcom_ec *ec; + unsigned int i; + int ret; + + ec =3D devm_kzalloc(dev, sizeof(*ec), GFP_KERNEL); + if (!ec) + return -ENOMEM; + + ec->client =3D client; + + ret =3D devm_request_threaded_irq(dev, client->irq, NULL, qcom_ec_irq, + IRQF_ONESHOT, "qcom_ec", ec); + if (ret < 0) + return ret; + + i2c_set_clientdata(client, ec); + + ret =3D qcom_ec_read_fw_version(dev); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to read EC firmware version\n"); + + ret =3D qcom_ec_sci_evt_control(dev, true); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to enable SCI events\n"); + + ret =3D qcom_ec_thermal_capabilities(dev); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to read thermal capabilities\n"); + + if (ec->thermal_cap.fan_cnt =3D=3D 0) { + dev_warn(dev, FW_BUG "Failed to get fan count, firmware update required\= n"); + return 0; + } + + ec->ec_cdev =3D devm_kcalloc(dev, ec->thermal_cap.fan_cnt, sizeof(*ec->ec= _cdev), GFP_KERNEL); + if (!ec->ec_cdev) + return -ENOMEM; + + for (i =3D 0; i < ec->thermal_cap.fan_cnt; i++) { + struct qcom_ec_cooling_dev *ec_cdev =3D &ec->ec_cdev[i]; + char name[EC_FAN_NAME_SIZE]; + + scnprintf(name, sizeof(name), "qcom_ec_fan_%u", i); + ec_cdev->fan_id =3D i + 1; + ec_cdev->parent_dev =3D dev; + + ec_cdev->cdev =3D devm_thermal_of_cooling_device_register(dev, NULL, nam= e, ec_cdev, + &qcom_ec_thermal_ops); + if (IS_ERR(ec_cdev->cdev)) { + return dev_err_probe(dev, PTR_ERR(ec_cdev->cdev), + "Failed to register fan%d cooling device\n", i); + } + } + + return 0; +} + +static void qcom_ec_remove(struct i2c_client *client) +{ + struct qcom_ec *ec =3D i2c_get_clientdata(client); + struct device *dev =3D &client->dev; + int ret; + + ret =3D qcom_ec_sci_evt_control(dev, false); + if (ret < 0) + dev_err(dev, "Failed to disable SCI events: %d\n", ret); + + for (int i =3D 0; i < ec->thermal_cap.fan_cnt; i++) { + struct qcom_ec_cooling_dev *ec_cdev =3D &ec->ec_cdev[i]; + + qcom_ec_fan_debug_mode_off(ec_cdev); + } +} + +static const struct of_device_id qcom_ec_of_match[] =3D { + { .compatible =3D "qcom,hamoa-crd-ec" }, + {} +}; +MODULE_DEVICE_TABLE(of, qcom_ec_of_match); + +static const struct i2c_device_id qcom_ec_i2c_id_table[] =3D { + { "qcom-hamoa-ec", }, + {} +}; +MODULE_DEVICE_TABLE(i2c, qcom_ec_i2c_id_table); + +static DEFINE_SIMPLE_DEV_PM_OPS(qcom_ec_pm_ops, + qcom_ec_suspend, + qcom_ec_resume); + +static struct i2c_driver qcom_ec_i2c_driver =3D { + .driver =3D { + .name =3D "qcom-hamoa-ec", + .of_match_table =3D qcom_ec_of_match, + .pm =3D &qcom_ec_pm_ops, + }, + .probe =3D qcom_ec_probe, + .remove =3D qcom_ec_remove, + .id_table =3D qcom_ec_i2c_id_table, +}; +module_i2c_driver(qcom_ec_i2c_driver); + +MODULE_DESCRIPTION("QCOM Hamoa Embedded Controller"); +MODULE_LICENSE("GPL"); --=20 2.34.1 From nobody Wed Jun 10 12:28:47 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 537BB3A3E63 for ; Mon, 11 May 2026 12:44:53 +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=1778503494; cv=none; b=XSpHdKZrKBjVm5/ERPYcyRrbZ6ZN5KvSvib4yycgYewA1LtujW6NBcY1rChNSJe/81XJq6dOSs5cLKCVYaqN0XN+T1vjFVkM+PnWGSmZT4Quzy38ujtqA7up9ew+F5ucI+2afje9QHQm7qkdPVQyrcJ64IlmR98acGwCVbodx6c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503494; c=relaxed/simple; bh=n3Dj9ex9DeD+L+lQKKQOUzTFyrR50tsgxLyyinSeV2g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j5WdKFkStkZe6kEG0Ql0rmulTb7xeIfdkt4LCZ8pLHaE15qMVBaeuYCJ1EB48e9uW5csdPa67JW33VUASTF0YT0vK0dxW3qR/PyALBDrkMP9HDXkuhu5WoKAJSqcvwmT8fpuuWSKvweYMkder4XjJX+Z9TfsxsB4qtC/gVskneU= 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=ovu99Var; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hO2p6hrB; 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="ovu99Var"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hO2p6hrB" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64B7A4PP1258491 for ; Mon, 11 May 2026 12:44:52 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= SwpSnd+xI/zib862gFlteSCwOFEFE9mObuftCHljYWg=; b=ovu99Var9NBTyTxH obvOKSasUNEjIzLpVq9sQKNXX+vjb8Rw3h5/6mg+JAn9jWEcEuFGE9sYRzM14TmT 9vFJOm3bRzcS9ksXNI8A2JZQsz0cogO3G2zCSxJ5Pd3Q4qjh22AELMj3ESSiZKVR zMktBxYUiyqW4jJB59FomSsK9eiFUcVcdRVvg5QgZ+pK6ms8yUFoNck51Splk0A9 FETR4gDzX27U4L6xboE2gozm9W5cU+cFtzel9+kfhIBztdZTsk/+viCEEex6QxhV wiyixMyxUMjZ5umUSpnlF+ma8fYc8Hc4iF92j7eqNFBd/1T6aWLPaxArelJ1gJlA jnbRdg== Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3ag215rc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:44:52 +0000 (GMT) Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-7bf0b47d2f8so28053477b3.2 for ; Mon, 11 May 2026 05:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503492; x=1779108292; 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=SwpSnd+xI/zib862gFlteSCwOFEFE9mObuftCHljYWg=; b=hO2p6hrBearv17CoeplkEsfYrq2k8ie4xs0RGgbQeGuTIAjEqiT4qNREWG1Ma+5Ha7 yKw6D7OkfREPWhfUr9GmxctZlMVqCK0eJU6chg7MHqQearKsa5lEKE0Ss4R9GfuPsAvm cB32mhfXyzIwOgkm6Jy53P+S3SNEvagaMTLMbInFPUZqboMYmrKEQQjOfb1v+S2luD/q pyfQ4NJoXWhV/M6uVGom0L5tbkCYhO0mfy8nyd39z3fUvXBcsP3Lf5guR7e18/dfcd8w R43wir86YSq3/iMU+oIXNGbomUFDhGpZ1tQX+sxcyrX0Vl3TOXwYCbe1EuYrxaDyz7mg C9dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503492; x=1779108292; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SwpSnd+xI/zib862gFlteSCwOFEFE9mObuftCHljYWg=; b=b7GAbeGJ11OXIPmaLqTa9UN6MNwKIs79IpCdOwYRmgV6jdcAC/ZFw3o0AaMwVJyU+Z DpxB7zLMzv9gkyH6aqlim4i2N/uyXHhFbnqTcOO62ZkRBnHV72aYAto6/NB0xkk46fJ5 6F61v5CFatxxHjKkxJaXSPDwOMlxqSFEq9Pvm2EYsGh7n+ezpWf+Qk0g7ZNpdKotcbjL YbLzT6viQaAwdNz0VOPfXTTBQ09XalDxplZHLZyH51eV8fn3+4px9HjQzqc/YADip75O ZFegflXWcyobG93qTk6D5Mlbj+0PXmwZU7HuW5NbHU10I1f0TCARkWp9xiBx42XOHRyi KuIg== X-Forwarded-Encrypted: i=1; AFNElJ/RxN1LAkjdYUc/JxCLUhEEdotZ920QJfkCzJRM6+moxcMcQ6C0ZfnRpmPxwuarzjzg1T2hitpMrrhllI8=@vger.kernel.org X-Gm-Message-State: AOJu0Yyn71PGtVu9bnnW/GWcOeMfQsdLqzMv8TiDzdcfjRRP9FEs8l+N 18EmIuChtHuJvFu4NW+bFI95zmgXxnKOtU4vsneTvhkJfVNuTJcYz71SByX27CAbuy05G1QXrbo YT9+1//y//kqGOJVr2dm626t5uP6S9vapODf6CW79GoJUBIiGZP1zaiSC8vw4TLSznNI= X-Gm-Gg: Acq92OFZU4NMkZQf7O7V9yWDbGmlG8ufeJVkT/+AIHJHsQSM/3cUsQuvxNT/mcuQ1my lu1ugcK0jmomvJTT0BOVgpfSjvgnD6K/kGXvGDFxjP1gCRE7MKMghGdG5nHqvVvzxxRcB5RkxTA FgB2+L1cr59CO48nYlBDPVoXyVlbudxFy+ddfYfpkmWgSXhIhWo/xEeG/XuVUspPVTt/6esW8Y4 nbDF0FN806hKpDnAmdG4oGbHnsaCaRYfB+kzuwEhdNg6bYWX8KoRkx1slLz1FIpiFNEHtWRNaxW K4SEYvBSlpUfhByzfX2gP3brBBOBqkpYc2sjEo/3xfOAcQtLZOaBP9uOGMtQ9KUTUwkNfpyrhX8 ZPiO2z2HI2hLLtOFgqrcfx3JzeK3mj/JiVV2qpqqxSX5I9QiLZxSBxISK3TfJfgyrYmUNkHyOK7 HsRFpQ4AoDM1vQypInDwiBgLBS6CXRb2RW9Q== X-Received: by 2002:a05:690c:6f06:b0:79a:7157:879 with SMTP id 00721157ae682-7bdf5f37cf8mr236305357b3.50.1778503491713; Mon, 11 May 2026 05:44:51 -0700 (PDT) X-Received: by 2002:a05:690c:6f06:b0:79a:7157:879 with SMTP id 00721157ae682-7bdf5f37cf8mr236304927b3.50.1778503491111; Mon, 11 May 2026 05:44:51 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.44.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:44:50 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:21 +0530 Subject: [PATCH v9 3/6] arm64: dts: qcom: glymur-crd: Add Embedded controller node 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: <20260511-add-driver-for-ec-v9-3-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Dmitry Baryshkov , Konrad Dybcio , Abel Vesa X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=1650; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=3BLnT5OTOT0qEyowVKSfm/R3DNxg4MouTyG+K4wg5xE=; b=3CLxLKMZWjYGcc8sVDt2ljebZvhb+xMrUwE1NMhn0WujeBJk5jz/RhBAnqhUVZ4F4HDJSNICu vi3oWU0IO0aDmLIQiQI4vmd6z9Z+AMTHQ9zd2TtSc3L37y15TmRFfiA X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-ORIG-GUID: DZkfjBSsPSdi7-R8tL306pLg2ujt8QcI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfXziEEsYWrvp/d DlwW/aVb5bzRZoqt4qdirKKmDdxpZsPkGiX2T+ToWtwuOTqjdU2flkCm5Rj1Yvf/sE6le7Oxnq+ Isl8fGqTTTyaPEG/eLptM/4jfgnmM5mVu9et5B3NmAf1esLAEUREElF+ry2Q8EV75pMelLj3Myl 7BigHKlxpnmCQuNIfby7+jooLFxc/5ArsVjcgf+eoniNwRfU/Z95lDU33xQn4pf4x/+pSCIweBg sI/AuyZ1wMPKhcGtghdfsBTTvn5qdYhp5OGKrAJ0Q0CIiVI1Ur+ePCI+JzHAMxHe8xkLlXUzXIa pBQL7hcEQ1ihW7l3ZhQJqa0GY7GH7vaZrXn8JgwipP7afBuI/aJkWSFgCyCVSUCBBLGCj8t0fhW VTTRLQiiY29EB53qIbsYG0aaj7+nZJ5Elbbsrub51qUWhlmv5ZYfnL1/EYYn0Gq5CSXSDbzAmWh 8V45V64ZJ7tgTGMcJZQ== X-Proofpoint-GUID: DZkfjBSsPSdi7-R8tL306pLg2ujt8QcI X-Authority-Analysis: v=2.4 cv=NODlPU6g c=1 sm=1 tr=0 ts=6a01cf44 cx=c_pps a=0mLRTIufkjop4KoA/9S1MA==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=h-fhkJo0eXD2C244oGgA:9 a=QEXdDO2ut3YA:10 a=WgItmB6HBUc_1uVUp3mg:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 From: Sibi Sankar Add embedded controller node for Glymur CRDs which adds fan control, temperature sensors, access to EC state changes through SCI events and suspend entry/exit notifications to the EC. Signed-off-by: Sibi Sankar Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Reviewed-by: Abel Vesa Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi b/arch/arm64/boot/dts= /qcom/glymur-crd.dtsi index 2852d257ac8c..8f684f3402ba 100644 --- a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi +++ b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi @@ -433,6 +433,22 @@ vreg_l4h_e0_1p2: ldo4 { }; }; =20 +&i2c9 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + embedded-controller@76 { + compatible =3D "qcom,glymur-crd-ec", "qcom,hamoa-crd-ec"; + reg =3D <0x76>; + + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-0 =3D <&ec_int_n_default>; + pinctrl-names =3D "default"; + }; +}; + &pcie3b { vddpe-3v3-supply =3D <&vreg_nvmesec>; =20 @@ -565,6 +581,12 @@ &tlmm { <10 2>, /* OOB UART */ <44 4>; /* Security SPI (TPM) */ =20 + ec_int_n_default: ec-int-n-state { + pins =3D "gpio66"; + function =3D "gpio"; + bias-disable; + }; + pcie4_default: pcie4-default-state { clkreq-n-pins { pins =3D "gpio147"; --=20 2.34.1 From nobody Wed Jun 10 12:28:47 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 3E3A93A382F for ; Mon, 11 May 2026 12:45:00 +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=1778503501; cv=none; b=G8vRyNJwqKiqP4ZXN/v8UMQOoekQduR4aC8mn7Mxoi7ZX1/rfBD/YHfG8Wz1dNvofMhiQEVKQCorfl40swEU2GAI7VqC7njwpauww6P2slwu64ijI/gMBV9mACI2DWf8V3cC1tx7l9LhzADf3EUUXfSp/05lGtnBrpqFdiTD6Ac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503501; c=relaxed/simple; bh=nfUlgRiZuBNEE478C2TaHpdYARSv0jZSyoCpVTzZyeY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WQwCIisFG9BmnKYuj2DEP3KszsO67d/KIaAq/YIdT1mGzR4A//MfqChTO13EFFN94RDKJrzL9ZKNNQEpAEjFrEnxQIQpaVysj653CC3ZuaSmOryxfG8KuNoiWmLZlha2YDxRN/alVQCmJTjaqtBbqOLbBCnSkr0mnVTbSKUhYr4= 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=FMOvHK4/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ui6jyQT/; 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="FMOvHK4/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ui6jyQT/" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64BCaJSK774891 for ; Mon, 11 May 2026 12:44:59 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= U8XPHuNlG7Wle+hcGKTRA3//qZHMPcvdNl/NeojZNNs=; b=FMOvHK4/0ofVaVTE J5bZOq7q3sE7VFS56VHHk8TPB3J1eqCL1+MMojdm63XbNb6wPhiDFCZDSpkyhg6t c6Y5a8Kzv1nO4NgSEldeZbiQWfIc/Uwq10a4AoFatfuHg9vCicQ9WI0IGFeAkiiY LZv6l+vFzAfCd6uJi/jao0lda7AS9dbX8RgfFFmDrgQzda0pNq/EhNkcivfj+Fg8 zNsnTuoigbTrXJk5QI3KlNPr+SIl4gAMww+rE8DSUDif9CplsJ7kBoQGEwjDSQgV /WG4PRWGC7611I8qF4EDoxsup6NTUagzdtRhlJKkBFH5cDt0rZE2yQW+s3tQR53i n/7WkA== Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3a32h89k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:44:59 +0000 (GMT) Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-7bf14e33f72so61922927b3.3 for ; Mon, 11 May 2026 05:44:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503499; x=1779108299; 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=U8XPHuNlG7Wle+hcGKTRA3//qZHMPcvdNl/NeojZNNs=; b=Ui6jyQT/X/lTQBiYLkU6f66WniplHYLCFV3bBmn7bPAw0rTS9LRHHvoy+5lHfhTvme kObWD1vNrTmEZOlacG+V+9Bu/ZpCiuNS4FdALzfucUv12RK2BfdjG7aI+DwZ2aZa+a8I 5zaqNy8YVg0fexmosBURwgvHgMnUhF4jjd9ir5gMmyuacFojbt6omToKGv/sr8/j7FSf e8TsOHDGZz8MAacnnjwA6XRVzU43iYYbRjU6IZyP35aYOFM3vR4c4FkPo0//RpPHc0wP lCeeeU03V8UytT6SvgPahHvmy85AopxiR6Us6hvk5hpG4l4fvm8/SMyE3ADwX4UMccE1 WUMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503499; x=1779108299; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=U8XPHuNlG7Wle+hcGKTRA3//qZHMPcvdNl/NeojZNNs=; b=MPAaqPJpw1yaX20ns6bhvZOqf8eusZSWFp8HrwvX9Lz75PH9SNWDF5rwekwCVrn6GH 7d3cSqSpQtPy4INRxsirI6ue2P9Ck/B/wv3DzD5bneYA46QhddlQDZjfezO59C2fCOg1 2/nYxCzuWb1mpRUZgceFWzd5n2OgwZK/tHj6ZHExTUfkH53hxtFzX8uUPCa7RU0IutEq n7LAoFgnT3wsdCZ67mxAIkAvII1wUSovl4XG3glP+m3hVM/cmJiyptWzifDdtTlZ++1L ZRrkDW0v2BRGjKj2lbb+zabxQqlOZpZm+LfrIxiIwxXNdy0yNHd0Djb1pCG7OvRZcQda Cz0A== X-Forwarded-Encrypted: i=1; AFNElJ9KTA+B017Q+qmJdPeEFdhEWzgHj8/aunAqaW0sqVqZUo86niP+t4v+NGcO/1lF0w2erZjvNcfjx/BsXPA=@vger.kernel.org X-Gm-Message-State: AOJu0YxYxYLi94GAa3QKdz9OHHIDsNEjrUcasl5myOi2UdQUC8pmqiJ0 OMaOI8OHzBFArCzYProfJLn12i6AMAod5ALRXwEuKzLxm5T2vqogl46Dyamn6OM+S46RFuPaZHC jBCYCMgQALrEKRfd5lMQzaOqdbzgIT5EtAizIlHrE/iIWs3QjAbsetcg+ZTdOtoBFXNY= X-Gm-Gg: Acq92OFpxIQycNKPbECV6BUEf1ZE/Q2R3HMCNIrr2dH6BRa3eqpkJNQHiu7usN50MOH 09WLtrj1enc7L4PiEzCeao7TEeQwQ0je2nUq25W8+dSHcsHQrg4Yb9/KYifeYzRAbBOfcufI3o1 Wm+e7syyusAs4zXwzWRjJM39cwVTkmyAkSMWpdDW7go2iWGYHx6D3ccV9LZ9lR7JbWPKM6feGuW IU3FeS4ISyEbAYNHG3JTbIe02bUjV44wmZsHi+Q7qdjm+8zi0TjVmTuAz0tgzyK4KBb3bThARbk iOiUf8vzoW0qyF2buHRIuclANGCQ72AB+285nLdCon9vOzOHpkFoleKicKJSW0i7KszY48eUioA NZ+wKb4lnKtXmgh6GsFuyRZlseZ1b1v34dBeCO9W6qkVVGlojzLr+jdavMJ9rOr5dh73PhZeFbu krlsGKSkpxwI99+Lw2oGUjRfnPn0BODsmT/w== X-Received: by 2002:a05:690c:e72c:b0:7af:6075:4e0e with SMTP id 00721157ae682-7bfb9aa6ffemr113491007b3.35.1778503498487; Mon, 11 May 2026 05:44:58 -0700 (PDT) X-Received: by 2002:a05:690c:e72c:b0:7af:6075:4e0e with SMTP id 00721157ae682-7bfb9aa6ffemr113490587b3.35.1778503498035; Mon, 11 May 2026 05:44:58 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:44:57 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:22 +0530 Subject: [PATCH v9 4/6] arm64: dts: qcom: x1-crd: Add Embedded controller node 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: <20260511-add-driver-for-ec-v9-4-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Dmitry Baryshkov , Konrad Dybcio , Abel Vesa X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=1504; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=eCeG46QNcGH6Tou/jfnrUot8SRLcYov2KTKbb+oU9wQ=; b=0HSed/WiHQ7zpOBEPBiNGpSOHNmKQpL8HxpMlCo5AcFF5FH8pI56nLwQiaNKM2qcHQojCDmWQ nbFejxSKJJ4DMq0hmsEQE4CU27HMKF3rw/cfUVEvN2qZFBJXr1QDO70 X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-ORIG-GUID: OFcGSDwGe2aBl5mjn3l4y0Ewmo39XS8B X-Proofpoint-GUID: OFcGSDwGe2aBl5mjn3l4y0Ewmo39XS8B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfX2kbrsSkGCSHS Bmvu4PZYGjALfWU59M6zkg35P8fBAPGtQ4NPePmym+VNJo13eS0UfE9DsDrtfJyxQi2muAaDMy0 zol5Sw1Vdvm5k0WWRAXnaupL8KcheCCvPvOl916ZvR5CVA5mMzsdzZFUI8baJ+x0wq49Us02Qyd IYBdXh/o+SrQ5nLhYbG+vAuuWJ66Q6YkRJiPpNOFZJW9F+bTpj1VNBKTj632K+kt+Wx2ADMn2Wx s/dU5in0aMHccB26MxW43Z7PL+02ckTMoZUoOrH0HEbM74fq8Qdv6vfEIKbNUPsfrfNBfnmFBUZ lRVBbNWoumebTeMs6txBV08B6+WkiArHhrXnmwNfCE637smFvNy/UTnM6K9ZjzBwX18vznc3hLV nr9r2xaVOII/aBJehMkTiBpGw8b8sh6WFlZTHR5q8+2qOWzWkIcXz1xZWigr4eu1DFIQIqVV3vE VyJ2yuuXp7ta7gu6PYw== X-Authority-Analysis: v=2.4 cv=SLVykuvH c=1 sm=1 tr=0 ts=6a01cf4b cx=c_pps a=NMvoxGxYzVyQPkMeJjVPKg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=gaXMZf0GDK_To7W6ZIUA:9 a=QEXdDO2ut3YA:10 a=kLokIza1BN8a-hAJ3hfR:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 From: Sibi Sankar Add embedded controller node for Hamoa/Purwa CRDs which adds fan control, temperature sensors, access to EC internal state changes and suspend entry/exit notifications to the EC. Signed-off-by: Sibi Sankar Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Reviewed-by: Abel Vesa Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- arch/arm64/boot/dts/qcom/x1-crd.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/x1-crd.dtsi b/arch/arm64/boot/dts/qco= m/x1-crd.dtsi index a9c5c523575e..9602d65c8b3d 100644 --- a/arch/arm64/boot/dts/qcom/x1-crd.dtsi +++ b/arch/arm64/boot/dts/qcom/x1-crd.dtsi @@ -1074,6 +1074,16 @@ eusb6_repeater: redriver@4f { =20 #phy-cells =3D <0>; }; + + embedded-controller@76 { + compatible =3D "qcom,hamoa-crd-ec"; + reg =3D <0x76>; + + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-0 =3D <&ec_int_n_default>; + pinctrl-names =3D "default"; + }; }; =20 &i2c7 { @@ -1523,6 +1533,12 @@ &tlmm { <44 4>, /* SPI (TPM) */ <238 1>; /* UFS Reset */ =20 + ec_int_n_default: ec-int-n-state { + pins =3D "gpio66"; + function =3D "gpio"; + bias-disable; + }; + edp_reg_en: edp-reg-en-state { pins =3D "gpio70"; function =3D "gpio"; --=20 2.34.1 From nobody Wed Jun 10 12:28:47 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 124D83A3E70 for ; Mon, 11 May 2026 12:45:06 +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=1778503509; cv=none; b=Kot2HtWcuIBVz8P2iIo3i3hZTr31umKradnBEPYUgqfU0dSKAYZGkyEsOgOXLLhz5fgALBYcmKwF30xQ9nGUfS9oHLyA5Lhh8LQ8StwowNWK/NEA0iFKKiQHbvFLbk7QL54L+1NRyqxdW2kMYtRqkZuCpzElIdUZzZqseJxgZtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503509; c=relaxed/simple; bh=+E4tZfMlel36uwMhdXbJ+b8CyJSQUpcuObNpX2cZjj0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l2XgJTr8p1XzAMfnErJcoSKZiTUF2gQSgZyjWsXcxnOn3DtF7Jw1UHVfJrpRtEzip1eIoXx6QJ1eszpE8CNI1iBO0aInProZFnu6Sbd4Pdma9dpkCfmx3oUR+E4XAJmdhJSZDZ1EUbQk0YxSsZbFj3OVgExVHWiqWE/M1BSaJwo= 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=nDjNFKz4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YmTlvH2w; 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="nDjNFKz4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YmTlvH2w" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64BBIYNi1344945 for ; Mon, 11 May 2026 12:45:06 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= XReiQn22kMCzGHeyxP3PcAro8SFN43+wajCGNcXyMl8=; b=nDjNFKz4YrY7G8/d t6ePcwklcFqSiNS6kr14CWfLVkcWk1QQj1PN43Qnc+bV5CIwtVPBDzt3e0vKIDs9 /79dsIETCHCNYHZREPwkxNPGwJb+vhMpzgr1/KuBLUG10VEk73pmroNg3o4jnZ4i TpBe5OaNvAM1XnQlqmIkmNl+umd51z/jdhU0KYQVEQgtoRj2H4LI+rM/qf5uc6/3 3AFfsiZ62LgqLVU/q0lFYYXxPZQ6WlU8uiwLJVIOhWNwQy/SNZ6PkUG3JQgawIQw z/vip9IVPPhSGMX2OZ00ewXYpD2GtEI8pTAB+9ZC2dwTpjJIg2YZtjYGhnboTKeM cGZXdg== Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3e4988v7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:45:05 +0000 (GMT) Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-7bd5c267082so14507507b3.0 for ; Mon, 11 May 2026 05:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503505; x=1779108305; 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=XReiQn22kMCzGHeyxP3PcAro8SFN43+wajCGNcXyMl8=; b=YmTlvH2wH7VREZS5xFr/F4oBULbnNZQB4WW+jnj5hG0Xhk1SD8wuQ+9nDrVxrdTyvJ E0yGb5mh4VQOcWK8mhQIvr5jr+FOfjml1LQarW70yWGuzhTzJM1QfcAvJOVfL67O1LB+ bOEcMUPups4ZfnHjL3iYRmskc/j8BgBBXS3Dnzyhl7ejeNR8VTNv18a57zK7avabp6JG PaadSS0+X3SNSp6X2EgUCKtJJdwAghI1a9TkH3ZM/cfnACZcVGE/tz71eT/av629Tal3 fRlm7RmC5D54OBZX002aQJ9OFaM+zxkAb2XwhS7hOc3sL7dEQiYj7FB6Tugo69bZNsQf b9iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503505; x=1779108305; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=XReiQn22kMCzGHeyxP3PcAro8SFN43+wajCGNcXyMl8=; b=LWwmZkNS1lekgwGGX1GXjP5k/rBfYjFUbqf8nPa3gy4B43MSu8PBbTYb9VevKWdN3z +2M+WEHol/zse4zFxnxSCTU4u0KShX8u8Pzf1vG0W4+JyVowGG0yBNORTdHRaRTFVBxs GLwxw3S43reZRHPG0APGjI1+ue6Qv/8Mo7j7VrK0IaE77M33Uf3R53rVJSpHMVhUz5qr DM8uz1ETXuS99aGicdGHNLdQ9MXwGYPk19J/a7g8P+UrS0hUe93o+EEL8Ur+aTtSgW83 Tn2NH93uiMu8oBFc/L0AH37xKBypnmqE6Du7mBhIOenvlwPmsk89vs0SKg6kA6icj+K8 mJhg== X-Forwarded-Encrypted: i=1; AFNElJ+xal9alvRIj0RNWnBFcjgSYWLhIraAUtbFIbPSXmekh0eA6vasDO9BTXupzEZZcDYKQQntHAIqet8/PUc=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6mEXMKB7J6o9MoZ0A2rabPJtwTWyz4AMknOwQIZ/k5cRCXeKT A6SCPZwzGiI40+EfoVqiya34TLTkmZUc5vG/9OokFitSuILXVzS1Sl04rn1Iw6cRK554YYDxqhw HigZfgUfvuObPPLPxM3vJ9UFBtjNXp3sGuIT8OmInQiemNeOrcJB1Vj6kco8A/+KjJ3U= X-Gm-Gg: Acq92OGqzZw4bCFO6aQzJ+rqwiMLWOnREiYdv9yVyjvDWGatX5C71OMe7LVPs6cK9AP guUJ369ghGh/B1l+q0JXeuwiWeig0/Edt4NRzW2OZcOl0oahRNxaiH2qfCQN4hvFOTfVRotNaXb w39aAoOnPQstTqTx6iXLZdz2czg7Nf1gLucbilh9xGGyfGutY5WiEdDKPSiWOihs2VNfx1Yb1e+ 0E7qe10DKoHbTwBU16po8ASg1Qr5ErLFdSQhpGh+sgxfjQ0T8ggInaU5e/rJI8O5caeMgLhQ72o qox/L+GSailhZ4QOHPyx5kcLhmNMlTpJkmacFMOxvhUdQtZWzXs7SAl2lzON4BN1s88FvSzrGaY 2jvrG+b+ummVpAC0TC2SMenROhJ32oBK0SGjYIHiUcp44u2KiyJwDp6rTc68hLZXCCCTtI0M0Ta 6+W5I6L1jmOLmk53wly+qui9mI2XhQgXKLihuk2Qb5THZa X-Received: by 2002:a05:690c:8d08:b0:7ba:fb15:3293 with SMTP id 00721157ae682-7bdf5dc7e18mr223304637b3.18.1778503505444; Mon, 11 May 2026 05:45:05 -0700 (PDT) X-Received: by 2002:a05:690c:8d08:b0:7ba:fb15:3293 with SMTP id 00721157ae682-7bdf5dc7e18mr223304327b3.18.1778503504929; Mon, 11 May 2026 05:45:04 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.44.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:45:04 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:23 +0530 Subject: [PATCH v9 5/6] arm64: dts: qcom: hamoa-iot-evk: Add Embedded controller node 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: <20260511-add-driver-for-ec-v9-5-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Dmitry Baryshkov , Konrad Dybcio , Gaurav Kohli X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=1627; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=v3xhy4TAVQzMuukJtx0ZPXFz4/C8vTU0vk3Dukc5Tss=; b=GmUcUV5QNEdwyQE3ykhFFlHYBB28J6Z+H/Hs+RW1suQ2uI3/v1jxMef+f7BvzLpuKo8M6wlhD RWcu87i0AO2DW2jN3d9AGlf7LKOgBebW3fJtMAk6bVtXUo1mSg4T03v X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-GUID: ij2tuPzVhturAP4H2nRuzHW3J315f490 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfX41f+VP4nRyQu rqvUkC4yWh61bGIAO7e74iMrk9D7wGOe8IE87bGZVrBvlEScRqvTxEbAC29Gss2GtBqF+2+f6BJ f1Vcej891GrUTcIhOYCZZ+O6GJFpY5CoqYCfLk/C4zZVqy6vjgSrwQGbPtj0Je+pk4svTGLPDZC cCrVY2OjBvzWB+2b8TEhNQVo5FM5xkSmD16AGynV6WGyB8Ua4kG75zy9Acn+CuPnlr0IZuJnGnY U5zNJ6mWG1XLu8/s8weDb6awVeHki82PVMHKD+EG5Wnfw0m7v9DFx79eUhwDZWyVkAF7IiMlhb6 e/C+HLYSnp6MTJDTS3Yrn4B46ftRvtx1gPLHn8WRpxNk7zsY7e8Va9quk1SUYX7HffGfceuB9hQ 3pPxAOsCdSh2umydLTwvZC2afA7KuwYRtAZc8sAFFEOm97J9tiHz85lbF8nzwVVBGksKs7yde0N Iw4iyL8x3L0dvoRCmXQ== X-Proofpoint-ORIG-GUID: ij2tuPzVhturAP4H2nRuzHW3J315f490 X-Authority-Analysis: v=2.4 cv=Yr0/gYYX c=1 sm=1 tr=0 ts=6a01cf51 cx=c_pps a=g1v0Z557R90hA0UpD/5Yag==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=um1wo07bdbQtbc5qrgwA:9 a=QEXdDO2ut3YA:10 a=MFSWADHSvvjO3QEy5MdX:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 priorityscore=1501 phishscore=0 spamscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 From: Sibi Sankar Add embedded controller node for Hamoa IOT EVK boards which adds fan control, temperature sensors, access to EC internal state changes and suspend entry/exit notifications to the EC. Signed-off-by: Sibi Sankar Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Reviewed-by: Gaurav Kohli Tested-by: Gaurav Kohli Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/d= ts/qcom/hamoa-iot-evk.dts index 460f27dcd6f6..a0d2ccf931ec 100644 --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts @@ -831,6 +831,16 @@ eusb6_repeater: redriver@4f { pinctrl-0 =3D <&eusb6_reset_n>; pinctrl-names =3D "default"; }; + + embedded-controller@76 { + compatible =3D "qcom,hamoa-iot-evk-ec", "qcom,hamoa-crd-ec"; + reg =3D <0x76>; + + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-0 =3D <&ec_int_n_default>; + pinctrl-names =3D "default"; + }; }; =20 &i2c7 { @@ -1320,6 +1330,12 @@ right_tweeter: speaker@0,1 { }; =20 &tlmm { + ec_int_n_default: ec-int-n-state { + pins =3D "gpio66"; + function =3D "gpio"; + bias-disable; + }; + edp_reg_en: edp-reg-en-state { pins =3D "gpio70"; function =3D "gpio"; --=20 2.34.1 From nobody Wed Jun 10 12:28:47 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 72BD03DB64D for ; Mon, 11 May 2026 12:45:13 +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=1778503514; cv=none; b=cF12QG8iNuJp6XyGZLouq44kSxTukvvzWaFWMGYNeNj8kJQGb64Ah2fabgHBk6lnK22bYa2TJ0Cgq2Edfq2I9eHxketFyNQgE+h/lwdbWK9r0tkmejdVPZLX3dPwib1ur6ekUhkqgRxF3FB1E3l3ty9YwOKHk1icQ28G9m++yPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778503514; c=relaxed/simple; bh=BOYXG53bdi2XjvZ92ZYJP4VZld7lbUMGFXpmLhK3Xv8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TohXVcO9RGy64wlUQ+9CpcfoxSfmWA0mKGQGgvDAx/UOFniK1Jrs4bpl2WAd7yEIfL89LyklI26XD8a3M/gHnmoHndxCojbqhjTUvwLtCLiv7HJnONUvInHiR1HAqe2iDiYJCtVq0UZtaquEjGnaZBj78bQ3tH64NowBUQByxro= 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=ipz16ZZS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WIhMTD9b; 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="ipz16ZZS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WIhMTD9b" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64B7A4n21258479 for ; Mon, 11 May 2026 12:45:12 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= as+Eb/DRPDzFIgx5gcstJyS2F7gPE3qAatW5+WlePd8=; b=ipz16ZZSDzK8L/7N Kjsy596wMnDZQor+IIYC7ATDhrl+n/y4fHk2P1JncWcxW5jn8l6EQmgMK1m6zHVp 7fa/70sq0Y5YKvJvOz5I9AfMDqwBuAd9EmA7n1b7RYqNKHHEAv2wLct+o4qk32Qd s/wLXo6x1JoMIQcnIehLY85MM3s8hX12OacTmXILUgGtM7NP8CzYHzVmXGzDugdu 1Rv6VxcKVma7osebl1zQ4/ljGrO6fjPhzyovpOr8QpmXwn3k4zSkl4sUrpenkiiB zIW/uhZGET3a2EHhLPEUp3iKHHKlkowMg6NesH38zWdlsrqFkHB4pEqFd4JQcirc La35mg== Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e3ag215se-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 12:45:12 +0000 (GMT) Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-7bd5c9e2e4aso19093367b3.2 for ; Mon, 11 May 2026 05:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778503512; x=1779108312; 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=as+Eb/DRPDzFIgx5gcstJyS2F7gPE3qAatW5+WlePd8=; b=WIhMTD9b6HDR7h7P55h5P8ooo3C6s5yU3JmxG5Yz5BOb7phoEPptCqFHKKx+PSSIRJ osBzI33vOhIj6tfI3otmfkRB+A+RMh34hRo13EOcEDRrXPcycEFbvVqk0yUONqDm7n4T 0kyKRRNMfpQLB5JFX1wA4eKDtXa/PGbx6SEFOvJltbIdvsb6aX5ZNwFVf8wB5afKs0B/ sYjC5ZgQyr6Y1h/uvNnsSlI+Q94o0dHqvSmzb3+uaXja6nuiYZQFDtRvBpbhDx/rvnGl hfMKEI9J/QdxxLjc+zUuWglE+h66pehHTeuwU4A1GqMIy8855iA2C6oBNq3YIgsM2kVU wycQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778503512; x=1779108312; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=as+Eb/DRPDzFIgx5gcstJyS2F7gPE3qAatW5+WlePd8=; b=D527/f7AnIBA6CxJQxgi2RBSXM4tNsGcu4pu4UliVxj0ehAkZzyfp8wrfSdubrVjMN dFknEz2AS8s6ooF/v07d2neEWTI/9RBYmIGVK/0KvnReU/Q8tGwebmRCphQ8ivsebaaO o/ffJFI/DcN96M6r5zI+KD0QVjfyM0nxhmAd8n2gDFMpCM/Y6MpJH9G3luTA3s71fo0P hqY1YuLa6U7usHBYdhpcXtLipnHy+iPQNr8yr7hpELNjrWqCrNoWF1fbfd8UnTjuF70w fKxPlYbFnyq4BIFGbt7vnFuTflwqToTxkXNNtUw4jfQeP16Z6ZSPOQu7wgMYUyuiZE8G IFLQ== X-Forwarded-Encrypted: i=1; AFNElJ8cKSmySASkgemNcmfXlxxarrx0bRgH0Sb9RzeCZzTrOxEDXqSJm6lCzZNma8J4VUmljKevZfHQUIsufbA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6PyAsRvp3PmuLAI8O5Glw8pOetn47VfliKrhxL5+AKW+tTjZR IhA4OrVUx0hH1KY5cBTavKCD+euG0xfGFSsAMLomlgxJibjYIQIvs/13Ny8yKe1MJFr/vFALeOK hfPB58Ey5WEmxnf3jUA62ITs/E3wUrETSryQqruQkMaehipXHLq0cAKiWcuMLsC7RqOA= X-Gm-Gg: Acq92OGp72ESPNx4wzSLZItQeuMn5GvoffcpZzsLUXXh7QjcKTGLSxL46URHaUrvaTJ sFlVoQO81P9vXYTwZ2/oIdeHJNyUqPVTlzYBUOxZCMPMI8xFr65S7NmvZQ1lFyjsL4LKRiW9+cl nLMWL9jOWahepioYAa9Dz0N60X8XGeSfPue5FQGHnRVgnQr2hAJH1n8hwq4AWtCNziPv8oiD/9/ CI9SWVbXsnFcNwCflxBgAMOKzVG7+lutvcr1XQtrJFQ5//B4VJw//VAi6xJZyuuLmqPHkeRyP4T GIsGrkM3hwzGBAl0DlyQFQgKgO2yaPiyfaqNFg4nSNJtJ5S1DxKdsCURyEoKZTQpx1bCpVNB47r w2Zqn70gjXJlS5WKvPez9BhjCQmTOZP2dLO2rA/+BlS9gBSyzpI9MKHKYBf1ZEogQ1gxtfTIANG T+Z20esXwzeDl4Nj9oPWDXmIHtpcZJV0KZoA== X-Received: by 2002:a05:690c:a012:b0:7b8:7855:4d37 with SMTP id 00721157ae682-7bdf5dc6f20mr203542737b3.13.1778503511823; Mon, 11 May 2026 05:45:11 -0700 (PDT) X-Received: by 2002:a05:690c:a012:b0:7b8:7855:4d37 with SMTP id 00721157ae682-7bdf5dc6f20mr203542387b3.13.1778503511287; Mon, 11 May 2026 05:45:11 -0700 (PDT) Received: from hu-ajainp-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7bd6683794dsm149641717b3.27.2026.05.11.05.45.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 May 2026 05:45:10 -0700 (PDT) From: Anvesh Jain P Date: Mon, 11 May 2026 18:13:24 +0530 Subject: [PATCH v9 6/6] arm64: defconfig: Enable Qualcomm reference device EC driver 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: <20260511-add-driver-for-ec-v9-6-e5437c39b7f8@oss.qualcomm.com> References: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> In-Reply-To: <20260511-add-driver-for-ec-v9-0-e5437c39b7f8@oss.qualcomm.com> To: Sibi Sankar , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue , Bjorn Andersson , Konrad Dybcio , Randy Dunlap Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Anvesh Jain P , Pankaj Patil X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778503462; l=788; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=BOYXG53bdi2XjvZ92ZYJP4VZld7lbUMGFXpmLhK3Xv8=; b=+MyicJXnA4tzbG5S/Yus7WbBggmWS/SZ8DpIDufSxWI1PvyDWXpW6drYh4Mlw9JRkVAfDTGMT ix92tXPJrDXBJacUaH5em/tn005lalBL9XJ9q9WV0FeH+9VOuoQckOn X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-ORIG-GUID: sDi6ex1ytyOIEHLgOW4huI8jHtN9z3-H X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE0MSBTYWx0ZWRfX4HgBv+SAK+ON KBlc81zQZq76/uLvFUBAth/HHfzF/H3rDCZcZgRob9BXRoYNOAY3OeFyBijNYIFxtt1DxioSFuX mwvOaihV9oGaRTIrOhdEstsNKKii/zrXC/OvgWGnkchou8gpXNGjTau9UiYIWDkWnZod/FGeY3v u2OVtexX6QVEKl8uywwO4izLbh943E6gGErgkR5c/svDcISc28lHDlH6KYVsV8Xxs8PajPVBrZ3 g8rOR3yPX+ozrMZh74eaLXn4H1istzd1jj5sxFUDdwwQrywKX4vUeIBMIY0hcoP2vTbqfZLYQnQ xXFmZyjqpC0xgnqUpCuiOTAyHkHg+9mtnljhyeawSKeRThb+Ug1VgFiAtkuctFnMmtwrPB7B4Zo CWSC038iYdneVERQdT1h93ftAJnM5e9oS9YLuoLMDdqnTxIXtzLmU5jlYOPG/KmbI8NTmiPEEgj 2oXPw1f5XVK9mIj+dQw== X-Proofpoint-GUID: sDi6ex1ytyOIEHLgOW4huI8jHtN9z3-H X-Authority-Analysis: v=2.4 cv=NODlPU6g c=1 sm=1 tr=0 ts=6a01cf58 cx=c_pps a=NMvoxGxYzVyQPkMeJjVPKg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=p1egL3lCMx1E4hDV5aEA:9 a=QEXdDO2ut3YA:10 a=kLokIza1BN8a-hAJ3hfR:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_03,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 adultscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605110141 Enable EC_QCOM_HAMOA as a module to support the embedded controller found on Qualcomm CRD reference devices such as Hamoa and Glymur. Reviewed-by: Pankaj Patil Signed-off-by: Anvesh Jain P Reviewed-by: Dmitry Baryshkov --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index e5f1901ee408..52ab5ffe29ce 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1415,6 +1415,7 @@ CONFIG_EC_ACER_ASPIRE1=3Dm CONFIG_EC_HUAWEI_GAOKUN=3Dm CONFIG_EC_LENOVO_YOGA_C630=3Dm CONFIG_EC_LENOVO_THINKPAD_T14S=3Dm +CONFIG_EC_QCOM_HAMOA=3Dm CONFIG_COMMON_CLK_APPLE_NCO=3Dm CONFIG_COMMON_CLK_RK808=3Dy CONFIG_COMMON_CLK_SCMI=3Dy --=20 2.34.1