From nobody Mon Feb 9 06:33:21 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 769BC322A3E for ; Tue, 23 Dec 2025 09:16:37 +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=1766481399; cv=none; b=nh2wHHDq4JZbh7rFAOtJkH7flKlpn3kA+jBj+mU3bZD/2jNL8Xy+WO09GoXcz04KGB2KL16t2/l4aXhG//pjcli/pnRi1JoINhq6mIsh4x3ZsMDoUO1qHAEuvU283VxsxLGBHYPwWynfzW6T6lS9t+PQM+Ssb5shGR3U/cLmCtw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766481399; c=relaxed/simple; bh=5KumP20fDI2ZbJDHb4/tO7FSR6emNSPBnijP7UxKCAE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XsGzD9dAKTkfUH4TPuJSelkjIYKenbzlU/sjFnZo2MrAiaOwKqcbDTvl0V1REkNCHONnOC8D84yVd3mtKC9OO7K+kDByndbFmq0EEdALBtqLkzkxTuGqictCbMar/RFyDv+6Mv82lGlFmtp+VRwnO0q0MRgmfKth6Ell6aO9MMM= 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=G60oct1E; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jDW73+n5; 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="G60oct1E"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jDW73+n5" 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 5BN26vD92041152 for ; Tue, 23 Dec 2025 09:16:36 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= ZNuj5fMI4Xpxt6s2cvQVzAdTguidM5KXUybpFV8NeYA=; b=G60oct1E5AKiarxt Zn0QJc8C+DvbXtCiFNVeTJW+Ggx3p2tSxg7eN2PczS3ZhRh2cahDP3jo/uyJ/cZQ Lh3FfhI6MKjja9Y10h1oaO3AU5f/KM9Cy4NEGkHMqmuwmuSVTlxdPheW0I3cXNw2 xGYUI31WNFrzmAmLH1zO6nh2a7sHfbr4Mt5MwMOT4kfNFfp2PEAL/4HejFaixFvy uOK5noBcFu3w8UZJ04LrktzUCpFHyDVSFvLJLwifcV4LUShRONJzWNzs1VmztlX8 Bktmg5v8PuQe7hp8Cmpg2ij+VZn1vc+XhAxJmU6W5919kUsj/RJVNBIwZb6B7G14 yoyh2Q== 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 4b763pk56d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 23 Dec 2025 09:16:36 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-29f1f79d6afso69042635ad.0 for ; Tue, 23 Dec 2025 01:16:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1766481395; x=1767086195; 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=ZNuj5fMI4Xpxt6s2cvQVzAdTguidM5KXUybpFV8NeYA=; b=jDW73+n5WvQKxEgQb1+Gax0NzqPYM0CpRX+HyECvVL3NmdjCBVwUk+0LiHoAdXdPTu xZztMfY7T2aHzotZeADUKyaM+hmNxEa0BAW7QHEHT3/yLlvOTQcQtf0VsybWInyuxsOm p+wLfxvKiVZPAv+lUAMXNBUr3riN5NAH4l+fWmO1zwFM2/5lcV9Jfw+zB+cGh8QtUYLF 03IB8oQZYTkFCblqHhIO7uXv1etag68YQsvLzcxihXEmeZ7PDxhLErarQ2Bxqr4CUvON jeU5tlKuLNlyT8Ey/BYG/7n0ZRoM57Ged4xXu9Kk3ox3qEN3qahDD3BrJ8dEetkqka9N bIqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766481395; x=1767086195; 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=ZNuj5fMI4Xpxt6s2cvQVzAdTguidM5KXUybpFV8NeYA=; b=jL3my6ddYzP7Mu27Uv3lhWfetpDEhakFSTgQ/Lo9OtHOp+6wAlxUfZgRg5Y9iK7X9i arPmUvA8j7D/1LUq+/rg1qs8HJr9l7J13W9/oUe97Utg6nk0GfNYg+bPs0Tnt7EqiQap UViPNrtBveWsp2QYElpLHAfzAJlRO2qW0TywN60MNFf/6a/4ZBYLKGk7uudF3fPcnT1p IAJGmBJwJbCt1r0N5GcuQWMoRmtlvH9Taf66ruRO7T5s2t0H+yLUcKVbohl1yVeDN2ao +GjhMxTgof5qi10g2O2+fRO1Hmi+HgmI5clk/jrn8lM+/ZHPtaElT0rhEKP+ZUb+FPqf TjGQ== X-Forwarded-Encrypted: i=1; AJvYcCWzZ4cTY0kUxYdXrAyq8tJ2JVnq50AKSVA2ExuMxvEfHomuB7/YXYrdR9B2hNTaWmtHRiu+wOIyDYw2BHI=@vger.kernel.org X-Gm-Message-State: AOJu0YydYZSuOrQ3vH4gAZokKh4UiOJqQN9ImOdbTAtoNgNQ6aNvFIuh GC/2mpSntA1TsztlmZs7IET1Yo4uBoBf09glwH6tCuKrnv7EHgeTlnd6XbloYghH4tjOS9CqcvD 7xrf9U/Q8EKFTm0wzoosrMeU+pRQFiD5zLlvS/Ub0jE4DL4QHiZfb5LVikuByjo7wqpo= X-Gm-Gg: AY/fxX4rB48Gy8PpqQXFNESgLUm9sUV6DXOihevNlyf0Uk5jpxJwbqqDow/1nv2h8pu w9lkACZiuB4XQJeNjcHgAb57MVy3WCIC8DSv4pQxL6dyVeWZu8HtCXlDDR7dZULXbjkGZMOp3tc PDFg6hFKaPSOvBiI5MTIw2QerzX8uo7GfaDcPsad2uHXKS72KPqf+BSwIydh8kGYzNQPxnPhoVT bvtPEhqUsWRTdQXVP/sX5f0R+KhyydnmHwKJL24XmSvL+dVvBUN3a8YaLTiui9dCQlosF4WrPKz f40xPcZvlsuXWkXPNeTr7KcGXaBwpR2x2tK6wU+PiZfvjET836WlOdfl4mzUyAWs7tvFt+F8kQh rypsi6xFAUQBrAUPI5XWq6FQKOVgfAaFYXD3W2BfShCI= X-Received: by 2002:a17:902:ef0a:b0:295:ceaf:8d76 with SMTP id d9443c01a7336-2a2f2840085mr125555245ad.47.1766481395150; Tue, 23 Dec 2025 01:16:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHvV0SECnt5qr2+m+UX+cGQTWDSVIgi6rAUtFKfd1ZisA+JQJTtq4hEzNrXUMisbHRIUEJB8A== X-Received: by 2002:a17:902:ef0a:b0:295:ceaf:8d76 with SMTP id d9443c01a7336-2a2f2840085mr125554935ad.47.1766481394647; Tue, 23 Dec 2025 01:16:34 -0800 (PST) Received: from hu-msarkar-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3d76ceesm122507585ad.91.2025.12.23.01.16.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 01:16:34 -0800 (PST) From: Mrinmay Sarkar Date: Tue, 23 Dec 2025 14:46:20 +0530 Subject: [PATCH v4 1/2] dt-bindings: PCI: qcom,sa8255p-pcie-ep: 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: <20251223-firmware_managed_ep-v4-1-7f7c1b83d679@oss.qualcomm.com> References: <20251223-firmware_managed_ep-v4-0-7f7c1b83d679@oss.qualcomm.com> In-Reply-To: <20251223-firmware_managed_ep-v4-0-7f7c1b83d679@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=1766481382; l=3868; i=mrinmay.sarkar@oss.qualcomm.com; s=20250423; h=from:subject:message-id; bh=5KumP20fDI2ZbJDHb4/tO7FSR6emNSPBnijP7UxKCAE=; b=y8UTo8ea7bkyRTK9lgNPiEvbBGa2FlFKJn362J0hRNhJbymyNLIk097LtE0fO5lGxDEuW1x2c DWEVHqC8ZVvCFJo4T7sAyz+ng5womvaok85sMqlEUfWl8nudU+jR7CA X-Developer-Key: i=mrinmay.sarkar@oss.qualcomm.com; a=ed25519; pk=5D8s0BEkJAotPyAnJ6/qmJBFhCjti/zUi2OMYoferv4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIzMDA3NCBTYWx0ZWRfX8yKSeyN/MRdZ UMnmPG/rKWMoQI2fPj4iSYhMZcCBJYiCEIaFXe3xeBifbglqQs5xZgSGYcOxseU/K1zSsFldfLL e2ebNGzbtLzBDT+gJE4dMT+wKlNPYYQudoRU4W/tpC+wB7PpjuzmkEZsg3pUOwbhFhHvcyrjizT 2x5F7LgvlBnL2MJBP+piZl5mRfrSJbXGc8Rl/WGzAV/X4twV6zN7/egH7d+vS/3aKDHLNWGeYEY WA5fMNyJU7ixxgduAX1EHmfyuNA7/8Mz2komAvpBE/I9899jZ8VUQVq4tlmct+5wU+5Ylel4AwW IwkjYJnIgIjvvOxjdwXEUlmMLZFuf11bHVKn8JFRYmOGAc7+QTZefqZu0/GYXSIs7b5LfFnVFmZ bV3+k8syL3LeZBBAGU7i43puZAAUgMrmXFh3TLnjjRsZJ4PMdVgOeI1JwRbORWsQKpL/ls9Llny XQmdjH+xGkt7iKIJN3g== X-Proofpoint-ORIG-GUID: OKy_Kfx6JAHH9sOABM_GrbFd1_NcLMQW X-Proofpoint-GUID: OKy_Kfx6JAHH9sOABM_GrbFd1_NcLMQW X-Authority-Analysis: v=2.4 cv=H6TWAuYi c=1 sm=1 tr=0 ts=694a5df4 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==: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=uG9DUKGECoFWVXl0Dc02:22 a=sptkURWiP4Gy88Gu7hUp:22 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-23_02,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512230074 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 Reviewed-by: Krzysztof Kozlowski --- .../bindings/pci/qcom,sa8255p-pcie-ep.yaml | 110 +++++++++++++++++= ++++ 1 file changed, 110 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/qcom,sa8255p-pcie-ep.yam= l b/Documentation/devicetree/bindings/pci/qcom,sa8255p-pcie-ep.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e338797d5dc2f68e2ad658e7f2c= 073023c4aea75 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qcom,sa8255p-pcie-ep.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,sa8255p-pcie-ep.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,sa8255p-pcie-ep + + 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 Mon Feb 9 06:33:21 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 9315D322B92 for ; Tue, 23 Dec 2025 09:16:43 +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=1766481405; cv=none; b=fjAsCortwjBfBR/zZdRsEihoqtK7EMiSf4sRzy67DYdLHA1EHKHlcvrptrZEc2f6t5r4jPZSsv9lgrOeWxoJ8jIBEoHSzBfbqTB0NE8dpUR2Xi/2oD9FDbLFoYUCFYeLsYxLL5dew3NCGDoxD2/vn3E0gvsA/Zc1rxJgsu165ak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766481405; c=relaxed/simple; bh=FQR6dsDhey4ML3/SnqgASnTn8AJ/5HU7zdmwI4k5tMI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u/2p2lv+xcGM0JCPVx6bddgiSKkTI1G0UOxDO8FoG8nQCZAlSYxKqmMo2eBrxc4JgHLuH60IvJyaKDFzSMxkEIQZ6U3BywsLtMZRTzI/L3yLr5fkJn2yD9bHfoHMrdAjWJc5HXhYs3huel6SZUmYqckYJCUMKri/t6/8amtxoW0= 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=X0kAJaJV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BCulNzoI; 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="X0kAJaJV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BCulNzoI" 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 5BN8VEwQ3062290 for ; Tue, 23 Dec 2025 09:16:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Wck3tooHoIpm+N+wymmifuiIrLisQvtGlc+efrbARJc=; b=X0kAJaJV9gtGXT+V gG3BHNsALuk3S/UVZk5cE/9NQ0cXytliX2p0gOB/bleL3bTEExCH3Z5gcei2c3NM 5Tj0ow7tf/QHl9BkG7F0yWK8oOkYtG90p4i6+Ag974byle/X8t8Pp0olsCqZh3lT kroJ+0myYE/NB/R1cHtQXmZF38/gQ2T2JgYyQPxbLN6hMQGrAkXUdhrk/iGOL5lT qNDYthwb5cLHBaFWoa0SAJsfusNPKxQOQvlJVBqNfLLdMCKUhZWBNkZAoR3lj6q3 dwSDMFjJ/+rRza3yKXvkUHC+fM/Zknp2louxY8Lzsbd1/CR+15xs/U9JZdZScfgg udrnhg== 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 4b763pk577-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 23 Dec 2025 09:16:42 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2a08cbeb87eso75969635ad.3 for ; Tue, 23 Dec 2025 01:16:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1766481401; x=1767086201; 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=Wck3tooHoIpm+N+wymmifuiIrLisQvtGlc+efrbARJc=; b=BCulNzoIqs8tZB1cBHspm0ARPcXwTvE+QyPEck0/sfJ++zHdF0MKvoKZltUR91vfBs aTXKAKtMVDhM5dxnCFUNLtwMgqrOCmLNwxk7o/9/+Nsh0L7bQww6rMcKnrJOEEoceX+y en8SNvfzMrbqHYZjtWDX8TGdjD38TDQp9fBGhqYu27/ywgM+BZKBuk0q+EI1D7UorURf rpMYkCDeqOFdjaGGGKbOlgxBV1AzQqErE5JTrqqmBx4Tipbg1zHhRi/Gqxeiy9mRBguV r2GmzlqopEI8TPNXmXSmu2z3UR1WbDAp3kCJFh2TdrbYyVAuK8COXVdxtA6c6bLumQ2r 2Skw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766481401; x=1767086201; 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=Wck3tooHoIpm+N+wymmifuiIrLisQvtGlc+efrbARJc=; b=WVTn4aTS9hQgXpZYSOVFD1gUknYACM+3gMoPLKKyccrVGwRGVNsg2KUPJk9x7bSgqY Nml2LvDPkm2AquyQRlgSu3vQERXQ9U9+3ral/3Em6NuOdUCeKxkM2iD1pEM8mVcZ4DTY +Cs1gWv6SpZpWVHrPVCrYnREE1t6JvgF3VOeVkCsPwQGRS9elHBbmAC9JML40gxV8IA2 ZjbznftvkpGeFPNU+i5VFlPsIr6c/7Syb3BAJNZVhpdQGo/PxVYt1CYL9Pk1zTIkLl/e ifFg3KjUW5z3EyXESB8WHD+PGQTZaKi+70DLUcwOms2NFZHYOB29mAQvJW6BXJ8sbdzr IHdQ== X-Forwarded-Encrypted: i=1; AJvYcCWaV4TsYEzcnZQWcILrOWn41HWmfnGaRKq1+8lwDtvogj1zZrQx4zRr83KkjlZ+z6ko/8a7SvUgOlO3xBo=@vger.kernel.org X-Gm-Message-State: AOJu0YwDMaW+gPe3iFm4Pb6jnwd7ZxDv94iAkLlhM5kY5qSadEpLYEyj bR1M+tVRO3CYG0A+cN/4WSleu2joMAqk9PtuVsiEBMK5zuPGZKHdtJI9JD5IX5MFnoPH3PfVeAQ 5WLIf7x+NCBHouvyCjSQ2I2qa01rxSRBckNGT0XS0dGO37lc7y6D9tuZuvwUNrg7Yi/TrwLQ1Gx 8= X-Gm-Gg: AY/fxX7nBwlyvm3LNb9r3Obyyvj/zqqQFqOuj2p41j4djWjSs88Bm4jrhwkQuiswXTB 90/jSRFNVmwYpATArBEELwHLsHjGRPfyuCoqxAQrcou9ZPgaIavCZNM3vnEEgt53JaVQpVHAQx2 SCfau+XmvIW7Mlfh0O5IGc+6aKW2YKbNPsDfwHOA4SJAIXWn6J5N6z+vN/JxwC7BtrwLfCWRNMg FmiZ3P3aJN7R7Q6FKWvVP0X435fPesUnClE0Eb3Z+FfEBDDLZSvVGkE3IYy5LrFL5Mv+NpBvz/5 tiv+f86RbNPPzHsetWpOLmyIrQnn0XWsMlji35bmCY6HFlsb37kD/si/7gw6qKrNk8S+eTJBVPh GLgfYr00LFsDBrUEtqlEoZClA3vRIiHNxUL1fNW43Kj0= X-Received: by 2002:a17:902:f607:b0:295:9e4e:4090 with SMTP id d9443c01a7336-2a2f2a3cea1mr147986035ad.52.1766481401113; Tue, 23 Dec 2025 01:16:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IHGAlirpRipXROZCpS05BoTq9KBagcVAGGY/9W/gwY/p8mc5A9aZsoe19o4/W4AFLBj84OgUQ== X-Received: by 2002:a17:902:f607:b0:295:9e4e:4090 with SMTP id d9443c01a7336-2a2f2a3cea1mr147985625ad.52.1766481400579; Tue, 23 Dec 2025 01:16:40 -0800 (PST) Received: from hu-msarkar-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3d76ceesm122507585ad.91.2025.12.23.01.16.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 01:16:40 -0800 (PST) From: Mrinmay Sarkar Date: Tue, 23 Dec 2025 14:46:21 +0530 Subject: [PATCH v4 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: <20251223-firmware_managed_ep-v4-2-7f7c1b83d679@oss.qualcomm.com> References: <20251223-firmware_managed_ep-v4-0-7f7c1b83d679@oss.qualcomm.com> In-Reply-To: <20251223-firmware_managed_ep-v4-0-7f7c1b83d679@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=1766481382; l=5973; i=mrinmay.sarkar@oss.qualcomm.com; s=20250423; h=from:subject:message-id; bh=FQR6dsDhey4ML3/SnqgASnTn8AJ/5HU7zdmwI4k5tMI=; b=gHqcLb5AxDUo4lpP8X7bw3fYrqHjmrb5a0i7fj1QHAbdfgxhDblVvGMmkwC9NBmL76WidEnwF B5+Uv77H7iKBjUH23UUXIwKYYzN8hssovpwByoPaFZ9nVRYlV+lCdVy X-Developer-Key: i=mrinmay.sarkar@oss.qualcomm.com; a=ed25519; pk=5D8s0BEkJAotPyAnJ6/qmJBFhCjti/zUi2OMYoferv4= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIzMDA3NCBTYWx0ZWRfXx0kKiK29K/BU HB5FvBZshgd8TyWmApjV7t6OnddsaKJlQMkjthdfkX0vqp7kYscJwJPAwETRZAMK3lTQbj8LOZ0 /2Y0jlRkd05xjQijpmq8pZtdWBRWyjB1D6bOrbEZA2NebPjRTP0/HRgD7c11Ccu9hzB3PgOJ04p wkk6HEX9n0Hi/1lzFfIWv9YaAAsK10bLd+YAk9R3PIeSEOg9I8N+xtQWR/UOTv666F8B4/3n/d3 r1cFEmOQKu9tn+BT0ons0tsECwiZ60+mfaEVDNO0O9rz8aBNs2/lqRIVG7Lyk0F6c54xnV2H3Vb hQnpf0lDSHgefXYI7SPczh0UG59BOvlGgifTAgjqIacHQrVrvTSSQ3vHZ1GnCgCkO/B1jLEq21I uEM+zExEdqMG76MU6Yn9/V45pTyBTz7l9en5YTaTLy5y/m5BxzH3SMi+k0ubliEsc9fiwv0TcdR g1zIS1p5FDxxuWG/SMA== X-Proofpoint-ORIG-GUID: Sqg8WwAuP736zjqVYsxQlbUYaVo1aRq3 X-Proofpoint-GUID: Sqg8WwAuP736zjqVYsxQlbUYaVo1aRq3 X-Authority-Analysis: v=2.4 cv=H6TWAuYi c=1 sm=1 tr=0 ts=694a5dfa 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-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-23_02,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512230074 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..3c7c2dc49f928514930f3044211= 97435f391d88b 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,sa8255p-pcie-ep", .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