From nobody Fri Apr 3 01:24:31 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 D3B333CF056 for ; Wed, 25 Mar 2026 11:41:14 +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=1774438876; cv=none; b=ZYlCih/rdAukQ2JT16Nu0qf3qNc15RTdpz1Gh6snnQsmPbYaCeI/0+OEJ/yVLI/XgVzlM2hsemeD7pTI1S0fYAGqeh7HgcOuwBxbjUY9MfqyaY9OfggmOBD85f1welyQs5ou+FNNefoRoF5Kt1/loqaROeqVMoySdYheUh9Khms= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774438876; c=relaxed/simple; bh=zFarwFyP7Mwjc36+jVJxSXy6/e4tQoyriPLsSHSmWgM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pvzgxKnIqyArc+DxoindXpz224Enr5Ac8+6PHeih+Oyj3GFoWT7u788c5uyuwHBY+vcUnhxTFZyWDP5yHq/sDrxvSqsGfvNPgEDEZoViRUcHtiYisZclk9B8pxmND5bYbksdLEpnt+qmfcpbBAlKC7TYZokfNAZxaF1vfTNE4qs= 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=SxFExful; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GgrcIs4G; 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="SxFExful"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GgrcIs4G" 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 62PBH7jj1024460 for ; Wed, 25 Mar 2026 11:41:14 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=SxFExfulq98ZuKSX tZ2c7Qmr6fFDjQneqq4dAmfIQzMC2rRpJwHB181i5pk62Cu9BzHmIbqxxZQWkjAs 4ZU+u1vWDJYoSHWFDO7TKs6vOFqom4QwTcYZP/ThQrT7V5L35GDAr1d6c3VDI8wx LlXyg+OWa33BzFlD6wHaBB16AAmiPCoSYFrV5Uy8V4g8GUkR6/mxzp7DIM/xzDiV yfCx3/1zPmXqJRiQWLUmCa6XJYguOjuAn/Pe3XqhGrfZmc4wWGDS1j+QnpT68OAT cmaYr0wpwyQX3zm9Dq5lxQWFQJ7ZsHIFF/lxvN+mCOI8L2LTfapusqBDcMO1j0Di XcAjpA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d3vhvv862-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 25 Mar 2026 11:41:14 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b05d170cadso74220495ad.0 for ; Wed, 25 Mar 2026 04:41:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774438874; x=1775043674; 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=GgrcIs4Gq7GMFc/dA81ZKqkySiapNtinJ340AjCToOLmcVg+bRqYicvDc4qLweEaZe Urmv5Xb4Grao6IG/f+DVGIdy7lXmvaoFoKydqOcT7dugZFznT7JLUMPJ3hsEPDMss5kX mrccFSAjQJ72vOOFDsG1MX3OrR4vu6X18B5IpQP3VqMiqHv13HT1RvJ+fVWDK5ArUzV2 B7qT1CQJJmHnIfK1rpjLBrLJtNdqZYdYibChoGB33Nsx51XhowD4kAnf6wItnIV1GPGA Tba+ptlGqweOmpsOPxfC2y8724NxuKiSRN5PMTGrRNgUfAicgzAZLHziX/QuYZ6hf2hh 8Gjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774438874; x=1775043674; 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=cVhAacnurqpJcgaSvhpFXgs0DuARkAKMaY2BOzyVaZ0gIRPqDKA3J5/GFo7dANv+8V NM8hdJIMhK4lXA/jtlDDEELgO40eSqyf2Ryv7iRqwZFMTRHnP5pI2AdxDe97SU+mI5zj ALx6e68o80Xb0MFijLHetifAMO9eLiyDD5lXn5KJeSppc3077b0aVBK+N5qdZZm/DeoK HvBHA7jxgUFKvk0aW+Blq4g5gkahZME/zeoa8AhckONAgbZtRpECE4UubLlFXdbhTBAS 8Ng6f46gUGWUQyOLafdmsyRqXn5hTq5WMHNJ3t+X4Srr8Gn7TsDe1if7yRDGmsDoVg1l MDZg== X-Forwarded-Encrypted: i=1; AJvYcCWR/gS48oWsJQqIXKPPNt0FzKbmMRTOVXH8umoQROJggDuWzsj/5+mUozoonRLcCC9X7KK/E9iQy1D23/U=@vger.kernel.org X-Gm-Message-State: AOJu0YycK6Ce5DUyzBm/s7X/KD0iKr7otgCyu4Efeu4xVI2AfnA6yfUB FjuqlQtyTfbbOR+WYwqMRRAm1zi+H9oHhf3t7dSJluyNBH0PUsEuSMaV8B8xj4KvgAj7M7C3lHy 4fAgMvLg3gNxRpE+awxnAr2rAn8/oHyTLBrNjINnV+fyQRbveQkfXb3NXmnudi60GSR8= X-Gm-Gg: ATEYQzzOfSQ4+QZc4lUZTfhEYUgcbXyv52QcuFSDLqBF7/qJ4EPF4cXoGTsAA/8X0Cv w2RxpQVS/Y4rsO007OOraK4DtdVoVf9kPlLlf23z+9yotAxi6LNDL3kF22t9IgOLkuXN9DG779L FTT5EetVsotQDCnu20w5S3KNl2qhWWSRoNBFPcNt/dHHEaXOKljdu+SDx7+d/PXU58dtYaYvdkr hr/bS8lTThGLPg1rxcsaAxO0tdTsk5LpLtQ8oc4EKa/NdNuL7++wl7G6sEpBeJqYL06vXzlzEh5 bWKejswx4pgK2oiisMvHqCBfNRNNHb89ltVILpzTq9iOFONTBvtXlkkOWn+cT8sefVc63bpm/g+ ORe9MubuUXbPLDPgSOsNzTBrOmR5wFCuI1dLefbe0ru+uYQ2srBWRPleviZ8EabypRv67hQ5NFG XbSmeHaeIoBhpGWcp5XzgDUAmCupg8EE/3Jg== X-Received: by 2002:a17:902:e885:b0:2ae:c67c:3b05 with SMTP id d9443c01a7336-2b0b099cb9amr36671695ad.10.1774438873613; Wed, 25 Mar 2026 04:41:13 -0700 (PDT) X-Received: by 2002:a17:902:e885:b0:2ae:c67c:3b05 with SMTP id d9443c01a7336-2b0b099cb9amr36671265ad.10.1774438873121; Wed, 25 Mar 2026 04:41:13 -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 d9443c01a7336-2b0ae360d4bsm38152015ad.16.2026.03.25.04.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 04:41:12 -0700 (PDT) From: Anvesh Jain P Date: Wed, 25 Mar 2026 17:09:51 +0530 Subject: [PATCH v6 1/5] 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: <20260325-add-driver-for-ec-v6-1-a8e888d09f0f@oss.qualcomm.com> References: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@oss.qualcomm.com> In-Reply-To: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@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 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=1774438862; l=2330; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=p1qib2l7A/JEOeiEFUXoqiCJEoH/aeCCTCy9wrPvB6A=; b=B9ryd+vvxFBe91fPiXtBVsao3vJGX75CubyOgVKHhW8onikmhOqcycrY1iFvnvVmd18gEPdp1 7Bw/TAqo6hjCXi6GxfeHqku/7ad5QyoUzQvGWdonay8KioiUUuzHd/n X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA4MyBTYWx0ZWRfX0VoKKHC0EVNn w2IBoSEQhsfZfRm48tg59knhf4kYVYan05hNWQuABjqf1zV+gmBQTGTT7LvOtpRJLlbHsTJY2Hv ULiwodGL3I4IGb1vbHe3FMm3m2dgAuEqlsIOtAE3wuhUMfP8IGEgpfUisHD0PLkbhRTsWe/bg0G /pxbKn5J19REj5v9BeH0WC7CQS1gWryMGbsLiDyVoob5SiuEgq28e7oNGyUy0HdgS3JLHnkLQqJ a1VKOZKyNwsRl2glN9AEjnJSljhrCA50/GPEOisShARddZg4Stjr4m2fa6u+fj6YNfSh7DTfFYe u6jpJ0dUMOf7XWMYC2q3WW0OaZRzpqmKGASIe5sbDqXTqkLUoh4BHJKWt7MEpeKPV5FhoYEe6HW whDZeLtvhQm2pvfvYBl0UeEU1tyj2iad681DCPPVg4OUWDKbrirKsr4Buv6ZLIJ+0tf5mQap8h4 60ZyD52HkWBsoWmZeEw== X-Authority-Analysis: v=2.4 cv=P5M3RyAu c=1 sm=1 tr=0 ts=69c3c9da cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=gEfo2CItAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=p9JF3S6fNoJM7NwPcqUA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-ORIG-GUID: vNKO6hEMQFOv6-SRVqHck6sFZVYRL6WH X-Proofpoint-GUID: vNKO6hEMQFOv6-SRVqHck6sFZVYRL6WH 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-03-25_04,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250083 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 Fri Apr 3 01:24:31 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 E74283CF05B for ; Wed, 25 Mar 2026 11:41:20 +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=1774438882; cv=none; b=AnekXtRQYhCR8KhbWmXTSdjxDON1Ha79BN7f2jSPO5vnMUAF0DloqpTfY1IhmrMb6xKlkXkPDl1Qdp5ispwU0Zqf7Fsqk8JVwsZUTHlxc9PI8uaWOqhDnJdvJruRQWLv0MKgfaKHDy4L4dbf1cX/55O8DsGNa9LLQZ+83pnYWfo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774438882; c=relaxed/simple; bh=nE2GCbN01q0fOzAfeXn3J/JUvfk00klvT4yMoxZNSrM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V+xua3/TNwPlJSlGqKGt0VOTofh/3k1khnJMuPJ210aG5fZGAXGif01KpUR4FEWfZaKpEiPuzLAZv+mPgNweYafbTpmq65k0YRxhuMK7QgzBDzxwkN3eZUZNjtgch73apLV1cyMY79ZToqjGZABhUQlRQaBE6Ptj5U0iAHtLbLg= 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=XdlJx+gY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jLqBfUhY; 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="XdlJx+gY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jLqBfUhY" 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 62PBGULg1895720 for ; Wed, 25 Mar 2026 11:41:20 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= MoSa/6BdZGUBXj8JaOkd73kwYLa6INX6WcFBWb8rb/k=; b=XdlJx+gYWlqMr0kD IJRvHA29Kkj1l+t0wG39JSAFhsoc02YFbLpUBKuzhqtujzeQ4XWscvFNOfGd4s+B nNAwHORZZVQ50IS4NohXF6GQ8/G7F6PQ3Az/lvtDl8TM+YvQPzpRYR6dCsXuPH+l n9Ul5PM9W929INRjRB6P8rjiIahvm+KTS1TGAtJUXhD1/CBeiH1ztqcdF6S9/5nE 0Yzl27fAWWWEpIuhejXG3jZVU1IBTfxbP4Okw4dPGMI6Gzslfhjdp40j9mQ2Tioj bAuEtnAbFlDQf/oVcF5sra8CIeBXmlcrb1VzUX5soodocD+m3dFJrhgd6275GTcv GTKtbg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d489mhkvm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 25 Mar 2026 11:41:20 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2aecfe69196so83856675ad.1 for ; Wed, 25 Mar 2026 04:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774438879; x=1775043679; 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=MoSa/6BdZGUBXj8JaOkd73kwYLa6INX6WcFBWb8rb/k=; b=jLqBfUhY2Tic4agcXb6lQtQrBUfPXhSmPJ2E8mRc6gSKlm+MW8HZ12Z3tWolNl3Rbs /5apIHz/dlie95aEu67b2vrigijnHy6dFS2GCREz3T1BUXQgXtCn48kixcmobMf+sx/0 ukid5DlcfImf/KujtrW1xzRZgWk0BNW1Xtax2/1yvoB+mq5D1+EgDRmKyHYnabThv0sk HDrgbJQPSbEjhLeTUQ1Vg9icZ3qpVHiAKhj/K6YblvICiR6NLlABEjc3aOG4nY4A4RU6 Nn5GFfDim3lorxhO+3s61X1b0lkTedn6ah4HJxz1bk83u3jl2Ocd0ZKjIiSxfTw5SRCm yNmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774438879; x=1775043679; 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=MoSa/6BdZGUBXj8JaOkd73kwYLa6INX6WcFBWb8rb/k=; b=lH/65jl6iDhxi8r/0v5BcAgaEu7fu7r/mOq/K3Yx2i979cjpxdeCIV+4URfmnvYEKV TTz11+UJHG21LUE6r0RNswjf56OG+loacm5rBZPy19FTjFgbPO7rQvVo+nJDS+5jZpbN ki6T5E6luuGmlA/wmWxrzhaP01cLvRNyRunpUK+vJP8wNPfYbgNVV6B3vjnwA80T39np 3izG8r07Hjk7rG7l4eAzVNmiVgk6z87pSbirUpNbFAXCntFILaq8fAbmH8omZECUgEyL 9tnMbcQHf1fJv0hyu6Eie19x8uD7AcDoX+jturyb8VYcwom290CZYpidsgZ1GOdkPKAF 1FPQ== X-Forwarded-Encrypted: i=1; AJvYcCW/QlJswZMGDmo2HqiLufT9qJ0lexgtzCC7BBGV9CHuDmt/Wq/PWdVTw2DwkXQMTthLVx9rbyzuID4/KRw=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7XmwkBqz/iwJD1W4yPI5qof1r0Kq0XjshMRXT+r8GzyxrjfV5 8w6AiWowROXsz/4W0Yors2pPpa/htNwKErVLFFBSNiD62fvRwMOM7ok0J/4k3BGG19G1+qujxQR PaIGzPEG8KT37Eys0DFP4z4573Zt8KQR8G9N+3BxzMVPYkCRYVtBXxgWpawzceHyfRAvwCwM7Sq A= X-Gm-Gg: ATEYQzyisIEeqpvK3emMH8h+NoKTa4eJPC2OuiIsFq7fUxCZTcGE19E9vYzEo0vsvT6 xCWHCwiNG2Q1cWJo+MPIxDKwnWHnqjvLdfsU+OZu7AzsVMnkFfRFr8LL8j1mSPaa6dLXqgyYlWf mupyzyAd91eoD9ZYorjcSo/vuqBdgrwMzznm3FSD/Dstg0PJVojY4PLfFIHKRRLbGx7eqkMvUbj 07F7PA7v1eghPqHrUC6UWX6o2v4sqmWCLIsGTlLg2waOtH2cZE62V3q5o38GMvlhVf7jqVOYLaE VZaN790y4BWAracB/MEpF8Sb0Q7sp/lePXTIj+syXW4sYZ02Q4dDJnPiKjwGt8WLrvt1QMqxu36 rciWv1X4fczIXEgHsG3bxPir8vMxPuxbt3Bektv52aUvxWnZ3UxizlB2vuNp66+ZtNY7tK+bq/r y1dAyAKtC9Zvxa2nFBUvEQ0TZ2JuGtMvcOYg== X-Received: by 2002:a17:902:ccc4:b0:2b0:571f:6f09 with SMTP id d9443c01a7336-2b0b0b5f6f5mr31333015ad.44.1774438879098; Wed, 25 Mar 2026 04:41:19 -0700 (PDT) X-Received: by 2002:a17:902:ccc4:b0:2b0:571f:6f09 with SMTP id d9443c01a7336-2b0b0b5f6f5mr31332705ad.44.1774438878546; Wed, 25 Mar 2026 04:41:18 -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 d9443c01a7336-2b0ae360d4bsm38152015ad.16.2026.03.25.04.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 04:41:18 -0700 (PDT) From: Anvesh Jain P Date: Wed, 25 Mar 2026 17:09:52 +0530 Subject: [PATCH v6 2/5] 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: <20260325-add-driver-for-ec-v6-2-a8e888d09f0f@oss.qualcomm.com> References: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@oss.qualcomm.com> In-Reply-To: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@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 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 X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774438862; l=17298; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=Y9BH/Cn+pJk6z5oN3AVBuPO1k8yg1iF2MnFDzBi0sAM=; b=8bGLRXhbqn0YqpmLaywy0kmfmL6rMZvMl9Ghiq+YHn0Uvnh32fRjyV5xe7L1dFvkxebe5kb33 V57jBh1DPeyA7/UkWhn6R214Gzbwm9S7sWLzev7tLhbbgESdCxNmoNY X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA4MyBTYWx0ZWRfXzLT5uuYG2Yop Ry27QFZ7kA3KUISqjdycETOMBvqC7Fii6H+V34zZVeGpTbcpxZ23wpibChrYgsSTy5LiyDl+hiK lwnrCH27TmIZvXnrdLGJDGO5cH9C/+Pv0XcjoPVwaJdMwAsjYaGakA5mN/EM7j1Xwh1a706AL4e Wt88zI/ShqrTiSt8LG9a/0REiV712lKb3kpfR4/1ShTas4MxoS9V8OfTxiYuQUjEEEFXNk+xX9w cANOcmxxt6bLWuL56vsf6q3k8LDNVJOigYncsywRAZnux5X9P1drfYgrQ2OTS/cnUwY8k8ldes2 qfMrCsCtVvIBSAwHZOC/jVok/KcoQVWRAVhQNJw8rPi/kiC5E7PGTbS6jTu8OKpxZUGz/GNucE/ 9f/h+lDV8qI3v9dXYnKVzi3ziSTx6E4/JMflIQ7EO5eW3ofHcwz6JzQ29gDXY8QciC08DQ5SUMU gZz9YHavn89v4lKMb3g== X-Proofpoint-GUID: NCEfwN5iLd-0Oo2gnTYOcYgZp4fmhZfw X-Proofpoint-ORIG-GUID: NCEfwN5iLd-0Oo2gnTYOcYgZp4fmhZfw X-Authority-Analysis: v=2.4 cv=AKSYvs3t c=1 sm=1 tr=0 ts=69c3c9e0 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=E2FcRaxJAAAA:8 a=ZZkxa-lhXBFmNfqa1H8A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=Yev8HTsh1NrKSfoOyGCL: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-03-25_04,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250083 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 Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P --- MAINTAINERS | 8 + drivers/platform/arm64/Kconfig | 12 + drivers/platform/arm64/Makefile | 1 + drivers/platform/arm64/qcom-hamoa-ec.c | 451 +++++++++++++++++++++++++++++= ++++ 4 files changed, 472 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 30ca84404976..bcd7b0729ab7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -22001,6 +22001,14 @@ S: Supported W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx F: drivers/net/wireless/ath/wcn36xx/ =20 +QUALCOMM HAMOA EMBEDDED CONTROLLER DRIVER +M: Sibi Sankar +M: Anvesh Jain P +L: linux-arm-msm@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/embedded-controller/qcom,hamoa-ec.yaml +F: drivers/platform/arm64/qcom-hamoa-ec.c + QUANTENNA QTNFMAC WIRELESS DRIVER M: Igor Mitsyanko R: Sergey Matyukevich diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig index 10f905d7d6bf..025cdf091f9e 100644 --- a/drivers/platform/arm64/Kconfig +++ b/drivers/platform/arm64/Kconfig @@ -90,4 +90,16 @@ 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 + 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..0f883130ac9a --- /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 + +#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 | + * | 0x3 | 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= ); +} + +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_ENTER); +} + +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_EXIT); +} + +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 Fri Apr 3 01:24:31 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 8D3033D090C for ; Wed, 25 Mar 2026 11:41: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=1774438886; cv=none; b=TO7bIxBkFZ03yJ+eLXlRuta+4BrB19opbwQ8Cm1UwpIHdVJcjJ2R72EyP9xaK8BKv3QzDMzZS0/5qDVUkHoYg6j6P5VvZZdrC4PXpcWakkv6wppxt8MaG8MlIifRSZKszkqs4xa9MQuegOZYk+8ons0ZJyUn+KUevkg+2/UxkzQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774438886; c=relaxed/simple; bh=Dd5fp85/4V9VJ5EyZFEPibLsm/4o0VYPqFC5Sk2sGQ8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RuRffMhu1rmGdO85a6qfbbpjYF5ZuAdSehfUEU3Gwxe7YlrtaoOTktwAK1AmrEiB6yMdZUomv9i0kOu7ThdrbAJzHLJI29IiWfloDgbI3zPktJ0mGov4hPyFr1b/UnQWLU39iLRtuq6lcqInATNHVuNilQyLo6h7K46KU82Er/U= 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=KFXwsE2X; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=imlpC6zN; 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="KFXwsE2X"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="imlpC6zN" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62PBGUYS4093219 for ; Wed, 25 Mar 2026 11:41: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= YM46yQGr/puwc3alCscfbFbGdSuIrLWtIOURjrNnAAI=; b=KFXwsE2XtaDGIRVH f3sE4WmkiKKVLnLQ+PtOQAFhDottapERvkDI5TIav1jQPXwDUlNsJAz1He+WHFqk E8FX8yS/0NFrUSIDMkGk5+K0wWtqiAHO9Ub6HBTevfd7iVYzeQMvi+cJ47+URww8 o/WdZrYjA/hMoR+8u8r6Apd4uMTcr2LRR9+E5uBTIYxzDnBDMvM2ncmNw6aRN8tN uVNpVcAovf93C/BmObRVi1lQ0e9omJn/qHq6fQ8qvUInxkoKmLY2MDCIUVcyop1X EJECdlcAfJGI/BBIvUq0j9APmSVgwn/gN6G5K7eVhvKe+2d1A4IKQ6zwVb4SvZ0Y LllI2g== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d41412y1u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 25 Mar 2026 11:41:25 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b060c14ccbso190790325ad.0 for ; Wed, 25 Mar 2026 04:41:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774438884; x=1775043684; 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=YM46yQGr/puwc3alCscfbFbGdSuIrLWtIOURjrNnAAI=; b=imlpC6zNbeJOm9VoFoA3XmwjbbcBj00w1H7kGCjp9TAiTj75qXNzbTT52Jsv18vaK6 LozQkbkTGVlCm3Yn2q8wSSXLr7zAB7dSQZs2W/XWlSgPL19qx4Rm47HTML9HFdhjKU2D vcMqu1F3EQg1sx0ylyMM53WnffVwzhutIWwl+pTyDgAlCzXcna2Pxc9rC17QNereYGsf DI4vi0pG5zWMPtbdplpaQCg/igU/C66l80ubecvVSclTRRIT0G0S1q9cCkGg5560VNC5 1Cx6vR9ybwItPtGVkvYjSbO+OZbMmjNWebPwf0lV1OCnn0hHb60LHEt331L1T60sG1Hf K0tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774438884; x=1775043684; 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=YM46yQGr/puwc3alCscfbFbGdSuIrLWtIOURjrNnAAI=; b=AlPAevUUF55rkUZIIORj4YoruSRblbbbFtp8iYQ18gWsaTmEw7tAVDMH6DD6V3Bwor F++JTlkJfowh0KipwV6yDtZYVRUbV/Kt6ujRnC1M2bfaFgSSTuA+/50dabynFf9tPpL/ 5a7tBB38Vg2geUHqZdRAm/KM1bX9nT4AUMKbSoEr7x/K9IxVyDFP1/204ZBZB3sSqVXt 7Vy+OoR2LOXORLSoF5j+l1Matu7Ueb4gUTnxPyS5gNWfQ7vFfKG1sOwfkVVJrem29Gd6 33tN7Qb0lADvPwjO974H9/5MofdROWiUPTggV9gcu7LIS18/UUPAMvqc2tnm9HrVnuyD Fxsg== X-Forwarded-Encrypted: i=1; AJvYcCWjpib2dv4HSZC2XN0CRCKmu5KAsBl3IG35ltMjBzmwESYISA1jQXllbEKr8AL2WiueYvh9POms0uAIT3U=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+MxY7lL/r3Wa8wcjD0DcPDWxxxiWoa/WEf35fiRwu8j8sD0ES rhvV/rKV7aKEjhGlZPmujonj1eVdHWtESbPYHA++g4B8RGgqFbd4+gWeys96fZ1m5et/akPmhff Q+q9MsT3FOSth+wcpmFDucdVejuwqHzqwoI/KNR6cpf7RfGpJhLq37xxHxXPtS3evCpQ= X-Gm-Gg: ATEYQzzf7/BuPa/LtuEfwdK6XqnKhJaudMVlwqjDGRVJHMG1zMEzWa8g+ddRfAh6W56 Clt2VPjT1MqoyvQS1X1tSI/0XtGkZog/pkwMXDh5BfFC0CMgQTMB3Er7bzlVYAGxmfttZfedYjm vmj6FgDrHX71ilLRNxkCAPGrH17ajTzFkGEEhYJereZcnVWwF1QgGFuHT3Gu1ytSP/Ro2zreFmQ kmQ0yM6rNbY1knqErFj9xastig0mxh9+C0Un4C4pWWXCMJlfisuiLRUFmrpLp5AsMV2QsZ7oB2L SHAiaOcBJ7n/+Ak2EHSF9OsNi3zwb6YNJ+9M2KbN+MfJ7sxUuMezdBL6AO69FfAD6PYVDpCBAHa PUYCIr3MrBjOQatIACp+sSuCuE8QJLaTbmEveKpE7NDxl//8o/+6iTTQh+ZbKv3ihk5kd6ICbqf DiA5WEkj5lnDA1SZS99uDjEe3O4pG5if0YMQ== X-Received: by 2002:a17:903:3807:b0:2ae:b9cd:d2df with SMTP id d9443c01a7336-2b0b0a9fd7cmr40601535ad.34.1774438884343; Wed, 25 Mar 2026 04:41:24 -0700 (PDT) X-Received: by 2002:a17:903:3807:b0:2ae:b9cd:d2df with SMTP id d9443c01a7336-2b0b0a9fd7cmr40601165ad.34.1774438883877; Wed, 25 Mar 2026 04:41:23 -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 d9443c01a7336-2b0ae360d4bsm38152015ad.16.2026.03.25.04.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 04:41:23 -0700 (PDT) From: Anvesh Jain P Date: Wed, 25 Mar 2026 17:09:53 +0530 Subject: [PATCH v6 3/5] 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: <20260325-add-driver-for-ec-v6-3-a8e888d09f0f@oss.qualcomm.com> References: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@oss.qualcomm.com> In-Reply-To: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@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 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=1774438862; l=1578; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=Er+elbEJvOvNZkz+nLoEwXm5OyAOC9UUXsw+XjSTb7M=; b=mUIlcPLYJ2WktFEkXqwnaYyyR1prxDiVFP6OAllROeDf+efsFUifRJSWs2yXYVrLs+vDcFQr5 ipexjNFhhyoA9koc46f1QCkTmtlL7UZHHJYOYeVIhV6rqiGQ+5iudsl X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Authority-Analysis: v=2.4 cv=fOk0HJae c=1 sm=1 tr=0 ts=69c3c9e5 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=h-fhkJo0eXD2C244oGgA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: srvry-HF1fZaSm_FK-TujVZzkrbp5V7Y X-Proofpoint-ORIG-GUID: srvry-HF1fZaSm_FK-TujVZzkrbp5V7Y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA4MyBTYWx0ZWRfX8DOJlXNsyyMo kMV81P0osw4V9lQNO7dluUWc4B0OEXRm4Q6IWuWI+l++p9p0i6qhNfQeQIifOOtPQ+vza+tXOHi DEtG1Y6Dsh+MYB3t7b36DXOgyNYH4ztZAQbavfaTqfWwPXAkd2mhTm7BzRsHIqChvkWhFQC3NjN 9QoV73FUrkEEhxzKSoTXLG69Bz+hDjYdx9z0iADzDvFeutIELp0uIw4MkRN09cAK2dQ0wfImr6k UZdHyY/6RcedAiqI/XlIK099VmJ6PW3JsbooOx22AOOdRjaV0anixmCBVFHjQKA7gqN0MNDddFf YBu+d+DKSUW37F78lMMKvJKfXILDNiqBKvZeSyWUowop4qaZdD+v7wj/tWFTQACGX5FwPIFYSGl zCfzCI7hFf/JVzh5l1yXBSLAVkTZvKXTVeAkdS+S13fu2bmufC8s4ARmpJhZtHrXexet8g0O+uj N8KnGvgGJimyLCZGjrA== 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-03-25_04,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 clxscore=1015 adultscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250083 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.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dts b/arch/arm64/boot/dts/= qcom/glymur-crd.dts index 51ea23a49b9e..1a69b428307f 100644 --- a/arch/arm64/boot/dts/qcom/glymur-crd.dts +++ b/arch/arm64/boot/dts/qcom/glymur-crd.dts @@ -198,6 +198,22 @@ ptn3222_1: redriver@47 { }; }; =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"; + }; +}; + &mdss { status =3D "okay"; }; @@ -263,6 +279,12 @@ &smb2370_k_e2_eusb2_repeater { }; =20 &tlmm { + ec_int_n_default: ec-int-n-state { + pins =3D "gpio66"; + function =3D "gpio"; + bias-disable; + }; + edp_bl_en: edp-bl-en-state { pins =3D "gpio18"; function =3D "gpio"; --=20 2.34.1 From nobody Fri Apr 3 01:24:31 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 270683D3324 for ; Wed, 25 Mar 2026 11:41:31 +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=1774438892; cv=none; b=sQVRXLEtR4kdD0sLfc1ka/NmdHKRym77XUp26fJsoUztc5jEM3O+jNum9CkypH6YcsdJe5MBhKUxI5PjGUKOTheR6+PqhUrTWejeyNWQNyRF4xmgh8ydptN2BCfn6bkmi5zHs6Iz6Q7hZy6SlXjfQ7zbAu6s5RrLy+cki2uaK4k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774438892; c=relaxed/simple; bh=CNOKzvn5kD0XReRJC8TJ6vbCACz1YNhnjP6JoO3Pr4A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Hgmql/kgnUHcVbCzrPAOc4v1GIR/QXjDU/LGO8UlfJiQsfYx+xnWMQO0uSQ0s3bg++4BqHUhQbJ7EQkBhv3nokUtrY+sPfKnFk4STKzf0I7M1HW9C4gxvFYRmoC65ikrEMjgzZGbLfqYsfsG4LjCJp+f0wBQHSFDE26kWqBUdWk= 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=XUDs3rDP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EwC148n/; 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="XUDs3rDP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EwC148n/" 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 62PBG2DC3090942 for ; Wed, 25 Mar 2026 11:41:30 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= 7P6zhpcLFC6aPfvZXVad/0Nrsu/6r+qZ2S++aXiCT/I=; b=XUDs3rDP44Txpfc4 vwM8bOgWr0JPHLz5sky4txQXdX6a6lwyjSpLafrF0yv8SLOQ4WiAK5+phi/PCiX3 WRu+XpWIrCWWCsow2mX/WS4WQYAZGHPj/Jv5/hx48fiNrjH+a9jFnTSXplYO4WbW jT2DHuFmWNbu869EPCSOR3EQBoDiNilYNaMCdOV5GSSIcl2082AvVfiK6bt1gLlp Zs1mJCj38KMYRBl2mgk2+CXpBUTV2OJVc3wOhzEzG7x/KJvdfRjridFbOdsFPNRG /THN3hwRBRCfX/RD9rpfFrUavGiEx55trAOrBTX6Ag20VXvXvrlobZl2E5WUnj9b Fzc6AQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d4dmprbw2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 25 Mar 2026 11:41:30 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b0554888cfso32381595ad.3 for ; Wed, 25 Mar 2026 04:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774438890; x=1775043690; 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=7P6zhpcLFC6aPfvZXVad/0Nrsu/6r+qZ2S++aXiCT/I=; b=EwC148n/7YiSpLocL9DFCFSdW+L+UIoWjFzu7IgcSsfFSh++Ez9lIp3OzNmVlK8Zyb ujaroL8JhFvd8ZRrYBPkS40N9dGjx1s62dFFu76Tp7aCSwf8tJQEihkrYK7WmnS0pOdZ gb3MZ4B1MvVs+zd7ckjf4hvXAlpNhWvnQhvvhcIhuNx+pe9216eQdyHgiYl2SrLbuFKK ymEi8Y4tMKh4hWMUbK1UGM9gDv4wgQxTr/HFVKGG5L+5h2mKhZoKR2nSjqkwajbRWM90 3eqAgzabNdI//16rcZ0SXtU7D3dPHhuiN91ha0hd9vKHHeWYjZg1cwz3d+LSAi3tFDYJ IaLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774438890; x=1775043690; 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=7P6zhpcLFC6aPfvZXVad/0Nrsu/6r+qZ2S++aXiCT/I=; b=n0CBMt7ubLRmOVKGLqdCKhENpnStl4GcrFaP5vgUNXFQpO8kQQz6v+7LqYtQoRxH/5 RdCbBeM5IG6hbd1u2irNPebX5aMZhpnNp4FozsRU0qixIhwoBed+NJdT+ZNDX4o8gXv8 Vl/8piLMx3qU3qpzRW1g10R1ckaCXBDBTq0OXXvUtAGXzX/9hXCuaPfJEOqImeLzsOCF YbZZD/lSBHTiR4l5pBTJ1GgFBxTIr0/zBxHeJNvebZaTxQFTrw+kPQXcTpquCkJBHnLv 690OP6NQEJYbyNaS/7b0Usc+QOPnCxD2dTjP8UElIM70kTHScRMu4fQDZsd34qDxK/YT 43OA== X-Forwarded-Encrypted: i=1; AJvYcCU/DK6BaoXt7yg+MdgwVBUg4W4+8qUoPKujathi798E1KqNWuWATwq+XrrwF9THFiIjvDCiO2mUiYvL+ls=@vger.kernel.org X-Gm-Message-State: AOJu0YxQmwZipb4e/nIlfHulgtdzSQR6uFrrRgXkG2RG9c8fsfZh3G5Z uhvRy32cWSrZVKSC5aF+WwNXy8y2qoXsEdTY9Qj/lT66J3WbZysby1IUaX3oq1WpnP1qNr8Fd5o WFcdq2+nN+4OMqZ70QvT7YGWPKYYlCqW3jknJuDk8axWqwHYwwhvQAvpCvvC9CVrgtic= X-Gm-Gg: ATEYQzwiKzOQovYbZ0rzV2CScsJycu5GLhoKoOSVve3N2ZZSX2ppaqaCnTRFcS6JWyT y+D/1o4tQw6M5R7YXJ8tPvOHvQfzSQzYkzLF4QBZiehskbUYvcIqtyET6DzoZgj4+N2lZxvp18v fpIvZbgwWanW/E8BuLJazlD6w3Yv04jDiOHfWypnKDMhXFNJiSF02Y6+JhplgJzJq9z0K0dJV3Q i4Ts2VgT+zzAXNT1VudEUctvNlaV2PVs5n2UdylfXkDZj5wOjLfLtVt6IOq771cxp0/leusGV3u uA2rkRiTrTX9OjMAUobI5TZBbJYaiF8V55T97FEFY4Zieb8dJEWZ4OUQhHVh/CaenpByNWIrCiB xZqBHmiKFuvyOgpRm/9J0xzJi9fnM4BiSKDOKlJAPax8q3H4xI4ysqumCNHMd3P7qJLs7KFIiiu vE9P5oX1FeMc9KG2lBPMqLkFFzNhFKxwMgCQ== X-Received: by 2002:a17:902:db01:b0:2b0:6a22:5159 with SMTP id d9443c01a7336-2b0b0989b2fmr36295005ad.1.1774438889871; Wed, 25 Mar 2026 04:41:29 -0700 (PDT) X-Received: by 2002:a17:902:db01:b0:2b0:6a22:5159 with SMTP id d9443c01a7336-2b0b0989b2fmr36294555ad.1.1774438889345; Wed, 25 Mar 2026 04:41:29 -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 d9443c01a7336-2b0ae360d4bsm38152015ad.16.2026.03.25.04.41.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 04:41:28 -0700 (PDT) From: Anvesh Jain P Date: Wed, 25 Mar 2026 17:09:54 +0530 Subject: [PATCH v6 4/5] 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: <20260325-add-driver-for-ec-v6-4-a8e888d09f0f@oss.qualcomm.com> References: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@oss.qualcomm.com> In-Reply-To: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@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 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=1774438862; l=1504; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=pXx3AWCW1rDtKny9OmTAQa5CSZy7BRS7KSH0ZkBzrwE=; b=CRxsbAgVHTVXROBEtardS/vqoi+9PCeiFI3Gvfw1jGrDpki5TSiFwziEf23VnZdNopzVrl2xG mKp6t92goKbCHGiSpapZ1+PNi6eXPBHK3uitfTiPpOVdc1LbbJ+xMDX X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA4MyBTYWx0ZWRfX4emU+iRBd7W2 T0fHxqYWXSLPvOBw6dmqOH76oslex+u2E+8wINm3o4wBmkLsdYFHK+NLkxA2eayx4Iun6iYmuku fZOEuubyY4W4g/NQ5gthDx2Ai+VRFrhLsyTRBH7iN7ukQAZ83214blbt1NkzZbP4qP6+I2gauiC ItndONpy0subpwk+FsUTRy+pTTh/bZe9m6hfMliFLU0VpebmqYmnu3Lg21Q8rq81LAQpUUzUiwt EHXVAERo/W3IOi6U4PxVAKICQlnp6ziVJbSyvaZfvWQnhlWk33ZhoxRXg3GLvcxzqdAc3j4OAzF t1Mfg0rR2+PXqJM1XGgWaodv5bSK5MtLkV+KM+vJFi6+ohUm6X/mwDZW6aGhUyyQUcmQhANj69N F+YKB0qKe3YmX3JhqbCczc/cjIH0zfZ87yN2iQEi/gKrOI6lwBcuzrvfIxcm0FEhxNN5qxvz27R Y2zm+bhdewcFw9psHSQ== X-Proofpoint-GUID: T3qQRwYEYkIDYQRuezBCkvG_uD2A4GKm X-Proofpoint-ORIG-GUID: T3qQRwYEYkIDYQRuezBCkvG_uD2A4GKm X-Authority-Analysis: v=2.4 cv=O7w0fR9W c=1 sm=1 tr=0 ts=69c3c9ea cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=gaXMZf0GDK_To7W6ZIUA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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-03-25_04,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250083 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 485dcd946757..1184169f49cc 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 { @@ -1517,6 +1527,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 Fri Apr 3 01:24:31 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 425233D3CE6 for ; Wed, 25 Mar 2026 11:41:36 +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=1774438897; cv=none; b=skdkU2N//bZleoAlhvAdHeQmJgdAt5dJcDdn5JNAGWTt81+I6sRz1zQRsUHzhr+kivSXCG86AUtSszX9ySI4No4oycoWSaojKAlE7gj+roENEloGwEV+g0ljXgqqjI6AeP7c5wVNVFqRXPxLUDey8HvCzBR7NDmG8UBAq7/21hg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774438897; c=relaxed/simple; bh=RvDw1WkLEnEmhvLbM2Vw+wuFrP8QpNfDVUGmlhDKG+c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SfgeHbVm+WgAnZLCD8zNhFA80hsyqSZ5Vk2O0Pe9fugKQmJdcCmSnTR6z7iuM3KAJ/N1mRxu+KZYgOGaxh7O0iTwBDiyL2rQOz/k6xeIE4LZ33OM2bACqaDE5eJCwfXBRjq/NnC59P9Ez8OKIBfF+o8Gr8442PbEMhok712OWu4= 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=dJgV/Poj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NyVnJ+si; 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="dJgV/Poj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NyVnJ+si" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62PBG2Ul721165 for ; Wed, 25 Mar 2026 11:41:35 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= zHGJ73QrwY/BmnqceQXRceCf5lqD4HFme4sfvsGZKh0=; b=dJgV/PojUI9SMTpY QsHR17NMmBv+DQwuT6hKo9kJTV6g6nSvmGJqu+nExK6kc9boTuyRvDdUtdhowfDk 3b7xqDk6LdYxlu9WT8GycNv64CKUGGTxJ8z5CdPARl1xVYaFbtgB6z+09qS23FH/ lO+PowQTNyrwpTnhP/Xeyoso7/+S+Oq1QO8Z/W+J526HFK5Asas7MBurfAbM2AFU Ug1Gmz4gmlYbdT0saaE+w33bCWCA4bgx7VM5UwmwW3XqxYHcDgXgonhxrZZEzf86 IG6m1ydkrJk4pizziDzJtXsutvuVDtbLyqzMK2SvpcF746fJ1cmtmkYPN/8Ywo/x Y7zfKg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d4dm2rba1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 25 Mar 2026 11:41:35 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b06b68783dso41019785ad.3 for ; Wed, 25 Mar 2026 04:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774438895; x=1775043695; 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=zHGJ73QrwY/BmnqceQXRceCf5lqD4HFme4sfvsGZKh0=; b=NyVnJ+siBgw+isRNisTWyOJRw6VKDncAX1ZJaAANZm8CkkUWoaA8uag1L/KSnEbWig c+jgdWkh9sljlWXvaBZy1J+Mke+HVYZZdd8AoGwgLQCUnyY4vTF3kEVTeaH3LOVVQ2ZB vn0DdakkU7LVbOaz4D4XK8pjtV7SghcfVqpTDqzjL8jd9VAzqilbyN86DzZeIsR7DfdO aVN7sPayOehBh6xbnYFdErYUjY9Q5SB7PNvbktwrMV4Q4xuaenQdKjZieub8t9ENwX28 TrMf+c8Jpqxz2xBVHBZbHWJ82b/+Q1KebySovjQAOhMNBzhb8b7c64m6EqAk7J1Wzg0g KV9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774438895; x=1775043695; 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=zHGJ73QrwY/BmnqceQXRceCf5lqD4HFme4sfvsGZKh0=; b=l0amDxQWtIw/LeAECe9vkmaK2KF9d7A5hAVOKoSuL22qDuT85ivhiiWEW9yQRjpJj8 BAtI2uxTargC/vBP1fQkAiYj5YWPmA9BLtCIDwft56e87K2Jlp3gNAF9xM6za7uEL3Mx EvtHtgknFffZJNaU2SBjibZIJKtttksVTka+2KACg8YgjILlBYSB1BWJSE7p3qfP9xxw 095Rv1lBPsw1hgLQk+Qx6EZR/09jaaSLE75/digfk7JrNOezux3xiqAKr30wcWkEs19v U/6ZgoCI+chI4wVD+3WiSNAtl8PGYNr6hcYodPUXWavdxDpOjAhQQgQI5IYVb9yxSsU8 7CuA== X-Forwarded-Encrypted: i=1; AJvYcCUacVTyBmCFeakR7PSsDqEv5ta0g1MHJikhs7f4oZddR9xQjtFaE1JKpX60PKxj4L4JqTB5M9m3ofNdY9c=@vger.kernel.org X-Gm-Message-State: AOJu0YzLPJ5ApdcegIxTlQtgZ+mzD1Lo7FMpN3+r5HD+txvkKxCrBZUm raQY1/PE4r0FGrmgIN6gycO6LyiNKe3xwiP/ooN67REEjlSS7iZMUv7Ldsg5iXCd3WfLGKC8E91 oBtwBx/tew+AFkZqWTlbS3YktKz1nN9Ts/1TJC6jtTIUIM9pUZhRTMLYtcs1dVKigC/Y= X-Gm-Gg: ATEYQzzsZT1B/ND5YSOchcMNm1UEbdtU4erB5dtv8L5jLMI5bFeHz48ANBGHxuzh3Bc O7g0d8qp8vai09oTHEh0yfLabhdgHBT9+C5WO8Vty8wutNzdcxu4dP+2lC7ikwOUPvjwrQ9Ndlh e3IhgvNGyU91m0PA5ON+gULyQQtfaApY3I1rpWgmnXyO2mHlwhZ1vXJ/SNKxYbHIYmTJvb4TurN firhRCLi0X7VO6qVlUVfezgeFcpBhsH1Ah5qWSTgPislXWvwcgJQqYn1VbwiAChO3oibiYFBTij /4H9c3MjdijRPN/UiZDE1ymded9B21lpRougRMlAlINLgvXBtlqzI+o31Wh7rCxTeVSeM2BcBlo bNtpTZjILRUUDBHDVq/kkEhGV3n0XOp2WQzqMzOA2DHV3FCcZ1lEt++2GQqqpato5B3rBOWjuUV 0pfagINSw+MY7rixy7sDQZuKyNxXJCIOiHvg== X-Received: by 2002:a17:903:2a90:b0:2b0:58a8:5fc0 with SMTP id d9443c01a7336-2b0b0b236b5mr34948625ad.44.1774438895028; Wed, 25 Mar 2026 04:41:35 -0700 (PDT) X-Received: by 2002:a17:903:2a90:b0:2b0:58a8:5fc0 with SMTP id d9443c01a7336-2b0b0b236b5mr34948195ad.44.1774438894447; Wed, 25 Mar 2026 04:41:34 -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 d9443c01a7336-2b0ae360d4bsm38152015ad.16.2026.03.25.04.41.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 04:41:34 -0700 (PDT) From: Anvesh Jain P Date: Wed, 25 Mar 2026 17:09:55 +0530 Subject: [PATCH v6 5/5] 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: <20260325-add-driver-for-ec-v6-5-a8e888d09f0f@oss.qualcomm.com> References: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@oss.qualcomm.com> In-Reply-To: <20260325-add-driver-for-ec-v6-0-a8e888d09f0f@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 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 X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774438862; l=1511; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=IdPH1Imvkn25efPE2wUno8oRCpw1N9VjuYi71HEmcTY=; b=KYgr0Mxa3JiFHajJjIIY/l+uMwSuRIG1RNhjMhDApPHJppBLiBhQ/uYGUUyj864mqoKzaLeaf busP5MEU4aeB0sXot4UkRm65nRWltUIeuRPQEzoPx1QVqvaqKapOH57 X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI1MDA4MyBTYWx0ZWRfXw7uDBnV6QUvl yB0vpFImTsXT67RMhWspQ3Dld7gAzccbF9HzX9prFYk/l7co6TNgGSfUg5IBl5yNWb9uPRocDNW Y+jElIF7tODTZRIy+ZzHasJe5rgF6oXs2DiMXimZjuDhI6ozsMnexxOLBAlffBUkWTgB+vwDXp/ itbcsgiCkMotsKP68Ih09gPSENqRoEOHOh2b4/Z1yrxDfS/YlVZrO3BVaGV9rHJ+C98AXNYHzBC geSdmLkgnHHZ66b595PMYxizwjR2JQpj+sFqHXZaie+zXOe5E9e7Q9CYiyZZ/8sVUFgAd/aptiI E0jOf4nxOcPO7UkLSzMHu5WOQqsHNS4iWbtaFBee5uHGnzUtsV/RBg2AW6yh5E9/rC/vxn+LKKV /Ze0aekPwMWXFi5YmG4ZCxoL2vBG/isaVtiDvVpLNb716HgHtWz1zlA9xTn20V9rzH1ZC+dhK3V tsBPa2iJPKzpQK7MP3g== X-Proofpoint-GUID: k-tiTXFm8ZCM_dC0DKqi32PJRoeWbEIe X-Authority-Analysis: v=2.4 cv=Fo0IPmrq c=1 sm=1 tr=0 ts=69c3c9ef cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=um1wo07bdbQtbc5qrgwA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: k-tiTXFm8ZCM_dC0DKqi32PJRoeWbEIe 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-03-25_04,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 malwarescore=0 clxscore=1015 spamscore=0 bulkscore=0 phishscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603250083 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 Co-developed-by: Anvesh Jain P Signed-off-by: Anvesh Jain P Reviewed-by: Gaurav Kohli Tested-by: Gaurav Kohli --- 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