From nobody Mon Sep 28 21:11:22 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 EF2E644A3E6 for ; Mon, 17 Aug 2026 16:17:11 +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=1786983436; cv=none; b=rXkgvp8+WnIWQUTCihkknnXL/Bwy1DxayXYbmAuASjjz3mJJzsMjzKDq1pE5QoNS3m/EDNB+LwRIL3kVQp2VzWLwSYRmCW/eR0n5NwB/OzU/zcX8JbiHRXajbNV4NVeAZcAF8DQUb0KMg3FTBPjmRw+S+kyeXsA7N1XkPq97emg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786983436; c=relaxed/simple; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gciSj4wph7PYteQObCFmaXn0gtfRkoEYP/MQiGDL7wdvlFKBJBx9LBH8HZDWZBVZU1aYDTtCXTdccgwL5UQkLSTgKX6aBmgww11WDq34kMKvMMG/bF1yjWuHCFXar8xy7dQBih1HYu7T3cSRl13tU+ppSmQ91s61j8mfoopR+OU= 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=FZ+QxQNH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QFQwXzfK; 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="FZ+QxQNH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QFQwXzfK" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67HFYf3D2730452 for ; Mon, 17 Aug 2026 16:17:10 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= SY8+egivx5hMX+E10IaKzHuFd6+P6fa7OvrZXy9RXk4=; b=FZ+QxQNHLu7OCNL3 47xvSPAl3abugJ2GEZ4KqNWE8Jci1oGbxq/4923CRq/fjOXQyaxll+PjYPLpREhK 1lKQVZcgh+V0mCTQwmtPCTipqReOZ0Zb9IkTOWFHii7gryFGt7Jpu0V2Xx2Jw8to AjfboH0eA3dqViE8TXc0JJPCiFz4e+y/iov0vcFXSZEqZ9dZ7tIDuVqRUI/Bcg5c xDu8YDkjNsN+N84Iuzadmi/CLyvgC58hqipz9MRnfnZEYMvAta+ZZwKzXOu4fg6c xdXg+MYjGzbN9WfKduYvsVr3891EadQk2uxWsFGbe7+f1EjcKrERGaZv4GDF5rHW Am3lkw== 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 4g3txyasxk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 16:17:09 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-8485d853b08so5680440b3a.1 for ; Mon, 17 Aug 2026 09:17:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786983429; x=1787588229; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SY8+egivx5hMX+E10IaKzHuFd6+P6fa7OvrZXy9RXk4=; b=QFQwXzfKDZfEh+1eHJSHvHmPbXv8201HwPTsJRoduyXzyGQO3fLCi+SYXg1acLCefa XoibY0Tp1jZwPeMyACL2B1Af3U+4vKVi49lNYbkNLxqmcWMt8ZjpysXYasrVA5E4HedG S9JcfYbE0joCSEFYfH0p4zdxexekaSeDL3Zx3miMFepsZYhz1OGF4KUTiwTaCmc5+00S E8bmyOv6ARfm2owHDvWEMpETeIpfh7YvZIswCv7eEwzi3jkO1exlsJhUk9d37Jk6+K0x 0gIAS3X1gIDD7/xK/jfwjm9kCRTprC6tAHyXg4y6BksPtDtgrMSMjTY+rHIXqrTUraEg XDog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786983429; x=1787588229; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SY8+egivx5hMX+E10IaKzHuFd6+P6fa7OvrZXy9RXk4=; b=aqoIwkdahdiU/R9c65z/DqATmfk2PAuIb/MyCVh2rhq0yYWJ2ztuWIEO0GG4aymnnY GLrExS+e8XU81FWeKEy6mUSntS0Wk1I/Gfnqp1lwWaP8ZcI0VRIZ8Mgi8k1yViyfDJbg aVcsSTGrMdr4CPBvq1yDVyk7QK36FQjaHLvSp0ANLojCC43+n3R9C63qTZIhjN6EzdkZ gEpwObBx1b4IiTGogl+AVsgdZQwitAgEQfjZpNAJEMLvurJX1VkbOlpEsEoBjYJvYqlM qa8otnh8w6o0DUwsF/PuGxGdxSLjVdtntOMUsxgJWJbxxmLjicSkPMvqgz1bPTijagrn uOjw== X-Forwarded-Encrypted: i=1; AHgh+RqBMcwGjSQuBNxMW2tElo3FGdP8hlvFDE+OHG7Er8NGUhOy412tqT9Zc/Tw9sTlLrM3rDAg+e0SOBJ/8W8=@vger.kernel.org X-Gm-Message-State: AOJu0YyPHOnUwG7IRYdNBF6OOKUFf0XxhtaTlVkDKkuj605j3+LakfJY FF95JzUywsul3CIeRgpK7ubEMUOJY3iQ3SikmcTuPFRgPiJXKt6bVwKH6MrkEpzftljU5QQu3zf k4mIbwAG7X07bSpDIueH3RGjkO7D8Bx5ZzAX7rcdrnC4OTBWZ3gTZj2VzfxYYX+itvJk= X-Gm-Gg: AR+sD12clVfv6F3kQoXldTbpcQ/wuRO+5oCwjHIKo5bdvbgR0nEUktkdnZqrxtVxZRv DFMfWi9NDxnu8cqGYR+uv0zB82iUtYD3zrJYVDGOF7HLI0HqT+Tz2W0UyeGtR6efRZASjIJzTuJ 9fhJFoc1f0YNUBDEQICz9gRXprWTVpuOrXMRmoLaH3b6KdGdaU0OdRi1YDarqqm+4RphLikWGPv BO9HggtkJOdqkcZ1XTOCbyx04h02mCrI9KjPSrgH4+FB21CR4o5UMeN57uuXyhGJydXbE8UVnpY HEAztNjrG6U7U1BntsBeiwFxVyaoVx/y4Fu9wieUl4xVKVXJ8MysWV//HdE6Ye1/xVhne5MeWo8 RCUVwpQbeYZsGXJ0idiPJrzBWQP9ELvFxgg== X-Received: by 2002:a05:6a00:847:b0:84f:a82e:d32f with SMTP id d2e1a72fcca58-851b8744335mr1604980b3a.3.1786983429254; Mon, 17 Aug 2026 09:17:09 -0700 (PDT) X-Received: by 2002:a05:6a00:847:b0:84f:a82e:d32f with SMTP id d2e1a72fcca58-851b8744335mr1604919b3a.3.1786983428592; Mon, 17 Aug 2026 09:17:08 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851b6fc0fd9sm563035b3a.45.2026.08.17.09.17.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 09:17:07 -0700 (PDT) From: Praveen Talari Date: Mon, 17 Aug 2026 21:46:52 +0530 Subject: [PATCH v2 1/2] dt-bindings: spi: qcom-geni: Document ready-gpios property 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: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-1-94d1eff3175f@oss.qualcomm.com> References: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-0-94d1eff3175f@oss.qualcomm.com> In-Reply-To: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-0-94d1eff3175f@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andy Gross , Bjorn Andersson Cc: chandana.chiluveru@oss.qualcomm.com, Krzysztof Kozlowski , linux-arm-msm@vger.kernel.org, linux-spi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786983418; l=2206; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; b=gqengJBy0r1j0QNKh9Clw7XfOJmXO+r2QXfhf4Dqb7Tpvm+ee3gD+35UfzCiPMMINDosDK7iB H/qzlIFSrjSDHB4FFiIJ7UD/po9eYpIiuKsUENM8XVwFGaJoimF6pyY X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDEyNSBTYWx0ZWRfX/qNcuvftgb5i 3v4lfo4o3z3sQ8ZrlxGn8U8iZvf9UI2AaSkuOVklwi78MmtAKt8yMS5Itet4DRUjxnBA9ZDTCvZ eYxg0TanJxVPJhFPCj41C7rcfrnGnfI= X-Authority-Analysis: v=2.4 cv=auGCzyZV c=1 sm=1 tr=0 ts=6a833405 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=esOR2qCunaKGNcCvXUQA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDEyNSBTYWx0ZWRfXykv66X1e8gnH sT1KCKlE/E8/TGiC4PiqWVAvZ+4i9fPDRy9rlO7hrCbmd6zOTp1BP0g4iDm10BWVX65+mmYqpzV G8AKQQ38L30tvLHM255sc8gDxjHWgW2s5Q6JDqIVRDnNjrwHjJXMFN8P+9jsWzlxZBFQPVjkqOJ S01wB4nDcxngu8HepQhPUe3Sfk++aLjPBCPftk3d60xHhfQWasU22JHCzjquapSU/R1WptJHER+ PGMm9M4mPXDAQoHDu0p+5sIONp7ySU860gS3dMknjTXJtEmME1HKCG0B8DX2nhPRHtyHMMuWlhl sA5rd4WD2qlGzZly5iKeqqap6pXUACaSBavpyJ2oLxW4RuvyD/9m/kMYMsXIsJQYchVryup/i4e McAGSvL0rv0C7sw0dNSaeDHMIHIrIPl/JCxS5VHuhg4DGLVAGqsgwNdDgZSJycDaZQAfIZX99pD aGUV+ZU8RMUP1xVazzg== X-Proofpoint-GUID: 3OBF2Ri2Rno_BAgzUv4xgzOq_a6O0u9t X-Proofpoint-ORIG-GUID: 3OBF2Ri2Rno_BAgzUv4xgzOq_a6O0u9t X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-17_02,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 adultscore=0 suspectscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170125 When operating in SPI target (slave) mode, the GENI SPI controller can use an external GPIO to notify the SPI master about the target's active state. Document the optional ready-gpios property for the qcom,spi-geni-qcom and qcom,sa8255p-geni-spi bindings, restricted to spi-slave nodes. Signed-off-by: Praveen Talari --- Documentation/devicetree/bindings/spi/qcom,sa8255p-geni-spi.yaml | 9 +++++= ++++ Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml | 9 +++++= ++++ 2 files changed, 18 insertions(+) diff --git a/Documentation/devicetree/bindings/spi/qcom,sa8255p-geni-spi.ya= ml b/Documentation/devicetree/bindings/spi/qcom,sa8255p-geni-spi.yaml index 6552303a4f52..33eddb395a0a 100644 --- a/Documentation/devicetree/bindings/spi/qcom,sa8255p-geni-spi.yaml +++ b/Documentation/devicetree/bindings/spi/qcom,sa8255p-geni-spi.yaml @@ -39,6 +39,12 @@ properties: - const: power - const: perf =20 + ready-gpios: + description: + GPIO used by the SPI target to notify the SPI master when it is + ready to service a transfer. Only applicable in target (slave) mode. + maxItems: 1 + required: - compatible - reg @@ -46,6 +52,9 @@ required: - power-domains - power-domain-names =20 +dependencies: + ready-gpios: [ spi-slave ] + allOf: - $ref: /schemas/spi/spi-controller.yaml# =20 diff --git a/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml = b/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml index edf399681d7a..8d1c78701657 100644 --- a/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml +++ b/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml @@ -67,6 +67,12 @@ properties: reg: maxItems: 1 =20 + ready-gpios: + description: + GPIO used by the SPI target to notify the SPI master when it is + ready to service a transfer. Only applicable in target (slave) mode. + maxItems: 1 + required: - compatible - clocks @@ -74,6 +80,9 @@ required: - interrupts - reg =20 +dependencies: + ready-gpios: [ spi-slave ] + unevaluatedProperties: false =20 examples: --=20 2.34.1 From nobody Mon Sep 28 21:11:22 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 F10F24477F6 for ; Mon, 17 Aug 2026 16:17:17 +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=1786983439; cv=none; b=sG/g7Zh48psXtl6dgYYJVWRXWXkd90pbgtmWn6jQ0EjWSBRIPt03OVQt9Pf2uvep7SuVDcVGUFdjLblGCY+h9+TQY7izdIzfn8vshnFQhMTgzgtVRgru5KfkunpvUC7nBeUyVCnISN1LnKKuhPlwQYKjMjWlyHEV9+d5sPQ2Dlg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786983439; c=relaxed/simple; bh=q6ZulUkewvTtweiAHcMjYBKr7bdgqkM5bp4/CsEC1bs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hCOzFVVM3vZYsi3QMFRaCJI9FOcltjS2ThqkAiPcna5JfaN/h5+oqOkibHMeyjlTfd93JIn1PtQ5cQ18nPtHTZny6Kc9xREhMKc8CV09Dcq1Ws8JoO+NidnJ1mQruEGO8knoYZu0CP+IkguQa4OseIEVJWulll7BUDpnM6o6yvE= 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=gdPynoD5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BsdRUdlM; 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="gdPynoD5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BsdRUdlM" 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 67HFYisn2328151 for ; Mon, 17 Aug 2026 16:17:15 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= KIalLVWFAC34M1QLdTBho6qDE8wma2UgEvTyc9q/JKY=; b=gdPynoD5V9dpNaz8 ILwPFd5f1Ram6AmoteHzh8gFUCsK1QOnykji8KZXE098vd12IqHQENA+1BtZ04QB 6p+CB+38rGCBoF4vWOakAPSuqPmk9iAjyJwjSuKE5n28D/rlft0MHDV/wAX0SbjK JmnUiKG4T8n3zGTgg65CAyMYjo8SI/i8Ub7IHFilri0fCuoBnLrL/LIlqMcdEUhF c+eO+kQB2VpWh5A6OltUbfImBVOYvBsFWXOAxu6JMVWsnZujKzlI63lY9hzueuUe 9wWD/FddODVY0mt8DNPXMqJdlpLP3JuNYUE9TgrfXxwrFdCF4iGWKbvJgQrXQAXc bnbEMQ== 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 4g3xb1j04p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 17 Aug 2026 16:17:15 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-cbee6bb8408so4325347a12.3 for ; Mon, 17 Aug 2026 09:17:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786983434; x=1787588234; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=KIalLVWFAC34M1QLdTBho6qDE8wma2UgEvTyc9q/JKY=; b=BsdRUdlMOM858xUfDs00smLOCGKOmtcL8XyVyfiABVmDWunp2ubK7GeeHbpMy5knMo OOlULs1NItsFNbL7x2GZP8vF+pmwlC+8MvTTinHwYrJ5xIQQS0x3MZ0E8R0KxUOhs0rh p3EZmve+OoScJFCah5MbQw2BQMA+214gIyzHvMCGdkb5A2IGVZUkBYvxEX0wc8VMLJKn 9upMlZBsy79J7Uw6oYpCE7Xo8KlbrFsAhYHTG8CskfIpi0EFjMElVF9VdEm6ibPsj4PM 4rq0JRjdCgPN+I9XHGVW8Gu2LXvy1rCD7d2J6Ij9nCVylbKW5s2AW1LsSdjaCxcvxV+G SmtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786983434; x=1787588234; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=KIalLVWFAC34M1QLdTBho6qDE8wma2UgEvTyc9q/JKY=; b=M2cQP98pSyqrY84ET2zoYuWtxx6yleB7Pb9dfLm8UrxI7QSh6sP86KHrdwaeu7Olvq KJ2vEaaEuvjJ+SaX6Ws29szuVGw08ev36HPZjjjfM97CLzEK04K8Np7c1/9vQWchjViZ DR0+qtkz2H9op6Q34clyj++4YRzjjdZWwVeSggiOlnBRO52PABJdpP3IwkfYEqIiQTjU QTFZmOSY3RM87rxb/4qmCaoykGbbkc9Guyx7U1d6du2h3+NQ1FQyFf5dPOB8lx1HuOcF XG9wPWTnjtfbaKL69/oVBbYMgYnGIbhtYPT7p5WB1kv3MOXQqkodKUByiab+K1fJjbPd fOhQ== X-Forwarded-Encrypted: i=1; AHgh+RpEJkgcwVVlJKslvih2LW6DiiOlVYE2LLJrSUK8SE1K66/Lca8O1OwnMX3L1w1qn4+H/37ypNrt56t2rDQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yzm0zeXy7s8nyllsT/rZ6T1M3obadToa+WdWAt+yvRb6RvTaQF0 FJi/VmyNz4QrbWEHg7/6WYlLHzDx0rXYxlKJghz4FhmQ6nEyMLQXEE5G9jsHaaxZCwkW5HHAMv5 ukmC/6NaoTv1TFWOudq5sg1nwHO0UaDHIA5fwDLiQVVEVP6JMizX4uNv9dddj7lH0/R8= X-Gm-Gg: AR+sD12A2I+zP2I7LocoOFDQqjxyHFnCbysYY1ixvN9FvAZvRSO65uGBMYvP6ThbCm1 1coKGVExl/vDkGh5aUAJspLBxeMKZsB2coNcgi+aTWw4nWfhccuaXhtm9swqdWGe+FOXgyZiduW zZRxCP0E99XTL9fbZL1UWwYRYQ1Rj91OFQBKJ0vP/DJmIkOkKB/StdQVVfXewiEx9rIlGjDIrtj TB46v3uQ31SpXG1f3OfCH5giC5nC1d3nlTddlsRzDoUKkmQWZvNO/jEPHtnYJfnMNkGapWev2I6 Exc5QEh7AkxIbxoUInkwoH4ef+UAIFj2DQQe18M1AD90gSkwhag8VN2+0ROIOjBS/nT/xbS8E3d Wnz6ZPS6/tZ77nUm2On3W78jbCaKgrA0TQQ== X-Received: by 2002:a05:6a00:2308:b0:84a:60a4:2651 with SMTP id d2e1a72fcca58-84fddfa84f0mr24531228b3a.6.1786983434304; Mon, 17 Aug 2026 09:17:14 -0700 (PDT) X-Received: by 2002:a05:6a00:2308:b0:84a:60a4:2651 with SMTP id d2e1a72fcca58-84fddfa84f0mr24531167b3a.6.1786983433738; Mon, 17 Aug 2026 09:17:13 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-851b6fc0fd9sm563035b3a.45.2026.08.17.09.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 09:17:13 -0700 (PDT) From: Praveen Talari Date: Mon, 17 Aug 2026 21:46:53 +0530 Subject: [PATCH v2 2/2] spi: qcom-geni: Use GPIO to notify master of SPI target activity 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: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-2-94d1eff3175f@oss.qualcomm.com> References: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-0-94d1eff3175f@oss.qualcomm.com> In-Reply-To: <20260817-use_gpio_to_notify_master_of_spi_target_activity-v2-0-94d1eff3175f@oss.qualcomm.com> To: konrad.dybcio@oss.qualcomm.com, Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andy Gross , Bjorn Andersson Cc: chandana.chiluveru@oss.qualcomm.com, Krzysztof Kozlowski , linux-arm-msm@vger.kernel.org, linux-spi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Praveen Talari X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786983418; l=3922; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=q6ZulUkewvTtweiAHcMjYBKr7bdgqkM5bp4/CsEC1bs=; b=eF12KjYjAf7knaJPobteGNtq2TN+VdAiVkpmrhYSEJ4rhxzhmLy6OVkTuQB/J7QwIhRfxftQI boctXHS872jAGMyppYkYthvIsAydoPxlsx8zv41N2fcS16DVcPAMozP X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Authority-Analysis: v=2.4 cv=Ua9hjqSN c=1 sm=1 tr=0 ts=6a83340b cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=Fo9EMwYq_bmgDG0ZVhAA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-GUID: NSVP6fPlaavFHLdW5CAa0IFIjz6VoJ7p X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDEyNSBTYWx0ZWRfXyygbx/pHNd5Y Bgj1s1TYzxrgIrzmu4T7/eIizbCqlZryWnsAa2LMFUjDPthEZUsTroQ+bMUKgfn9e14/L/qczox 8N5p1QkSGbt8gGuubaAyNSONUGjc3TTc8HnosWSIkL8M9TQj/nyD4g0uvjVxoBKiQ9S9fqBPOkA 9bs4qkHj71kVgnUyMGoVkkg8LkxmYFz3H3OyCWc0Zd5A7M5Uh+HlxMYe9q4ziEote1dHKpNIXeG Or0TV1OAEwcExohjIcb/sPe3pFhAkDOyFufTrVfCWEH9scC47+mywENTwcB/v+dx01fgTax9Cv4 g+zXhBLKrPEZGvE/zDSMqMpsSb0RKOcSfEz7PcjgxDYJ5/iS0NWzO+V1uc6jXXOIuuHFth8Y3m7 taxzvsrOiQiz3gVv/mLYlEgccK7GCN8zdQc+FX2s2x8M6Nxbbcw79ox94mpTv1xoVLpkjYrffZ5 xHtYhG+xeAaDAGZqflQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDEyNSBTYWx0ZWRfX3h4iqpN9Ofwd fY1lNjacViWFBj/OEGEEFNWooEFtTZ+jgVkfcS3uDrAijjBYIPH2/T+F6ir3CzNGJbYTYy1mNV2 kaiZ56U5bLvQmBw8kxKMo/2uXZp76qo= X-Proofpoint-ORIG-GUID: NSVP6fPlaavFHLdW5CAa0IFIjz6VoJ7p X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-17_02,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170125 When operating in SPI target mode, the GENI controller relies on an external GPIO to notify the SPI master about the target's active state. Add support for an optional ready GPIO that is asserted when a target transfer begins and deasserted when the transfer completes, is aborted, or hits a timeout. This allows the target to explicitly signal its availability to the master and ensures the GPIO is released in all error and completion paths, preventing the master from observing a stale or incorrect target-ready indication. The ready GPIO is intentionally made optional and is requested only when target mode is enabled. This preserves existing behaviour for systems that do not require the signal and avoids regressions on deployed platforms where the GPIO is already controlled from userspace. Targets without a ready GPIO continue to operate unchanged by using devm_gpiod_get_index_optional(). Signed-off-by: Praveen Talari --- drivers/spi/spi-geni-qcom.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c index d262206ed663..5ebbeac70382 100644 --- a/drivers/spi/spi-geni-qcom.c +++ b/drivers/spi/spi-geni-qcom.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -113,6 +114,7 @@ struct spi_geni_master { struct dma_chan *rx; int cur_xfer_mode; const struct geni_spi_desc *dev_data; + struct gpio_desc *target_gpio; }; =20 static void spi_slv_setup(struct spi_geni_master *mas) @@ -171,6 +173,9 @@ static void handle_se_timeout(struct spi_controller *sp= i) xfer =3D mas->cur_xfer; mas->cur_xfer =3D NULL; =20 + if (spi->target && mas->target_gpio) + gpiod_set_value(mas->target_gpio, 0); + /* The controller doesn't support the Cancel commnand in target mode */ if (!spi->target) { reinit_completion(&mas->cancel_done); @@ -928,8 +933,12 @@ static int spi_geni_transfer_one(struct spi_controller= *spi, if (mas->cur_xfer_mode =3D=3D GENI_SE_FIFO || mas->cur_xfer_mode =3D=3D G= ENI_SE_DMA) { ret =3D setup_se_xfer(xfer, mas, slv->mode, spi); /* SPI framework expects +ve ret code to wait for transfer complete */ - if (!ret) + if (!ret) { + if (spi->target && mas->target_gpio) + gpiod_set_value(mas->target_gpio, 1); ret =3D 1; + } + return ret; } return setup_gsi_xfer(xfer, mas, slv, spi); @@ -969,6 +978,8 @@ static irqreturn_t geni_spi_isr(int irq, void *data) if (mas->cur_xfer) { spi_finalize_current_transfer(spi); mas->cur_xfer =3D NULL; + if (spi->target && mas->target_gpio) + gpiod_set_value(mas->target_gpio, 0); /* * If this happens, then a CMD_DONE came before all the * Tx buffer bytes were sent out. This is unusual, log @@ -1012,6 +1023,8 @@ static irqreturn_t geni_spi_isr(int irq, void *data) if (!mas->tx_rem_bytes && !mas->rx_rem_bytes && xfer) { spi_finalize_current_transfer(spi); mas->cur_xfer =3D NULL; + if (spi->target && mas->target_gpio) + gpiod_set_value(mas->target_gpio, 0); } } =20 @@ -1116,8 +1129,16 @@ static int spi_geni_probe(struct platform_device *pd= ev) init_completion(&mas->rx_reset_done); spin_lock_init(&mas->lock); =20 - if (spi->target) + if (spi->target) { spi->target_abort =3D spi_geni_target_abort; + mas->target_gpio =3D devm_gpiod_get_index_optional(dev, "ready", 0, + GPIOD_OUT_LOW); + if (IS_ERR(mas->target_gpio)) { + dev_err(dev, "Failed to request GPIO: %ld\n", + PTR_ERR(mas->target_gpio)); + mas->target_gpio =3D NULL; + } + } =20 pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_set_autosuspend_delay(&pdev->dev, 250); --=20 2.34.1