From nobody Mon Sep 28 08:08:51 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 3EA9B43E063 for ; Mon, 24 Aug 2026 14:26:19 +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=1787581580; cv=none; b=pygfQXao8tUKcZfdyjxXxGIZwfcwnKgnvaX57Hu3xPhTSA8eUJishumWofA2R/vEm0q/MftcGFjMQ0+v0CIeGA/3I5JRgOMI0ihSK1WG7uBbF5t92tqQtcHvc0/5x6RUrjGKvz4QcaNiPmWYh8jAw/aywrpaZ2S6sDpCdNEi4Wk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787581580; c=relaxed/simple; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZosFe5GZbVdqMXqQ3grhbBVGvmmtZFB2nJs8BvtMUAexSd/0ZQZyec4gHAafRKupgx8p+cy3mINqdqQSetde/xK2LJz9/mxtHb6PhTA9IwunrnC/qIOKgg2tXbppcV++f+bEkFRsaJIWmAyUvAe7JPsSiubkrxsJGFZpywB28rI= 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=IPC3Zrek; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PsW4F1I9; 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="IPC3Zrek"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PsW4F1I9" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67OCv3mb1880684 for ; Mon, 24 Aug 2026 14:26:18 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=IPC3ZrekBD71qPf+ T+Vwn0+FgmJ/OCYOiMc/BpIumdrPFNwEr8Q8ij5FoDdaIH1ozRW1/pnHQBdQOHvW FKKvnYCBrkZvByRoYUGq+46/MMoUjOxAMLXfEvGdOQiBUpXtNIfeVkRa3Y5cidz3 LMlnzXvxPcxg3pGcFhcmC5NAtu02T+iaMjlG+1xB9qtq/kuoB5ZN2FLf6jgSUn9s zNTsgwkkPZzmPrH53NmLu+0Jy91N3vEpAC+fkoabHW3amh6uxC1bwkxaV4J/CV5D 02QssjEQpxK+yQS5gbsbJ4mtPx+vfmTPk2KLY8FIiA2mVHUVqnLPhpRbc5bUXrFn Yjlbnw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g8huf1n8s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 24 Aug 2026 14:26:17 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cd01a14e81so47309465ad.1 for ; Mon, 24 Aug 2026 07:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787581577; x=1788186377; 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=PsW4F1I9MZx4HyUMKuV+dqk1vfhg5SZSQZ2uyfoX0VA9Mup1+HBXaEl4wZVch+dr3Z s5l1JV9WnsAd6bribAoXk+un7qUYvd+r8HtfrFfzg3lqXJexGW4OFS99WByb9DSUUZZ4 LumOYTaPOuj7WgBqf3N3vAR8AN6hSPy1hZ5sbFqFu/bCJqqRtlzuzGhp1l2ZaARI/Rbp Iufm4srtYM77ScGpWRfRFN5RvlMdaUWgZtMppf+G0uwij81dya0dllFRhaS/0YVzWutn D1qRN9tA5wo9lKfMZLjhR6agP4g9OSWDn/0AoXozO28g8Dr2Q6uGmZZFSEGGQwkuxKVH p0fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787581577; x=1788186377; 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=f7nxqiwX0u41Qp0nHAQ6KvnN+/34bfrXRgdlrdqGZnqTysFSwFEcYLj/npsH0LpvX/ mLlFDX8x+xIC2BNUHBwTZjGWzBPjS//iD800vlPuB/MlAQwmkwNgLXHN/Se5i11XOlnY XcPEI3dpMUki3MhquEk/j3uPra9pf5IQ9D9+ZJVPIj4RUxLUQnmnckLWH+ipNnpuBedS Ccf5PV/2GxoPk3Hgp6Vc7iyObTxLdNFmKgJDkyQ12rrtv75qTf7j87Qalt38NEMrg0nt 9h9Tl9XbMT7kAkezmpM4FM/XSHTdB3lhwjVepG4RYAAdWVcWT+eeG2GgC0oEkxRRdWak s/MQ== X-Forwarded-Encrypted: i=1; AHgh+Rpm6EPYyfXpAFxibsHFvffNkLtadgItxTzt0iXnjGGA4M3BALRfDfF5zAdI6phAKg7Sk9zG+fHIH9zjcE8=@vger.kernel.org X-Gm-Message-State: AFuF++n0pw0OIpzoGsJslfzRCyBBXWBo3B5ShTqy/rkJgSlEQdnK/8kR V6Z1NW/xlCPOTPstMzbh39FvkpK15jr5fA3k568l2caHTDeHkTNy/VxW8WaC3uRjxlBN0Pdn4Ft sUV/4z5kTu08LZJCSEbDH/yw54w+2YIa5Umlw4z1saf0VkAAu8KHvZQS+1iv2HN35oh1r9FP4pQ Q= X-Gm-Gg: AR+sD115pr6u4gB/taLKxQwrD7S+94dy8j2TRJCIJ7Jje/OdDP1mdZWqKICsvfMVj7q 4hNl+kADO2alQpFoLc92RD1jj7RmkRq/Xq3Mr123e4hhKgRU7TkbJ5EZSyR/iYtLnTy/a/IdPBm 3q8NY9llSLRj5uIrUuED0/ZZo6cKjC5dffgyfnFRGQ5NHVb7EOCD2Yw2tsJEEZ6zCK5+MXW3vvJ +4KR/QybxKExCWbCLZvMKfpzvjLSNnsIIquvxq1/I3pmDuca48ZwmrRNYxyvgoGyiBp2EuJk03K 9G+Glq3/q6DU0P+88LPDPzOyGhRfJAHTo+ofUDYTT9UGhrHgDvbrPbVTt0tFCAEIUv509Nwxi0r ZAjDenZ/EbZtUThUTihYAWEqtK3BEkCynaA== X-Received: by 2002:a17:903:1670:b0:2d0:8b28:517c with SMTP id d9443c01a7336-2d670b61a51mr341735625ad.3.1787581576883; Mon, 24 Aug 2026 07:26:16 -0700 (PDT) X-Received: by 2002:a17:903:1670:b0:2d0:8b28:517c with SMTP id d9443c01a7336-2d670b61a51mr341734425ad.3.1787581576307; Mon, 24 Aug 2026 07:26:16 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d676761fbcsm18523275ad.4.2026.08.24.07.26.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 07:26:16 -0700 (PDT) From: Praveen Talari Date: Mon, 24 Aug 2026 19:55:59 +0530 Subject: [PATCH v4 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: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-1-fde2ebf043db@oss.qualcomm.com> References: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-0-fde2ebf043db@oss.qualcomm.com> In-Reply-To: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-0-fde2ebf043db@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=1787581567; l=2206; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=07fWoDKWlhLp+o+voMIwf61zTNZp2ZtvKXItlluoCmk=; b=j/qELHbdgK66Sh9pwZDF8rqgN9s6kBB+zMziKi6AIGAwHmMhn+hwXfK/chaNvH2eN+VUcb8KU vfUNcn6KoxtBmKO43KNQynaJFvmZGBa7MG2ElOPalofb8/JOlqSIDtv X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Info: AW1haW4tMjYwODI0MDEyMSBTYWx0ZWRfXwyqxEdWOqIvF 3NX3TGyuM53TvHVsRAv8vMQkuLex8Ux90MvRCTXzhOaK/J3K2a16BxfcQKbUJmZPymHXcOgyNkU UXfdOqIxpKzKVJZ8TZ9A1zDbHMX+aAI= X-Authority-Analysis: v=2.4 cv=Wac8rUhX c=1 sm=1 tr=0 ts=6a8c5489 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=esOR2qCunaKGNcCvXUQA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: YCm6V0Hjq44IEOUAQ4xrNIpYFdrXjC71 X-Proofpoint-GUID: YCm6V0Hjq44IEOUAQ4xrNIpYFdrXjC71 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI0MDEyMSBTYWx0ZWRfXwi0L46J/OUnL +cxJpx2h0NPqRqgBckp8rdYsj+8kDYroXnQANt5g65vIMhcHc3X4dwuqjmtDrSk2Idmlwyfsfnu OMY6rrTMtGH6w649p7Si/lLFRU5FrDvxwa/x4E0G15RZ2RBs2940OGAKqv6CNCqwjdcWi/sLwjg eGPhkRh18CfkkEdt1eFnCvtZnGG67NVolBiRQvPrrAIv5U/0nEI3dXO63VWWRpott1TAJM8aP/n AxMSU1lhEsptn2JjsxjRzuyRTNj3PD6gbssCtIFjB3NEE6h/JKlcZZcBi6ICPB/iAGBV/7Hr5xN DQtJfj19+tiw99KDl4WG9A+ZNkZ3gGxES5WBbsNC375pHy5Qonpu91jIAoli6D/sDcG9AYuc2I5 yusYzCQ/ceeu8CUXTWUNlb/IP9j9TuvjaKgW3Qyro5P0PKIuzVPRgoN4EfdBTeB3aaE9ggaBVh7 Ux8i5LDncgLy2JAPVvA== 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-24_04,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608240121 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 Reviewed-by: Krzysztof Kozlowski --- 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 08:08:51 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 557D943F088 for ; Mon, 24 Aug 2026 14:26:23 +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=1787581584; cv=none; b=BgEfXRtr1JRe/+GTWGBuOq/u3xez6acdby/MnXFl5Th1Xm+gAuPkWtAuxudxBX9Sm57KXyvajKIeMA+5g8MbHWq5ZLxWdf7H85hOEfA+mm9q1lrEjV57BxcstwHL92iyd0ABWotMGjAYegelGgKkN2lUfLRoiNg2PJBFK4FbegU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787581584; c=relaxed/simple; bh=UvVHpzmYAfm8x8s9r5dn96M9ZLyoJz4Am9wFhLKObB4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s4fDLxg6KaDEKDF+/KYc9Egs2n067lA/8ab2LM+tcRCjOJDvvjd5E40ygy9LMLIdYF3W4Mq3sOAQYU73dRbuCAnvsAcPcaGDt5GTv76bKTJc+b13iP18ksrn9tOBhqKLspEUcVtRq1SBOK7IUQU3QvQUfM7sABdvAywomx/e5SY= 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=TZ5w8YL7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BFJp21TF; 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="TZ5w8YL7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BFJp21TF" 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 67OCuxSv2583592 for ; Mon, 24 Aug 2026 14:26:22 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= 3SReanLla1WlrfhYe7C5Vi18U84iOx3ldphBDpFUirk=; b=TZ5w8YL7tZ9D4XNX Z0avjLn3CoGWJCm9YJIX1Ud4RHpsOKrYTOxHpgq6uMR4tN/h3NhJeZI44iqD0Fhr KP9VGI1+gRlBoFtEOzVJAwjVuICUbiD/JODsHTOemIXREBeLhoe61Ny/phWGU574 USrlXlTXl6CJCy756HBk1abakKjx7QUaybi2JAXUO/YT6VpBttUws6r3lHKsR9eA oMJQ9+LIJVwtVgaMenj2NgOW+zuKK2VPo93fPYm9yo2bMMjXy/1z3wjh08o/dvxL tRnBi8RXv6jOHnZsMzztUbfWBZ9ftWRUi7FUzOj+rDNw3IrZJJHiCoWVXu/RtCZG Lnwy/w== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g8hbthsw0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 24 Aug 2026 14:26:22 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2d63c48886bso62683905ad.0 for ; Mon, 24 Aug 2026 07:26:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787581582; x=1788186382; 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=3SReanLla1WlrfhYe7C5Vi18U84iOx3ldphBDpFUirk=; b=BFJp21TFwoHhS23B+Xvpf3p5BSL74/eG8zBrmiR4VRsJs5yqqhBU1dxQnniQN6nTTb vcOd5PEnWLi3C/puuJMIFZEgQ45rAQ1pJ0rf5GMLYJGcMZ+TFLNc0TLn9k43H2vgg1pz PMnvBZP+PNx7IG9yqDnRglVSUiziFEC0mrmJcEg0AVoXWuCKdXWIA+BrDSqQhj6cHc4i RChlgQjQUou9ax4KXM8UYMpYXjFjw+wfiDoYngyXw6eWHulEl8uFYiyTY6GBPAjZM/TS JDoCteDiS5Op5F16EGauFIgpQtInLwAuf3jvQg3bb3JYxsxiilUpP0PZze2z6x968VZ3 FJJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787581582; x=1788186382; 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=3SReanLla1WlrfhYe7C5Vi18U84iOx3ldphBDpFUirk=; b=K1oghf75EKrRpALJrT1E0bT409E+wsq2Srf2ZnfgbPJgGQpueHWTKwta7JnMjBqu+m DhTbRAD8bswMHX408/kmlLeEX+sC8a9fxolMSmiU2KnQuSopJoGv6RaczGUcvAWSU4Dr r2gOFixJ4GBI3sHtMo80nI172VMLYX/KXVYH3nQyE49dXnHzEVa7u9s2oDskJNUUFEof Y7f08mzVDShmTxpFIGOfKq/A2a/DWcn7dZ3c4R2ZF19PeYuBhJvAvqKCVDGnP1c7DEmh xz6tnINM64NY1q+A4VI8QDBaxxFM/bMYrhng0WApVXL512eylL+HkufjMeU1A3eukGnX HRkg== X-Forwarded-Encrypted: i=1; AHgh+RpYTaWdFRHink3CJVuDuCJOg8IYSvNthpRTTs2ELztYfvxFI675A2MajNmxur7DDUWBde1P3xKNWRnV9ko=@vger.kernel.org X-Gm-Message-State: AFuF++nRwaGSoxF8e/yfiAKEDYGVLQZlr+eLGjVMU8KOaeHhyMbk4ufz +zi0fXnDu8D+txDmxGfcty9nBNiwwwyGlPlPkKTghPxl7fOEXYKhOrwxDGsLxE1R6mT2nFdfhHl s33bC9CP6qZiCJiZ1mN+6EfuAE3Rig1jCfgJ11q6Wi5t1gdV+OGWvF0HaM/CxoqaWTa8= X-Gm-Gg: AR+sD13AyfROwWMDPMKFzKNO1+Ea0VsppKvx4sfoQ5l6KYExrmcCLQK+VkG/Wxmujw/ UZw+ARs3Pb6CGdFfHTRSI+OBoKY9KaO+aYftFp2l3CNvGNURBPgW6kTdsEj3v9/VZnhpYOFfIK7 bjp5cNPvp8f+TvfpgE7PUcdMQn70h7sLharhdPRojL5eLs6ntuVLjS7CQBsPG/ObrlpC88ju9j7 A8zcjDzRTecGwQiKijvcSKS3FQt21DTsd5Sn4uqhukHmmCR25Op7RQ2t7I96KYGnJ4WnaSrs6D6 4RKg66NYuZZIv7NE+/dn/njvxL1NE+RScTo7tOKgNYKsejgVB2nUEA6b6+/tPLgWZ8hc4IlcYOr 2f3ZriPZO+CCYKbzjhKWZ4CAYiycie/AE8g== X-Received: by 2002:a17:903:b10:b0:2d5:cc73:c744 with SMTP id d9443c01a7336-2d64aa24c1cmr511930655ad.0.1787581581533; Mon, 24 Aug 2026 07:26:21 -0700 (PDT) X-Received: by 2002:a17:903:b10:b0:2d5:cc73:c744 with SMTP id d9443c01a7336-2d64aa24c1cmr511929125ad.0.1787581580922; Mon, 24 Aug 2026 07:26:20 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d676761fbcsm18523275ad.4.2026.08.24.07.26.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 07:26:20 -0700 (PDT) From: Praveen Talari Date: Mon, 24 Aug 2026 19:56:00 +0530 Subject: [PATCH v4 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: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-2-fde2ebf043db@oss.qualcomm.com> References: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-0-fde2ebf043db@oss.qualcomm.com> In-Reply-To: <20260824-use_gpio_to_notify_master_of_spi_target_activity-v4-0-fde2ebf043db@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=1787581567; l=3820; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=UvVHpzmYAfm8x8s9r5dn96M9ZLyoJz4Am9wFhLKObB4=; b=D+LF41ff00aEPftNbkzyMj7eBA5Wwwnv7ov7txMg4VGd1h+0I14kFKGrS1/XwCGh99RlKPvG2 1MthrE1hihrDxrIDIBlrydaX5Dbi8vNn/r4al0kbsjNxo7TN+4IeWSi X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI0MDEyMSBTYWx0ZWRfXzHUl8GGRu4vb uQBYuqRvdnBUi/sQj0siKq5OAY8EeZg+h+ttRjuCMMYROTtbt8/6NJMFy5UVBVIqsH0g8taP22k CJLbIV8jPYd7fwkpGuRDv67IQkxP/1ZUPrmtEab291lS1m/qjCdxewpQuuMpec4CqxqLwQx9fZy fKZWDxwx9r/RCEIiGqicaIev/I88GrGrngIvHmdODgHV2SrzWYY2LKWhfJH7WxvbTf+pOhABwgl Pb4Ag8bpKS89eX7DH9eTSZ2+a2C9wtB49psm8kgRIEA5Je1m+XTCHj1Mel93+PFNwpLVSSFCc+S 5PLGESyF+XnGj+91ZjGC/JAFWjBmBPMlmiq74RtU2IDX2AEBumaFFoI8XyJ4cXd6jzLt02BB2Mu WYeOddN8ywit67Am9ZMGfMPKJJkUsX3t3rP2BWnhz5nefQF5j8iNVAc94JIiAYULPhAcUxsfeEK hN3Kf5QPo0SKUShw+yw== X-Authority-Analysis: v=2.4 cv=JL0LdcKb c=1 sm=1 tr=0 ts=6a8c548e cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODI0MDEyMSBTYWx0ZWRfX1Egbb7oCEn/w +VZQHKhzIXUldleIxevk6xj5HrNygDuleJwhIvoLmZHxlo177LU4vISEGgmYpN3Z9pyK/gFzZTJ sivIBOwB0qUKiYMmDKwqbpNsYu4mbpA= X-Proofpoint-GUID: yWfS2qvTbuH9ITmWtMDUC5Ilv2chW3sc X-Proofpoint-ORIG-GUID: yWfS2qvTbuH9ITmWtMDUC5Ilv2chW3sc 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-24_04,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 malwarescore=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-2608240121 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_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..fcf5c3f057b8 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 *ready_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) + gpiod_set_value(mas->ready_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) + gpiod_set_value(mas->ready_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) + gpiod_set_value(mas->ready_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) + gpiod_set_value(mas->ready_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->ready_gpio =3D devm_gpiod_get_optional(dev, "ready", + GPIOD_OUT_LOW); + if (IS_ERR(mas->ready_gpio)) { + dev_err(dev, "Failed to request GPIO: %ld\n", + PTR_ERR(mas->ready_gpio)); + mas->ready_gpio =3D NULL; + } + } =20 pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_set_autosuspend_delay(&pdev->dev, 250); --=20 2.34.1