From nobody Wed Jun 17 07:22:46 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 05D8A3B4EB6 for ; Mon, 27 Apr 2026 10:05:31 +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=1777284333; cv=none; b=EjcXsgvNfRKtxEUx49xQ4E+m5tDmeO5IZxKsfH1GuBTSSuGAcfDDuofGB6Rj5TbZke91jDybk+pJVuWQaO0Uvw6Bmv0JIoLO/MKO07EuWB1lJ6adGp9giImpr4aqlHKQnbVT/5up2t6KdMj9ZrhiftP38EvszrKEjf68RnAQwcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284333; c=relaxed/simple; bh=zFarwFyP7Mwjc36+jVJxSXy6/e4tQoyriPLsSHSmWgM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EtD5h9w3hT2T541dcOAxJtm/8M3AGfquuVTf8STN329xWNqyAPVXAcjwtW8qLk/3jd9qrp7Rz6JgwZl04g00E7OwqarglGPjuT3FkEEkQwzyT+Mqm99ZX17TW3/jnKiQ9nFaoaw+K2InXgt51mUOUVjR2Y6AzKqdUJMjSgnemKM= 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=WYqUrJEo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QOV6UGLY; 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="WYqUrJEo"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QOV6UGLY" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63R8T9BD861260 for ; Mon, 27 Apr 2026 10:05:31 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=WYqUrJEoiVFArZGy nJIBZb3a3PgX7GJtmkR9ZHutSLEhXOeSAy/vgVYRnzn6K8sWDOQclsRKPzZspMaP L7k21madqwSV94yBcn0ww0u2QCHIZvHkc7svz2+UQrh37XJ+YdzavIEsy3pEn99t TuhSM3pzNYJ/tU8043NMJrcnfSbh14MX2EZIZ1rhhmgSC+/15kq9Ruc/xVDOCn5o fpyVoTxMNCc+L2QBhXzGH14Ra9RdAeLDx96bmX4R7TrEPkWP744kc49PToDLmWKU Rgbx83zndobpYkBhyWoVoaILCoo7vK0A3DkkfGoczDv4d4/CGonPUq7jpZ+d8mS2 1Lt2bA== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4drnpw5krd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:30 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82f803658d5so12149834b3a.1 for ; Mon, 27 Apr 2026 03:05:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284330; x=1777889130; 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=QOV6UGLYMt3ZuIa3hLkeMurokulxZfNqVajpl3fkZRQaRVfH/Rt6hgcBezd356M6gD 5ytKrAx0dmfmH9xrwk0kC3OKsnVyuMO11z0qLwAPRHHS2AHx3YHEnTmWjt79GlguNQcP 0WXYoiD+/jS+pNuKPRgacA/8/590up+WOlz3XR4W4uGfz7DAm7wtRKV00bppQjNL3N+k fr6HqDIBXr+5OO62P7ewh+OhVKSHQKbIlOQMBC3NZ0nh/NkBxzZ4sZEOI2e/8FY2P1Ms zVNpn1qHLADDT0k5ZcqTYPm6zuxxQ/w+ufFXv7le7NMxxu3ExlguK0JkGtSjkViMWAB0 IaPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284330; x=1777889130; 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=Bn7CRUhC6d5T+5I5hfOhXxYEKL2z+kQAjQFVMPeE6geUs1rGMnnXoYW9k3oXf0HY4e 3J9E1TcnxWhGELHb4H8zfV0Kojk/EJJeAK7wZNO4N4X3JTfYVpo9IW8btTytj9Jl+gZS qgNXON09EHNVdMEiupwFu2QDOnq8q+ecqjKcCokzBrg+HgKpiL48ig2EA9Ax4lQmfXv8 FxEu3gTjcK6fPG9h9vUtlMjFoBB+uW/p3YoZ5BmJF1lORJbjkKiNTBrKQSRpq9qz7X4d EDpfEU32X2a5MeOd8wQbO1K/ga23iw8memAj1jAwPMR1Pf2I5t8G0xIrMH594VK0DAWZ sTag== X-Forwarded-Encrypted: i=1; AFNElJ8BrA8x8FA8HBwXElzZOswUKhdjXoHDPvSggMUKpej0Twp4P8LOrY4jODkxrx6buRUfUKXcKBk1feFtLb8=@vger.kernel.org X-Gm-Message-State: AOJu0YyxwA2prtU4nXkEqpbyFRYBK+v93xv4ceUFJJt8+W7DAKUoyI6f gW8RE+4t7geku6XZ3K1fS+tj/xE8D9NtdBY9b7AEYP5lRbvMg3egfoeFt2m+r0yKXtl2wyzcNv0 ET2YytjZYtY1OTW9AzSAfa2+/eENFWA2VCIfcniMikoJPx/IFHhYyx0/o4vthUP6CJhk= X-Gm-Gg: AeBDieueEi6ynDugsx8wMjWef9nZKUpEehR4IT4P9Xxp+VDwqEOcjRNEKEMmshSLi7a Trhak3vdLU75jvU9lyQG12PkYtp97wyeO3TMP+ogmLpPTjWzk5UEYxoE5W2esV86sZpIXybr6EI Ds3aCKZS8ZMuN8EgKHuhJkUhUkhrbnU0T2U5sVpF/Jmhb0FJvDwvp+dc8qdz49E6BZFSf293dtI RfOruPagHl0uQZEE3gl5sI/mW4Vp9GLcJieIBiClISdVxv6hUMsgyxp7wyqeW26eUGX5TN05veY ecBHxdln/m5cqh65qjqj7MnR3RPWrCCP6OF8xDWXwWYP2fM/T0ypf1Sh7FcNn1VT+PnYc67Qf4+ fhGVEaM0ZzifKdoT8JOwZfYhPE0j/AVxSVTHoHyLdyWgsU2q6Y0YscKAQjX0jUZZx0thZGFnLpI n0GjgbebNj2mE/byUYkE8SRoz7uRxi5CN0Amfpv4Yjul3e X-Received: by 2002:a05:6a00:929b:b0:82f:5051:f022 with SMTP id d2e1a72fcca58-82f8c8c7bc4mr44751993b3a.32.1777284329631; Mon, 27 Apr 2026 03:05:29 -0700 (PDT) X-Received: by 2002:a05:6a00:929b:b0:82f:5051:f022 with SMTP id d2e1a72fcca58-82f8c8c7bc4mr44751948b3a.32.1777284329165; Mon, 27 Apr 2026 03:05: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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:28 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:52 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-1-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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=1777284317; l=2330; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=p1qib2l7A/JEOeiEFUXoqiCJEoH/aeCCTCy9wrPvB6A=; b=ErNzU5mw83Da2u7kh008/Dc0CT1AdXprku9fq+PLAB/henuOdFNdmhU9r870WHRACmc6EEBKF 1J2D6KcowsVBQ+RURg+8DJkn1ei+/DxrRWRW/LMM3p9WPpGpLe6w5xS X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNSBTYWx0ZWRfX55Hv5NSfvvXM 6nPbHyD90k35GKcONJm+qQYeKx/0iUFvpUn5w5o0ifUtWU7d916mv3PKvAaQeTk/9OhVuyoP5bM RXACPSBLLE2BZChEopbI0OenvtGyOrJcPEvhDv6fwyW87ukZpe2JFaaYswG5XmA5TsYlAbBo0mq /at58tWCVZCU49ADpMj0reDtQp/amXKRf1GN4z2UyWFQKWplE3fB4iYqnQEgZwbv+MQLtvmZ3aE lyydODH7UE79xolIhf6HlHexp4bEfhtpEk6RRf1J+e+6pb933G0W1vqDLwEV2yCsQ6Wj452ZsaF gbDYI5ITohAp+oWnoO8l/ysvtpvHWguV7UvRA3x6dQZMyut2eI97R33xeIXMD/ditM1hgg0/Yfv JfNF8VP5uJpblRiYhBkJ8CzxItbgXJUiHrfXEYjXplGAuOg8nf74oiTrh7dn1qeqV21ZYmzfQHT /3Du0Q8oZgNr+HbWk8w== X-Proofpoint-ORIG-GUID: WUHoRxXr5SkUC67V-J-wRxapz3bCTg8G X-Authority-Analysis: v=2.4 cv=RaGgzVtv c=1 sm=1 tr=0 ts=69ef34ea cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=gEfo2CItAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=p9JF3S6fNoJM7NwPcqUA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-GUID: WUHoRxXr5SkUC67V-J-wRxapz3bCTg8G 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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 spamscore=0 clxscore=1015 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270105 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 17 07:22:46 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 3EE273B52F1 for ; Mon, 27 Apr 2026 10:05:38 +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=1777284340; cv=none; b=o955VJGeA4yMQ8Jj1+gnVncZZ1kxTqarFecHt6ZCC7C2HhDcvj1CpHxMgFYuoHokX+ULkZCHFmDnVVyaaaTTfhRoUs2Ahoq+Ch2R9TkQ7JBw9qM6sRY6KLxmE1ff+o/eCGkWG4oN6FvhdY5XBEohmZMYrIUstBWTNk3f0xvmyF4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284340; c=relaxed/simple; bh=FadxWHtWV105J9xLriYBzLEu9Xqye9typzHQ060fxww=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=k6xm7/np4ZNYz5zSNutChlBjCD8uwWWFjStRFY0rH36HgTDh2Z2lwOnKuDV2fz2tRRNnLBbpMUWWPrtlxiCmcl2+CFW1I/HlBs+dF565LyysOYAjCy1JB2hHVZEkIlV5hui6exqGYhr7oNUdPXoD+ZcCPkmUs6tNK5GxLRWYfqE= 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=FOnlRJYT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PyJYI5Kf; 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="FOnlRJYT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PyJYI5Kf" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63R8TEIS2913944 for ; Mon, 27 Apr 2026 10:05:37 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= tJvVeTQxr0x51CbR5uZ2Ptvq4XhvkMGTLUKWx96I/3k=; b=FOnlRJYTORN14LnG VhKzy31E1kcaA9ErmgwzxnMkrkVWXdHbh++zzpymjJjc3TngasN8zoXhBlJgUkOd XT7tjvB4ZI4PZpyhdoX3LxERGK7ijtbRm/IGZMBX/X6e8PnAE4o1vrAHF2ozi68k tZEWILeUxOfI6hNNV6F9oUsix2dG6j7LxJjVsl7EU/Ea3om3U7BTbKtmEhzs5got 2uUpALWkRcUfmb7G76zd1uLNWQZANb3qMTiPF0xXIlDHSZA9MmsIjBLgeZcOeyTx 499Fw1BfNlO49Rdva5LD/J0YwYH8dQ1LcYJZLfszu5o1QEXkPPZ8amQg67WS10LV NvNlsg== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt26xgy5j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:37 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c799ee56bd6so2338174a12.2 for ; Mon, 27 Apr 2026 03:05:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284336; x=1777889136; 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=tJvVeTQxr0x51CbR5uZ2Ptvq4XhvkMGTLUKWx96I/3k=; b=PyJYI5KffWwSkFungTyskbRidKX1L21VrLSUNIPhzZNIvwMJUfqXgVFvFLV7nDXpjp cGKLBIJQy+6Wx9a+N87w/zQcILC4/61rWTVctasSMDuY3UchiKBLd3wxlshyW8nBLiVP auLmwEpnosIahhFUb5mukwuJCW/Ql7J5P07npvEAuHraZ81B6o9SytU+3Z/nSZMBTsWj qkdHvl4jA3z7RNtIefT2PDJk25fw3eyiGb6dIho2VndQbeCSsye7kzkhc0fTiAdJWW6u a4sPUiq0aURyn9EuHuS4j2dXmaZXIPnX4+MCaxMxvicbSniN7YEby9tuFj1mEBnsG3KE hVPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284336; x=1777889136; 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=tJvVeTQxr0x51CbR5uZ2Ptvq4XhvkMGTLUKWx96I/3k=; b=VCMESEcV1opPWx6wQrCW/u/i9GaJfne/I9MEEm2PPJpZuC66zxvuRK/ofFLY8fNUbP Rq2xw9Ty590UchBIW5KlTh1LAwTEFX6n2oBABiJmKCxNmAFWzTkiDp0KdHhPxUKKJxQU J69KHQSQAZjkOp+u4yn61+JKvQME1dIxUvJjL5D7nTCOLa5FxriBDI96eVOb8JixML7x W08wxMPJ36o5+oVmhke0I2d+55ZkHvBQy6QQNeUvyoaQAwNAkT2sfq1nnqoRYy1U7dLj rhDUUot/GSmZsbFqlinpbrWi1g+rvqkXchQVRITHzHTQfejtrh+BbCfa6f2DNa52P1pG w+xQ== X-Forwarded-Encrypted: i=1; AFNElJ8RJ4t7pGMYSgmewzMBFESByT8v5FOeFgGkjn2ed+BbUnBgNinxn1uEAC00EHonBzr4K/GNYHcqP0FiHBU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxf305ZARu2o4ozBlx6YiZcKBvuZU1tt1M/l/f28eSU5OgNUqi/ jFFU7FcFq0l5x5Z18v1fLyULe7S/FmLEzWWCqFT6A/3I9f6aL9Fad3mG37Et9VPijEBY4MSxFfD AOKxAsfqo8xkU8+VPY1x63jWZg6wCoEu/m/dJyHA5du6d2pxQJx1M2cpH2GRc96jC5MA= X-Gm-Gg: AeBDietKZKLFSG2l7BntI4tihTUKxYuXgcs1JyJIkMct4cl7OxZ1v9AZZMNbuSoErya WpNwrJxZPsDU/GmgbqD4xqfLL2NWFMcXefAhg6lzGiwnZWJ4Y2BqbMGy2mZ2lAfYiYk8SEymlqU zGZUgBAs1DP9iQi+Pe36IxzSP90IsXSHwOvPgBJTgA/ADCEWC7XkkynasHAnFcVgmxdocaO26YJ MPHZ1ZzZxL5d+g2zkldx1ygh2Xsk6Qj7RsolnykvsMqWwWKc1tjHyk87UI3XbWjTKgpOUO+xGmJ pRNW8n2UQFx9x7r20uMXhJytd6qm4tc/0OH6NkG/8HxYNsuKbPf5pXS0fJci2ECpnSSWxf20HrU zBLUOHHX+G22zwPfxfGhi0ms2w05lPP3tvLc3vGFF8kYS/+ATnSdrd8BiipIFAii/iEfxgCwKy3 SkYqhH6vc5yglxEtbCGR7+yMYFuCeodSXExNjAO9iA6OAn X-Received: by 2002:a05:6a00:3c86:b0:82f:316:31f6 with SMTP id d2e1a72fcca58-82f8c8bef36mr45635847b3a.26.1777284335833; Mon, 27 Apr 2026 03:05:35 -0700 (PDT) X-Received: by 2002:a05:6a00:3c86:b0:82f:316:31f6 with SMTP id d2e1a72fcca58-82f8c8bef36mr45635793b3a.26.1777284335199; Mon, 27 Apr 2026 03:05:35 -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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:34 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:53 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-2-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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=1777284317; l=17415; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=hf6vt/8obUYugydhKYK3fjd7rRlRb6d7Zd5YKnav9Ww=; b=nWaqEByzsS++x1IUy+ty6mh8qeKz4K3xeYgP/0nnzG30lkAVfpwY1kx9aGbyeToW47i7p1vcg PC3bAXeD1bmB+48JSRTh2USrx28Vm1gbIJScWx4Eblt9U4ZewyAehNk X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-GUID: V1iBf-uj_RDa22R3mxu1Ens7_5NWz-J5 X-Proofpoint-ORIG-GUID: V1iBf-uj_RDa22R3mxu1Ens7_5NWz-J5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNSBTYWx0ZWRfX4JEmO7xmo0Bm T2rv5kRPLsSWCi4OWIc173h2N0/hviNYnTFxTalDFxw018iVcIe3Fv32SSnG0rf5m66GZ+2W4vA q6lwnrtwCYR4J8Ah/MtvBPToaByNT1cdUCxdfp0j8mbOUc846er1+8c2Jj0FCJxhjmV7mq5ic57 YRyKxnPOQrJplGWVTDphfoVVT1XAq4ZzAUXOGVleATKUuLTOMSv45U8cQZyZIJOfnDk/Wseyu+P ZdSsRoLEd9gXTSeOvzvihMQfWGvZdAYYGvTeIUdMQEychXpCVwUns/gOqAkQp+MM2PB3Fo9oBK5 w3v8GTPQEgjCxh8DNZTGiCXXlJ4iiRWmsognfBi9vKs//ettDCuTIapkvHg0mWqLdoXFl1OZ9s5 Q65/nx241H02NlT9Yt4PuEDA06XUz+8Pb3Dc3QwSb4rI/mQmruKWdpvxF/IczxeZ6h0dhuKNd52 8oz6KxNjXu/DsVzJgFQ== X-Authority-Analysis: v=2.4 cv=FM8rAeos c=1 sm=1 tr=0 ts=69ef34f1 cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=VwQbUJbxAAAA:8 a=ZZkxa-lhXBFmNfqa1H8A:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS: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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270105 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 | 452 +++++++++++++++++++++++++++++= ++++ 4 files changed, 474 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 62b89d0013d2..0bf0d6d55550 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -21980,6 +21980,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..253f927c9aca --- /dev/null +++ b/drivers/platform/arm64/qcom-hamoa-ec.c @@ -0,0 +1,452 @@ +// 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= ); +} + +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 17 07:22:46 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 6CFCD3B5308 for ; Mon, 27 Apr 2026 10:05:43 +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=1777284344; cv=none; b=rd5MlcXlVOJtE3IiErHSUAM3Cik0pAA1yUWeTC0ZKoZ5NZdTa8U6YCp5d/DtM1y8xFxjz2qVEX1kyvZr8nsmIlSkpvS+PWaMIlQgZmQMF/7WxnjvemENy0KmUihluaPY5c6CdmN+v7J04cim3KPYGPRGGFT1cOzLMam0omSwkH4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284344; c=relaxed/simple; bh=n3Dj9ex9DeD+L+lQKKQOUzTFyrR50tsgxLyyinSeV2g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=o2H5zwZnDDKAOLfxBOYRMHBjacvXC59kyyfc5H13V8VhicJwUIqpmNYhdRRxuAHGiv6iVRRC9pttxmWAXqtVP1D26LA3OoEAwVNeC606AehvyJOGb16JJxKWf+3OqG38Wgtph901ijUJ+OABRMMeIjpnJCDnYWCvs5jgLCqUmlw= 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=AuycH58P; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YiOsi7hO; 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="AuycH58P"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YiOsi7hO" 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 63R8TANS2793094 for ; Mon, 27 Apr 2026 10:05:42 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=AuycH58Pn7nfM35v HgR9QbZ4RIZH4mTeAbsPZ3WI6dt3hML2aAfsz7Y6Q4nNXbdzYqobutZiqljTUW3y RixshYN8knxww5P9No4RLpq0j5OiY8cS9S7qGS1O1xlidbtT8Sz2Os9m6YJWIqKB QlQKLBXeU0h5N6VCDpNRWR2MZxhOl5Vb9hXNq2kcfZC3Ve+FoyxvCye3o4B5haBm KFGjRgJXFZYtqqF0inqMnGuPzTUyrrd0St9WeLSr5Rah0wIxV9FFZqP8BIVBdOav wcDNEzTJKLWZ2lkDiMR1uEYU6U0Yx8g8wFYbddqxcS2KXOpPfSeIIoAxZ2Jokr66 zbD6Yw== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dsa4uunju-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:42 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82f504f6b75so5579239b3a.1 for ; Mon, 27 Apr 2026 03:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284342; x=1777889142; 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=YiOsi7hOdUvlVBPqk/6PK1JOFfKdepVVj1vAbabkL7zS7e0ZO/d/BMm24egQkxe5BO qmFTM3jJtf7k27tAeq7gJAMEpGmggNLIeLiL1Xt/hCsuLiJ7WHkdTrGrzRJG9KplYpmJ qPArt8UTUjG0Kui9aIgfBXwTPfZOUPO2fmPQHZA6vFZnmVhlmkYLLH03pRgrI53M+LTf 2eWx4CVZiQw5jkOwMKKXSuN9eEwoeVWr+AlD+k3+hzh19/o3rmb798YA9bFUCXvj4Y4l y9/j59UwOcwVeElvOGLEtE8vIlaTQnUgZT/hAxVP4T+LQUBifHq69AKz5hHassjgXzdl JA/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284342; x=1777889142; 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=Y/KxF42J3BFJAWhNAUSEqmE2jGmk3oZCaVhZezbotlLc54xB/8WveO95XHPRMMu8+n szBW+TA1N2O86DghswMoCOzVkq6nbfsWdU9/5C96A5CaNrEzy6UY1Wk+lI1YsSPNm2ZV mZyd5ozX5pskARu2SPxBDOQ4yh706iRlf7YMiLD8sMgq8q98uzVy18TDUCWh4Y1broJV fH78+sF4EVTo5stoOPnZ5fwhcrkBgw45PXBiouFNvAUijEos++imInCO/D+ix8+6I7j4 U5BQR5tYZlh4Gguo8mqRx2gt+s6l1/e7GUJMpmfS4bfQI3y+KhizG7F1T27B9ySAAq/9 34bQ== X-Forwarded-Encrypted: i=1; AFNElJ9/virpFAwFmLtr2dWsuDWuWte9Fpz8N6j4hG8Bx7gTovm++8bFeypI+QjGqG0wFA5YASEXbhZZRyWHoM8=@vger.kernel.org X-Gm-Message-State: AOJu0Ywk9Tk5+Jr2PP7QEDEAJMJq3mB4RBLc3yOAn36LPL5+ugPQIFdN hf8FrjiTFXKypheirs3AUPnbZLkonPEEebpkF7YMIxzrG48P1bNeuI6LrdaTd15eeQYw5Xxx8OV VUSeop4bLwsqdcH+bIfGWmL8vP7RkV7W/V9Ytrc4WX0lJfIaB1fbmhZY+xPKF5qo65DU= X-Gm-Gg: AeBDieucmCSNSBBfP+P36vdT7NH8LQZZyT1mGiTlm22FwZKrBiDDXvyo8/TNPP/5Zz7 PI/m11+oZILzJmF+wKCetK0Jxiq/MHjg+H6r+IbYDfA7Nh9FWsOhJP7klKvt01Tjl6jvUfF5MaT Ak8tFMUkRu6W68rDXSL4WnsjmSwxaVD1YZHuQHnMqGeufh8deMn7StiVtNoeNNo/e7hNgFKsVCm lig1fnov8qk7E4ZIq8YsjsM/bE6MG57RB5Pi5jXosH+qXJ+B2Uhl7k9FICTsMs0zTIxQd5DRxHF bmnMO9zImnNP9sNdlJnPzuwFHe1VvZzGxaGRjU/n9u6p4ShjkAoOz26zTXzeXprlhj7S8kC9YnA r4ykYPrCvksrVHYP4oBl1ovjCV2hTpikjQbFylawXZwVPAE9WcitI6Z0jU+SEvQBb5i4mpGjs4O wZt0joPMd9QC937YeOHHOioqRUjvl3SJNkJR39gscrfrX7 X-Received: by 2002:a05:6a00:3e07:b0:824:9bc5:e946 with SMTP id d2e1a72fcca58-82f8c919150mr43912391b3a.46.1777284341461; Mon, 27 Apr 2026 03:05:41 -0700 (PDT) X-Received: by 2002:a05:6a00:3e07:b0:824:9bc5:e946 with SMTP id d2e1a72fcca58-82f8c919150mr43912352b3a.46.1777284340843; Mon, 27 Apr 2026 03:05:40 -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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:40 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:54 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-3-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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=1777284317; l=1650; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=3BLnT5OTOT0qEyowVKSfm/R3DNxg4MouTyG+K4wg5xE=; b=Hlbo3xq6s5a6jr3USS+Pcqn+F0iHwlc9CIYWbC2511TyN1Y1eaq6TwYcu+raC6WosoM7rMxuU zYss128YWnKAfipuhrCrQmJjeOKmKfnQOH+rmrv9oeWf3jsSnIJATaN X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-GUID: uMlJBCNJThwylIPaiIU5si38gtkrJQCM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNSBTYWx0ZWRfX06pfZkeH9Dvg FkHNNc5/6v6MzoTQj8jRLnGnKfh3lCdGiI2fdIQ/eevgwkrtpWIuX80uZBqrvOVNRfIXw+aUjkS AmrfMv8xGj2W0RGkU7/lIPKvXTGDMmCn+QgPfmKQyxz+t3GK7emWKPmndWPXQojRVX6veNWArOU 5XY1OFplS/KGfuNiYTdyZ+WicV2ChTnLtB02Rh/xcSavAFm+++A5ZUqScGh6wiC2ri5x1jwsM70 QBcVHJL4ZC565xM6cebfMK7fEExVQ+IWWsRJsuPHNN2QCpG2TTSdPiPw97EZKrtq5QrRpW/CgYn MQPFqyUWydpv4A2nciZWXDLCZwuPnc+zUlLoaEfi08mzvLJ9r13xSL+rmtsXkynv6A4XysbhGW0 bu+B3R6f18BxtdLxEeAaFitlmMBvTE4BGzhi6ClgiKFXvZS+vTVgsSGqVSp2RQc+SQw4V7uThqn ybZQK0JH/DZkE5TJq3Q== X-Proofpoint-ORIG-GUID: uMlJBCNJThwylIPaiIU5si38gtkrJQCM X-Authority-Analysis: v=2.4 cv=J/GaKgnS c=1 sm=1 tr=0 ts=69ef34f6 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA: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=2VI0MkxyNR6bbpdq8BZq: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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 adultscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270105 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 17 07:22:46 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 786643B6BE5 for ; Mon, 27 Apr 2026 10:05:48 +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=1777284349; cv=none; b=q9bf/V0/p9+LddTf8pOCgsUCD7j6Q/9koBpxoUYMb+BmSW4JAyfl6Pkj1iB+81XRUbHY5WY/ng2NGWD/c0LDTRI7dY9i1Q8dWajLivuyPv4D9V2IPt667LXFo/5RUMJlabVVzcqKI/g4zCK5yJ2DDIoa5svJxkyBhuRdm+kERmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284349; c=relaxed/simple; bh=nfUlgRiZuBNEE478C2TaHpdYARSv0jZSyoCpVTzZyeY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pDhTpxks/8E94L4xH3OEV86RYgdu9nHbCI+PVt3VqTd7lPr8k+HR9x6bJ7M149dchHlGv9MKiTBtZjmLcGO5YIMvBdD9/7k5/qGkJtJlDFgJNmRaGpy8sDzZjcTAh+F+kCCpmp4ZahP7TixaMQGb7+hYXBME6aWW5vEqtN78kIs= 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=NokANQ8/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Wb+wm/cL; 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="NokANQ8/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Wb+wm/cL" 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 63R8TN1s665837 for ; Mon, 27 Apr 2026 10:05:48 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=NokANQ8/mpSaPPra UmzkjeatozBpjPsLhWEMh+cfAm0RZFOmxKPGAWoLdjhWYcTULJDzo4mueDVXIqOu 988dQNd1lTkxaitlQ3tbFVrH/B4wRcJpRnuQ6kCMeDhVVEAQJR8+HlI66UmgQ/s4 enB4xQNyofMAu5HekIb92oQEQMMSfRKNbizOlK6eLwFMo8o3c+p/nb8B28L7ko2K /O8Eh03sr5XdlAyhvpwE+KxWP5yY11KYmIz6EsYNvAUND3UXiauEsxfW/ko1Qk6v OQfexkwu2I4hjn7s093nL7rnRbPg3H7UmeXxPEnRalGLh+I8YVwe6ysIJ1HK6Ei8 j+DWvQ== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt30n0urv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:47 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82f6b0a7164so13377091b3a.0 for ; Mon, 27 Apr 2026 03:05:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284347; x=1777889147; 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=Wb+wm/cLwP/WBqYx2Nf6KkKRUt/3+Z4N4ijVUgwR4bXHAoAl/geKofdrtsnaoleMbJ Fr6dV6yyFmJ64XQoBm61LNNhdGjvwgFc+ovq59TALN3ZXQbfozilwhg5e4gfEXQw/TDr ALaFml11BILOAHHzoA88letLAwYzzW45zkDRAV2oyDtZELJ30bpt4Jw1Dj0neBeKEq1G C0lOPeUiGA1ab35uiku/iPkLTa/7C1PvDxfTabOuhZ7HT3xvYRdc3VzhZdHhm9HARsS0 TzZAoH/FhItxkotjQ3RpJXNva+ohRdmZYsiIb0oWqNhSJum5jYhldhLQ/Am2/IwWP5jy 3+BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284347; x=1777889147; 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=OXOe5Oe2+wgb0Wbj8mM/jeKQV+bOU1HZbrJ73Dt33TdHKO0m2JNTD8A0ry6jRvmCPD GtTsNKOwNx2NymygGgfvV1CijOUNHKABagddx82m6ZOj/+SE2zeUwy2tr000beVoDY2e Pyz+DwfV1nLy9aarmb/uOS9Ax9EBonR7OwGG243jgHr+p8ilVacYkTdC1b1Doedm0+9I QULezLdr1JDdw4cr4Lnqsz9BzAft09PsUsnHpMwiNvk0XkNyj/gPRSrmsn/kyLC+1zMp TqaIqJ9SP6p6o9+QMOEOK88hhOSqQMAOi4uz7z3MT0VroMM6RC/Wappu/gu76XkAdjWl QK5Q== X-Forwarded-Encrypted: i=1; AFNElJ9NcWCsPwQddKlvTNRLKHFEB5p2GOb4P6LmxjIqbVTvr7UM4aQsEGE+b8rwizBPMW2ljUnxi+SV/nDXgeU=@vger.kernel.org X-Gm-Message-State: AOJu0YyJQB1wj+6/Bc1QSOyiRpCArW98WPXW07yJcnILuGcOyPQbOUBm gbPXxcvdyE3C3PYyENMmiXEWf6lEAo+Io8ecJGokhAREB/xEhr9J2WNtBEl1wlF67YjUtq3HriX 2Ix5nm61vdeoNacI5pAZrxUGT/IpT2Z5mBLBqTIdK5YN/Vc//bUFCv0xX5jR7UtJHDkY= X-Gm-Gg: AeBDieuSvt1oQYqdOQTtbGFLTJAdhNwCnkAKEeju0UwZqE+3LmtbvQ4Hh7opyhR8M9h uM153ARDBH7H5X8SVPnOYrO5V1c4Uhh0vR5UwA4CV+U1qpYbvbEo8NdrFjPk/xI8dmcvcrIkTIq tPvKMsh1y8/hUiEGFfDnP+hxN+wOp60ySLkTcm8tzF6cgaEX/Y0guK//BUs28YOHF4ZIaP7jUZw TN7u+TKOwnseCE1ejLNKZ/wsBZGiJoTe9PcPa+z7OcqW2jk1NEyXUMZZDeAFBKJfLJq9zXo/PkT iOruai7lX8GDj2PGPIdIk6JwzT7+RxIJ0vri8PJSlZjIVMkE5XxdvFqBg68QMzq7/B3O04ioyCS yiLXtZ21P4yDMEMR8BsfJY8kjIKJBP4BaLKj+9JWFFqO89LuOSx4Ob/j/WKMNe5tGhgQp74KU5J 3bdP1OJ8XoTf+Gz//ZXIJmeu7DNl9Ny2EJ4sNzcQglEXBa X-Received: by 2002:a05:6a00:bb84:b0:82f:776f:a78a with SMTP id d2e1a72fcca58-82f8c8c29b7mr43178183b3a.30.1777284346974; Mon, 27 Apr 2026 03:05:46 -0700 (PDT) X-Received: by 2002:a05:6a00:bb84:b0:82f:776f:a78a with SMTP id d2e1a72fcca58-82f8c8c29b7mr43178137b3a.30.1777284346499; Mon, 27 Apr 2026 03:05:46 -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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:46 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:55 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-4-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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=1777284317; l=1504; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=eCeG46QNcGH6Tou/jfnrUot8SRLcYov2KTKbb+oU9wQ=; b=R4pmf9MfiwAHnwpHq4Nh2RqUo50xBcnNU0DaN0m+FpJphfpbIE4Pa095E2cFbOQge2DxKYPt+ y66GYgeeuUxCYdPOomFmHI3WNimbhwS6xixfKHMlyGyvX5pyeRAE+aM X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNyBTYWx0ZWRfXz99Qhp+/TgRU cwgedziLm5Gl+sEryv18VX688pp75vo3AJZiBnCb4loAZH5LL1jnrcLX7PEEdDFcTVn/W7alWCu oENsfx4r7AljCVQWO1eqyVIy1OEKMY7kadw+3L+Yt8QShH1WqWLU5EjpytUoUfmtLLSjdQwow0q pJR/TfmcBANmwF089U9YTdC1C6E/Wn8szs3TcKOuMc2rchDCrIKFvckEj3g8re4GPMWCgI0yX1i nXp2xgbHh+Xzm0tnDLlBmZNcN8iWnM1IpSBe08CLCZx2BPDweEVFHLAExjoZzM4/1R9Yp/UGR0R i/tJb98k9Nx6g0R5E/bRWHCIaclgLyJ58dzQplUdwn4ypCiS3A1/hKsF+nYYAIvVoOiftrH7llG VTogFZjxG9p1Z6XrLgQMT9n67cxLRKSROQ4/Iipstpz2bBhGXNLP9+iH0XM3J7G2gogxodm6IgL 9X0v26b3gL0EiLZxZSA== X-Proofpoint-GUID: ho3U24QwTPTaHZMzmYvhr4OHShUgAXRL X-Authority-Analysis: v=2.4 cv=efANubEH c=1 sm=1 tr=0 ts=69ef34fb cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=gaXMZf0GDK_To7W6ZIUA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-ORIG-GUID: ho3U24QwTPTaHZMzmYvhr4OHShUgAXRL 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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 spamscore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270107 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 17 07:22:46 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 9AF033B6BF4 for ; Mon, 27 Apr 2026 10:05:54 +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=1777284355; cv=none; b=gDrKddtLUrT7XFAho2X35LI5TBNMDS54rL27xNWtlq/5cygPn3vvYwxdlVMOM3MKbNi2ewHvZpSQuOGiS2LiebGPcHEPlhYQ5KbRxbIJk8zbkObEobGVAihptYyEWANriuW+t56SzfzOCnLWc7Dtm4lh7ASrWFmRq6+cMij5skQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284355; c=relaxed/simple; bh=+E4tZfMlel36uwMhdXbJ+b8CyJSQUpcuObNpX2cZjj0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EnwLOVobH00nSkCMRO29tWfTxhPplg9UFw1lcAP97TCXpHniBD2MFGU8NSU5ceOlCNgHRpVbYGQ/xm+xnplcQPI6UK3CPWqlfZyKHoUXUVlGEUIga902JLu4wcrmjr36fKNGgwagRsTyuU6b7Gzg4brqHCaBta1D94meb28qfCQ= 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=BT3aUdX6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e+5hwD5l; 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="BT3aUdX6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e+5hwD5l" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63R8TThO862117 for ; Mon, 27 Apr 2026 10:05:53 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=BT3aUdX64cbdVWP7 JOZkuEd8UF2XXrH8pF0AxWqQ20nWvVUQI63vVGT1kbcvPgjuHZCJowoUehvZ9oh+ 1qDQD9iHtPg/mBSSRsfjfYzBmNl9naIcJIH8xDCoP7m9zhg8S6CWMgFPnZPLOJud RrMMYV+dYZMxb/ox1OS5d13wVFMO6OlD77jiiJ4YCKhWVHXCFznORlw8mtG3yCw1 OLUQ+s+ZUW4sR66oh4pHPHJp9WDJm8vFCm8vCDr8Pc4z7eWV60uMdXKX9ZGAKkVI GpOs4eTjzYEqxb6vZn/mCaDFdWgNTf5NDQ0pGv5wpUtICDBRIR3G8oLVzTl+Z0Ph XduikQ== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4drnpw5ksj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:53 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c70ea91bfe1so5086698a12.1 for ; Mon, 27 Apr 2026 03:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284353; x=1777889153; 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=e+5hwD5lgsL5steTkh+1XjBj76V4k92ZywC/FASZXV9rjwUSUTC5hbEOfcHjjNqoC5 Tx/P9/wMcTinmek1s9J7OF2iH1iM7nTk5yI3A3s6SE1ibpD0Z3GOeuIOgcOSyDV7FfDa rY+HrYXNoSKcVOE80nWw5nwfdemjBQV9VpJf5RiMoF0+D8+jL6VrD97Ixktqt+B6/Znn PA+TbymCqxExrGSM8lNAhEQaryR6zoCJDwR3VTQ7lYdFL9EgqziO6WJP+d/vYjyUjQpw PmUwrFxqplBg69blvKzT2BtECXNg5cYkHSg2GObRjyqh7if1EZWZnE/Se+Js9s8ezsSw +tLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284353; x=1777889153; 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=ioDyGVWjstsmdpl4VDgt5sQ5mPKsMCLR0ANcy5OrZERF3fJE0eg/OytBhkKAM8JKcs Lz/oeFV5FuA7K4hvGTVOuqBEi+BlAZGz2aubo2KZWwEMVQtHwUQB4JmTTLSFQ0PFhOkb RnK5HrhEkNlo7Xa0QAvY30gxBQWKW5biUO4FU0H0AeKyU8ucfE3CBK5w1CIugD1dVZFl dLQqgt2I9M6Ec+k/pyA5QsGo0/LrEC+7Qt2Eq57LsOPJMCsqLaZelLqZzploaLnxRYdB 7LuJp2/Vp8DJQIgH1m2xExeCB91CBxHtboM0f9fYTvWX8NOd0le3NZRWpi4elx1DcVXj iLXQ== X-Forwarded-Encrypted: i=1; AFNElJ8YWllcVrJF76mQzU97SZx8ONMJRxSOqRNZFS7TQst6nzeINu7EkQQnuSVa0JypvmL/dgj05CXAo7+Lxg8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+Xyw2OZfoZVIlJT2Nf/RAKNHCPt1X0xcAjyLS6JjcIBJhtX9o aXzMDh6c7bZyCpakPfSANAvIovzRnhnMfooS0f9RIvASapWeHCkdZ8mVSnG1mDSIN8Lk4EEgEnc rfzl/+BT459bfAgBZx9BZIciERiJpPOCbr1w5RZDAIKWAOEO2RLDXhkHIo7CV/SXRABM= X-Gm-Gg: AeBDievedylLMiENFsEG7aUDMhKgdbWGipPtvymRthCuENG211534vtrIL5rQdnpThW W42VNR571KqB+8GPNFbFnWXzHDpqOUxLfS09Eb0h2qoyuIE1lWokGIkYCMuCfqw+ltSB7kiiSkR u5uScRYm5Py70vut2PIzn3vCNjaMom9wDGQhRUwDJbCGsY6Xj2igiKDMn5rE5H0rf4qRXh5UZr2 DE0BrEbBKp1F0Iitrk7za+wj19D9jvcc6aoesyWyFiTalvACke48Blt8th2s9b5RdjRn57Br8Pe ou6a5WQBM1HN8kBOlOY6Ysg6MGmnHyGGDlFpgP6ybzPVPMPxnNuNRaucnBL6shaa5lB6fEMGn6H rB+2oCtu1sujWJ9DG6Q2vaFa5Oy6MnbkGljKvhHNyc/tZLiXDMMqC9GLo/5ZIKYJmBhCq3lB5VH 71XEDM00fogR0hbmf1NOEet7LrMaxff/d6M/jHUrVQOzaI X-Received: by 2002:a05:6a00:ae10:b0:82f:9300:cc44 with SMTP id d2e1a72fcca58-82f9300d8d3mr37687511b3a.8.1777284352597; Mon, 27 Apr 2026 03:05:52 -0700 (PDT) X-Received: by 2002:a05:6a00:ae10:b0:82f:9300:cc44 with SMTP id d2e1a72fcca58-82f9300d8d3mr37687487b3a.8.1777284352136; Mon, 27 Apr 2026 03:05:52 -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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:51 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:56 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-5-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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=1777284317; l=1627; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=v3xhy4TAVQzMuukJtx0ZPXFz4/C8vTU0vk3Dukc5Tss=; b=G20t0T6hMFcwFiB3AZXoLPzJUgYeyg6CKBcrlYdOUOKBo9Cu4kmaAD32H+Lj4JcIu3JWSqVOz xHb0FA5D2tKA6Tqiu/8D2JbXshlA731qqzunTq1XB2xyNkRJQndu7wE X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNSBTYWx0ZWRfX6t2uWaObzh0q hry77Crt7QZ6MFcffVDgidCMl9LhwVjfWsjHXZZ8RiGjlCRZFfOZdYxeEKNwlR4a5Pp7q131JWI kmMN11sN8cYUO4gVaUfyRn4qdgFVb7I1peJA2olptsTG+5nrUIihLQ32P20BWR/W62I2g3p/JYY vzRXbUaK7xSYzsUZBhI/xG6euNa2Nzk6azIpPaTJb67IOl4JD14qOyuvQgiuc2VLhc7Fh8OI37V msQxjK/BV1KIwHZSTOqU4NyoWFA70Rh8ZvdNKsQUBbckmpJdGiuADjTklbatbOaG6ifUkuXDO16 97h9nPXVNPUK8qcc0DyrBwNlywefVK4srxDVEhQkqiiwmUCquWxgbj2Trg2cYQJXfLESgZkm/H6 z5oDrJCtxUDM/zgD4FGZBvhckK9YTaxDKFPHJ+peR/ekfjTZYmAB/BjbRjPYrTJxM375vs8Ov0S 17TwN2z+zEqhh+8MSHQ== X-Proofpoint-ORIG-GUID: b8PRM2DJ9HDvVHbQarXmMz5eIeakahNe X-Authority-Analysis: v=2.4 cv=RaGgzVtv c=1 sm=1 tr=0 ts=69ef3501 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=um1wo07bdbQtbc5qrgwA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: b8PRM2DJ9HDvVHbQarXmMz5eIeakahNe 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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 spamscore=0 clxscore=1015 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270105 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 17 07:22:46 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 ACEBE3B52EA for ; Mon, 27 Apr 2026 10:05:58 +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=1777284359; cv=none; b=YNprgNuelk1Noc+khOjG7FV/H1xpeA0MSApIWKKeKvIlufGVh9IIjVFRBSLvm3MqM3Xt79vvS6TH/fUgjO94pOpM0lsKDQPSrqz78KBTNSEmmLEJRPf+kCd+3TjVLswUOaC82Pghpd0CuIoe218emL1RU1pjveM/Os+6m3AhTCw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777284359; c=relaxed/simple; bh=p8M74poezKvw740VE4mBcYJSH1dA6AFy8jlB9yXNq+E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G7aCR2ZGtLOrQ7v9kJ2He9OEx/wLGcXfk12I8p207Fo0TMCKCgbjW/eYijWHJ8h+ogwaGCEVulQM+2J1sP1Xo6rllHHxGAk3oKqFsq1ZyzHCKGX9YD3/s2BsN4wiF3EriLqJIS0H+1Ur40hC/ayDUwfu5q7rPUulqnRixV+iP5c= 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=PKRkAvsh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QFAI4wDf; 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="PKRkAvsh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QFAI4wDf" 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 63R8kS1T3962085 for ; Mon, 27 Apr 2026 10:05:58 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= 5OAC9CanJ/+2Zt8Fy1VZoGxcKLS/SkOBP6k3HJ1PIPg=; b=PKRkAvshUAiu6Ds3 aTvEBHlxyA84HxwK/1h6/TGJeOPtWhk5Cbl5AS9dKvpN7m0JZQJFeEhdAug+mNXN L+g/fOlyO/Hz1K9ALJZnKRtqdmYxskHfKhNmrVk/zycXyINUgPKvX5T8X/n2KdaB IHtiDFc4uiYLabT8Jz0I9PYCM25xpjCsIaCHZbkHvNmeafq5uxvTN+rlZYrb4bo6 ViRHr5TNUIaz6tqnGfOx7ZpHcrhq746w3fQsgQMPZJUt+c7YFB+v9k7LNR765AEj lVSZTp6y3XSMCS+J5huwR9cbu+DQ4DefbriJ1807qd8HjqNwjLVtLe03J28254au FzYJZg== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dt4k30j0v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 27 Apr 2026 10:05:58 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-82f6b0a7164so13377388b3a.0 for ; Mon, 27 Apr 2026 03:05:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777284357; x=1777889157; 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=5OAC9CanJ/+2Zt8Fy1VZoGxcKLS/SkOBP6k3HJ1PIPg=; b=QFAI4wDfKqAxNYha5ZZ5l+oUkv9AtA5wpGeF2TLj+x8kNSrD+JhN2b5Tf+2ZpZrqUp 5OD9IGTzvOFizBWN+lOgI+TYbU7ew+RkOZBBVLtv78pRdqZOXl5cfFC40dCQt5Sfas+T bQtx5+mEOMpLwErXLV6XYVQt/rJJsxBzTd/XQHXp3So+jAORbNT0g1vdDdwzazQ1Kzml NKavLXp2c1hi0ic6cVKqQ4hpFEIYozBqanPUKI75GF3ChVm1X7MSWyv8+peWhMH4WHGA 28mdvpy+DTtZZkEZFYPLO+FYcL6TtYpyog1rDSqGeUmGxRaepUfOZ1d1U4yKVCsVuSxb G7iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777284357; x=1777889157; 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=5OAC9CanJ/+2Zt8Fy1VZoGxcKLS/SkOBP6k3HJ1PIPg=; b=rz8Gps8kcI9du2jzHHz7WymiqGaKC2eBbbzq1xsGR7LL9D1EImm14UEKiQK7ZBHDAc 7akanPQYtef5cooiKfnHfmpvcWGZ53XrfguoK9t+nVZt06rncyeFyAYLJu094B931gFX ChJwI1Nx0BRCv0YW0RlxO6Ia19h9KlxGic7RT7D4u+9UTJtUNQkMppnJP/lJv55x6upt JyaBCXttBiXdL9AKoX7PXey3rCONanEjf44GoTSY/+zIqJpxlxkn3z3j5pybkmozdrEB Kdp+XmyhLj5jeX6s4PQAWb7y6VGtDtoNawk74PJRR4wQGdW9j1Ud3Q3qL51FH9N0/dlG 9W8g== X-Forwarded-Encrypted: i=1; AFNElJ/8OXxAszGQzSe9PKn4YjqkC1oD46yqP7sduYG1rZ0eYjlSVakH2b/UHWlhHK3uTVf1wvrBfkwGilpmK0g=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+hLNb8MoEgV2vQNL/H6x7NVoBMbjEYNwUpbTp5PQzGula80aZ RuY9ZLzvtgGPX9jSZQfbePirWSm9Y5O6DQdmTY0ihTMLG+T9OY1vf68oiweILUkHQBcS53M90l9 LPXXYbfJXqCNVuGW6wgbu+s9X2LxpL7UIPeKPKRgYneQwOHlMlpjf/mFNc1A1TOvJ6y8= X-Gm-Gg: AeBDiescRMaRWimyLx9XjBhwKBwnH35OwAwszUATGe7UuZvS8uNsYUB2PdxaHiRYM6Z va4d1bBvJukBmFkCdtR7Y3Rj1X42h49VgIAe3FQCbJtMdtbJTgCqodVhrc4FO5PZ3YPgAMLQ9Rq PdqnDsug/eQ9WkiH8B2epsczxvbNGl2Hb3vF26r5Jeo2RvQzdey1n8AgvCNbtOO7J/sC2sXWDrE SPDqZNiURBfHtRbEvBHP3sa8UtsmmljK/uOcXVBSPM7ZkaZ4+26dAtnlr16FJ80jxIPUl7fPWWI 6vP4IRKXMX43iLYmtt90cuu1mAKmzTIbkplbh/4DsUPFeKq5JhNUDyqRgoWrFHncelqwsEg/DQ2 KP5eP+f1izcUG/0ydtnJ2I7LGRYJYoEHxhIUzVf39CPfaOUIZvtNbyh3m3/AVk1FxW754oHhSpH qFeGhGe2R7WnY/Lua7ssOqINJMYzGL59afOMxSQo5XnIYs X-Received: by 2002:a05:6a00:800d:b0:82c:9223:cc95 with SMTP id d2e1a72fcca58-82f8c7db124mr43091190b3a.1.1777284357521; Mon, 27 Apr 2026 03:05:57 -0700 (PDT) X-Received: by 2002:a05:6a00:800d:b0:82c:9223:cc95 with SMTP id d2e1a72fcca58-82f8c7db124mr43091148b3a.1.1777284357113; Mon, 27 Apr 2026 03:05:57 -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 d2e1a72fcca58-82f8ec24850sm33004008b3a.60.2026.04.27.03.05.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2026 03:05:56 -0700 (PDT) From: Anvesh Jain P Date: Mon, 27 Apr 2026 15:34:57 +0530 Subject: [PATCH v8 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: <20260427-add-driver-for-ec-v8-6-702f74e495f7@oss.qualcomm.com> References: <20260427-add-driver-for-ec-v8-0-702f74e495f7@oss.qualcomm.com> In-Reply-To: <20260427-add-driver-for-ec-v8-0-702f74e495f7@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 X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1777284317; l=724; i=anvesh.p@oss.qualcomm.com; s=20260313; h=from:subject:message-id; bh=p8M74poezKvw740VE4mBcYJSH1dA6AFy8jlB9yXNq+E=; b=oMYB96eaiECDwGVUkuL+RkA5FxwlIxcIEjxby1XZC7sAyRDeIMSdYgkAQQDFMeIqIrLa7diBj AnHEYtv3xdXBGdy66tkLqg8i76OtRYzo8tM/kn7RJ9SH2tEW983X+MT X-Developer-Key: i=anvesh.p@oss.qualcomm.com; a=ed25519; pk=8o9EG7gkPe2Er9y9UVCx8MTdcFCwU8Pa54hBZPuduXE= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI3MDEwNyBTYWx0ZWRfXyW4rsLtpbXzu 1gWLuKEd5WoG3qCL03nUbzVHuz68EYkSDQdfzJObcLkm2vpsKgwLTF6wwwEOJJBLQbS97PjO7Un XOxvGVGCZ04sFjbZsuBMnT0RWsNs3yCYN2ekTAibGkzfXC5te7im15dhg3RT+6F70VxVRHcXLH5 jU9FDkqfqAwSX7r2NDXSLmhf5ovzGflEpSpkTN1y5kYYpj3AksVk1x3jlUVwyc6hWtqWby/JCKM kpkg9FpCZhp0CG5mihGTvKUEhqdP10DlAa/llaDLqtyJ8JMiTj+zLXzcnTtXh/HlkaWP+77JIq7 s7Tz9PrmprDEQcXkYVTdoxjXeJcEqhpbQX3Y6mR+ezbujh+F/OoSu3I0qegk1T4Jar1I6nyyzjZ PYPxp+lt0Nl9qEnHHyZYHfWnWFH3I8n5DT8vz3Uo5dYz408J6e+qnsFDl05zYklLy4CWsKPPy52 kcoPCTfyIYGpsVJQXcw== X-Authority-Analysis: v=2.4 cv=a7QAM0SF c=1 sm=1 tr=0 ts=69ef3506 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=p1egL3lCMx1E4hDV5aEA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-GUID: 1jsegRxynkapePG7559Ar1o5ivQ6LKjx X-Proofpoint-ORIG-GUID: 1jsegRxynkapePG7559Ar1o5ivQ6LKjx 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-04-27_03,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604270107 Enable EC_QCOM_HAMOA as a module to support the embedded controller found on Qualcomm CRD reference devices such as Hamoa and Glymur. Signed-off-by: Anvesh Jain P Reviewed-by: Dmitry Baryshkov Reviewed-by: Pankaj Patil --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index dd1ac01ee29b..c48fce61d738 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1440,6 +1440,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_RK808=3Dy CONFIG_COMMON_CLK_SCMI=3Dy CONFIG_COMMON_CLK_SCPI=3Dy --=20 2.34.1