From nobody Wed Apr 8 06:09:17 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 ED8C432ED4B for ; Wed, 29 Oct 2025 11:30:13 +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=1761737415; cv=none; b=HUyq+LcZJyioDsZaTYmmGs09duZEaH4SwC2EwWpRoHlu0zX02nuSl/RjMUiRZuHy6umIb9MBO1+dpaJGDlOnAT7oWDTk2X/FSqZWRcDqkCy7RkEl9V30YM4UgTvVti4BSeo2Ij60l5AJYWHjc+PY19A4/IDWAUvTYyTtUlPlM/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737415; c=relaxed/simple; bh=8zvZqpFeuXSiqe4t+MpIJYoVCiPCsJm1Ov8cxUJVKCk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aVhC2soYj6ng0aolV7H04lvXdLm0jxIUWcXgyL1N7OrEZ+zfQhdceXdYmgrxzGIX+6BDbS131kaNV6ean4atSzdzJMH5JoLwGKLDkTGVFJz/qmHKsjHskXdv3MpqtKUFxlTU4khmwV8pRBl2Nx/S0eXVGHhIY1op1aJAlqcnsEI= 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=aNUjs9Wi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=E4Ol3EYg; 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="aNUjs9Wi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="E4Ol3EYg" 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 59T4v68o3755067 for ; Wed, 29 Oct 2025 11:30:13 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= N5SuIv3JLHlPvqOUKHgEWsX4PG4GINisx08kaTXoUAg=; b=aNUjs9WiPzPJbyID o5El/x/qjHFJZumDaOCr1WdSAX9BNRoLz0IUuDThNxzIO0CpQuKsL93IHl2S5aaF z/ZE/pD4bIDCoQoqAKJ7TOx4cXeb7FypdGKNI5/Mzdp2PArZgx5HJDLUSxwLqLZT scza5/NzsINlKasQLMXPjLGph/vrZ1ORukkiEqTTSgwDeAIYqjZCMgfBlfsJj313 tYiy1ZsJ1APgYeeyTH6VNKoaiJkdDkQ56zHOaUk9FhBM5py/19eHPx31UXL4mCX6 emrVXJWSHHcz36Gmr7Dl8AZDEbKXAA6jBCDOSV5HenhNc5tGXPxPb1HLjzeJB8mc 63khLA== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a34a02bf9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:13 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b6cf40b2c2bso12333096a12.0 for ; Wed, 29 Oct 2025 04:30:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737412; x=1762342212; 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=N5SuIv3JLHlPvqOUKHgEWsX4PG4GINisx08kaTXoUAg=; b=E4Ol3EYg03P5/j5x6364/JsGtHzU84lfpic4l3hgBavTTi1T76iZHhMBNf6DQ6jIxr SGxLa8dypLaO5P0eM7uHTjKlUb48lzCOAklYn6Xr07qfSu+AK1dPXEdCJAOtWl4K+74I vgqmBXNLUhojAb5+hOPPITJOcIvj1fZ92izcT/AXt9CPoHQpYmhk/QFWL8ZZjgw4s/4s bKnwSzkFhiU+Kd5xbc6ME23hCrzO9wKmwCkX0s+jk+maLh2rF+md0SOPTSfFaK1umEud eYz23lQeAzf/VP9zp9dveKYsXoEKlmm5SNSBioEgcSCfPFYNtseqSLuk8xiVRIPwblpg oB9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737412; x=1762342212; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N5SuIv3JLHlPvqOUKHgEWsX4PG4GINisx08kaTXoUAg=; b=rGptcd/yNIsOgeSLkviJCe/jrYMtNNEF21Dt/Pfkk6+5mzYxrCWUNGJ9pBQkdLFPRs Wxn28zL26Sr3g4smKTgqyH5sWMBkB0NZlPeJpt0vPJ04xoxdT6NLYc9GzCBm6QPvDgON 4aTPfAF9Qt8hKH9j0+2XvOBk+Zyxpr5bLOYibXSdLo2qDW+JgCogX2RWdPOnwoGUwosJ b9z00WXFyYS48Z1Z25FkJgCLALxhW0WuJ7EL1eApSFv0ztv30wa/klBjNsaedVIRzfzq zb7rBdEJF8Tx1awLF6WBBzrcexUy24jXxcmQ84BYgZTjxWN+PGDoAmnS+jO4rMRF7dO3 5pHA== X-Forwarded-Encrypted: i=1; AJvYcCX1PhOzKB6Xfm5hTiDhueCXcsiCS97sRwsYpQiyaT5XAJzwtlFuCF/FlbuMhDBRNUCnF0+hya6lfN2JO7o=@vger.kernel.org X-Gm-Message-State: AOJu0YzV6n6qnxwtfUONuBXNPAGoLbuw91MofPGuePTEzMAeCHsnAEFc T4cbt/W41kkmnhadSVaOSr82xEmbnHaBVOTm9IADaeuJITJFtS1Dzz3NEEgJgM7kRnRBIAoikjj e/ZH6/jte1RLH+RUD+pcLA2OVuhDj5iSK+Go9Ea0MUZb/GMDxYoNWnRmS4zLZzTkujv8= X-Gm-Gg: ASbGnctFqvpYEtRqpBuBlvT39DNZ9M1iPcz6z3+UWneAhZ4QwfK16X80HaulxarGRXM S5rwqui2Ts/03Ij3lscZfYly19TpKlHLHB2KhF0sWRAGCqIgeCDC1jXUCj+AweiTEgq4GrTt33X Sp96gxVk4eDyCeLsm/B1QN/bqkNtjsjfrkli/q9+Ah+ZIf7kS++oVo3LSDBIp3iUhfO4v74czGB empErwoPgp2uiiKPrMrRh2LDjXdsBxbrZ2TMi6EPJBOdLnmMMetbxZ9YSwhN/9LPa7MgKFnrBhC OaR2OjcWImiHdGN5C/73mcbawS5MrqBq7oSC49bHxJNVimEpJr/t/dehU0VBwH+fGU94Mg5GF3/ 9drcrvSAqnrvIymJglyOFtcUrQdbXauQQXg== X-Received: by 2002:a17:902:c40c:b0:294:e095:3d42 with SMTP id d9443c01a7336-294e0953f09mr29700565ad.18.1761737412188; Wed, 29 Oct 2025 04:30:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGKen6ywCbIWN5KljQYyzqeB5TtouLUxaHfS6JF/boLobTCHja0f2s4KTk4RalY/HOi1jpb3Q== X-Received: by 2002:a17:902:c40c:b0:294:e095:3d42 with SMTP id d9443c01a7336-294e0953f09mr29700195ad.18.1761737411609; Wed, 29 Oct 2025 04:30:11 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:11 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:54 +0530 Subject: [PATCH v7 1/8] dt-bindings: PCI: Add binding for Toshiba TC9563 PCIe switch 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: <20251029-qps615_v4_1-v7-1-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=5849; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=8zvZqpFeuXSiqe4t+MpIJYoVCiPCsJm1Ov8cxUJVKCk=; b=AdOy0S3mZ/lZS6F+7uotar2aiTwAJgcCpLULu+p8hRxJ2GoC59XC6AshqTdWID39wa9X7F+yI SwyzihmiykADjAAaHp87ipSRmmDPYA9MGaLk/hG6c8rgLeeu4IkCPnu X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX5hU3NizgQrr6 E4fw9lWVWaBUhX51OyXab+t6/YBfF1XsI3kTVC0on7N3EmucYeywx/dqIsCvOGqg8eTb4pNRXhp xyC/3MAIAek7Muc6pp/8ZiFs2lHhTsuTfOeFy2YdDFW3bMw490GlZ4EMhF8Qg1/OGOSN2020ZWZ wP2d+m3qyQGoDxQJjXD2mqOuoPZpmqme5zLEzKc7djERKEEN3bu+mkaQbLPdtLnpSDMKXodyYBx fZmr7+NTw1xUEVbhUe3DbTF+Wbczy7baMVIoz2ViWgGnUCSoAGERfEoYwtPJikrv5yK7SA7Qdnp dwfGrpswY4eeikFy2ECZNXNYHvvDDAl6Rj41cFQZvA75NDPul10LlfE0kZ3OJ/pcRlHBUuwy57J ERKTXmRP9+yCdFIU5JUoyr3z+hL07w== X-Proofpoint-GUID: 1w0ZrClsAduR93KGizTBZ2kmO7x8nvpg X-Proofpoint-ORIG-GUID: 1w0ZrClsAduR93KGizTBZ2kmO7x8nvpg X-Authority-Analysis: v=2.4 cv=epXSD4pX c=1 sm=1 tr=0 ts=6901fac5 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=COk6AnOGAAAA:8 a=dWfasREweX4F4dHnDHIA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=sptkURWiP4Gy88Gu7hUp:22 a=TjNXssC_j7lpFel5tvFf: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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 malwarescore=0 clxscore=1015 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Add a device tree binding for the Toshiba TC9563 PCIe switch, which provides an Ethernet MAC integrated to the 3rd downstream port and two downstream PCIe ports. Signed-off-by: Krishna Chaitanya Chundru Reviewed-by: Rob Herring (Arm) Acked-by: Manivannan Sadhasivam --- .../devicetree/bindings/pci/toshiba,tc9563.yaml | 178 +++++++++++++++++= ++++ 1 file changed, 178 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml b/Do= cumentation/devicetree/bindings/pci/toshiba,tc9563.yaml new file mode 100644 index 0000000000000000000000000000000000000000..82c902b67852d6c4b0305764a22= 31fe04e83458d --- /dev/null +++ b/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml @@ -0,0 +1,178 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/toshiba,tc9563.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Toshiba TC9563 PCIe switch + +maintainers: + - Krishna chaitanya chundru + +description: | + Toshiba TC9563 PCIe switch has one upstream and three downstream ports. + The 3rd downstream port has integrated endpoint device of Ethernet MAC. + Other two downstream ports are supposed to connect to external device. + + The TC9563 PCIe switch can be configured through I2C interface before + PCIe link is established to change FTS, ASPM related entry delays, + tx amplitude etc for better power efficiency and functionality. + +properties: + compatible: + enum: + - pci1179,0623 + + reg: + maxItems: 1 + + reset-gpios: + maxItems: 1 + description: + GPIO controlling the RESX# pin. + + vdd18-supply: true + + vdd09-supply: true + + vddc-supply: true + + vddio1-supply: true + + vddio2-supply: true + + vddio18-supply: true + + i2c-parent: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + A phandle to the parent I2C node and the slave address of the device + used to do configure tc9563 to change FTS, tx amplitude etc. + items: + - description: Phandle to the I2C controller node + - description: I2C slave address + +patternProperties: + "^pcie@[1-3],0$": + description: + child nodes describing the internal downstream ports + the tc9563 switch. + type: object + allOf: + - $ref: "#/$defs/tc9563-node" + - $ref: /schemas/pci/pci-pci-bridge.yaml# + unevaluatedProperties: false + +$defs: + tc9563-node: + type: object + + properties: + toshiba,tx-amplitude-microvolt: + description: + Change Tx Margin setting for low power consumption. + + toshiba,no-dfe-support: + type: boolean + description: + Disable DFE (Decision Feedback Equalizer), which mitigates + intersymbol interference and some reflections caused by impedanc= e mismatches. + +required: + - reset-gpios + - vdd18-supply + - vdd09-supply + - vddc-supply + - vddio1-supply + - vddio2-supply + - vddio18-supply + - i2c-parent + +allOf: + - $ref: "#/$defs/tc9563-node" + - $ref: /schemas/pci/pci-bus-common.yaml# + +unevaluatedProperties: false + +examples: + - | + #include + + pcie { + #address-cells =3D <3>; + #size-cells =3D <2>; + + pcie@0 { + device_type =3D "pci"; + reg =3D <0x0 0x0 0x0 0x0 0x0>; + + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges; + bus-range =3D <0x01 0xff>; + + pcie@0,0 { + compatible =3D "pci1179,0623"; + + reg =3D <0x10000 0x0 0x0 0x0 0x0>; + device_type =3D "pci"; + #address-cells =3D <3>; + #size-cells =3D <2>; + ranges; + bus-range =3D <0x02 0xff>; + + i2c-parent =3D <&qup_i2c 0x77>; + + vdd18-supply =3D <&vdd>; + vdd09-supply =3D <&vdd>; + vddc-supply =3D <&vdd>; + vddio1-supply =3D <&vdd>; + vddio2-supply =3D <&vdd>; + vddio18-supply =3D <&vdd>; + + reset-gpios =3D <&gpio 1 GPIO_ACTIVE_LOW>; + + pcie@1,0 { + compatible =3D "pciclass,0604"; + reg =3D <0x20800 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + bus-range =3D <0x03 0xff>; + + toshiba,no-dfe-support; + }; + + pcie@2,0 { + compatible =3D "pciclass,0604"; + reg =3D <0x21000 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + bus-range =3D <0x04 0xff>; + }; + + pcie@3,0 { + compatible =3D "pciclass,0604"; + reg =3D <0x21800 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + bus-range =3D <0x05 0xff>; + + toshiba,tx-amplitude-microvolt =3D <10>; + + ethernet@0,0 { + reg =3D <0x50000 0x0 0x0 0x0 0x0>; + }; + + ethernet@0,1 { + reg =3D <0x50100 0x0 0x0 0x0 0x0>; + }; + }; + }; + }; + }; --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 73067336EEF for ; Wed, 29 Oct 2025 11:30:20 +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=1761737422; cv=none; b=nTZ6etq6UfkRngJPe+CX6r9rmFS3M8yQ3iAKTIUBOc7emf9heZ0bMvHKuQaUoXbG6GPcLcretjNJkVFVWK2wUpmMLCl7ay0kDNlRtAfApd5cnSzwK/TFca1Puk6uXa+JK54K57eqv7WRBdZ/dzZ7bao7hLi/A2E1JfScS5RqNC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737422; c=relaxed/simple; bh=HTP7hwkQqboLVMLasC3ig1AuOdloM19T6/dneNwv2QY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sy3QiPZ88d4aXw6QFSNC//cF7NzsXNkoiyW/pNI5bMTOQLeMZW1KNk49zEEmpV3DSKpvFZ0aRpIE27YfeUM2WgUTTxYEGrE7jwdDrKlSbPESPLN+or8qIeywgbL+UZF9XFFcH0UO3HEjgj3+zqzgiM17zBdW/q7lNndAU0SgSyw= 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=gKlqXNf2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V7vreGHq; 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="gKlqXNf2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V7vreGHq" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59T4vCee3664309 for ; Wed, 29 Oct 2025 11:30:19 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= +/DNHEe+4Z1utUjpUpHGNxyDDFtPWLU0hZo32AwHpNE=; b=gKlqXNf23iN6rv3J DfXd8ubxqExuHilSc+trEufJCGga6aEv1S7wl2TOYEkEHMJuuFcsbjDzfsauDQwc 9vOAvxjyuRw97GgM6mAPWJgDWcHc5a7WbLKPi7If9wKT2nwoWRHZfKGkyVREwxLg QZDQNrFO8+EvsTKgi084pZ3JPAv13QDff3hslBNS0SVm53alNXxxIgvno5VIJSR8 hb3gmVed3v0SaWwQbf25uS+MQbm0OD9egnHp+1dMrERh76dlOrXNSqo1McTrSnU4 itZtlfJP/adc12KLmED6HZWOTIKYwZCPZrh6qJ5raGJvntTPmVBRv6naX3XStUZX x3Qj9w== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a34a1ta8p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:19 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-269880a7bd9so73802445ad.3 for ; Wed, 29 Oct 2025 04:30:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737419; x=1762342219; 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=+/DNHEe+4Z1utUjpUpHGNxyDDFtPWLU0hZo32AwHpNE=; b=V7vreGHqIHjdvLwYQh22ziqKlvURuoRhhfQfeW3S+EsfQ2OBY+3c4/R0wQwlTg8MeD QtwDmOxtNd1p3fGgS7y+BT3AgXLsL1aiX04LpXV5OfjSlvidoelaqSFIbvxDPuUgU4rg mODxcsxLjF4cG6FyYZEO8FKsP3jdCAO5zNYLcQlwzchVxNCgYtnIl/OgiEfzeaWVzztT At+PwNtA4N0wMfgx0rXXpx3xhgO51W5HjBfIlgvYp1JuE3QA54gJoFjnzbQlD5QfIHy3 KAfLhwSaOdVEBxpdbX5A47FwIj3JSmczqwKxIKc7oEUQdf1999c/l53mZpnYJ828HNnG lYVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737419; x=1762342219; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+/DNHEe+4Z1utUjpUpHGNxyDDFtPWLU0hZo32AwHpNE=; b=pt86Y1dSK5lKDXqd9kvsmjpNEuwxvc9JYQ9bY7X0WniDq1/ehVWzwEqvHppEAk/a9M h1MHO2ZFHyk7DxpupYZOUTkD1W4O7E1jQdEsh7eVs5qpR4UTm53P+BYkmKiEGJRapar8 u9T3p3SVjcTe2+SUEeQo+Dqe6RWrvZ9LomPRskmReSzB8RXXoJ+oCBjHXIJpHHLahuJt /PVcarqW57eG97vmJ5Z+zJAvvNd5dtFr6QHVGRJpf+xzgNIVdOVOSaQO2MbsC2nO2TEQ AOiRvTMBggltJd9eVYcXap179PG3ZtzWwh4fT7cUa8Woo7MPXXgA+KmiJq1AOjThQrMR Moug== X-Forwarded-Encrypted: i=1; AJvYcCXZEOMkdLPJADidMT+BB735Ux3QJjt7TqHNA2StD8QXLjv9kjs27MsQ3p4735Y77BvsKdP8c42ni6bMHkE=@vger.kernel.org X-Gm-Message-State: AOJu0YylwSbyOt3wEbPn1ntgyCPrUXbSy0SMbEN83XviTGwCMa4Al7Eq D6QHg8+lxzoXw9C3c6NcoE9C5/pI8QvDxp5F+E3QVnXCJ7osirKQAB1M1HzzY0iMVj4OouR+hYF CZcGjXyM+5UIxV63i+6VJ9X4uGuee90+tjr05yTOS2BP6o7wDTEGVhznrWxGnuDO8hds= X-Gm-Gg: ASbGnctdUBuJE4ji2q0wILAaF5qoi3Y4gR+tjGW3pQ2lyOb3RJnpjP5hJmg6HWsnCbM vmvt788kdLqu9qhddwUnNJMi5jd4RBwCjg+t3z/VXfVKi026L9EhqAP0ic10EWHRwvl93eIHuv4 MgMWck/qZmkpBd9Bs+374zUN7yF1nyia1kWttA7y8NA+MpYMCfoyzXUe6GAdvTqTJy/gJ/LitS/ DVYn5bpZu92P51fe8hg4JJCL7kf01NfuUsMuQuDqwl1/irQlqSl+zergbW704hH5Pud9NfSDk9/ ZeYBfa8UN6FbncZstHIHRN33SoqsyPcXkNE/DJnlNEDK9rV4hn1RB2VKlBUOTHsP7lHygHugLXZ r8xQPZnf/vnZZ8uCc5TIMXGn6ykWOfqyP/w== X-Received: by 2002:a17:902:cec7:b0:290:ac36:2ece with SMTP id d9443c01a7336-294dedfb651mr40425565ad.18.1761737418818; Wed, 29 Oct 2025 04:30:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4j3okFkfV91nMkxAanoxMqQ3b60canzISSr6RYrYCKlojn0pZCA+621Wqputq2RMc/sjnAA== X-Received: by 2002:a17:902:cec7:b0:290:ac36:2ece with SMTP id d9443c01a7336-294dedfb651mr40424835ad.18.1761737418130; Wed, 29 Oct 2025 04:30:18 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:17 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:55 +0530 Subject: [PATCH v7 2/8] arm64: dts: qcom: qcs6490-rb3gen2: Add TC9563 PCIe switch node 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: <20251029-qps615_v4_1-v7-2-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=4927; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=HTP7hwkQqboLVMLasC3ig1AuOdloM19T6/dneNwv2QY=; b=9TMq7HUBjr7g+iLM4lYpgTANAk/M3I8+KOC+2Hx5NNMsHIf2bYRwidDpz7x0ncOXOSicHPkfO CImySy/oR6gCQturz5Dn6Rk/+5j+Mt/DJhdD/lfMEjtNK2K0iXYBYl4 X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-GUID: 8w-_7V74GpWxcK2qZozhVRrJgPyvafkl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX12flaN0fYymN BNxqysVtsRO+fO3uPm2pahpXk5fA0k6wrbDCyjeYY+uMFzIgAxpKSrTTAkqN5UmVBdzCQPYztxg cMykBDCPVAGJUsXJFtoBPsdY2nkQydGiQMKP/+yJvkp8wqorO5cvhoefi60XZg4naZtA3NalxGv snKtyeFl8tDGowF8Gxv/+UZOOrp3Ajtc+b1nE+p+YCHmgbL7knxD8ph/BOzppymfa+bXUpb/Drs NKL7G8L93lX1H2aW6ZzkVOu7jRVoU1G7jK55112TBFhTGaO6hb0TccVwxXunzmUXITxIkptY7OG 3VnqpMFQKas1R9dAMOpN4CUJZZ4exzOViw3uLi8hXea+h83/4cWWuX/P1VHt7TpE12sq3RD/+Km mn5UbBOAiY3+GkWSC/6b1niBlo19gQ== X-Proofpoint-ORIG-GUID: 8w-_7V74GpWxcK2qZozhVRrJgPyvafkl X-Authority-Analysis: v=2.4 cv=UObQ3Sfy c=1 sm=1 tr=0 ts=6901facb cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=UN7QK-OhvXrGNVVRcS8A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=cvBusfyB2V15izCimMoJ: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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 priorityscore=1501 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Add a node for the TC9563 PCIe switch, which has three downstream ports. Two embedded Ethernet devices are present on one of the downstream ports. As all these ports are present in the node represent the downstream ports and embedded endpoints. Power to the TC9563 is supplied through two LDO regulators, controlled by two GPIOs, which are added as fixed regulators. Configure the TC9563 through I2C. Signed-off-by: Krishna Chaitanya Chundru Reviewed-by: Bjorn Andersson Acked-by: Manivannan Sadhasivam Reviewed-by: Dmitry Baryshkov --- arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 128 +++++++++++++++++++++++= ++++ arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +- 2 files changed, 129 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot= /dts/qcom/qcs6490-rb3gen2.dts index 18cea8812001421456dc85547c3c711e2c42182a..c8308de1116e07f83f345faca0f= 29b9da3c4f474 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -262,6 +262,30 @@ vph_pwr: vph-pwr-regulator { regulator-max-microvolt =3D <3700000>; }; =20 + vdd_ntn_0p9: regulator-vdd-ntn-0p9 { + compatible =3D "regulator-fixed"; + regulator-name =3D "VDD_NTN_0P9"; + gpio =3D <&pm8350c_gpios 2 GPIO_ACTIVE_HIGH>; + regulator-min-microvolt =3D <899400>; + regulator-max-microvolt =3D <899400>; + enable-active-high; + pinctrl-0 =3D <&ntn_0p9_en>; + pinctrl-names =3D "default"; + regulator-enable-ramp-delay =3D <4300>; + }; + + vdd_ntn_1p8: regulator-vdd-ntn-1p8 { + compatible =3D "regulator-fixed"; + regulator-name =3D "VDD_NTN_1P8"; + gpio =3D <&pm8350c_gpios 3 GPIO_ACTIVE_HIGH>; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + enable-active-high; + pinctrl-0 =3D <&ntn_1p8_en>; + pinctrl-names =3D "default"; + regulator-enable-ramp-delay =3D <10000>; + }; + wcn6750-pmu { compatible =3D "qcom,wcn6750-pmu"; pinctrl-0 =3D <&bt_en>; @@ -843,6 +867,78 @@ &pcie1_phy { status =3D "okay"; }; =20 +&pcie1_port0 { + pcie@0,0 { + compatible =3D "pci1179,0623"; + reg =3D <0x10000 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + + device_type =3D "pci"; + ranges; + bus-range =3D <0x2 0xff>; + + vddc-supply =3D <&vdd_ntn_0p9>; + vdd18-supply =3D <&vdd_ntn_1p8>; + vdd09-supply =3D <&vdd_ntn_0p9>; + vddio1-supply =3D <&vdd_ntn_1p8>; + vddio2-supply =3D <&vdd_ntn_1p8>; + vddio18-supply =3D <&vdd_ntn_1p8>; + + i2c-parent =3D <&i2c0 0x77>; + + reset-gpios =3D <&pm8350c_gpios 1 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&tc9563_rsex_n>; + pinctrl-names =3D "default"; + + pcie@1,0 { + reg =3D <0x20800 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + + device_type =3D "pci"; + ranges; + bus-range =3D <0x3 0xff>; + }; + + pcie@2,0 { + reg =3D <0x21000 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + + device_type =3D "pci"; + ranges; + bus-range =3D <0x4 0xff>; + }; + + pcie@3,0 { + reg =3D <0x21800 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + bus-range =3D <0x5 0xff>; + + pci@0,0 { + reg =3D <0x50000 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + }; + + pci@0,1 { + reg =3D <0x50100 0x0 0x0 0x0 0x0>; + #address-cells =3D <3>; + #size-cells =3D <2>; + device_type =3D "pci"; + ranges; + }; + }; + }; +}; + &pm7325_gpios { kypd_vol_up_n: kypd-vol-up-n-state { pins =3D "gpio6"; @@ -1119,6 +1215,38 @@ right_spkr: speaker@0,2 { }; }; =20 +&pm8350c_gpios { + ntn_0p9_en: ntn-0p9-en-state { + pins =3D "gpio2"; + function =3D "normal"; + + bias-disable; + input-disable; + output-enable; + power-source =3D <0>; + }; + + ntn_1p8_en: ntn-1p8-en-state { + pins =3D "gpio3"; + function =3D "normal"; + + bias-disable; + input-disable; + output-enable; + power-source =3D <0>; + }; + + tc9563_rsex_n: tc9563-resx-state { + pins =3D "gpio1"; + function =3D "normal"; + + bias-disable; + input-disable; + output-enable; + power-source =3D <0>; + }; +}; + &tlmm { gpio-reserved-ranges =3D <32 2>, /* ADSP */ <48 4>; /* NFC */ diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qco= m/sc7280.dtsi index 4b04dea57ec8cc652e37f1d93c410404adaadd5d..23cf2c8c72b0bab67467e4b60cd= 57a3e658efa68 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -2424,7 +2424,7 @@ pcie1: pcie@1c08000 { =20 status =3D "disabled"; =20 - pcie@0 { + pcie1_port0: pcie@0 { device_type =3D "pci"; reg =3D <0x0 0x0 0x0 0x0 0x0>; bus-range =3D <0x01 0xff>; --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 B8323339B3C for ; Wed, 29 Oct 2025 11:30:26 +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=1761737428; cv=none; b=F+1ZAAtLvsygXQ8kkZ7K0vde4Meu7Bt5dA3TMvhuxtJrlrV6y4CMNX/1wDQ0y+Sql7W1Z75CGxJZUA3Y/0BrPHOYYXZsl7hsik/ruIKIe1FULcHzaZO11UMF4c6ddah9VgEQnkbMEQVeoWhJNTP0u9PWro5svIjTtiyY6fTErW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737428; c=relaxed/simple; bh=kRgViZa4KGaZCel0lL7UaLwBZ4oTyRhW1O/XbfTvd4Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=itHXtpGyO7RXxDFHHUOVirCcBy44YnTnPEQhsi5bjBJv04mq3WlvYgoHe0ESnEzU6nZVaZNT/G6pesjswfmGhl4oUOCMyPHY8T9+1dUIHG5QuFSmxA4cftxUvCE0cTADNcVDSsXNqTl5ckom2jGrRdMr9x8T+awExvN8Ky0SUkg= 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=DQPSGRmG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MuoogLxP; 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="DQPSGRmG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MuoogLxP" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59T4uxp63663636 for ; Wed, 29 Oct 2025 11:30:26 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= E7sek4J5JcaJw3gQMQZq1+elUkhg/cQB5aGi2C7MD0c=; b=DQPSGRmG3c/8SrOx hqpZ7nzbpvZcXxVBCYDkX3lp0iIynf0YJ9jSm2popx9x/W2tIqNQLHpxNPNNy1kK nNXc5052y/Gu8yuHi10pM8X6E7LZhTPwyQ+5VFwbLI0CBrrONyfNX81getHpm7US VuK/wBbeS8pTk5KLwwETTR9ehtp00ad9dWIFLbZbeTmHszY+SqikC8Nvo+Nwkf2q JemCs8bbbRv78vexmxtUagVKMYfiE43bA+dCmEkp17+xxHQTHANjVt/LoX0BP/+y lx1+JviLcikFwqN7TLY1RRjjgbFsU7+0wyyVtgyNNovzwP2pLev0RwWjO0hWVXTb R3LRRg== 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 4a34a1ta91-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:25 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-290d860acbcso149325945ad.1 for ; Wed, 29 Oct 2025 04:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737425; x=1762342225; 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=E7sek4J5JcaJw3gQMQZq1+elUkhg/cQB5aGi2C7MD0c=; b=MuoogLxP0jwPgrfgZbS1rM3AJmHkpztO8NNqkVpi8sbKeDrce3y1XuBSOnoX9GoycK tWOtQcfsIS4og4CCzVwQHonQoyY1XntOrGtJ/qW7RLQic9Ieb6OHleW1ktqql121djAo xOQZEXtKXVetOHmeqhv1DJlK5HxWahwcnXyevsmc/DUiKQK1qo3KVOY6BiPi5Quf3cHy rchl5inVBS3mttB7/paW1xXTBpYJIAzb4KY1Zdj+YCOLzaX69Ta/7e9D/JM+ZNgDAwUO YuLFqPUNp9I2SadKspKO2siSgv1FB2YTErmEov1DfbDqhhu1x+TCRfnwoPAeuExwoPKk k9Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737425; x=1762342225; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E7sek4J5JcaJw3gQMQZq1+elUkhg/cQB5aGi2C7MD0c=; b=XbteXwOj5P9BNEdsybwsNPSfm6Fx3dxprntPvOm4RMoPl2yEO5dCH6lydqN8mL4VKW VW+DRAxPan6+kdZliyKPj6HnsdWM7FrQKVD5N10cCKvVEwpfUtrdudpeSJfUI4Bx9cVt C/Qph9NauOcw1it+azBjxnpU4AxPnRsNle/oOqj1R5mbQugZnKhWumCzfvVIz+Qgb4/J pwNw5nlHiei61y7L2/9tUye7TMJ4jfHiHvoaesEgMkxL38k1h44nAW1NBZ17aAle7g18 m/lGctjOdBB9KKJFSbyMvOvHVAA6EkeeyBvz83j9+fL7x25irZH2qCDxMDk1+neJu9py iZpg== X-Forwarded-Encrypted: i=1; AJvYcCUQfpnDsnmeXlOBMV/H5f2mdnD8cPZwIX/IiLunttx/TKL9WNE80CekBN+y+Qv0JIAaAJty6q+bfzoESe0=@vger.kernel.org X-Gm-Message-State: AOJu0Yzq0BJ+WsO6PinephF9owBjOtxZ4glbzUFl2ZI6ucsx9n+UnWfg hGqJOxMxd8O7L1jTG2pMS2WQaeGNlT1NizkHeF+x1ER5ZdNWU2jsma4dEp+MauBbjJPRRBhUdB/ +0m9Q3eE7ikmcg6eF0Y9d+Vsyn1wSJLe6BEPw6/Jang99CagMVyiazv/kS3QFA7/S7ho= X-Gm-Gg: ASbGnctXXeVtzA8wWwwolP9XEktoLhCjy4xQ/x9OHRkrJOuB7H5xB6WjXScWuhDE2d0 1I5VyU66vlhAoHNCUhJ89eJ8TMxc6mlvTE+MiQ425Xh0/MMJf1u0F7Ri4bHFdCBDb3Iu+N7MQDp j0dxBQJiheDVwiyppSaFD9yZsDVGrisuBJApGUiGZsmxget2LqkvyL/kYhpnBexwIv2tg0w8M0/ BX+J70I6SZVEMQYLr6Xornrg197YFOnGglNkUTtFbc6M4VVvD379LFgW94FbIVdOBxrNekvoD7m rPCOzScVpoAGi/+XaqCDtVo7Rqwi4/5UIo5tnyZfjRYMHfGZQQhj9FlxBwpHecLl5mAJpDp/ow3 L9AuV9KqBvPic7+9NamMI4HGksUUILJmK+A== X-Received: by 2002:a17:902:cecb:b0:267:ed5e:c902 with SMTP id d9443c01a7336-294dedf64cbmr40460905ad.20.1761737425069; Wed, 29 Oct 2025 04:30:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHIfsHVKEWsWz2BHUSJeZ10JbEH9dJ62Uke5+/3SiZnq91/wZtwSuoAq+jP/ohaK8whQGV3UA== X-Received: by 2002:a17:902:cecb:b0:267:ed5e:c902 with SMTP id d9443c01a7336-294dedf64cbmr40460225ad.20.1761737424487; Wed, 29 Oct 2025 04:30:24 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:24 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:56 +0530 Subject: [PATCH v7 3/8] PCI: Add assert_perst() operation to control PCIe PERST# 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: <20251029-qps615_v4_1-v7-3-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=1537; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=kRgViZa4KGaZCel0lL7UaLwBZ4oTyRhW1O/XbfTvd4Q=; b=Wn2wemwGSrMgNe5eofO27eQXZ77sOUAVyX9DJBD9M17t//dwyKWk4QUnx8EayalfEjFvvcFE0 tBAHEzTYMVqBRoueX/dG+9i/X6PIb8NzwikYAt6G/sCsf1iLvVEfEL1 X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-GUID: T_NAZtae9gnfeijjKCAbJUcAh92xrG67 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfXz9yNTTaFJO0R 9Bvfd6H+ckl9EdWYMtCmsDAMrJRAvqD2/69QU24EBpVMy3kKDkT+xwrW9APPifKhdLcGolwHS+o UuAvTS3AWPlPKWiOCCZ6AKWcUD9r3kSBh1INpYkEsHXhkJbSL4JA1h1fK0mmOGskSyqfOTKKCsA VXsrCrXH6B7sX440LCWOjlFO5/+XTlvbzS8t4pRDHL6TxSU0e4xdGoXLvAwpc46JkrGrZWGwkac ge+jnaC2PhGu+kWCzvHmGlIEerFCBfVsLfBsSXW8eWAqUmnUwxhLuOGOEAs8sZQw+H29Yz7vvWc oEOq2Iw6TOpUDCX+jmgqzLvbL/2fMI/TOyC1GUQ63Bqip6ppft6XSQVxQ/xYaFwgmh1yoZV922r PfmHHBVOBzvzuOpxGsmahmXGv4mxyw== X-Proofpoint-ORIG-GUID: T_NAZtae9gnfeijjKCAbJUcAh92xrG67 X-Authority-Analysis: v=2.4 cv=UObQ3Sfy c=1 sm=1 tr=0 ts=6901fad1 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Ocqi7cVID08-S0eeb-IA: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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 priorityscore=1501 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Controller driver probes firsts, enables link training and scans the bus. When the PCI bridge is found, its child DT nodes will be scanned and pwrctrl devices will be created if needed. By the time pwrctrl driver probe gets called link training is already enabled by controller driver. Certain devices like TC956x which uses PCI pwrctl framework needs to configure the device before PCI link is up. As the controller driver already enables link training as part of its probe, the moment device is powered on, controller and device participates in the link training and link can come up immediately and may not have time to configure the device. So we need to stop the link training by using assert_perst() by asserting the PERST# and de-assert the PERST# after device is configured. Signed-off-by: Krishna Chaitanya Chundru --- include/linux/pci.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/pci.h b/include/linux/pci.h index d1fdf81fbe1e427aecbc951fa3fdf65c20450b05..ed5dac663e96e3a6ad2edffffc9= fa8b348d0a677 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -829,6 +829,7 @@ struct pci_ops { void __iomem *(*map_bus)(struct pci_bus *bus, unsigned int devfn, int whe= re); int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size,= u32 *val); int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size= , u32 val); + int (*assert_perst)(struct pci_bus *bus, bool assert); }; =20 /* --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 86821338F23 for ; Wed, 29 Oct 2025 11:30:33 +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=1761737435; cv=none; b=B7ML98P2X5Whjz9wnCgm+BoWB1HvNOVoiCayvkPODEYLem6IWISmtJdymhkBxbaPD951oVCKU3eozR+B8jqblofdSo08xkaHLR9hNcgoKq43ha5Qv4jHJfjZG6QwNESxaCBIWDaAzM9FfEoMuEUCBoo5U+p3idFUL3cIHM66It4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737435; c=relaxed/simple; bh=0ISk1zo5mbRe9LxvVD2vadNQhbkjLDQVBj/SNxnxtpA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HykyU+OIMyDJgPjSBnpdUJ1xOOyovL3YsP4m4JHHHH9uDG14FKk1OXGuyoPW1RNmlK/iAPRl+rKERW6KRmZ5OmdcjYNIagrMh7MCfsnCvglUJHh7k76XCYJT9zTu3M987J3E1Qt+qFYeTnERCTM3qkAZGmvpvmdu1eTh7pcmCc0= 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=Fc70GeIB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VJX99EVn; 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="Fc70GeIB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VJX99EVn" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59T4v4aD3755384 for ; Wed, 29 Oct 2025 11:30: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= O9iELXAHflmw8+ZgJ3dYI+WWKiAnqwwPtj78oi+ZNss=; b=Fc70GeIBGwxokD80 gTwd2frpgXYsUgFR9D+UQYKXzs64EokyWRZq+SB4BEwJubyeto6Y6PkIX5vO1rCn IgLA+UTVKypmQTtWxmD4OTLZIolhf/WV8m380wBk5VNl/Q+UvIepon/z2CFq4efl VhIGwp7TbW5xiekkftvfRqGEtumtugjrhyV3sSKs9b4PwDmMeoy7ooF6imYNKVHg x2ER9A0YYhT1ooPD1tPu/P8QDN7z/Nya819lZ46SPxRMBmqGSU6flUcIuhQ6HoPi La18/FE97HY/Pbp67ept8J7xFwDYJTDFO8qLq7rtS+aV6GBXr23dw1Dd7w91upoy l84cCw== 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 4a34a0jbjc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:32 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2930e6e2c03so75410975ad.3 for ; Wed, 29 Oct 2025 04:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737431; x=1762342231; 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=O9iELXAHflmw8+ZgJ3dYI+WWKiAnqwwPtj78oi+ZNss=; b=VJX99EVn0qgb2QczArTvKf8obLWgQzmCZ/ifMmkmcF6UEvO5GZiaqr4N9L4uvKe9hK m0vbl8qpSqZv9XlYUFmcc3HmqRZjX6RnHdy+FwCfcIBqJh4nY/AbXPbcr+NjgymLLxAV y01l4lpEsklMPEub8e9TEbi2ChSg98VOt6HSjalLawIMigkIGBckwgVk/bGtlF2q8sbJ Tt9DZ1JS2Zx5fzDyItxyjXAYarimmneHzpMZ3VdVSOd5EUdfJO/GdBcsJCz4uSjQqSxB UoSNcF9T/yJxk+4X7FrsqJrap0oy1xT+px5ZKFnxbOGV4BX1SCBzivl9Qme+Gv7Vv3fK A75Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737431; x=1762342231; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O9iELXAHflmw8+ZgJ3dYI+WWKiAnqwwPtj78oi+ZNss=; b=EgBFObNcbzFM9i+VKqWyIXhDYL3wk7q7PwzaqRPGG5ZZUh/IsCYWnUMsu/ukbMjz7J n4V4QC0humjF8KA+e1vUc2V30zzA48MIixKdDzK4U7Leb0K8n//G//076kdPr3+qZB4t OZnvKYY1kpoGdXZ51uQRcdDy31SAe9XUQaXjVRi+3yehWTYhx+E/lwG3L8CjxcIRWkxO VYzqK+XmD1MwqJOLAiMWBFM3Re8JgIuha/fDlmhNHjpXqi2vO/RugdAWnuwCSULTc2CS 5pZczPAFVCw6KFQlPAVHlXoiDfBmTnPlP4G//9dWBvHxg83WTqu4HkSNxvk0rBhon+4v rOXw== X-Forwarded-Encrypted: i=1; AJvYcCUoaIj20ogSi1NtclGteGBkqd/3xdzgj3sHSRD8v7IpLt9Ubrd8pB6BWY297jLhjslCYxCPf4pggc5cnto=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5dkL2mlInaAb748VStbU5G01cY4yJZnm7EWd0JU367aOrd9H4 OKMJHJOxAvfcHAuz9OtdW98M1GNXAIblJuYwRP+QpY+Js5jUsifV8zWqhOaUIY2J7Fqp1twawDS DV+qJyn2J4bK8WVIxtCZdQcH4TiVtbFY3k7LofdNZ6ufjLhCR+T/C/B44oIalf+9Q5Bs= X-Gm-Gg: ASbGncuV3mzwpUGBEeo8ahXUmIsZzD9tBaejC4Cpm5xKJIjDyzamvz3kp4WFVa19jRo QbHnD7ibO6Yg9oP3B3IbfaZjVY008krCwPyHhudOz+EWGFVY/oMo0/2pIEfF24sDNXdvbsbE3OM sxUwxFl9kq4ANg/ShfIR0B4DxtIBqQTeC7hbblva0WQtd5re77gPoRY5po7NUWikTxomQVD47EX c73S4Vf4x2BZh7lZD+NY5hni0FhRjjrkx5hUxyBpYAe/gPIy6aIRY/35DqVVQKZpOn1ivstQ9Xc q8gYijLZ96zXP4pEiyi+6MoFvLaSjy5LBJRH0/HzT7aaRw+Oareomooh7AeDbFs2gyROqTYCho7 xcaFF15Jvw4Os9Tc2hGlluF21Ndx4buSp+Q== X-Received: by 2002:a17:902:d2ce:b0:269:a4ed:13c3 with SMTP id d9443c01a7336-294dedf443fmr33997105ad.5.1761737431335; Wed, 29 Oct 2025 04:30:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHzD3E0IZm0JLmQ6eTP7Lq7ar8FKXrfNnuIQJfcHUciek8CdlXU+uEBlYoC0IXK5Nyb/Xjdwg== X-Received: by 2002:a17:902:d2ce:b0:269:a4ed:13c3 with SMTP id d9443c01a7336-294dedf443fmr33996485ad.5.1761737430778; Wed, 29 Oct 2025 04:30:30 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:30 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:57 +0530 Subject: [PATCH v7 4/8] PCI: dwc: Add assert_perst() hook for dwc glue drivers 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: <20251029-qps615_v4_1-v7-4-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=1362; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=0ISk1zo5mbRe9LxvVD2vadNQhbkjLDQVBj/SNxnxtpA=; b=kOSo+nmmPNadAjOdB06SfSAKWKG/olLMaKQnaw1Yrr90I/zKaUVLNSJ2NCiJnpG3h7DLefx82 JJ7r2dS3VeABWmKmDzJ4i+yI+7xbpWJl/11xp4sC19PcUt3eyhvpgJE X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=HvZ72kTS c=1 sm=1 tr=0 ts=6901fad8 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Py5lcOcq67Lbq8UMOfUA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-GUID: NjufxyZP-bS5-pHP9VnnsOXAzcQtm0bG X-Proofpoint-ORIG-GUID: NjufxyZP-bS5-pHP9VnnsOXAzcQtm0bG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX/WdX9w4kYw1k 0oAr5TPTjj2O2WpB4OazcOgfIBTSd3yQvtMNY0ok9Cq3j1b1bTo1ZYkjc/1B2l/rEL+KbrAI9/U 9ywAMlr4CJ11c+rjT6ybs06SFbxC9zzzJCBTLaJOIb6YmuHwGvzCNUEmfwNS6uR3NYeOyErVBS1 EBETg4LUqT8D4P5+L2UvaJ8Qs59lH2CQyR7X2iBYRjtXtyZfr5PpYqJDCfLhxAX0UN02iWyfI+b VLPr3f+XUEELYFGEDuhwDbJHHKjbSFKEYE69U1hDDjYgULyP3RPkV6RTYtnCIjbkZZAmPY0ByFg iHpFrowuWc9pNLfiDNaeGvg6aXSVuLPNVyHqDXa/4uFYviLU+UdeKqhPQKxEPBhZL3aDVr7espt F0hj6oD/aLypf+6s0YBebOkHXeN8jw== 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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Add assert_perst() function hook for dwc glue drivers to register with assert_perst() of pci ops, allowing for better control over the link initialization and shutdown process. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-designware.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index e995f692a1ecd10130d3be3358827f801811387f..99a02f052e1c8410573ecd44340= a9ba4f822e979 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -485,6 +485,7 @@ struct dw_pcie_ops { enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *pcie); int (*start_link)(struct dw_pcie *pcie); void (*stop_link)(struct dw_pcie *pcie); + int (*assert_perst)(struct dw_pcie *pcie, bool assert); }; =20 struct debugfs_info { @@ -787,6 +788,14 @@ static inline void dw_pcie_stop_link(struct dw_pcie *p= ci) pci->ops->stop_link(pci); } =20 +static inline int dw_pcie_assert_perst(struct dw_pcie *pci, bool assert) +{ + if (pci->ops && pci->ops->assert_perst) + return pci->ops->assert_perst(pci, assert); + + return 0; +} + static inline enum dw_pcie_ltssm dw_pcie_get_ltssm(struct dw_pcie *pci) { u32 val; --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 6791033A036 for ; Wed, 29 Oct 2025 11:30:39 +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=1761737441; cv=none; b=RGdOX/nxt633kmPLzkKfN2EQmUAlwRxPRDXfT/Rqph8tvTaCmMX8WQebVsJQwFLCmomaaJqtBctjMb77K0FkYTAjcdFZXpxdf+nsdQ1UF/u2MP8xmYOkFQODIfpw2lT5cQbLZ25mWXHZGHPIQG7Doc32Aw/AKDFhl8t0w7Z3Jdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737441; c=relaxed/simple; bh=9K/ld67bZDtw+m6f/+xoehEOm9YcU7EXoGsXpXOCEkU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sYXFB1DAAL7esn230LqGtcsi1wjRf3aAdbOC5pWEjCun3R+UPzLkaB0jt7CsqPM9NBZKgh2LmjLOojrOD4t3n7D0kCj0XAeZvoSKHZuPTvdmdNuoSq2BjJcNv2aptanUeBKQAhukLJE+bqedHGn1Yv7tDLgy1OrJaXHuBfsvcLI= 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=ColIfwkE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=juQobNij; 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="ColIfwkE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="juQobNij" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59T4uxpB3663636 for ; Wed, 29 Oct 2025 11:30:38 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= wCTZOwr2cUSKWpV7LwGZiQjZBqN6lrfiwX+kWZQGXyc=; b=ColIfwkEu2Q+1Ppd FG6fABGdw9Cnbcr1yp5VTedz9cJHeTwjj+mABN+Y0zUEJ0iwQoqfAxjDV3bZ0Q8H n07IpwGw+mv/Dy6nwT6vhxw7qa5lkWmUfup5FUxjkR/Ew96DVc6jsm17iitG2ab2 ZoxE9c1HoeRIZeiH/vTDve3ewFROHSg1twNvQ71ivDuWWmB/u8mwFEwCbmhOfWbm yNrT9hPod4sdJQUEN/MHEdfWbsUkqpURJPNrHLQbNxcV1OMoZgWLaOmY4yJrPFen 46nrMQF/D2q/VrNEnAMcChraolbHd4oiBKkZ6FvbaV0sIC5weFpJokX5C76EtX0e jEUp8w== 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 4a34a1ta9r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:38 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-27356178876so44777285ad.1 for ; Wed, 29 Oct 2025 04:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737438; x=1762342238; 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=wCTZOwr2cUSKWpV7LwGZiQjZBqN6lrfiwX+kWZQGXyc=; b=juQobNij127sRiPCsST6eHfsA6s5n3gesKPfdpUkqXJf/hyAzTe93cZAvJiGYBOoiU UdFb2KItna4pg18D/v5nudcG4aU81hJ1AinmipaWA4C1INdWF42QV+pWv5DOAOW6zn2X 5oqy63jAeeDuCYBp13ykSdSWEAo33iySob+z4k8spJGZBWfPw5DmP2BKf9xVKoTF4070 E0E629CT8Y7lN9j51OtA4nOyKSEvVJuAw+MRPp4Nq3zL9AwF/Ljz57m02Uy5EdHBplYr L07EZgCUpGrJlhe49GZi++cRbGUAdNFmu/hKfeOTXQUF79/L/JTAEfWbkS+rJb3h6gOI KzKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737438; x=1762342238; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wCTZOwr2cUSKWpV7LwGZiQjZBqN6lrfiwX+kWZQGXyc=; b=ihQE7HkJiwn8z9TLGvokzXs5S3g3V/206icu0Tj0U728mOXGeFT/Vf06yE8geoAqqa TeerDWbTVy/1S1/8dnc8cR2S/oNBtVt6TJUfu3qCq5HfFcYM/AmRtATw0wFkNBx/RCWb a8rjOpygiUNG3UmsY9MQPP+jmJdBcpc7uOvzkt5UdfWvkY3K3V63zvTsuq+HslhzeoHC AewglrJ2D3LV+lJFGWZPFlNJJmmpyEKOyLmjohEz9SGPyCNPJ2KtRjiMjQimjwOE81Ja rHKyj5mKTNTLVWkowmwx41IQdt5VFzqx7uImZfAf5UwUHLxjFiRSdJMns7Km3Z3jo3+A erpA== X-Forwarded-Encrypted: i=1; AJvYcCXTTBucMATKzLMdXASHKaGg6MHgcYuZeSLfb2wO3p06Ak0gP1jTWvoJKj81p3+iRvYz8gCXgIxj6jKon0E=@vger.kernel.org X-Gm-Message-State: AOJu0YxR/Q+O4hLedN0JfLGESpkgCAT4sM3oylCKI4CfQeZj9xd4Zza6 FEuJQPFGgTgOH+2Zj0Q1mttZ9bjaXy4bhZtVyOcieU/JRuFjYSUmhN6eA6i/JhsKiDGRNIAZEcv 78tvxUcK6v0TTKl124bTLyobwDcMbtRvbOg5qggMZH3Frg6wWL3aoxT++OunLPBAjPlw= X-Gm-Gg: ASbGnctcrw3IgkOrsNx5fCYEOz+AFg4YFSqmOHMCpp8OUTEdcYSjCnj9h0+mWsQlYMR 8pISjdPKRNbUGvTB075r4DzoZKBvEwZdng4HIu61dexV1qYAq9bUpW09MWqb8GMEgxYVE6qQDkZ Hh0YI0i7HMmmIOP4ZLPJVoKU1rTBKYrL9pjBJrE7h0/jk30btgEUxTh0Y3DMBuEs82u2TfIlrY1 Q2bGefaY+w9IOaJ0TrexSz9fW/wxWEfadPHmQ9TglS85CvHCOHzowlu6tFg9BPd15Rzw9vBefyl nHDCx/D5fAK8rmqVUzLd9HlvqKJMJ/WWD1crIfNzRQ2sD8jhw65cbhAt3V2UcYreNHPsmdohMPq vX5hrGrgCPsxggwennhCrH0TWhvS7zKcY1g== X-Received: by 2002:a17:902:f610:b0:24c:965a:f94d with SMTP id d9443c01a7336-294deee4d1cmr30235915ad.46.1761737437723; Wed, 29 Oct 2025 04:30:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEg2rhwEuCCYf5gyZ7/UlduGCKTgH7m45SVj3izWoOaQv88Us2VqzTA5ZMHvZHROpfGtq7z4g== X-Received: by 2002:a17:902:f610:b0:24c:965a:f94d with SMTP id d9443c01a7336-294deee4d1cmr30235485ad.46.1761737437104; Wed, 29 Oct 2025 04:30:37 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:36 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:58 +0530 Subject: [PATCH v7 5/8] PCI: dwc: Implement .assert_perst() hook 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: <20251029-qps615_v4_1-v7-5-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=1708; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=9K/ld67bZDtw+m6f/+xoehEOm9YcU7EXoGsXpXOCEkU=; b=uB04FAqsEwXevtvjMHJajgLBMhaKPIHodRX+Jhi5X2SfE/FVlaqw6ySrvVsTLK8jD1Rh0zXwM RgGanaEuvGzBBOAzrGtaAdjqhaIFOmK8zscP3MLvhou+4+VPNTNMsy4 X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-GUID: 5vUKSMJWvu9Q3_j-5D5RTqna-M3sVHRY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX7aSUR64mex+P ZID2LHN4iFXdRVb8giyBN4Xxnd0ugI/LQqHDH/D35ICsDSRoDa4mMRshLuC+vDbXtqrIXwQWEg9 5LO5Wzc8VfiD+gfz6Ai4GJ+8o/kGe88PvXrS23DfX+MjugqrmRzVF78E0L7Grtxo6MvUfN4n6Ff chRg2hdh6Gdoz3sioJPupRp+UNPKyJu/5mEsL2zLCss4Y9QxIEIUvESaSFclNgXkmVWevWUzrrH TkFwvP/vzmIh3hXq29IaSxP844juASurXfGR0LLG+X8FMY68Q+HmTsiWa7nTRpvXzDpMUSxWbB7 gZ+/PVoYH2j6+lov8frPRuxZmE5sFfN7x8N8LyDhuoGmHGccEtoYaK4xUePE3KqnpEtyPqjGf4N eX0NTfecs/YcCkKdAL4vKL4MlwP5XA== X-Proofpoint-ORIG-GUID: 5vUKSMJWvu9Q3_j-5D5RTqna-M3sVHRY X-Authority-Analysis: v=2.4 cv=UObQ3Sfy c=1 sm=1 tr=0 ts=6901fade cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=dSOQ3hK3KXaY1HoqDbQA: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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 priorityscore=1501 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Implement assert_perst() function op for dwc drivers. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-designware-host.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index e92513c5bda51bde3a7157033ddbd73afa370d78..a209701e8037039191fb6c61b83= 978d8f561f7a7 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -856,16 +856,35 @@ static void __iomem *dw_pcie_ecam_conf_map_bus(struct= pci_bus *bus, unsigned int return pci->dbi_base + where; } =20 +static int dw_pcie_op_assert_perst(struct pci_bus *bus, bool assert) +{ + struct dw_pcie_rp *pp =3D bus->sysdata; + struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + + return dw_pcie_assert_perst(pci, assert); +} + +static int dw_pcie_ecam_op_assert_perst(struct pci_bus *bus, bool assert) +{ + struct pci_config_window *cfg =3D bus->sysdata; + struct dw_pcie_rp *pp =3D cfg->priv; + struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + + return dw_pcie_assert_perst(pci, assert); +} + static struct pci_ops dw_pcie_ops =3D { .map_bus =3D dw_pcie_own_conf_map_bus, .read =3D pci_generic_config_read, .write =3D pci_generic_config_write, + .assert_perst =3D dw_pcie_op_assert_perst, }; =20 static struct pci_ops dw_pcie_ecam_ops =3D { .map_bus =3D dw_pcie_ecam_conf_map_bus, .read =3D pci_generic_config_read, .write =3D pci_generic_config_write, + .assert_perst =3D dw_pcie_ecam_op_assert_perst, }; =20 static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 D921733DEE8 for ; Wed, 29 Oct 2025 11:30:45 +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=1761737447; cv=none; b=VFvlpmjZ3QgR4+IpiVHtUeKEPbNvx5MSoW9SBTxzmWgosrg0J5tLYvIuW+xfKZNN4obOyhJC437O+oAMqWAuaFf+KMx9P7rpt+cJXVXnh5o4W9s2PIhaXMxbG3mDbEyAjeG34t1N0Vxko3s59OwPuKT04r/hRRBJq+JoWSVqgFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737447; c=relaxed/simple; bh=/0zY7f+/NmNwlOKeDfkudP6y0/Cc6rFCysp5ws1L2xI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DA6xi3c9VezOOAa7DWU8b2aO5i+JX4Gn5eSfGfdBIfSS4CnVKmZnXCXRWIA7IpqkjeGwjjVnEUyq6Kh2yy8hGq/LonSxHyaYtqHtUxWFolCMreog4Df37d9QmBKtiaMhwhl8UdiXzF1S4jo0M3qfJoamjL3VF2fXjC9b9Wt0rdI= 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=DE69YI6l; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hG2U3GFH; 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="DE69YI6l"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hG2U3GFH" 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 59T4uoCq3720135 for ; Wed, 29 Oct 2025 11:30:45 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= zgL5OSB/LlXjPB9KeMiUSBoV579HCQc0pGIvC9Q0kz4=; b=DE69YI6llUWPsvdK 2eEaivv2B+oU1s0fHOyUrUwZBJdarFBCVjWLHZYtcLoTK7h5m3KlYMIXwvj6zsdI xSpb3IoDHPtvZBo45tVkz5WQhfslR3J93W3WCFpQWPdVwSRC0iAJvjPVR7l4G/pv mq5RETV1+hreNoGarS7JNhQxu91bMraZkFmCuCALwe/Tv/33YLUjC4xwonJESLJL P0buCBedKZ/I9MucD1qhuCfw1uMahv1TFg37cKGmSph7w0mj7lq3SgGW0QEhLFoJ WVYDvwxxIqBKoFIQqCViDqAHWnauJME8QfgvTall9drvcjZ3Mvg4E/ux5CDuNIiJ GclK6A== 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 4a34a22cag-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:44 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2698b5fbe5bso96957615ad.0 for ; Wed, 29 Oct 2025 04:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737444; x=1762342244; 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=zgL5OSB/LlXjPB9KeMiUSBoV579HCQc0pGIvC9Q0kz4=; b=hG2U3GFHqS7lm1IlUaIZA0rCnlMQldm/NIza+r3WYln1IpUWXY47kcQmYQz7RF9Ufj GI6QW5WElf0GpzismGw9J847i18BW3RCRumUESnEIio7GAz3+ELyMPTjFO+bo3oxVxeK cULpd5dOCJdMpnKduKIlQ8EBtAVtTeu1HY8utczChuLGS/H2iFWvbVbJEcXvGR0FXLAe 0+thmicibz81qx8sxinE2FUWrzVZBzXD6lZpbLKWayXaKwqBtpMi5XUlpeQCuJShqOsK RZ7pSJ+4mceUbTly/1UPmmls87Wqqw4RezJuML1YzS5pRC5XKowfCeANy3SOLs74cu+q MJjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737444; x=1762342244; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zgL5OSB/LlXjPB9KeMiUSBoV579HCQc0pGIvC9Q0kz4=; b=ehQ9CVc+tg75G7sSop19kQh8jElQaEfcNXU7lwNLBYZmvKcX9rV+fZgBWrnBWIe3IF cjSpKP1nWtWUgyoeHKTxpFUp3iLdiTasbzu0coRy8dBGpqOvUVWTYPfrM31PcUUqqDE4 06p3O59T8O73clZzbFLzeqHUXhWW2rGf8l0B/nCwmOhrC9vF2+qKtuM87RRrZMpBP01z 1zqnx78dzSO0oF6Y9TQLOh04+z1Pa/TdFoUEi8OA/2ahheXNlu6eP9O6pDgUDYQhb4Ed bDHwbhImuxeyw/0rKRD8KgdJVE1BQyMawQGFtSRZcckJIUxcuSROPnomDmRGHY6AhziW DaAA== X-Forwarded-Encrypted: i=1; AJvYcCV2OmM85EdD5wvBSIb11e9Pz0I5VnO+KM2xIHanE8ERTps/j/x3lRrpxLKACJUIGbwGs/2weSSCdMcU2JM=@vger.kernel.org X-Gm-Message-State: AOJu0YxW5QcVoYSO+xBtp5XALb+w5Nq4EP75OMTX38EyIkmnEqf8sdBp 9JNZnaFZUyCSr3Tk0eY16jcQmkISlkpOPyvUESKLFkQcwJOAF6eA+rJrHKrZUYHM+w4g5XzrvtL CvnNV8EirwEN/9C4zLsuFx/ae/a7gW+X57AKdCscHdh9XZ+h8hdANYp4mohGKDo9hkng= X-Gm-Gg: ASbGncvsT7vuLyUHf7039nKHt4SLq2wFLrliCGTPv4ljxtL3No9E3HQH4s8GgVndFLO 6i+Bgm3Cr369qQw05me/6ePD73gaN/vE0nWswCjF8DFQCPv01usWGVHA79M9d89aw4x2AAr29sQ +PTJleAA02cyIWSjewlr//L7Q/MduAkkOR/fBWroXobWwl8l4lpJyA2ykC9xVwITtWwI9/UdtfM p+sv84j4fqRmFP/AKbTpJjAQ4dqsOlnTtNUyH6j1k5kkYv72ETNU9Fl/C1wyEgl1GXuxCVVmIfe yymhH1lFN9zhvZ1D8FSfzc+XkOLIAJP6JpGR69qlDrNht9CRuDN1EcOF9aFnBc9BNnmiYWDNvD7 +dsK3M8z9JCOF2B01Gffp61aFPsEjAWDGOw== X-Received: by 2002:a17:902:ecce:b0:269:87a3:43b8 with SMTP id d9443c01a7336-294dedfaa82mr25711725ad.4.1761737444085; Wed, 29 Oct 2025 04:30:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEJyLsEMvXCp+Lqhoe7+83sMpVNkVgslqDw8ZcMIT25DGYtnSJn9/5QFnN/lFGONxEq1y/8ZA== X-Received: by 2002:a17:902:ecce:b0:269:87a3:43b8 with SMTP id d9443c01a7336-294dedfaa82mr25711345ad.4.1761737443407; Wed, 29 Oct 2025 04:30:43 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:43 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 16:59:59 +0530 Subject: [PATCH v7 6/8] PCI: qcom: Add support for assert_perst() 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: <20251029-qps615_v4_1-v7-6-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=1479; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=/0zY7f+/NmNwlOKeDfkudP6y0/Cc6rFCysp5ws1L2xI=; b=2/MPQfCzaTDI0jwXow2vCfR0h4ZcC1BUmVn3V0PWdjPoconL51iUp68mvJ0BgnlrMSeD7xD0o YPHpHYrQfqCCAqgUT9fjnXTawRabKEUkMc7R/ELwb3T9v8filKJ4cfO X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX7uRUUm9wposc h59XYdfQU5OSxrjRUhlkQiCLW7Kzh8pMfDO3Xxy8Ttlfxto3hoYp8L7OxZ6o9t3Ya8B9dV56lmj DPdVeHPUBACgQBrYbhgK0jhrNVlwAxXFHaHNqjzTTBnJfsKgJp6qwv/jts0MszClicW6AQg3Dwp 6D0BqalrZ0hPk0j323kxwhX5WdRhYx+RuecD2RDKJlhgdbtjR2tkZjtnuDwm2pH+yHY36+koPCA Ec3h17UUDo4J7aRBEcr/Mz6yba5rpoSejun9znJbX5VKm2BwXNoYB2YhVdMac2+/N111ATqC9BL uaHjdradKyW6Jei1rJeiBz4pzGdOeRHdt+msvaOLAwRRJ0rxJpEhR7VNQ6Hh2AicHKfWq9AZLnq lk6UEuzfFvrUJ1sXWiZf8qOoaqoGvQ== X-Authority-Analysis: v=2.4 cv=V5ZwEOni c=1 sm=1 tr=0 ts=6901fae4 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=j2XxTBISUlk66HYKGUMA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: Thsnol1k16oDN1IRxhhTKxZTwmvbiKn0 X-Proofpoint-ORIG-GUID: Thsnol1k16oDN1IRxhhTKxZTwmvbiKn0 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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Add support for assert_perst() for switches like TC9563, which require configuration before the PCIe link is established. Such devices use this function op to assert the PERST# before configuring the device and once the configuration is done they de-assert the PERST#. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-qcom.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controlle= r/dwc/pcie-qcom.c index 6948824642dcdcb1f59730479b5a3d196ebf66ee..a6ebcbc19d3c8b28bab53f516ae= 2a2b42701ca6f 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -640,6 +640,18 @@ static int qcom_pcie_post_init_1_0_0(struct qcom_pcie = *pcie) return 0; } =20 +static int qcom_pcie_assert_perst(struct dw_pcie *pci, bool assert) +{ + struct qcom_pcie *pcie =3D to_qcom_pcie(pci); + + if (assert) + qcom_ep_reset_assert(pcie); + else + qcom_ep_reset_deassert(pcie); + + return 0; +} + static void qcom_pcie_2_3_2_ltssm_enable(struct qcom_pcie *pcie) { u32 val; @@ -1448,6 +1460,7 @@ static const struct qcom_pcie_cfg cfg_fw_managed =3D { static const struct dw_pcie_ops dw_pcie_ops =3D { .link_up =3D qcom_pcie_link_up, .start_link =3D qcom_pcie_start_link, + .assert_perst =3D qcom_pcie_assert_perst, }; =20 static int qcom_pcie_icc_init(struct qcom_pcie *pcie) --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 DCC0F340DA0 for ; Wed, 29 Oct 2025 11:30:51 +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=1761737462; cv=none; b=qT+/ZozDQi3odYCKlqrNTCSIqoWMsGwSDOFl1oJ1+e/fGPmuLYu1I41VYiun+wc4HFF4hrrWLFqJVNZGlGZ5tANmwJIINHMd48ueDuJ80JLMvRpDMq2kmuk4xKVHSh7W/3H8s3JlrImV+d9MFKNoY2NT3SK4WOvFrb0oU2Es5HM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737462; c=relaxed/simple; bh=Qp8Mmp7bx4J2E1JhmAOqVGzqZtEIMBaTUoGYrEMgWiU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s5kVnfhxd8u2j7DeQq0gG/bupitzyyPfHo3NECpFIm49CsKJl8Zbt8o6HcZuBoZ+5uzfGglcPMhBZT33inii8//mFFTC77u2m94hd9QmutmFzgrhixsdh7kWVXFM5joNI2l0SDREIudxQI+tBsZPy9sPyLj9Xd7XNm0QgroxU7U= 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=QZljZNyU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=US/z6kE0; 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="QZljZNyU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="US/z6kE0" 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 59T4v3153720718 for ; Wed, 29 Oct 2025 11:30:51 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= lgDEHTIbutVCIfjWEkDZtgrQs+c3+lk079qYfyA3JzY=; b=QZljZNyUqyObmm+B Qo6Fma1Hu1xbCpKQZ0eVPDgipFqom3gbmpHTpBw/zPpkmQoH301GgSlA8tnNmDM6 /JQmMCAaHkfr/Kgwh15zqzPrj7a8R8hTU9J+xzjH4oOV0wr8/1MFntHOd+wBayjI j0Z5kTgnIQR8qeJMsM3n6UvfBL+Pq4RmWDUuheuKU9W4hSL4+HeLNSf2ivvTTm0M O8Lnqkyaxf3MhH6KIyQ6+JgeFkKmEGho2hEr536ttLUQSrskLUhfU2/+PRS4XTnk GykaEKE+qfuA54bvidcRYIDsK6bul8bCyXQbSroANjKefF7Dfk1z+hcV70eoJhlI bV4pPg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a34a22cay-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:51 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-34029b3dbfeso1785488a91.3 for ; Wed, 29 Oct 2025 04:30:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737451; x=1762342251; 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=lgDEHTIbutVCIfjWEkDZtgrQs+c3+lk079qYfyA3JzY=; b=US/z6kE0hIWTJf2dc/ZzkRliEIrDEsAZfNZ9wsyR336wsZr5A2G8WaO4sUwpR2eeUU f9aV4SbIhPWK4Z3CSXNDaonDt7A+nyZXeZ3B7mgaiFd0Pb+r8d2AAPVqzJ8FuqBJzOSf HOM2D2da/coTQ+EFwUHrcO48ibeRfPixNS9uFHR8Tfy5iEmuD7xOUF5N/9CCFDavF6wN lYqtKU+JUYrWGXV2bVWAShfgf2bnlwTmipllY07Vco45eg+HLb9r0qxA3fWtI45tEzYx NTAI/TW0j3iSahsL50tvkqgI/F95PANRqC2GdraySUY88qFqNBHpiYiQyP+f0a8ygVfb 4i7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737451; x=1762342251; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lgDEHTIbutVCIfjWEkDZtgrQs+c3+lk079qYfyA3JzY=; b=Aw75JNRYFujOfJibj+LiFjW4lAnw5fN05VvyAqHr9Lob9CSE97jaPfhV+MLB+Isogm +TY5Lay6fdBSd+TlJ1jStcrTdD7hV5UemZD51n7/qQd3O22raTBOIA2FAADEVYEh4OEd Fva58T9SL1q+kIjzvZV+px0kUAKeRjsuf7y/rd8HZt8NKm0A9qrPYlJ0x5OUcSO7f72l 2sFcEC67uIAJoWTowSupbLl2Elcg6FrhYxJqnlz08AGqhe3MM3HUBtEYhPvwrEto5SzR BYyPTH2XKHvBosFiis+ektK0l+/d5bUxgIRFqg4mygoN1x0dE43tYnsZLLIJE5l9hDOH gRCw== X-Forwarded-Encrypted: i=1; AJvYcCV0Rwgy2r2BBSzUmxeN2JBB2y564OZ7a+awph6jqlVaCEYsvE8BdFk34aOmrer3pCyS2igAbX28Im9qUrE=@vger.kernel.org X-Gm-Message-State: AOJu0YwFzgjIJw42d/EbI1zgQwo9qRDLxqtYchofsDTEYcLl0iYyDU38 2/cP6AGyO/2Z2b1GVlxmxgvgPFl9tIt3hEw0DDggpGQbsQjgtfMPsWTblLV5AZorqgT6MX0yXL8 y90QhpMcHoGB6yXI7aRnf7UuWkMo9X279HVVB6O2/Sh0/3aUAlWcU5lwxec8imJFXSlk= X-Gm-Gg: ASbGncvVTa/zYi56qIGK18chIfOPxYe8ZSoTA5ycfMPWEt5he9+MvIOxM9LccGddo23 MHHRpUu7x9b4PemlxWzy6JO63LI3i90u6IAsMup2CGYEA/GyoOuGewfRIWJn6gFxLbgkVmQrHaM nzpZXG1I4mbA+zR2yrhbq88lnFWUgcnTZm0sa2/EsPU6iDOltDKsF6dkku4S0jAzJd6Vrl0eVxX qGastvOEHSI4KJgSy03sJIAYW3/VwZxTCnENA4MHdD/ewX8miNAncLGzQmlBAjRT8NXbxYWQUzb rOfjSI1UISENYZX0Vw9wcLZybHeatjAP5GSzUi2Vpg+FRlW1x22YEWN7+zjckb76jrIl0Y7VGcl MivmcpzFHEEAwKcpK1XIBPdo3D7000uBj/A== X-Received: by 2002:a17:903:1209:b0:28e:681c:a7ed with SMTP id d9443c01a7336-294deec8d5emr30915595ad.36.1761737450396; Wed, 29 Oct 2025 04:30:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFyBGfitnJb5d72matMvOP9OSygmcBCg8ayvZYCaCiH/ZIAXmdr6Ioo8zux7z78Nl4JrVJz4g== X-Received: by 2002:a17:903:1209:b0:28e:681c:a7ed with SMTP id d9443c01a7336-294deec8d5emr30915215ad.36.1761737449747; Wed, 29 Oct 2025 04:30:49 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:49 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 17:00:00 +0530 Subject: [PATCH v7 7/8] arm64: defconfig: Enable TC9563 PWRCTL driver 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: <20251029-qps615_v4_1-v7-7-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=898; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Qp8Mmp7bx4J2E1JhmAOqVGzqZtEIMBaTUoGYrEMgWiU=; b=oS/tFzkDw9Orhio33EJ56o8TloT8Jc3fUOBu1nVbqbG1oVR33d72oI95HFn7cfImCLcd3tDqi X/CyxlbjwjxAYLVNF55aHWSDFgcqTQF0hz6Ru3wb+KN2ZiETXSXA/II X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX87SBxroj5/bL 7UXefWAZnRlNpvXQGcRR6sUtv96Lwy6GGwInxtd8vv9GaLUn1f+eKGIb6gYL1cTFd128n7x4T0w iub7MfXfyJNNWW2bfrgJzo92JqC/LE13g/e/bgdVJAi7hUEKEVLOI4XvptEHJ+OgNcjLa2N1Cfw 9DY1WXo4G7jlhI5anen9gOn4rvv1AuRMCprJWohvv+aUleUrn//lxeQbGEpFxllwFm8Rncavo9h WYHX+D1It1GHWvoHb5PWlQnovjjI6GforKIoPzhyB/7m3lqpS3SSlOBSU51UmRjNioICpNKhGY7 qt3tf33V11hBNfhiUUkdyWqqmzmr2ZrWBcM3Nm3o9d0+acEdEhDRJff+VNqlPo6n03gSZqUDpy4 8LDq5rxw0POcIsXY2PBYKj0MzNibeQ== X-Authority-Analysis: v=2.4 cv=V5ZwEOni c=1 sm=1 tr=0 ts=6901faeb cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=5PcvmwL3LSb495PBagkA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: 8xzwnVjkpLPvZ40miEGLwCj1CuUBmcm5 X-Proofpoint-ORIG-GUID: 8xzwnVjkpLPvZ40miEGLwCj1CuUBmcm5 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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 adultscore=0 suspectscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 Enable TC9563 PCIe switch pwrctl driver by default. This is needed to power the PCIe switch which is present in Qualcomm RB3gen2 platform. Without this the switch will not powered up and we can't use the endpoints connected to the switch. Signed-off-by: Krishna Chaitanya Chundru --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index e3a2d37bd10423b028f59dc40d6e8ee1c610d6b8..fe5c9951c437a67ac76bf939a9e= 436eafa3820bf 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -249,6 +249,7 @@ CONFIG_PCIE_LAYERSCAPE_GEN4=3Dy CONFIG_PCI_ENDPOINT=3Dy CONFIG_PCI_ENDPOINT_CONFIGFS=3Dy CONFIG_PCI_EPF_TEST=3Dm +CONFIG_PCI_PWRCTRL_TC9563=3Dm CONFIG_DEVTMPFS=3Dy CONFIG_DEVTMPFS_MOUNT=3Dy CONFIG_FW_LOADER_USER_HELPER=3Dy --=20 2.34.1 From nobody Wed Apr 8 06:09:17 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 F02DC214A64 for ; Wed, 29 Oct 2025 11:30:58 +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=1761737465; cv=none; b=fb8uicwkjJL1MJY3UsJhZ2u7bxTHQlzUCQ1qKFM1HOtOHz9e613Of0Cf7/poLX1k8J7XzmEJZyyjJuNossWwhjCPS39voYYxt3NM3HdC6a8dp9KtcfpoBo4nDWi1bWK7fZyHQ/Da+pHpEqyddNPzLiS+y8aekL5JXuWiwxG/58o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761737465; c=relaxed/simple; bh=PaZlwLB+TIoYtAHCZIzw4kuFaGJsW5B8p1z50kxUcmE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=crp/0uF29N8wXptdc0EYqExnAdVvG58UW2qipNnRWYoiC9lxbUZESQZYXuzg82xOB7Q8nbYdZdazw5QJYX0wEBsqzyBUtbFYQIkjw8//rd0wQEPXNdOhcBqmKID4/FLsXuEZe9ey0EvCMUTwvsPmRZrTCZ+va+jRGa5rMq5R3Kw= 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=Ii/vMxN9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Smto9d4t; 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="Ii/vMxN9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Smto9d4t" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59T4v4tw3664062 for ; Wed, 29 Oct 2025 11:30:58 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= Ieuy6RTX33buQT65p9jgB58u06UFHQ6l/EbwvjYI9g4=; b=Ii/vMxN9k+XA/JYq DTSsPOaiOQnHyErie9QvzW0MfwpMZwDXLYhw8nysvEfVwayFP8ayBEI20UKy2JWN IiskT+2eLEeZEwZLpBzFowKwI2jgaTEiUttF2NtNdPRwFvImmYFhHT0+FvV/qRFE aMvvyjbsnO5DorGKO1GrRr4umwoLi3yujWObHwUcd+Sv55IjwrMG8BdoHGMhuTef SOFCU4uY2i5dupRkDHOFvjX7/7vXicYasCUBMkAAnAMNIO24UnCjBSweXqkm7HZ4 O7SgnBX/vq4Vb/0Og0WnmSc7KqfWfn7qrogvvu8DkaPo/8IquBayed+YhuhyeDhi kPlJPQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a34a1taat-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Oct 2025 11:30:58 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-294df925293so7072825ad.2 for ; Wed, 29 Oct 2025 04:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761737457; x=1762342257; 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=Ieuy6RTX33buQT65p9jgB58u06UFHQ6l/EbwvjYI9g4=; b=Smto9d4teMjIj2o+LgYAxDwzWqzCjaU6/cinthwWy2HpvOmo0FcYRqyq2I9axmGTPb xm9IHTRwfX8QTyZC7ycxuRBQ4QrAH8mOCR5Aa6l7dETYm3fXJraMrtOF9UVN+dicO7pj xIC2t/7tPXIxwv+PQxRbOKYiDenKIzCWRa9Pi6pCZMwfViqi0Pb/KLTeuchLGTTeMZhv TQl0r9PJlj1tXMmL0C2hB1lNN659yE3QZwc/TSUGDJvRmPqL2zuHmfKhMn/mKS0YiQMZ 8HJzXvzTl/laRIKxT3glz3w+SEETRnwaYcHjNmbfUUOsbvasYgS1jreWaM9B/x3/huKY if8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761737457; x=1762342257; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ieuy6RTX33buQT65p9jgB58u06UFHQ6l/EbwvjYI9g4=; b=JOrLKdlGNolnYsxCzuQ3+OA+2FWkPeKS2xd5HktMs627TViNadr0AWDr8dZIXCKXTs Cj+vAAE6p2xF0R78+ek6LmOtV9KbwquzBVYu6pGQ/h5Olk7e189/SUKAZ0eqQrgR9DC3 vi37P5EJfD6pfyYCZJN9GfzuCsGgkI5E9MZzikxmmir0kKtvZBZnwQeaMzBCGJxX/vTo KYdHd4VQfJD+P280girSayjimr2aPssItsVV2h5eBC9cjwqWgoRnz8CbUzjDr1/s36Ay XFfwHjvumcTXDW9DrXvcwW1aVngN/AWFaGxu8LuzpiDvKsFhQOVJpvlIFp10m3Q6YScz +Mdw== X-Forwarded-Encrypted: i=1; AJvYcCUeDPxmkro0H0IM53UOn/lnbsKiFVMP09FfS0fEE+fZg+iWEyCI0otuspFI+3qAHR235ioDOHy0yKzJBWE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2f4mS3sZsemeLyip+ProC2qRaRWtH/8pXwMjhK+mLo5AauzP6 ZaG97W4qI7p5poTsm8syqMgQFgLcC1klaPw88izE+zGC19N0VfT6e9cUG6hjEcQGw80BX1ErCcz BEfdA6cGpOKL7Pw9Ro6sU+1u2OqYJsb9OB8PbzWrFpvI8DZr1TP/tLR0XZa/pQTJQM/c= X-Gm-Gg: ASbGncuBjJe4sy9ZvzGFJdwW9NhO9OgtQT/V+o3kw3cEbIHu4X+PRn1h5QMnFoXYKi9 J9mc6ZBrsrYxLiGfhiXWHcrMuPk7s6Boo0KHZpP9GpeSFGm2T+2r6AwMtyb9NPE/tLptxeMEWKE 9rZhAMf/FCnlQkrjTxY6cB28ZEcW0XvHjHCw18emW7+lX1vU75nZs0b9FhDuXUiaKqB6f9/z9CO mbsa6zYAiPFn/05l3yRQkI0+EqDi0WO9weprSlJgCJEl2kTiv109HA7689si7rLmy0JF509Rdmu 4g4VR8rOIb6bHfV66V4eA05VeEOePuvAvYNUwXOyUxrpWcrUIWc640XWrOWicw5Fo3seiv9LfGK nBK6UKaxIfwEMh+KEl3crdPqnwFIJ1Y/ckw== X-Received: by 2002:a17:902:ccc9:b0:27d:339c:4b0 with SMTP id d9443c01a7336-294deea9531mr31492765ad.35.1761737457072; Wed, 29 Oct 2025 04:30:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHeyEoHgWR/Ql9eNwADaFLnG7hYC3Q1GJtBw+QqI/faB4l7o/OWKYwMyHBS5UMEX0AsyOSsyQ== X-Received: by 2002:a17:902:ccc9:b0:27d:339c:4b0 with SMTP id d9443c01a7336-294deea9531mr31492185ad.35.1761737456434; Wed, 29 Oct 2025 04:30:56 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29498d429c6sm152154935ad.85.2025.10.29.04.30.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Oct 2025 04:30:56 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Wed, 29 Oct 2025 17:00:01 +0530 Subject: [PATCH v7 8/8] PCI: pwrctrl: Add power control driver for tc9563 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: <20251029-qps615_v4_1-v7-8-68426de5844a@oss.qualcomm.com> References: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> In-Reply-To: <20251029-qps615_v4_1-v7-0-68426de5844a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , chaitanya chundru , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org, Jingoo Han , Bartosz Golaszewski , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Catalin Marinas , Will Deacon , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam Cc: quic_vbadigan@quicnic.com, amitk@kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, jorge.ramirez@oss.qualcomm.com, linux-arm-kernel@lists.infradead.org, Krishna Chaitanya Chundru , Dmitry Baryshkov , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761737398; l=20276; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=PaZlwLB+TIoYtAHCZIzw4kuFaGJsW5B8p1z50kxUcmE=; b=MduZy89G0QG+2RcFUKJcI5w9TpQVwnD3dMU2eaocYzbHsJ3WbPiIkAp/gHrrXrZrJRZdTXOm8 aC6F1x1m/HDBX7y19LrvT9Qo0UoB13Yy8BBS+7mKsBJE+u8dyhHspKk X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-GUID: j1UpmsHdzgCln8VOoQtksYc70mMlryux X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDA4NSBTYWx0ZWRfX+GkOinUJ8fdJ IBUZG0WpKCFJkWj1pRY10cTji1HQ+EMtesz/dVgFFYpyYkFr4vQW9W1l0/7FNTlGy7PRp+Dd+43 ZG2nSwCeKlHz3QvTRCI6ODFgQY9XAq/FgkT0zgC8QIQ0UTE9hM8osg84zG2O1QLMM2DUdHuiQMZ V59ukroYeH3UcWFhl7ix7uP8bwlfl2cD/c/4fmy5LFtnhHnvT0TV+CVJPhM6joq5EbkvyAZ6EvX vYLfMZkeF+PYaz8aJGBesUe18yiTC8R8lXJWbcreMZr1j3KDFGeckGNfR0b9IVYRceg/fmKtOOw q6So9zEH1Nmb4C3oMj4OXvVdC5uC8xcz4bMhIuyd7h75m54ZDLxJ/KB61QuQIkidbhA/mr9IRv1 u9x2BOMGU3Bi0me78M8s+/Qk/J/yfA== X-Proofpoint-ORIG-GUID: j1UpmsHdzgCln8VOoQtksYc70mMlryux X-Authority-Analysis: v=2.4 cv=UObQ3Sfy c=1 sm=1 tr=0 ts=6901faf2 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=COk6AnOGAAAA:8 a=KRRJuCyi5i-mN1d0-v8A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf: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-10-29_05,2025-10-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 phishscore=0 bulkscore=0 priorityscore=1501 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2510290085 TC9563 is a PCIe switch which has one upstream and three downstream ports. To one of the downstream ports integrated ethernet MAC is connected as endpoint device. Other two downstream ports are supposed to connect to external device. One Host can connect to TC9563 by upstream port. TC9563 switch needs to be configured after powering on and before the PCIe link was up. The PCIe controller driver already enables link training at the host side even before this driver probe happens, due to this when driver enables power to the switch it participates in the link training and PCIe link may come up before configuring the switch through I2C. Once the link is up the configuration done through I2C will not have any effect. To prevent the host from participating in link training, disable link training on the host side to ensure the link does not come up before the switch is configured via I2C. Based on dt property and type of the port, tc9563 is configured through I2C. Signed-off-by: Krishna Chaitanya Chundru Reviewed-by: Bjorn Andersson Reviewed-by: Bartosz Golaszewski --- drivers/pci/pwrctrl/Kconfig | 13 + drivers/pci/pwrctrl/Makefile | 2 + drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 639 +++++++++++++++++++++++++++= ++++ 3 files changed, 654 insertions(+) diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig index 6956c18548114ce12247b560f1ef159eb7e90b10..de8632549f88d5171fcad9879df= eb6250180b060 100644 --- a/drivers/pci/pwrctrl/Kconfig +++ b/drivers/pci/pwrctrl/Kconfig @@ -22,6 +22,19 @@ config PCI_PWRCTRL_SLOT PCI slots. The voltage regulators powering the rails of the PCI slots are expected to be defined in the devicetree node of the PCI bridge. =20 +config PCI_PWRCTRL_TC9563 + tristate "PCI Power Control driver for TC9563 PCIe switch" + select PCI_PWRCTRL + help + Say Y here to enable the PCI Power Control driver of TC9563 PCIe + switch. + + This driver enables power and configures the TC9563 PCIe switch + through i2c. TC9563 is a PCIe switch which has one upstream and three + downstream ports. To one of the downstream ports integrated ethernet + MAC is connected as endpoint device. Other two downstream ports are + supposed to connect to external device. + # deprecated config HAVE_PWRCTL bool diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile index a4e5808d7850ceb0ca272731e5539e1dfc564e43..13b02282106c2bdbf884f487534= f7466047c7fcf 100644 --- a/drivers/pci/pwrctrl/Makefile +++ b/drivers/pci/pwrctrl/Makefile @@ -7,3 +7,5 @@ obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) +=3D pci-pwrctrl-pwrseq.o =20 obj-$(CONFIG_PCI_PWRCTRL_SLOT) +=3D pci-pwrctrl-slot.o pci-pwrctrl-slot-y :=3D slot.o + +obj-$(CONFIG_PCI_PWRCTRL_TC9563) +=3D pci-pwrctrl-tc9563.o diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c b/drivers/pci/pwrctrl= /pci-pwrctrl-tc9563.c new file mode 100644 index 0000000000000000000000000000000000000000..2f09931ae671eac16c33a78dfd5= 41fba5dfa446b --- /dev/null +++ b/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c @@ -0,0 +1,639 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../pci.h" + +#define TC9563_GPIO_CONFIG 0x801208 +#define TC9563_RESET_GPIO 0x801210 + +#define TC9563_PORT_L0S_DELAY 0x82496c +#define TC9563_PORT_L1_DELAY 0x824970 + +#define TC9563_EMBEDDED_ETH_DELAY 0x8200d8 +#define TC9563_ETH_L1_DELAY_MASK GENMASK(27, 18) +#define TC9563_ETH_L1_DELAY_VALUE(x) FIELD_PREP(TC9563_ETH_L1_DELAY_MASK, = x) +#define TC9563_ETH_L0S_DELAY_MASK GENMASK(17, 13) +#define TC9563_ETH_L0S_DELAY_VALUE(x) FIELD_PREP(TC9563_ETH_L0S_DELAY_MASK= , x) + +#define TC9563_NFTS_2_5_GT 0x824978 +#define TC9563_NFTS_5_GT 0x82497c + +#define TC9563_PORT_LANE_ACCESS_ENABLE 0x828000 + +#define TC9563_PHY_RATE_CHANGE_OVERRIDE 0x828040 +#define TC9563_PHY_RATE_CHANGE 0x828050 + +#define TC9563_TX_MARGIN 0x828234 + +#define TC9563_DFE_ENABLE 0x828a04 +#define TC9563_DFE_EQ0_MODE 0x828a08 +#define TC9563_DFE_EQ1_MODE 0x828a0c +#define TC9563_DFE_EQ2_MODE 0x828a14 +#define TC9563_DFE_PD_MASK 0x828254 + +#define TC9563_PORT_SELECT 0x82c02c +#define TC9563_PORT_ACCESS_ENABLE 0x82c030 + +#define TC9563_POWER_CONTROL 0x82b09c +#define TC9563_POWER_CONTROL_OVREN 0x82b2c8 + +#define TC9563_GPIO_MASK 0xfffffff3 + +#define TC9563_TX_MARGIN_MIN_VAL 400000 + +struct tc9563_pwrctrl_reg_setting { + unsigned int offset; + unsigned int val; +}; + +enum tc9563_pwrctrl_ports { + TC9563_USP, + TC9563_DSP1, + TC9563_DSP2, + TC9563_DSP3, + TC9563_ETHERNET, + TC9563_MAX +}; + +struct tc9563_pwrctrl_cfg { + u32 l0s_delay; + u32 l1_delay; + u32 tx_amp; + u8 nfts[2]; /* GEN1 & GEN2 */ + bool disable_dfe; + bool disable_port; +}; + +#define TC9563_PWRCTL_MAX_SUPPLY 6 + +static const char *const tc9563_supply_names[TC9563_PWRCTL_MAX_SUPPLY] =3D= { + "vddc", + "vdd18", + "vdd09", + "vddio1", + "vddio2", + "vddio18", +}; + +struct tc9563_pwrctrl_ctx { + struct regulator_bulk_data supplies[TC9563_PWRCTL_MAX_SUPPLY]; + struct tc9563_pwrctrl_cfg cfg[TC9563_MAX]; + struct gpio_desc *reset_gpio; + struct i2c_adapter *adapter; + struct i2c_client *client; + struct pci_pwrctrl pwrctrl; +}; + +/* + * downstream port power off sequence, hardcoding the address + * as we don't know register names for these register offsets. + */ +static const struct tc9563_pwrctrl_reg_setting common_pwroff_seq[] =3D { + {0x82900c, 0x1}, + {0x829010, 0x1}, + {0x829018, 0x0}, + {0x829020, 0x1}, + {0x82902c, 0x1}, + {0x829030, 0x1}, + {0x82903c, 0x1}, + {0x829058, 0x0}, + {0x82905c, 0x1}, + {0x829060, 0x1}, + {0x8290cc, 0x1}, + {0x8290d0, 0x1}, + {0x8290d8, 0x1}, + {0x8290e0, 0x1}, + {0x8290e8, 0x1}, + {0x8290ec, 0x1}, + {0x8290f4, 0x1}, + {0x82910c, 0x1}, + {0x829110, 0x1}, + {0x829114, 0x1}, +}; + +static const struct tc9563_pwrctrl_reg_setting dsp1_pwroff_seq[] =3D { + {TC9563_PORT_ACCESS_ENABLE, 0x2}, + {TC9563_PORT_LANE_ACCESS_ENABLE, 0x3}, + {TC9563_POWER_CONTROL, 0x014f4804}, + {TC9563_POWER_CONTROL_OVREN, 0x1}, + {TC9563_PORT_ACCESS_ENABLE, 0x4}, +}; + +static const struct tc9563_pwrctrl_reg_setting dsp2_pwroff_seq[] =3D { + {TC9563_PORT_ACCESS_ENABLE, 0x8}, + {TC9563_PORT_LANE_ACCESS_ENABLE, 0x1}, + {TC9563_POWER_CONTROL, 0x014f4804}, + {TC9563_POWER_CONTROL_OVREN, 0x1}, + {TC9563_PORT_ACCESS_ENABLE, 0x8}, +}; + +/* + * Since all transfers are initiated by the probe, no locks are necessary, + * as there are no concurrent calls. + */ +static int tc9563_pwrctrl_i2c_write(struct i2c_client *client, + u32 reg_addr, u32 reg_val) +{ + struct i2c_msg msg; + u8 msg_buf[7]; + int ret; + + msg.addr =3D client->addr; + msg.len =3D 7; + msg.flags =3D 0; + + /* Big Endian for reg addr */ + put_unaligned_be24(reg_addr, &msg_buf[0]); + + /* Little Endian for reg val */ + put_unaligned_le32(reg_val, &msg_buf[3]); + + msg.buf =3D msg_buf; + ret =3D i2c_transfer(client->adapter, &msg, 1); + return ret =3D=3D 1 ? 0 : ret; +} + +static int tc9563_pwrctrl_i2c_read(struct i2c_client *client, + u32 reg_addr, u32 *reg_val) +{ + struct i2c_msg msg[2]; + u8 wr_data[3]; + u32 rd_data; + int ret; + + msg[0].addr =3D client->addr; + msg[0].len =3D 3; + msg[0].flags =3D 0; + + /* Big Endian for reg addr */ + put_unaligned_be24(reg_addr, &wr_data[0]); + + msg[0].buf =3D wr_data; + + msg[1].addr =3D client->addr; + msg[1].len =3D 4; + msg[1].flags =3D I2C_M_RD; + + msg[1].buf =3D (u8 *)&rd_data; + + ret =3D i2c_transfer(client->adapter, &msg[0], 2); + if (ret =3D=3D 2) { + *reg_val =3D get_unaligned_le32(&rd_data); + return 0; + } + + /* If only one message successfully completed, return -EIO */ + return ret =3D=3D 1 ? -EIO : ret; +} + +static int tc9563_pwrctrl_i2c_bulk_write(struct i2c_client *client, + const struct tc9563_pwrctrl_reg_setting *seq, int len) +{ + int ret, i; + + for (i =3D 0; i < len; i++) { + ret =3D tc9563_pwrctrl_i2c_write(client, seq[i].offset, seq[i].val); + if (ret) + return ret; + } + + return 0; +} + +static int tc9563_pwrctrl_disable_port(struct tc9563_pwrctrl_ctx *ctx, + enum tc9563_pwrctrl_ports port) +{ + struct tc9563_pwrctrl_cfg *cfg =3D &ctx->cfg[port]; + const struct tc9563_pwrctrl_reg_setting *seq; + int ret, len; + + if (!cfg->disable_port) + return 0; + + if (port =3D=3D TC9563_DSP1) { + seq =3D dsp1_pwroff_seq; + len =3D ARRAY_SIZE(dsp1_pwroff_seq); + } else { + seq =3D dsp2_pwroff_seq; + len =3D ARRAY_SIZE(dsp2_pwroff_seq); + } + + ret =3D tc9563_pwrctrl_i2c_bulk_write(ctx->client, seq, len); + if (ret) + return ret; + + return tc9563_pwrctrl_i2c_bulk_write(ctx->client, + common_pwroff_seq, ARRAY_SIZE(common_pwroff_seq)); +} + +static int tc9563_pwrctrl_set_l0s_l1_entry_delay(struct tc9563_pwrctrl_ctx= *ctx, + enum tc9563_pwrctrl_ports port, bool is_l1, u32 ns) +{ + u32 rd_val, units; + int ret; + + if (ns < 256) + return 0; + + /* convert to units of 256ns */ + units =3D ns / 256; + + if (port =3D=3D TC9563_ETHERNET) { + ret =3D tc9563_pwrctrl_i2c_read(ctx->client, TC9563_EMBEDDED_ETH_DELAY, = &rd_val); + if (ret) + return ret; + + if (is_l1) + rd_val =3D u32_replace_bits(rd_val, units, TC9563_ETH_L1_DELAY_MASK); + else + rd_val =3D u32_replace_bits(rd_val, units, TC9563_ETH_L0S_DELAY_MASK); + + return tc9563_pwrctrl_i2c_write(ctx->client, TC9563_EMBEDDED_ETH_DELAY, = rd_val); + } + + ret =3D tc9563_pwrctrl_i2c_write(ctx->client, TC9563_PORT_SELECT, BIT(por= t)); + if (ret) + return ret; + + return tc9563_pwrctrl_i2c_write(ctx->client, + is_l1 ? TC9563_PORT_L1_DELAY : TC9563_PORT_L0S_DELAY, units); +} + +static int tc9563_pwrctrl_set_tx_amplitude(struct tc9563_pwrctrl_ctx *ctx, + enum tc9563_pwrctrl_ports port, u32 amp) +{ + int port_access; + + if (amp < TC9563_TX_MARGIN_MIN_VAL) + return 0; + + /* txmargin =3D (Amp(uV) - 400000) / 3125 */ + amp =3D (amp - TC9563_TX_MARGIN_MIN_VAL) / 3125; + + switch (port) { + case TC9563_USP: + port_access =3D 0x1; + break; + case TC9563_DSP1: + port_access =3D 0x2; + break; + case TC9563_DSP2: + port_access =3D 0x8; + break; + default: + return -EINVAL; + }; + + struct tc9563_pwrctrl_reg_setting tx_amp_seq[] =3D { + {TC9563_PORT_ACCESS_ENABLE, port_access}, + {TC9563_PORT_LANE_ACCESS_ENABLE, 0x3}, + {TC9563_TX_MARGIN, amp}, + }; + + return tc9563_pwrctrl_i2c_bulk_write(ctx->client, tx_amp_seq, ARRAY_SIZE(= tx_amp_seq)); +} + +static int tc9563_pwrctrl_disable_dfe(struct tc9563_pwrctrl_ctx *ctx, + enum tc9563_pwrctrl_ports port) +{ + struct tc9563_pwrctrl_cfg *cfg =3D &ctx->cfg[port]; + int port_access, lane_access =3D 0x3; + u32 phy_rate =3D 0x21; + + if (!cfg->disable_dfe) + return 0; + + switch (port) { + case TC9563_USP: + phy_rate =3D 0x1; + port_access =3D 0x1; + break; + case TC9563_DSP1: + port_access =3D 0x2; + break; + case TC9563_DSP2: + port_access =3D 0x8; + lane_access =3D 0x1; + break; + default: + return -EINVAL; + }; + + struct tc9563_pwrctrl_reg_setting disable_dfe_seq[] =3D { + {TC9563_PORT_ACCESS_ENABLE, port_access}, + {TC9563_PORT_LANE_ACCESS_ENABLE, lane_access}, + {TC9563_DFE_ENABLE, 0x0}, + {TC9563_DFE_EQ0_MODE, 0x411}, + {TC9563_DFE_EQ1_MODE, 0x11}, + {TC9563_DFE_EQ2_MODE, 0x11}, + {TC9563_DFE_PD_MASK, 0x7}, + {TC9563_PHY_RATE_CHANGE_OVERRIDE, 0x10}, + {TC9563_PHY_RATE_CHANGE, phy_rate}, + {TC9563_PHY_RATE_CHANGE, 0x0}, + {TC9563_PHY_RATE_CHANGE_OVERRIDE, 0x0}, + }; + + return tc9563_pwrctrl_i2c_bulk_write(ctx->client, + disable_dfe_seq, ARRAY_SIZE(disable_dfe_seq)); +} + +static int tc9563_pwrctrl_set_nfts(struct tc9563_pwrctrl_ctx *ctx, + enum tc9563_pwrctrl_ports port, u8 *nfts) +{ + struct tc9563_pwrctrl_reg_setting nfts_seq[] =3D { + {TC9563_NFTS_2_5_GT, nfts[0]}, + {TC9563_NFTS_5_GT, nfts[1]}, + }; + int ret; + + if (!nfts[0]) + return 0; + + ret =3D tc9563_pwrctrl_i2c_write(ctx->client, TC9563_PORT_SELECT, BIT(po= rt)); + if (ret) + return ret; + + return tc9563_pwrctrl_i2c_bulk_write(ctx->client, nfts_seq, ARRAY_SIZE(nf= ts_seq)); +} + +static int tc9563_pwrctrl_assert_deassert_reset(struct tc9563_pwrctrl_ctx = *ctx, bool deassert) +{ + int ret, val; + + ret =3D tc9563_pwrctrl_i2c_write(ctx->client, TC9563_GPIO_CONFIG, TC9563_= GPIO_MASK); + if (ret) + return ret; + + val =3D deassert ? 0xc : 0; + + return tc9563_pwrctrl_i2c_write(ctx->client, TC9563_RESET_GPIO, val); +} + +static int tc9563_pwrctrl_parse_device_dt(struct tc9563_pwrctrl_ctx *ctx, = struct device_node *node, + enum tc9563_pwrctrl_ports port) +{ + struct tc9563_pwrctrl_cfg *cfg; + int ret; + + cfg =3D &ctx->cfg[port]; + + /* Disable port if the status of the port is disabled. */ + if (!of_device_is_available(node)) { + cfg->disable_port =3D true; + return 0; + }; + + ret =3D of_property_read_u32(node, "aspm-l0s-entry-delay-ns", &cfg->l0s_d= elay); + if (ret && ret !=3D -EINVAL) + return ret; + + ret =3D of_property_read_u32(node, "aspm-l1-entry-delay-ns", &cfg->l1_del= ay); + if (ret && ret !=3D -EINVAL) + return ret; + + ret =3D of_property_read_u32(node, "qcom,tx-amplitude-microvolt", &cfg->t= x_amp); + if (ret && ret !=3D -EINVAL) + return ret; + + ret =3D of_property_read_u8_array(node, "n-fts", cfg->nfts, 2); + if (ret && ret !=3D -EINVAL) + return ret; + + cfg->disable_dfe =3D of_property_read_bool(node, "qcom,no-dfe-support"); + + return 0; +} + +static void tc9563_pwrctrl_power_off(struct tc9563_pwrctrl_ctx *ctx) +{ + gpiod_set_value(ctx->reset_gpio, 1); + + regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); +} + +static int tc9563_pwrctrl_bring_up(struct tc9563_pwrctrl_ctx *ctx) +{ + struct tc9563_pwrctrl_cfg *cfg; + int ret, i; + + ret =3D regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); + if (ret < 0) + return dev_err_probe(ctx->pwrctrl.dev, ret, "cannot enable regulators\n"= ); + + gpiod_set_value(ctx->reset_gpio, 0); + + /* + * From TC9563 PORSYS rev 0.2, figure 1.1 POR boot sequence + * wait for 10ms for the internal osc frequency to stabilize. + */ + fsleep(10000); + + ret =3D tc9563_pwrctrl_assert_deassert_reset(ctx, false); + if (ret) + goto power_off; + + for (i =3D 0; i < TC9563_MAX; i++) { + cfg =3D &ctx->cfg[i]; + ret =3D tc9563_pwrctrl_disable_port(ctx, i); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Disabling port failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_set_l0s_l1_entry_delay(ctx, i, false, cfg->l0s_de= lay); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Setting L0s entry delay failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_set_l0s_l1_entry_delay(ctx, i, true, cfg->l1_dela= y); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Setting L1 entry delay failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_set_tx_amplitude(ctx, i, cfg->tx_amp); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Setting Tx amplitude failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_set_nfts(ctx, i, cfg->nfts); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Setting N_FTS failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_disable_dfe(ctx, i); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Disabling DFE failed\n"); + goto power_off; + } + } + + ret =3D tc9563_pwrctrl_assert_deassert_reset(ctx, true); + if (!ret) + return 0; + +power_off: + tc9563_pwrctrl_power_off(ctx); + return ret; +} + +static int tc9563_pwrctrl_probe(struct platform_device *pdev) +{ + struct pci_host_bridge *bridge =3D to_pci_host_bridge(pdev->dev.parent); + struct pci_bus *bus =3D bridge->bus; + struct device *dev =3D &pdev->dev; + enum tc9563_pwrctrl_ports port; + struct tc9563_pwrctrl_ctx *ctx; + struct device_node *i2c_node; + int ret, addr; + + ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + ret =3D of_property_read_u32_index(pdev->dev.of_node, "i2c-parent", 1, &a= ddr); + if (ret) + return dev_err_probe(dev, ret, "Failed to read i2c-parent property\n"); + + i2c_node =3D of_parse_phandle(dev->of_node, "i2c-parent", 0); + ctx->adapter =3D of_find_i2c_adapter_by_node(i2c_node); + of_node_put(i2c_node); + if (!ctx->adapter) + return dev_err_probe(dev, -EPROBE_DEFER, "Failed to find I2C adapter\n"); + + ctx->client =3D i2c_new_dummy_device(ctx->adapter, addr); + if (IS_ERR(ctx->client)) { + dev_err(dev, "Failed to create I2C client\n"); + i2c_put_adapter(ctx->adapter); + return PTR_ERR(ctx->client); + } + + for (int i =3D 0; i < TC9563_PWRCTL_MAX_SUPPLY; i++) + ctx->supplies[i].supply =3D tc9563_supply_names[i]; + + ret =3D devm_regulator_bulk_get(dev, TC9563_PWRCTL_MAX_SUPPLY, ctx->suppl= ies); + if (ret) { + dev_err_probe(dev, ret, + "failed to get supply regulator\n"); + goto remove_i2c; + } + + ctx->reset_gpio =3D devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); + if (IS_ERR(ctx->reset_gpio)) { + ret =3D dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "failed to get rese= t GPIO\n"); + goto remove_i2c; + } + + pci_pwrctrl_init(&ctx->pwrctrl, dev); + + port =3D TC9563_USP; + ret =3D tc9563_pwrctrl_parse_device_dt(ctx, pdev->dev.of_node, port); + if (ret) { + dev_err(dev, "failed to parse device tree properties: %d\n", ret); + goto remove_i2c; + } + + /* + * Downstream ports are always children of the upstream port. + * The first node represents DSP1, the second node represents DSP2, and s= o on. + */ + for_each_child_of_node_scoped(pdev->dev.of_node, child) { + ret =3D tc9563_pwrctrl_parse_device_dt(ctx, child, port++); + if (ret) + break; + /* Embedded ethernet device are under DSP3 */ + if (port =3D=3D TC9563_DSP3) + for_each_child_of_node_scoped(child, child1) { + ret =3D tc9563_pwrctrl_parse_device_dt(ctx, child1, port++); + if (ret) + break; + } + } + if (ret) { + dev_err(dev, "failed to parse device tree properties: %d\n", ret); + goto remove_i2c; + } + + if (bridge->ops->assert_perst) { + ret =3D bridge->ops->assert_perst(bus, true); + if (ret) + goto remove_i2c; + } + + ret =3D tc9563_pwrctrl_bring_up(ctx); + if (ret) + goto remove_i2c; + + if (bridge->ops->assert_perst) { + ret =3D bridge->ops->assert_perst(bus, false); + if (ret) + goto power_off; + } + + ret =3D devm_pci_pwrctrl_device_set_ready(dev, &ctx->pwrctrl); + if (ret) + goto power_off; + + platform_set_drvdata(pdev, ctx); + + return 0; + +power_off: + tc9563_pwrctrl_power_off(ctx); +remove_i2c: + i2c_unregister_device(ctx->client); + i2c_put_adapter(ctx->adapter); + return ret; +} + +static void tc9563_pwrctrl_remove(struct platform_device *pdev) +{ + struct tc9563_pwrctrl_ctx *ctx =3D platform_get_drvdata(pdev); + + tc9563_pwrctrl_power_off(ctx); + i2c_unregister_device(ctx->client); + i2c_put_adapter(ctx->adapter); +} + +static const struct of_device_id tc9563_pwrctrl_of_match[] =3D { + { .compatible =3D "pci1179,0623"}, + { } +}; +MODULE_DEVICE_TABLE(of, tc9563_pwrctrl_of_match); + +static struct platform_driver tc9563_pwrctrl_driver =3D { + .driver =3D { + .name =3D "pwrctrl-tc9563", + .of_match_table =3D tc9563_pwrctrl_of_match, + .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, + }, + .probe =3D tc9563_pwrctrl_probe, + .remove =3D tc9563_pwrctrl_remove, +}; +module_platform_driver(tc9563_pwrctrl_driver); + +MODULE_AUTHOR("Krishna chaitanya chundru "); +MODULE_DESCRIPTION("TC956x power control driver"); +MODULE_LICENSE("GPL"); --=20 2.34.1