From nobody Mon Sep 28 18:37:36 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 A11FA44163E for ; Tue, 18 Aug 2026 13:38:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787060314; cv=none; b=Qtlt5lH74SNjFMo+icIrAtHDnD3Hcp28xqQyJPbJVbIn0TQ0962qNSsI8hqQAsLp4Bt+aqZC3OZcoqQYrZ1wJcfgX+m1WssDLWOPdbLg/DDjIzqJRofz4ldmiVX4BL7rjIYNOCLe26jWn/GbWiDEBtAoRRvwEOH3l/s9G326CaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787060314; c=relaxed/simple; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DXq9SatS6Ot7wlAYQJNX5kjM56bhPwJWx1f9pqEjhRZSfPGCt71OkcFX+SUIQVKtmcp3G622pmBHPyloEqLr1awJElAg1LqCr95kZApE98/PQXtrQfvKRzxsJX4yo90Q5E6WiSGfgggeKsrJgRiQRW+YninVVLYQWeYdl3/KTLM= 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=c/KP/kKc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XaMX9ZTS; 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="c/KP/kKc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XaMX9ZTS" 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 67IDQkmb1977283 for ; Tue, 18 Aug 2026 13:38:29 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=c/KP/kKcpknNp/QK IKzuUqrKIaaNAY8cE0TDaRSbumBAD8/y1kf3lWQLU4DMm3NEmNV22ObUHN2ugfT2 Aye3vCcJHl+3/DqbF7arZ7NmE7aOikF5vIPCLy8IIi2CgkI70Pq0gCm32dF4HIqJ 8YEJ4vUgIPyG4g6FVKBZ740xa2ruAXuTI19T/aWRJcFctuaOJ1OFiCqDyVKspEZW SlIjYE4F7oSZ2Iju4DPuCs3HjxiAGzy2Yi2VkGUHXKv6AlMokgwxVVBzVQwwnEyq PiJo4s0kLO+Sij0pAqP2uYbLFNhuufXsY0FKOTOChm1800pwX4AmfyF6zHwXS9mv KeFRiQ== Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g4dcn2vq4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 18 Aug 2026 13:38:29 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-6b0e7370be1so1118631eaf.0 for ; Tue, 18 Aug 2026 06:38:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787060308; x=1787665108; 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=XaMX9ZTS/xhy1/P72Hj6EaYv1zh3I7Fdjn5Rn9XhjpxlVVOWRlw+XLwj8JsF0HUM1k tTELvpRLmjJMsZ09y5rvmPTRfFypoTmjvWftqltMQ+UT+7GANvdCV6qIkouwA+C9euuT pFCtzcrz1OY+MhARNTr7VYsNfwBoE1btNyBMiRf/TXdq7M8AJ3iGbL/bpv51mzx2534D 7aszapXv735WQJ0KoYrNr+eWk2zeDt5S8pq5MDINl/sVNGFBZ928jhZiqTk1/IhKQ5Zr nSj1oYMnDLzqpqxmF9F9bctXkl3FtvJacFz8EBUT3cvkvzTzcY9rIyIUhX2EDhkTQ4yH v3cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787060308; x=1787665108; 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=WMRHs+q8XNqWEmGJ1GOOe+AMQrT8apgunWja/uyXXTcLK62Sy4hnLvt1VS+EfnNv+8 dLzTHh9YoUfu2jXtvCFdep9PJg3MRPYceum4IDnT4lkEEpn3uf4/vpXG3EjQjo4c1SXB hI+1BRetpdBWccyC4rPZnGaShu5034HFhO+8bnvEJlgCibepsMmvjpbnz8OViPRytYiG dIaJstFqdPWps0SvRS5ne314p+8M7abeqO+ERZBB+JjW9nCdemRxmyet1WrLM7oQZDfn G+D3VQk2mIp+dl0vt4LU2747MULwdpxLFbIxa65wM4Er/pNhZkwsGVMwTsuWbK1PmcPQ 1M0g== X-Forwarded-Encrypted: i=1; AHgh+Ro/R8WdLvPcQdAHz6Yw/QU02GeqGgeGT7FABq5loaGc3yXphBqS8RPJdE8hsY+mMP4J5CrqDfVU69EMck8=@vger.kernel.org X-Gm-Message-State: AOJu0YxLF62n2AjNlaHOBgR20duri5wl+ZtxyEFrIdyP9Uo6VJ4bGhfB /wkl6II7mR+f8Euifk4WOhZbB+0IaKW9WB1ftp8XmJsV5YU6VibocxF9Y4aYu6KWXFPyLsSaiot u/QZnIY2+8CXeO1VwO9K46aJ07NgN56lMImZOuk4gDAgfXB7fAmHbYyLRtsB+Wi3hxvo= X-Gm-Gg: AR+sD12N62qRpM/0zycOvTKHhd2apOiYX/1WujAQQIRHX4XBsbxu+CLr4YtPriFFy8m f891NV6IacTbRqEqV5OvvoJSEKQKE6y8UG6JJNe9DqhV6821F88MxpR/WS51VuOIh/NmKYg/ueh YJ5XHHX77hUlfkQrZf6TD5vwM+3VsmaHDhHvM6WcCOjr2/AkNu7QJARcPUlc/H2BbGqOOKbWnc/ CWBwqqHGmTSzlVnwp2/9fQkOyuDNvGnJETefgDCyjtC2hsziIeTH/eNicSsHXbL9LeAcKK1DOtu N1/ovL2yoJ7eTk3IcZlgbuNuDzCD8FbSB/ZMUQyAsFRQjfP93l+X1x4/z3gnKRh7GQoGqH5EdKt 1bd7nJ+xds7boRV56a+Em0pJVu25SYUcBbw== X-Received: by 2002:a05:6820:56c2:b0:6b1:2ac9:a9ef with SMTP id 006d021491bc7-6b12ac9d91dmr2027107eaf.1.1787060308501; Tue, 18 Aug 2026 06:38:28 -0700 (PDT) X-Received: by 2002:a05:6820:56c2:b0:6b1:2ac9:a9ef with SMTP id 006d021491bc7-6b12ac9d91dmr2027060eaf.1.1787060308035; Tue, 18 Aug 2026 06:38:28 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-45f22aea368sm3232956fac.5.2026.08.18.06.38.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Aug 2026 06:38:27 -0700 (PDT) From: Praveen Talari Date: Tue, 18 Aug 2026 19:08:10 +0530 Subject: [PATCH v3 1/2] spi: dt-bindings: 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: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-1-e1c9e0dabbda@oss.qualcomm.com> References: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-0-e1c9e0dabbda@oss.qualcomm.com> In-Reply-To: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-0-e1c9e0dabbda@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=1787060297; l=2206; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; b=+RfIboZ6AQXsKOzLAQuW7H+UHiOiN/W0hk/Va8G/kwNY7uBMbbuHOeKUmbGxrj3QzRK1Om1aQ h4SFLmlIKcdB3Yj6ChOxYrser1T90jnnfDzj6p2lpquvTZt3VXl686H X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-ORIG-GUID: HPI3n4sxKF0psgLLTPYZ_4BM4_Ybo3L- X-Authority-Analysis: v=2.4 cv=Gs5yPE1C c=1 sm=1 tr=0 ts=6a846055 cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=esOR2qCunaKGNcCvXUQA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 X-Proofpoint-GUID: HPI3n4sxKF0psgLLTPYZ_4BM4_Ybo3L- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDEwMCBTYWx0ZWRfX30sSBSCLsUwU 6M7rBfpwwv0VouTIKWzJaWVsa7efqxyn2bxLAGp2LQf8BTkXJmkzKylezIiQ36WW1v21XltSAPo 5z+bHGglU71/B+ghy1Fy/myH39/j+UlR7yxkMtyQQtYk/U+f/SJ0Vf1HNix0RjIyHpwGN9FWxGO T2+mbn7G7B2QlS9ywu9Ua2WllBTxytTxG/n3jIsKN3Xo6UFXiZfleBHb29WlZFFN4TR17gYN4NZ dE7O/FgB4XaVj9umhhSY4wr49Z2D3A9rc5RE/n+LGKhStaJLSoi+gxrMiBSMrjX5nW5rf2xd7D/ slHxozGijfg4vB1vU3/+sHcRtcP21A+6sDCm7G1ZxfLeNqMDJWrLw8Zho/GIYDk4ggyHZgkCVzI cJAVt1MbQX3NUERJterxY3JyDS1cobfCj6VFuEKztUROyE0c2WZq0jAPv41oiNP2vt2Y8Vs/l1+ RrQeqRdGmoNlTHLpNVQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDEwMCBTYWx0ZWRfX81sXJ+T8+P3y ypTuLQ8Qs/CP4Tbx/G0K0TqP1jlP8H41gWBPU5XPaH4+zMMBf6YNXZrPxvAxbcUrbiz7LGXDyHE 28s5oE+uxiJEre86szWT4bLvXjJoUOI= 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-18_02,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 phishscore=0 adultscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180100 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 18:37:36 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 2E05044236B for ; Tue, 18 Aug 2026 13:38:36 +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=1787060320; cv=none; b=YEbMVW/8P8yGmR0uzPOiFsxkdetbph0GV+OIKrGKpBgqV+67KEcChuhoL9nOJDrkbF1h0aSymRVDiSgUBzK0qZ0gETXXorOobw4NK9b0mVaRqa5NWq6+XpLW/IjhHdoE0ZfEtZEWSOrLD21rBs59ek7TSJE5t+OPSSVr2a6ah5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787060320; c=relaxed/simple; bh=BG2HAs+2vxpsLD28GCWp9ALRBE+J16kkoe8+bOtWqJg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iSgqp42nLQBCiyeYzMqbENF3OqZlLRjN4tM4gjtn8WhF7DL6zTtEskH2QBawvbiAVpWDSEP0hdRqE/2cWujVOAQwOhcisMXRoNVnuGumr41ewqnhDWzzc4NRAS4IlyhPsw+zKG9MFBm5df8m1ZNuqtYJivaVWzAZjhCFjY7a9xQ= 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=DLFEbHl/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L4j77krp; 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="DLFEbHl/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L4j77krp" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67IDQwnf1250911 for ; Tue, 18 Aug 2026 13:38:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oqQF95WlbW/wBv08Y8MEkU2oObqRblIP8p9ow3LJ+JU=; b=DLFEbHl/Dhrnjuf3 LLCt40JxjAznO62eVT61mvnV8SueW5dlCSmIDKcBmxZfTViPT+xWiInSbQ6ab76e ULti1SXY3Y/l5dzY8YCn0ZaahWdJb/lhJ1SbwOxyj0Ter6Eet6hoyf+bar4uLmJ8 sbvnAzASuYVXCw05fZUnBEw23T33WBQ7j/lMYIfzVjiHVjE3Awm2kZhXkbIk745D NKEAh7E8VNP+rtbNJqcPCDBMWafQ+QbMEXHZUpg5eih0p+lQjYu1pXCFHC9mYThs HhGd7D5mI/9cHXwk9+OK/bbEF0i5M+Yyw6UWC+d0oaBgZrocmHKLs/VFptZ1dC94 cyVnCQ== Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g4g2p2912-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 18 Aug 2026 13:38:34 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-4a7de733fa9so6432904b6e.3 for ; Tue, 18 Aug 2026 06:38:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787060314; x=1787665114; 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=oqQF95WlbW/wBv08Y8MEkU2oObqRblIP8p9ow3LJ+JU=; b=L4j77krpYcWQEgXcWTh+b9XweVeBsSzB7PRK6rgCDwzd8cIO1X2J77wM/2t3w/TvD3 2DSbYrsanB8ec+14+ozxNL1DtscyGt49kb0rJ4kLBqh4scMsKs0mWmCWpWe2xEDoclUS bH6T5bnIhuyud4GOputgU868s6sbItTivCiOYuaF3UJhtZUSih4nX9yParw6Q4s8pD9q VOk4n136s8j72Y77PeD85a3en6yM5HECXT6SplgFMtPkFGsk7f0wkTUtSrv5UEf5nbk/ hrOk/DJEYa2MsY7loapodTb/hlb3B5ky0fnkK0hVDOJoRssdlK9M+5FFG9rV7YTM2FAF RqCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787060314; x=1787665114; 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=oqQF95WlbW/wBv08Y8MEkU2oObqRblIP8p9ow3LJ+JU=; b=rzQcFZvaGgFcawZh3s+N44rh2zcYjsBiXt15pp0bgpVT66qLEk+u6Id106EdlkMMrx fvXAGlN0uRqZ0x7uO8P8hixqlm0y0Kthj2jX56TdVaKwr5FcHgUvuG6FstAkKY87wjpE vtA6qIVr64Y5vhfSUq+4EInY8mH5e+xOksphqtVuxAfGvs/HHwLfUMLc4bVSTLb00wwm tPfu/k10Rturz7Ll+O9OHI64egVaFutctyblkX38RGSBTb4+ZdLzN3aBH+r85MKlBIZB EmLJjEVoSefyFWiinmkUGeF6TKl8zC9PNN9qnjZmZcQoYRg/2NMr77oVSLnywuAd/TwL GnrQ== X-Forwarded-Encrypted: i=1; AHgh+Ro3Y6dLURkU6daRJeLtJQVnwcqxclIJg30/l9xaP9gTj8YBiEiXl13oWyDMs4vatdoYq5t79iMUgtchEHk=@vger.kernel.org X-Gm-Message-State: AOJu0Yz16dR/loPVXV6WFu5jYtb3E5LZFlakSNxFax283Pj/5GOmQJSw 8wvffS6//a2lWijS6QU25b51LE2GS3qzKleniDaKTTamC2AiE5CMfOecxFN0WJXfC0MFIfsS9gt z+5gOU0XLJpZsCgCGvQWkV553PrP2xL006t4QYlqcam6XXQtObykETji3vqQlfdXyXS0= X-Gm-Gg: AR+sD10rvVlCYEBlRPD8+ozz3EaXR2hJwA8mm2OWWLsYdvOlfKi4OV6SN49VcHde9yk WXiO87KQVgDbqLdfjCJcz+HekJGrSkFEqJArgyp+upGpdUH8Odjz452ijOCbVbVMILvddB5CjEJ PRUbO1+/XPKpR74xC2ZnIXLAA+9r5Uiv8dzBj3NkyPufkwZPrG3clzxUGStSaDfKmySPvWwV8TO 0RhiVfwQnuSWVfcYeF8h247AX9L9oyisKRjFVnX8Ff4LHcHBJlxHq+sXx3F+GGrvqPFETUeRvHv v0E2vtfaAnfAhN8q4Csg978GQlC+ZEV/Qp9ggEK5vdzFIUPy5YTwbwfyM/pkuqMxl1PXy4qD8r7 Vpi9Izs3J5at1UDyg+i7MnvQeJdlTTng3FQ== X-Received: by 2002:a05:6808:4fe0:b0:489:93ff:9ea0 with SMTP id 5614622812f47-4b240fa99d4mr34038130b6e.2.1787060314017; Tue, 18 Aug 2026 06:38:34 -0700 (PDT) X-Received: by 2002:a05:6808:4fe0:b0:489:93ff:9ea0 with SMTP id 5614622812f47-4b240fa99d4mr34038009b6e.2.1787060313452; Tue, 18 Aug 2026 06:38:33 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-45f22aea368sm3232956fac.5.2026.08.18.06.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Aug 2026 06:38:33 -0700 (PDT) From: Praveen Talari Date: Tue, 18 Aug 2026 19:08:11 +0530 Subject: [PATCH v3 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: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-2-e1c9e0dabbda@oss.qualcomm.com> References: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-0-e1c9e0dabbda@oss.qualcomm.com> In-Reply-To: <20260818-use_gpio_to_notify_master_of_spi_target_activity-v3-0-e1c9e0dabbda@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=1787060297; l=3924; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=BG2HAs+2vxpsLD28GCWp9ALRBE+J16kkoe8+bOtWqJg=; b=um2Py9tYx5SurUsctZdhicd/AgopT7VEvseEsZ9J2HkAE+t8ehMwCdpb8ayQ/grCWPLnH5bKK AmwJ+ZFIonmDNH+9E/ILjU4ZWh9QnNcaFPjcIRkxUIv9JkLdOc1brs+ X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-GUID: 239DybhSiGsMlHKIFlpKTsbft7KXII9m X-Proofpoint-Spam-Info: AW1haW4tMjYwODE4MDEwMCBTYWx0ZWRfX/NONrfmq+Cc1 l3dCDRm40+ZX/oyDi4xlFywsaHNcZFfsDx1VUNlvCsaihBUZXNkIru9hLw4X2BFnVJaJ1wrALpW jjYgyBIptumgVbo0S73QryKULb1G4os= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE4MDEwMCBTYWx0ZWRfXyzVgwDYYqCPd vVoWj8L34NhCW5NmIStHJ8LWpnD9BIcD1cgTSFlxPHK53lnip96nT/CGv23NFRifhLl8FBDGIUo rYYMMR4AfWGwyXu9hOdR3VbBiqxPnPJOgYZ7zvmFMhadW9F5JoFiLRoY3NmKP39wHjDyMDpS6Gs RoeAD8LnjPeXvZOAje2OrCukqLDvM5CFM7ifBcOIJ2z/JPUVunwOYq21VmrTjKHmr6GbanTBHpo a9W7E1nyO0h1mfkSqSJ+6tiJKHFJhwzGbC+Bt4XcNopxbAV3bhkorWSBETV+TV4UiHKNXXivQJS 02mztjVfby6K/Heb9eEEnTENYT6M6kBXY4NTbFGXC0Bds0j7kwPVXGq3vzybKAi4B6f81k602FJ Usy4X7hb4Qfch5MUQMItSVnioVDGlDK0lI3s4LsHKWSE57hdM9M5bI6KuEAFSUqe3eDNWHRZJ4D U44W7w3siPlTj1TehRQ== X-Proofpoint-ORIG-GUID: 239DybhSiGsMlHKIFlpKTsbft7KXII9m X-Authority-Analysis: v=2.4 cv=bfRbluPB c=1 sm=1 tr=0 ts=6a84605a cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=Fo9EMwYq_bmgDG0ZVhAA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 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-18_02,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 malwarescore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608180100 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 6c57f8309a3b..bbe040383d53 100644 --- a/drivers/spi/spi-geni-qcom.c +++ b/drivers/spi/spi-geni-qcom.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -115,6 +116,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) @@ -173,6 +175,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); @@ -938,8 +943,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); @@ -981,6 +990,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 @@ -1027,6 +1038,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 @@ -1131,8 +1144,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