From nobody Thu Dec 18 23:26:05 2025 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 39B3835C185 for ; Tue, 16 Dec 2025 13:49:32 +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=1765892974; cv=none; b=gJVLNtclUUbz6d5NORWQMosAbHWKy5vGjPQna4KHGyWtNGiu1in/8xPDoOlqFrM10Oc/WcPC59NhfCaFlYho6sbZFqbF9oFJXL80e7gPsc5SoMtyuMRiZ6uHEfU54gB4i4B6m/LSAS3+d4wx7v7M0cvIU1wMu4iN+WiLAb0w0i0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765892974; c=relaxed/simple; bh=c4FFwDxKmm7Viy1qgmx4f9Kwxu7zWPYcOsV/EyMcA3s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fO5TQEF4o8BdwGZeL0Cm2uEZZMKswChZjePKKd7870j1bF1ETaVPEbDA4gLLonw+1Y+Pf9EKW7yO11+zibqNIokEWBDjdXfmAmjkX1iGrQWT2M1IeAhvN6epZeBBNu0zRvGQniLfy6mr0ZRq++JL/i9yuKP5vV1vP8tBJbHyfYc= 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=jquW4tpA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GqkkG1dg; 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="jquW4tpA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GqkkG1dg" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BGDV1kp3745761 for ; Tue, 16 Dec 2025 13:49:32 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= 5XIeEwdaKSmwUKhVRwes28nlFxirSYBP0M2N+FYQE2U=; b=jquW4tpATXWbpnAV FA/3VFH1M3BQt9IjEde18yF36vUbR5rQpjFlEWD6T23VHtrYS0UvjpdMjl7DoNif NGU+THvYrE0wTZ6MWUfwMBaf6ZTpqg+61xLsJr6Tmv/cRnhQnfZut6jfjM788tSk z0kmaWJH3aQYSSo+BTgNebzqzg2tnQFeE/CgXegs0t8gEKlCwXz7dDERyv3a+wzK pQmJPnofoIgznEqpKa1xBolYkUy+gEhFMurjmqsZm6Zuz0s04q+f9h8QXbIDy0UE WLAl4xd3h2rBRHaqL3gydILEaUXj5KgomUSBw1LJyvoKmd6xHCE4h3Qx2V6E696S eWmSBw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b33xj17k9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Dec 2025 13:49:31 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2a13cd9a784so9915085ad.2 for ; Tue, 16 Dec 2025 05:49:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765892971; x=1766497771; 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=5XIeEwdaKSmwUKhVRwes28nlFxirSYBP0M2N+FYQE2U=; b=GqkkG1dgVqYuTUOu2Rb0JrYg3EejUTepADvMg4S3RppZzHd6qMvNJlaVW+ckrNu2uv EbOk/fxGskB91qUWsXsFhkPlNS9nq2kjb9fP8E3Z+Wz3KXuRcPSAGEPh667GHtzjAfyP GWZoQncPbKi0nKMGbWQ3ahTXbEX0F0O8PE9Tq28BLgR3wseO2VRNPP4xEcOMWA4XjBnw Tng86IBZ6+qzDewUXvl69K5DEIkPgbFpR/IDqmSeqI3T1QBWAdOejZUjt4WfrAACGJPI /3DPyJsXUmSHDZdX0eZ7A3MVV9Ey6UolG6fEH6PJMNozRIjPc8NmnefBgCJbCb+N7A9u ViQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765892971; x=1766497771; 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=5XIeEwdaKSmwUKhVRwes28nlFxirSYBP0M2N+FYQE2U=; b=Ttg+LzolFw1KpSN67xCeWilHJHkr0mgDYQDpeIvwyZr91bdYwh17yWw0V24HNWkixf eSZIBmG+kNYF+62ViqTBMhCaTE4lbcVTIoruZliyIy6JPbrlyxsUO/SiL3gFhgZ8h8Qf Q0MsRPH02uqYiCJtBychidMTilWNBWiAOgN5WlIoiHHaVR42N67QRINZ/7UiCzK1oVYq pzi6MXawRd3NqN5vdeIM9w8RerxoiucDi6ztPJowB760pg+BpmSIMjIDKGSecHbpLoc+ tHdbMQSbngmkWl181+7VHarU2fP4EipDETepUnjq4lgGvvEQ18N2h1T7dHcEKyZjWzhJ g5dg== X-Forwarded-Encrypted: i=1; AJvYcCWJXQ39bVdu4+4PstPqk6cBaKBUdzcxQkK+NSZOV+xfjdQRWtkSAvDAnp2OuwI4EN2I+7XF7W3qRG7cC0o=@vger.kernel.org X-Gm-Message-State: AOJu0YxIT0Da/q1Rpqcpp9pSNcwWePGjG8XJR7qYY8MuatuMpNYMJCfD m1dkTWeq39azWLgot/h4BZyOSTAhvYVBbrypwla/br+dUwaynYyslXX9pokxClJxU7eVlGDx2/c OEo7ZOdfwYWR/vI/QawXXyTqqJtyqCgWXaXztL5ltW5ZZtN+VwwIg6UkffOKy6KtuHDg= X-Gm-Gg: AY/fxX7lbkkF/D+EsgJrE8mEWWyXLew12PT01yemWSBwzInrGgW6B4E3w1OiByzTDlX hVKmVITb2XYn6qf4K2v1XnAbKYXNG0ELQgza/eCjGU8L+ZdBQ9XqEmnQQm12q16ci/6k0Pb1lAT YRUcLOsHL2SMp4x0hMM/d4/DRdDFQZ5+9EMostJ8AD78zlNjPTRUzXgJnRv+LmE5lhU2cQdPLjF tGm8MC+kwR5LWkArLd61rASeMxm+uYeP2V6boNfZHL++K5R9a24y+Uuo9f7wGyBmwawE+Vlwe/F wj6FrJc0T/IL0s64u90iuTI9s9mZ/cOwACoDselt+v5iuishPCLyKGYB0hbJuCz1E9LGn0iQN0j AOMdfjDgwssul8syg02HSbT8SB8cgnDKWjfeI7x8AYI8= X-Received: by 2002:a17:902:f612:b0:2a0:ccee:b350 with SMTP id d9443c01a7336-2a0cceebc96mr83993235ad.58.1765892970685; Tue, 16 Dec 2025 05:49:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IH0I2m3AUrFktxRdsW8oXiDacvT1fHbe8STll0ZhCKYN0uLRfQfttLiE9BN6uw7AZAwioU3BQ== X-Received: by 2002:a17:902:f612:b0:2a0:ccee:b350 with SMTP id d9443c01a7336-2a0cceebc96mr83992975ad.58.1765892970151; Tue, 16 Dec 2025 05:49:30 -0800 (PST) Received: from hu-msarkar-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a0993ab61dsm99697165ad.46.2025.12.16.05.49.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 05:49:29 -0800 (PST) From: Mrinmay Sarkar Date: Tue, 16 Dec 2025 19:19:17 +0530 Subject: [PATCH v2 1/2] dt-bindings: PCI: qcom,pcie-ep-sa8255p: Document firmware managed PCIe endpoint 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: <20251216-firmware_managed_ep-v2-1-7a731327307f@oss.qualcomm.com> References: <20251216-firmware_managed_ep-v2-0-7a731327307f@oss.qualcomm.com> In-Reply-To: <20251216-firmware_managed_ep-v2-0-7a731327307f@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson Cc: linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam , Krishna Chaitanya Chundru , quic_vbadigan@quicinc.com, quic_shazhuss@quicinc.com, konrad.dybcio@oss.qualcomm.com, Mrinmay sarkar , Rama Krishna , Ayiluri Naga Rashmi , Nitesh Gupta X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765892958; l=3868; i=mrinmay.sarkar@oss.qualcomm.com; s=20250423; h=from:subject:message-id; bh=c4FFwDxKmm7Viy1qgmx4f9Kwxu7zWPYcOsV/EyMcA3s=; b=jCHtdBtffAxpeTUhtrWvDTVASY338tchL1PwotlFzI5KJkvrM05jcUl+Btfg6lzMXRlR0a7qa JhAu1Q5RW+dBq25aJ7wdqTJ//6GbggGDnq1gd3qdDYpAfye0c6FrNha X-Developer-Key: i=mrinmay.sarkar@oss.qualcomm.com; a=ed25519; pk=5D8s0BEkJAotPyAnJ6/qmJBFhCjti/zUi2OMYoferv4= X-Proofpoint-ORIG-GUID: 3O-KjbyhTXZPdGnkvQziUX6pqVDPHM5k X-Proofpoint-GUID: 3O-KjbyhTXZPdGnkvQziUX6pqVDPHM5k X-Authority-Analysis: v=2.4 cv=KtNAGGWN c=1 sm=1 tr=0 ts=6941636b cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=avnAaoOVoNrTWVjlPhgA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE2MDExOCBTYWx0ZWRfXz1+0m/vgFKYU EZnZtq0R87J+rHVpbNtgljjIsw3PC/HSxObVw7U/Simd1mtaOvApdx0M0VkLPpcCl98TWogLOQ6 yT6gXROcVfI7K6LF9WPQC26aIKVpa8tQXmj5KWNBn9ry0IHKYrtsWZaAJFw/SSCgm7lo118lnIi wl9xCR1muersK7f9WsVG+YCzU8cgjTNx06728/RFqwVNEwdsqqXHUI6llRtw0XMdzplZd1Ql/jd HX7Y2HzhbBC7nOZ0CionS1R+UXMAT4fdYNF+iIb5mpBXWUfE9Ki4OeMKCdIeof2z3M0NQTqtVZF VB61xpk+7syWoxaa6mVCDOZ8vKa7zkH2K32/iD/JnW0qVCQlnZBzLbT3kD1AN2ABG3wAUwotJOM 3obwNoqPk66brAE1g7Jn0vnFLyzxAA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-16_02,2025-12-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512160118 Document the required configuration to enable the PCIe Endpoint controller on SA8255p which is managed by firmware using power-domain based handling. Signed-off-by: Mrinmay Sarkar --- .../bindings/pci/qcom,pcie-ep-sa8255p.yaml | 110 +++++++++++++++++= ++++ 1 file changed, 110 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-ep-sa8255p.yam= l b/Documentation/devicetree/bindings/pci/qcom,pcie-ep-sa8255p.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a88c39b7f8b8bc0cfdf4e62678b= 8ad89f2043031 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-ep-sa8255p.yaml @@ -0,0 +1,110 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/qcom,pcie-ep-sa8255p.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm firmware managed PCIe Endpoint Controller + +description: + Qualcomm SA8255p SoC PCIe endpoint controller is based on the Synopsys + DesignWare PCIe IP which is managed by firmware. + +maintainers: + - Manivannan Sadhasivam + +properties: + compatible: + const: qcom,pcie-ep-sa8255p + + reg: + items: + - description: Qualcomm-specific PARF configuration registers + - description: DesignWare PCIe registers + - description: External local bus interface registers + - description: Address Translation Unit (ATU) registers + - description: Memory region used to map remote RC address space + - description: BAR memory region + - description: DMA register space + + reg-names: + items: + - const: parf + - const: dbi + - const: elbi + - const: atu + - const: addr_space + - const: mmio + - const: dma + + interrupts: + items: + - description: PCIe Global interrupt + - description: PCIe Doorbell interrupt + - description: DMA interrupt + + interrupt-names: + items: + - const: global + - const: doorbell + - const: dma + + iommus: + maxItems: 1 + + reset-gpios: + description: GPIO used as PERST# input signal + maxItems: 1 + + wake-gpios: + description: GPIO used as WAKE# output signal + maxItems: 1 + + power-domains: + maxItems: 1 + + dma-coherent: true + + num-lanes: + default: 2 + +required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + - reset-gpios + - power-domains + +additionalProperties: false + +examples: + - | + #include + #include + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + pcie1_ep: pcie-ep@1c10000 { + compatible =3D "qcom,sa8255p-pcie-ep"; + reg =3D <0x0 0x01c10000 0x0 0x3000>, + <0x0 0x60000000 0x0 0xf20>, + <0x0 0x60000f20 0x0 0xa8>, + <0x0 0x60001000 0x0 0x4000>, + <0x0 0x60200000 0x0 0x100000>, + <0x0 0x01c13000 0x0 0x1000>, + <0x0 0x60005000 0x0 0x2000>; + reg-names =3D "parf", "dbi", "elbi", "atu", "addr_space", "mmi= o", "dma"; + interrupts =3D , + , + ; + interrupt-names =3D "global", "doorbell", "dma"; + reset-gpios =3D <&tlmm 4 GPIO_ACTIVE_LOW>; + wake-gpios =3D <&tlmm 5 GPIO_ACTIVE_LOW>; + dma-coherent; + iommus =3D <&pcie_smmu 0x80 0x7f>; + power-domains =3D <&scmi6_pd 1>; + num-lanes =3D <4>; + }; + }; --=20 2.25.1 From nobody Thu Dec 18 23:26:05 2025 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 DB24B35F8A5 for ; Tue, 16 Dec 2025 13:49: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=1765892980; cv=none; b=TWTfHlIv6dQiMOuH6avHf4NTnSPFgLZw831tyNO1rf1HZORFGstaA6A/5u4HGLP5eDMqmNupW7RLdP67kEFs53/W77NFRCQWz6o5H8aUxpK3sSAqbXrD+/CSTWclrSJlnyRMv7K1lRxFutiq6vKc90n0RXkcmBOz0DvuYlt6NrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765892980; c=relaxed/simple; bh=Fyphgpm9oWKQhl4y6fHTvk81D6ocscTgp2cQazg94DE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FpKHvhejXbD3+pV3D8QCirS2yVbgK4BWRFj+QzUnoj1nn05FldqVbimmXzqUUwVyndl7ixaDnhmybUNLIr0GiY64RbPwugLpnF/H+TJsDcNzaZFNHVEY4KdtjBm5G6dj9Rohk6fQ/520jNod26JyNRFfnRUxLjKUdR09epb5sFk= 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=fvP6jVzV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RBwF6von; 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="fvP6jVzV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RBwF6von" 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 5BGAM5jw3829355 for ; Tue, 16 Dec 2025 13:49: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= x7/Mz5RzhnX1QZHAKW86jmwpiy8TOBH4L00hU7AiSmY=; b=fvP6jVzVKS61kc3x zKhw1sdeRl87LvJEyYqTH2j40jDeUX1Fn1e6WmLIqW0yTl2cFyehLsOQUf7wGxcz gxQb9KiXrlYYyykG27vnSmHKA5ncLlr3E5SaENFXobZ0UPvR/G7xrQ2z9PCVj4nM 5FiB52J7eTNCBhEqqC8Ws3O3VHHoE/aKrh5qPAVEOe1vxrC/zn6uL0TaxARbicGs gmHFNwLzh352/dsgal0UrM6KiBO4Hy4RZb7ONrCsMTZa9KN3d4AiKx8YaM52xmoN IhqEoAjuiiWYtx80MXinUbIQoWSmh8jTy3KPna2rdi0kC7Vkoan8v5FHN7ulYyBz dL2NGg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b35m2rsqg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Dec 2025 13:49:37 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2a0e9e0fd49so25475525ad.0 for ; Tue, 16 Dec 2025 05:49:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765892977; x=1766497777; 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=x7/Mz5RzhnX1QZHAKW86jmwpiy8TOBH4L00hU7AiSmY=; b=RBwF6vontysnVDsTmjEps7whm1SCTZGwOaU7PnlaNkVMtcTv9ElwfPkn/2MW18ixcJ 9514rs0ftG9beBb50HT7uQnM20bj6BsoYpSPE1OmYnGiFL1jZLZhllAuyIrX76+35cVl hjT8YXTamE8Fd59c9KSgQucKF/1xElSMdxmTd+WGDds8mgueC7v71q6ybyEsbSxlWHHa IXHDbpmfFMX9zKQ/HwGzYse+nQVMW2tArPEcdky85KOR+/Z5zqVWDLoXkeX8bGu6HPZn s3Gt5RE4MZna42+9u4IWnseVHsk6PcC1BUUyngLmGw2ZkKP/6o41YewwCapJeJrlTfwN 9suQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765892977; x=1766497777; 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=x7/Mz5RzhnX1QZHAKW86jmwpiy8TOBH4L00hU7AiSmY=; b=qIQd1J4S5Z0iDR8OHc59Mck43YwP3Ro8BECg7HIeYt7epXRnVk9iJDzoTHACbF3qHc qVg7DEd0sKMjAv8gkQy5nl2ffFZYeoLQON42ObXZ6v1AcoirLZ1XV3b93rQCjG3qywfI 2s7zc6kGyUW4rPLRcbHTzHW95qNXRzSxOgn1u3tAz0E91u76tPKr9unrMUNh6RbkWEAc 8j8AkyulG+PRe1KfLLkrujekcd0zyqGNcEj7/T+XWM0PseX+xwYg1WGPeJYn8395a6gv 0fPbXS+rYZhY9LQ7/MyJnJz2NkyVQmO4P4zKS9YgSopgXeOQLbJwHgJdtIm2hbeEMb04 dEmQ== X-Forwarded-Encrypted: i=1; AJvYcCWjpVoAhRQ8jWxHFLUQVHYf0O0JeiPCqguja69f41bqv6JZGw2Jfs7/QD4i4OfB0m3FdjookvpG1nP2+sg=@vger.kernel.org X-Gm-Message-State: AOJu0YwX9pvQxVrsjxcppwD4sMl4/Yz4rQfEB0IV8f6GaO+JmgcSf4nO koYmTLREQ7OyVN67Kp88VRLQNBSoG5az+PFXNs6fvdNcYfgfPe3MEV35dLhBGtn6enjw8eEg9c2 9gmAJifyFVT9gKobQ4s6YVkFQ++vFKLjWxoblQUq2LtF7ik2Z6KFlRREb5uRl1ggOX4c= X-Gm-Gg: AY/fxX7M5kaz2e+mTauFmRgaoJ0n77jojcdVi7plvQ+7UvB1vuMBQhsWaYCtPBgLglb vTEtLA9ZX6HuZK77FLyy8Uve17AEZ4rxreDLdOPOvLLRocvJ+3Isp7/KVVFCjBuhW2bBIPQilbT /0AM2+0DYcRcg+NGz6wjYCSf6C+Wx00ElDoyVYMotUaNWN8mgaW7o60fBbQCWtWzhJwM04PrAHy 0MXqJV2JEEcjWCudcUf8XBDymc55y5iGDgExsq6197nn29OayBz/DYP7t6G2Jfzzf/HJTp4D0dX 4m93PSZSFyV6QU5gLN5BIsNxZhfyWqoJwCXv7dnv8YAUXPneyDXGxGhOi8emUq02tRsD3bVhgdp 05H7f3CtrMrYYPvl/yY6eyYQx9N3s1j1WOh4Ili4bBiY= X-Received: by 2002:a17:902:c406:b0:29e:e5e6:247c with SMTP id d9443c01a7336-29eeebce775mr189077185ad.14.1765892976687; Tue, 16 Dec 2025 05:49:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IFEW7799xblQ1JSbsBt3Us6FRqj35KPvzFMwqhjAxwrznE4otMhZ8ln8p3JbJLk6NgptxWvLg== X-Received: by 2002:a17:902:c406:b0:29e:e5e6:247c with SMTP id d9443c01a7336-29eeebce775mr189076685ad.14.1765892976063; Tue, 16 Dec 2025 05:49:36 -0800 (PST) Received: from hu-msarkar-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a0993ab61dsm99697165ad.46.2025.12.16.05.49.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 05:49:35 -0800 (PST) From: Mrinmay Sarkar Date: Tue, 16 Dec 2025 19:19:18 +0530 Subject: [PATCH v2 2/2] PCI: qcom-ep: Add support for firmware-managed PCIe Endpoint 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: <20251216-firmware_managed_ep-v2-2-7a731327307f@oss.qualcomm.com> References: <20251216-firmware_managed_ep-v2-0-7a731327307f@oss.qualcomm.com> In-Reply-To: <20251216-firmware_managed_ep-v2-0-7a731327307f@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson Cc: linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Manivannan Sadhasivam , Krishna Chaitanya Chundru , quic_vbadigan@quicinc.com, quic_shazhuss@quicinc.com, konrad.dybcio@oss.qualcomm.com, Mrinmay sarkar , Rama Krishna , Ayiluri Naga Rashmi , Nitesh Gupta X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765892958; l=5973; i=mrinmay.sarkar@oss.qualcomm.com; s=20250423; h=from:subject:message-id; bh=Fyphgpm9oWKQhl4y6fHTvk81D6ocscTgp2cQazg94DE=; b=fweZq6YJt+ogIBNs7H7qTkSgUeTy8mr6rZyNWQXHIeGEFjT2/olTmy+VzGwVml7k9Q/sKz9QF qt0QBLPmRy0BAOtpmZci+X2K/eV/8QSIPsinZpAU5NG/9u6N7Izdbfp X-Developer-Key: i=mrinmay.sarkar@oss.qualcomm.com; a=ed25519; pk=5D8s0BEkJAotPyAnJ6/qmJBFhCjti/zUi2OMYoferv4= X-Authority-Analysis: v=2.4 cv=LpGfC3dc c=1 sm=1 tr=0 ts=69416371 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=2tdM-IJ1x2Ue4swjlzoA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: k3MjySYY1ACm-C_APCZUT0REBgTRYijo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE2MDExOCBTYWx0ZWRfXwUmaoH1IG44T LjF4XbMedhNyVmGXSSQCjBTbMoRCrSYuEkDeZfyAm1Um3fxfbE6WjKtTxQD9JY5buuhcdGre/TR mXcDL4e/GJR0uzn5kPzVrK/6cD7+8VCIe/E6HUqX1rg9l5Y4sFqcv4wwV5oH9So54fW0eD5qRZO eY11dqqMT8oXRoQClesludJmcmImx0NOnNa5kD9kDeb4Lwu5bIxbR5Zdo2D9mKiUvsvjPVE61lA etUG0FS1Yv+BT8iNWe7uwzREk2QKWfIu5XqqYWCefZPEpqwgcnfS/pLmDtjIK6+hw9iMX5j+Zkf W67gb0Q25MTv2CVjQcXHVEenCGsG2kRz2bVlfeuwZjViZ4ASBSSNVX7bKDfr0/yYIljbZR8DAEJ /aLVQwGN4O+v1ru7AX8fVDpGdHbvkA== X-Proofpoint-ORIG-GUID: k3MjySYY1ACm-C_APCZUT0REBgTRYijo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-16_02,2025-12-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 phishscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 spamscore=0 bulkscore=0 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512160118 Some Qualcomm platforms use firmware to manage PCIe resources such as clocks, resets, and PHY through the SCMI interface. In these cases, the Linux driver should not perform resource enable or disable operations directly. Additionally, runtime PM support has been enabled to ensure proper power state transitions. This commit introduces a `firmware_managed` flag in the Endpoint configuration structure. When set, the driver skips resource handling and uses generic runtime PM calls to let firmware do resource management. A new compatible string is added for SA8255P platforms where firmware manages resources. Signed-off-by: Mrinmay Sarkar --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 82 +++++++++++++++++++++++----= ---- 1 file changed, 62 insertions(+), 20 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/contro= ller/dwc/pcie-qcom-ep.c index f1bc0ac81a928b928ab3f8cc7bf82558fc430474..2de8b48511169a9c836828c2286= 0dba45f6c9db8 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -168,11 +168,13 @@ enum qcom_pcie_ep_link_status { * @hdma_support: HDMA support on this SoC * @override_no_snoop: Override NO_SNOOP attribute in TLP to enable cache = snooping * @disable_mhi_ram_parity_check: Disable MHI RAM data parity error check + * @firmware_managed: Set if the Endpoint controller is firmware managed */ struct qcom_pcie_ep_cfg { bool hdma_support; bool override_no_snoop; bool disable_mhi_ram_parity_check; + bool firmware_managed; }; =20 /** @@ -377,10 +379,17 @@ static int qcom_pcie_enable_resources(struct qcom_pci= e_ep *pcie_ep) =20 static void qcom_pcie_disable_resources(struct qcom_pcie_ep *pcie_ep) { - icc_set_bw(pcie_ep->icc_mem, 0, 0); - phy_power_off(pcie_ep->phy); - phy_exit(pcie_ep->phy); - clk_bulk_disable_unprepare(pcie_ep->num_clks, pcie_ep->clks); + struct device *dev =3D pcie_ep->pci.dev; + int ret; + + pm_runtime_put(dev); + + if (!(pcie_ep->cfg && pcie_ep->cfg->firmware_managed)) { + icc_set_bw(pcie_ep->icc_mem, 0, 0); + phy_power_off(pcie_ep->phy); + phy_exit(pcie_ep->phy); + clk_bulk_disable_unprepare(pcie_ep->num_clks, pcie_ep->clks); + } } =20 static int qcom_pcie_perst_deassert(struct dw_pcie *pci) @@ -390,12 +399,22 @@ static int qcom_pcie_perst_deassert(struct dw_pcie *p= ci) u32 val, offset; int ret; =20 - ret =3D qcom_pcie_enable_resources(pcie_ep); - if (ret) { - dev_err(dev, "Failed to enable resources: %d\n", ret); + ret =3D pm_runtime_resume_and_get(dev); + if (ret < 0) { + dev_err(dev, "Failed to enable endpoint device: %d\n", ret); return ret; } =20 + /* Enable resources if Endpoint controller is not firmware-managed */ + if (!(pcie_ep->cfg && pcie_ep->cfg->firmware_managed)) { + ret =3D qcom_pcie_enable_resources(pcie_ep); + if (ret) { + dev_err(dev, "Failed to enable resources: %d\n", ret); + pm_runtime_put(dev); + return ret; + } + } + /* Perform cleanup that requires refclk */ pci_epc_deinit_notify(pci->ep.epc); dw_pcie_ep_cleanup(&pci->ep); @@ -630,16 +649,6 @@ static int qcom_pcie_ep_get_resources(struct platform_= device *pdev, return ret; } =20 - pcie_ep->num_clks =3D devm_clk_bulk_get_all(dev, &pcie_ep->clks); - if (pcie_ep->num_clks < 0) { - dev_err(dev, "Failed to get clocks\n"); - return pcie_ep->num_clks; - } - - pcie_ep->core_reset =3D devm_reset_control_get_exclusive(dev, "core"); - if (IS_ERR(pcie_ep->core_reset)) - return PTR_ERR(pcie_ep->core_reset); - pcie_ep->reset =3D devm_gpiod_get(dev, "reset", GPIOD_IN); if (IS_ERR(pcie_ep->reset)) return PTR_ERR(pcie_ep->reset); @@ -652,9 +661,22 @@ static int qcom_pcie_ep_get_resources(struct platform_= device *pdev, if (IS_ERR(pcie_ep->phy)) ret =3D PTR_ERR(pcie_ep->phy); =20 - pcie_ep->icc_mem =3D devm_of_icc_get(dev, "pcie-mem"); - if (IS_ERR(pcie_ep->icc_mem)) - ret =3D PTR_ERR(pcie_ep->icc_mem); + /* Populate resources if Endpoint controller is not firmware-managed */ + if (!(pcie_ep->cfg && pcie_ep->cfg->firmware_managed)) { + pcie_ep->num_clks =3D devm_clk_bulk_get_all(dev, &pcie_ep->clks); + if (pcie_ep->num_clks < 0) { + dev_err(dev, "Failed to get clocks\n"); + return pcie_ep->num_clks; + } + + pcie_ep->core_reset =3D devm_reset_control_get_exclusive(dev, "core"); + if (IS_ERR(pcie_ep->core_reset)) + return PTR_ERR(pcie_ep->core_reset); + + pcie_ep->icc_mem =3D devm_of_icc_get(dev, "pcie-mem"); + if (IS_ERR(pcie_ep->icc_mem)) + ret =3D PTR_ERR(pcie_ep->icc_mem); + } =20 return ret; } @@ -874,6 +896,12 @@ static int qcom_pcie_ep_probe(struct platform_device *= pdev) =20 platform_set_drvdata(pdev, pcie_ep); =20 + pm_runtime_get_noresume(dev); + pm_runtime_set_active(dev); + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; + ret =3D qcom_pcie_ep_get_resources(pdev, pcie_ep); if (ret) return ret; @@ -894,6 +922,12 @@ static int qcom_pcie_ep_probe(struct platform_device *= pdev) goto err_disable_irqs; } =20 + ret =3D pm_runtime_put_sync(dev); + if (ret < 0) { + dev_err(dev, "Failed to disable endpoint device: %d\n", ret); + goto err_disable_irqs; + } + pcie_ep->debugfs =3D debugfs_create_dir(name, NULL); qcom_pcie_ep_init_debugfs(pcie_ep); =20 @@ -930,7 +964,15 @@ static const struct qcom_pcie_ep_cfg cfg_1_34_0 =3D { .disable_mhi_ram_parity_check =3D true, }; =20 +static const struct qcom_pcie_ep_cfg cfg_1_34_0_fw_managed =3D { + .hdma_support =3D true, + .override_no_snoop =3D true, + .disable_mhi_ram_parity_check =3D true, + .firmware_managed =3D true, +}; + static const struct of_device_id qcom_pcie_ep_match[] =3D { + { .compatible =3D "qcom,pcie-ep-sa8255p", .data =3D &cfg_1_34_0_fw_manage= d}, { .compatible =3D "qcom,sa8775p-pcie-ep", .data =3D &cfg_1_34_0}, { .compatible =3D "qcom,sdx55-pcie-ep", }, { .compatible =3D "qcom,sm8450-pcie-ep", }, --=20 2.25.1