From nobody Tue Dec 16 07:28:47 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C24F263F2D for ; Sat, 1 Nov 2025 03:59:50 +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=1761969591; cv=none; b=MYA7PMhM/Soten5osDD5NRPX4KbgZzy+RNPM/mB3j4/iWhYWbfjn65dzc1EUg84UmP3bYfcNGWEUIZuTKaGb8Km/e0gNWL/fBDkVanL9ASFPh5S/Eo1OSasZdeOfsUqgXnrQJXkvxnSRcCEec+1kXLQceis+UdjBqQ/nTVUlOWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969591; c=relaxed/simple; bh=Yx47/v7UP2S9t4kbCJoO8vfIzHGQNKl3EuLxc5b7Of4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vcy5NAX0frtR6lRvm2dTl2vv5MO2K0KdgF4mWanSDFHBO8gKuixJbti+TM1BkyOSokmXTWLD0iVeiXrPY6kccTu/v1PVEf04HW352H6BQ0hS1J1Qcnvw1KYcCJDkcB2eat0Xi5Z7OPuVAVLZsB8+1q+2yJk6wunxTAgNuKAKixk= 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=ARCjd3mR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=G2jkhru/; 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="ARCjd3mR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="G2jkhru/" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A12plNS461351 for ; Sat, 1 Nov 2025 03:59:49 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= uOuNrPNOxNtGjbqecQTezoMALC4gh5guIoDEvWHDAF8=; b=ARCjd3mRjjR+xne1 2cTg7UmlpSzqP2pV5LVSpc3OclNEYf9+oXaVE6dFalPb7wY9gYGGM2AGB1qC+xzs qeNv24mCaZTUd8RlwUUP0yQZ3dfQz7xCz/snR3/tQXwf2Ht6AoMxcE8z1LzNJfq8 z0Vlpb0cgfzQ/XYuOeIkWdSAwn3/0Kg6jHStDmAp7WVgtKYFoOiKvb5VXoGZOvPD iGOB0m3oX4ez7VM3wDZg+1H3Jf9u0Ams14giD6Bl3inq1arClVorKIkNl5OjRux6 yP73RPqexEyceFzTtY+HvMp2NPpn56N05NJDEkuLLaVSE9BIyrFQfhh6R1ajrSYD bOPtXA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a59t002nw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 03:59:49 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-290c9724deeso29816145ad.2 for ; Fri, 31 Oct 2025 20:59:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969588; x=1762574388; 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=uOuNrPNOxNtGjbqecQTezoMALC4gh5guIoDEvWHDAF8=; b=G2jkhru/RMUNB7Ml08cXmo73GunQHXOIyz2khe15x2rF20H7H7qEPQ5vW6dFQtkp7z Xn7Cl0BcMmlDNizDYiV1E31cbxkC3LodUbdhsjrsnPaN69Xbx6Dk4thO9TWkIezuRDv2 gyGA364CHgU00yXD/XVHhkb0NSDGu+hd0vX5AzVVPFvF457BSbNxWO6Tg5fRew7DoNu4 Un9rx4almR3XZhcaFUuejrwREfF0nlWZtHh8Ekh6zsztMrJud1miUxHdAuSmYPvDSbib soXZxy83Gl4n8cRuQiaej0HPTlrL4BIlDGrFbenvQCloCJy9XWhVBRDLvCnOv3WGhW1f NfCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969588; x=1762574388; 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=uOuNrPNOxNtGjbqecQTezoMALC4gh5guIoDEvWHDAF8=; b=NNzDstWNYSQphNW/QzIFXsxJbTzpDIWjtOpuNF2vAwKzJMM8kS9GeoeCDghdYc315i Yrf3FhYVzOcrD4Abthihlj8bmlqMaGtYQetKFMIWaMtujBJ0qT7hsmQceKDKpJi99ycB 1mqm/tJjuBzdrMvKpszYpBzRuxf3JprzaiGpmd4KEqFUTAR/dwkLqjWge65Tf8IAHubt Se+y2SUVp4y+gsLj6nNi2NWhKXsFw1IttvlfOi5N4t8KqH1ge5h9FdPRkm8FjxzTJZN0 1DL8AZBaPfvenSbsWVNiba76LWbc6mEUQz+qnvYoIClJVMva9Gn+Bu/dPTV08TegS7v8 5jzA== X-Forwarded-Encrypted: i=1; AJvYcCVtADDytxjznhIYTJTMy0yiTtw3v24SZr30Iamabilr+Egbm4K12LgR62XYFwVnzpE1MqNZ0o7Z9IqCz5Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6LK2nu6SkDFD+yGmi/7KGGyD1GhGiy5rq3ojuy1HiYZbY5zBW d94XhHoSA/xiboshXQhuc/CeIA3AHmvhUOOQVJTWsrxVi57XMC/X16v9BTob2X282cH7J2q6Tbz awZ902OyHcwUVgrFEra2WQXSDVKmUbloA+3lSh4Y0AYAyyVIp9a7IH8GKq4KPwokV8OU= X-Gm-Gg: ASbGncuNF0VMZVUaD0E62NKtsj6UceGdK9Y64ULteiG0QskV3CK0VtIVLZehkMtc8sZ 4njE1MJC1/vZTPvSOP4+nnjz3d5fG+ERasNYUNw6cDgw3Y0hkwsBIs8+Mhw7QkqNo1oI0h2Kk3f A+l+Qr4dxaETCul2YL34fcNqvJEElK7IxYaWM6j66cgZiQLFT5ktBBrb1e8l9JzfWMnQfGuPn7B Qm5PM0Sb1NkfDN8TdWUO1iAcOw+idnnk4djCPWPEnlC8OL88IISyF6JlOEdjYXCw4ZpcXkbcEdY jZParn+fD7JYE5JxlcjB0SRR+R/1c7S0qAOIY9GGAwBojbwEbYa62mzTY6yhTvaMp1GfoA8mVs8 Q26ot0Gvw0ns9ahsejnZyRW32QOKHGNsPAA== X-Received: by 2002:a17:903:234b:b0:295:3e41:5aa1 with SMTP id d9443c01a7336-2953e415cc4mr43463885ad.21.1761969588183; Fri, 31 Oct 2025 20:59:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEou51Q4Z7vnpG3VKsqD3DPTzo9lSyIzhBdN0I3SsB9JhOkCBLILKQLgfWf8OK/OV1KgNHzng== X-Received: by 2002:a17:903:234b:b0:295:3e41:5aa1 with SMTP id d9443c01a7336-2953e415cc4mr43463495ad.21.1761969587623; Fri, 31 Oct 2025 20:59:47 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.20.59.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 20:59:47 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:32 +0530 Subject: [PATCH v9 1/7] 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: <20251101-tc9563-v9-1-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=5917; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Yx47/v7UP2S9t4kbCJoO8vfIzHGQNKl3EuLxc5b7Of4=; b=6ZhmnVVExo5QQm+sgn0bDG4eLmae4mGL05kLPko5sybEGRHO3CWJHXMYEewwqs2/nLEBHxP7O HGjTNqhbVXFBxs24h1ou4jhppEtQOBNYvV9bsEbxJwwqdsHmvZJaGzl X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=B5e0EetM c=1 sm=1 tr=0 ts=690585b5 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gEfo2CItAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=dWfasREweX4F4dHnDHIA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-GUID: r_in6lb1kunuU9NzT1ThtNM1Hb3XkQwP X-Proofpoint-ORIG-GUID: r_in6lb1kunuU9NzT1ThtNM1Hb3XkQwP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX+n8fRQCQX5hb YoC0dnwjIs8kdkAEc/kc47BhcxKSNn3+BERP0eMaBDY+eTG5TRa91KC8UgvKxCaSn1+XxODg4eO jq1DquHI8us8U3Q4VvJfWAWqVRc4jy+dPN8KfjLIwK5Qu1o3oGXAh/4H+4uXoVvbbKDbOu0qkr0 xXfVnTaDtFzZIwFzvKcxuBem+F9mL21p8eLw1G2LTVFSUsS6OS7UU07oWzwfNAERF1ZTrBT/01L KtLVMY/PNIceIdwzVJ8y3Xwtt0N13r0dj8AVhSBmdtlDaGxA5XYTHow44LohGBVEKRTgGqLHrMb I+hhUvO96ZjPxXcbsrfjnKhg3xcYNN1grC4Ko6oivJXGXHevglEygZIrPmAY1y9t8TeV4uy670U l1PeDLxv49NZUWE23bc0PWgr6p0d+A== 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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. Reviewed-by: Rob Herring (Arm) Acked-by: Manivannan Sadhasivam Signed-off-by: Krishna Chaitanya Chundru --- .../devicetree/bindings/pci/toshiba,tc9563.yaml | 179 +++++++++++++++++= ++++ 1 file changed, 179 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..fae466064780959833e7102164a= 124086bd9099e --- /dev/null +++ b/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml @@ -0,0 +1,179 @@ +# 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 + + resx-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 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 of + 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 + impedance mismatches. + +required: + - resx-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>; + + resx-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 Tue Dec 16 07:28:47 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BB09268688 for ; Sat, 1 Nov 2025 03:59:54 +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=1761969596; cv=none; b=PsSwho4rfN51oabveQ0EYNsJ2CsQv/uLMlBct7Pct2JS7Ioib49JEddxfs94uASrV68nTD3axadhMNuyXn5ZzoXHZag7LFg7b9V7a7AAjWm0xDMT5t4TfRdKIPhIJZ6MAUqswP0fUKpw88wMjG80FpYPus5pJXLBhAP10BdjiDc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969596; c=relaxed/simple; bh=vSnGup2JudH8xVBPFB0jjQrhBAINf0wdJNrLvwKVmwY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ETPgwPKWZX1usdQV/2Hi6XCCttnFFcRlOzERUKnn03LYXy8y7f/Bs5SE/U/VBw1DAKW1rPNe6ZOwv0r+ZkP5Mli6f7u2WNlUG72pR9vUZI7VkkEQT2Sg514GTS4fHyv6vP5Mc6O12Ug853bWYp15S2VQPGI/h/DHvKtl/WjGLyA= 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=cr32YXH2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L6nCXHB0; 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="cr32YXH2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L6nCXHB0" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A13jedD557307 for ; Sat, 1 Nov 2025 03:59:54 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= DkpQEOYIwWUftyRlBH6Rvb7+GGcnx4ZiE6KfmGnzrYw=; b=cr32YXH2Z0/tzkwi XUzVIASfAAMuaDUMLlJEROFCMwKVt5btOS6+iNSuB80VUuylsTDStnt5oXaqSA+J fPLMYFuDP3GfNyhXZ/FPoPj2wOJ1UaCu+BDOCxaTM73G6xy52i4Os6MXEogR4yu8 uoB7L2O51Zc4LxchVbQEqdoFV41Sv0QVtcAyX/H37iSSj4eksCLUAfJ4fY9Bd0gm tL0CZmXDph6PQFbllNXCSsO8Wk+n9vvXQp3lRAladebYoJ13sNsFDgWgMr+yneGi VAlaJ8HbFIF3NScwqEYDN9CKlZ1f7S//5Gw+33Ff5lQlqGybOtFfTaTFDq/AVH7a 9CS0vw== 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 4a5ak8g0f0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 03:59:53 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-29557f43d56so1542765ad.3 for ; Fri, 31 Oct 2025 20:59:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969593; x=1762574393; 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=DkpQEOYIwWUftyRlBH6Rvb7+GGcnx4ZiE6KfmGnzrYw=; b=L6nCXHB0wapUl+zRSUhOjTWWfZO3g7C79enTl0/nj5CDBe4D8937UEq4z8myDaUTwX D2IhUxNLA8BjsJ4Y54bPTsDVnFc+VNsvTep7fqDjzaepUCvpckLUPdNAdlum50ZOdsTJ N1h/4iFPCNHxIlFVzqy84lTP4zW06EBCBGdmsUZhGbpMHHpFcCIPwEMOzB2Jc/Cy8nvP uTAelUTxghDR/xcEu4ntzIjsg/ilf58FIBz9i2h3PKAr1bzBRPFh4DDnU2vrZQG+wLOO Oe7A+22rABfhOTNQ6a2BEa2NjQcCgRI73fmELX8qWg/jEwy4zSn1/kHVPv/3mM5kKqBr nwMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969593; x=1762574393; 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=DkpQEOYIwWUftyRlBH6Rvb7+GGcnx4ZiE6KfmGnzrYw=; b=fNSDDCH6jnILMwrbhewuXdCoksg3fpHLGY+zO9DntMUlb4OwWRrAdbfS6j399owCnm 6/YD5YdI15A49K3StZIqu4S0rT2krJv0fNIEgU1i0TBrxgL9sQL0EYF3iVWokPdCG/XA 0vNTrgWCObx8wLKn7iY8d3qYY10DocvbBgFDaIwvK7KqE2ZKUWF0Mh+yKYItQZ22aC5K uQ92U+wEBR8Pv2n3hhyABWtUTZcbeC1KCwsOTfRVdDiy+RoVcq5zY30UQY4pF4Ig8sQN yoz6pcRsUTg09VjRWY1lpuMr+KeJA7IzSiklZZ3b9+N2DIiKcKWUVVttrzGZAbRZWOwW U/QA== X-Forwarded-Encrypted: i=1; AJvYcCWL+whmjrw482sqMXfQ9tcwNZ1jfIgGgPO0BCM/mOI9wWk1MCzW6hpHLd7KLU2H//IG4zZtUkfeYo0SklY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3M9ry+hpDmfoJy4Jxh8oQE1Nn4Pc0CHCTny8R/5xU8XXDZHbn 926GLvwifAmIKPFePuUWFFbGo6NYHpJ/WuOLwOuFZlS3bdqh+kf3cGr8fwe7IDf8DILX7v/WLDE E+g7D1EFCqw3nrEB71Lia3vTBNGjAalNSHU0wOU9J5+8z6EMFA1ptbvK7hB76KCPFJ0k= X-Gm-Gg: ASbGncubRcwDuQXuzG2MQvCy2pSL4SEVlJh/KHpXmgTrbVjGtRIRgJUsFgotIzJG3CN SDuB31udaxkUce4VRs7ZYZF6BJcWUzNwkk896QTIpSWRrYEHNfv0ywZpLadZcWCUonE/b5B07nG VT5A+kdih2jiK47/Ak0j3qbiCUCuBHkS2TloMXUkTwS5Wt+NBREAYJnWXz3sJfjhTCHeajM+pDu /Y4hVHApvVYhVMbbFEV+/k+ilvqbXeSviVDOCOH76KjA85DuIyepOampnbn7ktytQtwdtYvKhI7 bMKxqWJdAwtrbfYfoz5LZM1rtF43uBNY0pdf5Z1x9IcfD9TdpRpyLoT4MDEtL7wGnDlWdXna/lN 9c0yxnGc5zYcKxDO0DPxj/uEWl8ByF7Oxbw== X-Received: by 2002:a17:902:ea0e:b0:28a:8ae7:4034 with SMTP id d9443c01a7336-2951a3e2049mr73930935ad.25.1761969592993; Fri, 31 Oct 2025 20:59:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFwCqyKB3mpvsWxxw+JBQzmx/93xx7CP640Eolf60h4FSqH+JAV9+V70iDeHOfwspmHkbDUkw== X-Received: by 2002:a17:902:ea0e:b0:28a:8ae7:4034 with SMTP id d9443c01a7336-2951a3e2049mr73930735ad.25.1761969592476; Fri, 31 Oct 2025 20:59:52 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.20.59.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 20:59:52 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:33 +0530 Subject: [PATCH v9 2/7] 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: <20251101-tc9563-v9-2-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=1537; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=vSnGup2JudH8xVBPFB0jjQrhBAINf0wdJNrLvwKVmwY=; b=gut1hfiDLkSs+kqWQ9M5DWLQy9Nba7OE9UxTj038maNYm6R2rUxuL983XoTMVhFN62jj0tCvo EgyDQ/kmYYBC/udv5VPWSYOB8p87FySkLajH5B86xv+INa/e4SkMETm X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-ORIG-GUID: WM-F8AJYlhR6mbCMyu_64tS-Fw66BdD1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX1EzexBvosS+q N2AGpatDBuHxgE+4oND+rHSePFYM5NJMSdKQRDoEdDCZZ2zjHOe/el8yDP5BTgYQWMfKexJ8JxF ROKbMlZX+sR14t361hP4czJr3rJPQxd7aIfqK55LbzPe/hU1++7KqChgoMDwrgT5D1x3DcD9Wp0 0MrI3jbwGTNOAm1DEkedQNlCTFnI8fYPI1rdqRB3nHIWs0FBslWMGIzujlc0J/UzL/UqYoQuFiH 5fuBFXUsbN9HT7PGQeUaMKBfPTnBGSxEuVoQcrCUxb0JwLXUy24KqDcfhDsZrqbiCV2nyApNutK 1QozhtVKUuTFUVeByFZwjMFrzfkUQJ8QRe+6k3KydpVgLlLgEdXBTifW81mj4a7z2dqSujNT1Hd gurAdOwhXcV4OTVkhRV6KDA7fuKHBA== X-Authority-Analysis: v=2.4 cv=ZZEQ98VA c=1 sm=1 tr=0 ts=690585b9 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA: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-GUID: WM-F8AJYlhR6mbCMyu_64tS-Fw66BdD1 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 bulkscore=0 impostorscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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 TC9563 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 Acked-by: Manivannan Sadhasivam --- 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 Tue Dec 16 07:28:47 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC206261B78 for ; Sat, 1 Nov 2025 03:59:59 +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=1761969601; cv=none; b=lYdNRWAvEO07wtO2Z/CLEDKNrQ6gjUkSeDEZIK2G1eCBDgRgwh+VUJuUp9PdP/TBW/1d/0YCAfqIEj6z8zn383MeSPxVQuvyLWGHeMTg214ZwZqNJYSeiFDyEdD/CtCKm/ve0RDEqn4f83YbZvPakZQ6xOQeg+yQqd+d2eWfWkk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969601; c=relaxed/simple; bh=0ISk1zo5mbRe9LxvVD2vadNQhbkjLDQVBj/SNxnxtpA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GuFK6gpzZFwcqr1a+ovoZSi8dMyBH5gdfVLK8ktuS4EMU9KZltcANAJZaoedSlqEDdyVLVZpTY85jL4OI21QgFH9xjFKTQaY1/dtRFERoRSQVKV4S6CdyP57G++Fy+IXdC64sqpgTFJmOIY/usS3WVUP2d9b7fYxlQhuFhsrVm8= 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=QXyvL2Ko; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=B2PzB9vw; 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="QXyvL2Ko"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="B2PzB9vw" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A13rH4L572920 for ; Sat, 1 Nov 2025 03:59: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= O9iELXAHflmw8+ZgJ3dYI+WWKiAnqwwPtj78oi+ZNss=; b=QXyvL2KoRZKxfRTJ cvMABRkrG0rdyUxPGP4PzRibuen36GV43WC87dkgRY8HK6Ofziy+pRZHsIezQ4BA mB0MgNo67uyQ1NYf4STNyv8H/G8WrvQVyPqf+Yzl4ePZPcVvaWbwikquKoYw1KK9 FvuOctD0Kz1ajs86HGIGL9/lLuzgTPlequnNvoFavVhj3Ls3MgvM3H70VaNy5yDi KYt1ox4EZ8wZvHyXVGYujZqirjOeKoHjZs2GgLqQzaiE3Y1yEoDioIKGw0T8XaS2 2d7eWZTCBIELa+qMoAzsB5m9oyj+O4GqjkdLub2Z2l6fURK2EyoiE7YJgjINgMeS RJikpw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a59hhg35d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 03:59:58 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-29554d36a77so5174965ad.1 for ; Fri, 31 Oct 2025 20:59:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969598; x=1762574398; 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=B2PzB9vwanaO/susS7kzX9B6rcxuVubYoTS+cTtJD6hRMmhQ/DTpMqlM1V5cad1CUZ pyELkqm8wxzTpmml1clMH7zz1hwzEJQ6yDRMK2kwZqtuWjAzfVnoU3nxfceP4DUynLod AoLEUT/fZSmIGm9l1lnsonTbi1TZ2Iz17iSHUu9GSOvV85bMyrGFzAXktqD4/PsrLSpo QwX1h20Zj36V1MTxqCRYWyhCaYwXN8PmpOn6AY1EU32r6biW3Mn/OMYYsscAEV+Vr5qw 7R91DnWVG5jgoPPLPyklMbFPwbvechumS6U8fRtSRSNTmphJ3l8/7V12X6qiIppRl+eg I7MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969598; x=1762574398; 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=QW1Yu7zNH/JIBfVVa2bdq0R72s5B4Q8yaflsblZGP0ZEACggroh1XisZvpno3Qi1pS XcEFwu+EbkUbSvLw7fNBAhtIaidh5mcAU9q7fj6aB3lw00GqvvTx8kB7Y3Id4wSb9yAd sQzVr/wsTNBOM7vy079yDNNSmaMQW6efvYqHT5lRRIf/NkU4PiX1iiZxzwkWMfkiGneP Ve2uQJp2DRULdXXKtyMSEl9Cppka9PBPn7H6tWqj+mLDDLM+qkBXVS6GPHl69uqqRBdB uDiMNDFuKWRN899UMUt7xqnqElSK5dEtnI4ZoFO1fYfGR0HMaP1jmMPfOQ4TYxs91T3V dpWw== X-Forwarded-Encrypted: i=1; AJvYcCVL8+EWqFG8ggnG9mzpY+CZOVQ4Uj4zxNwlIfdJH7w0e4w4wsjS2wc0aE3YRQ05hSaLS1i3xGpReb7FYZo=@vger.kernel.org X-Gm-Message-State: AOJu0Yzlk/2qGoD8FLjWUCV0RR5MiX5rZxTh7EK90of5SgFWX7AzPDbv BFZxyl8a6zQFqHYchnPl+ZRIBjfYwwTTUnHRPARGN22/A9zqw2p7aUiOBdkOcUIIApw59wLywBS +saCm3iaFbaAiiIC+mUQrKfJOlj7fNX5CFOrhtXIHJWBm9Nzw6j9By/yRKx8Vq5cneNM= X-Gm-Gg: ASbGnctgx7P9ieL5Q9diMskCA0wBwEHdzcVA36/u9WDE7UOZHCmRtUi1Xvp9GN5bWvJ u9KDrgXbu63RJKCH7oeeBuXWbDTWwED/u3VYe484nwmDyuu8Msf8U8Pf5iYpPptDmAQTsbYByNz sHIY2HDQAflWnHLj8/kkgK1jYDiWrlfOKdHzNvdyiWyEN6wNQzD2HQlJE1v4gr7WNt83e8ahCea rIpJOiuxgkQImuwih6gxh36mhcdnrERuGQoDI4XU97cwS67nexWwgApSIYXxbcIhB4lOdvJAIn8 VafDH2IWz5MW2+GzMUV1Zjx6AZIyoOjLAp6Ql02KnVo5nowutjMh8WfneVxiGOkI/YpT+TDv6l+ CcXqMfutK3/PKwZ2FBCWbia3pIqOKU4HWAA== X-Received: by 2002:a17:902:c947:b0:295:269d:87d1 with SMTP id d9443c01a7336-295269d893emr49212655ad.52.1761969597810; Fri, 31 Oct 2025 20:59:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEJc8g/476xtMo1z1kMshWvFgOL9ZnM1ggtVT7FaVakM6XhShCNST3snp68LNvZ2gl9YcoVDw== X-Received: by 2002:a17:902:c947:b0:295:269d:87d1 with SMTP id d9443c01a7336-295269d893emr49212415ad.52.1761969597358; Fri, 31 Oct 2025 20:59:57 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.20.59.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 20:59:57 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:34 +0530 Subject: [PATCH v9 3/7] 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: <20251101-tc9563-v9-3-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=1362; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=0ISk1zo5mbRe9LxvVD2vadNQhbkjLDQVBj/SNxnxtpA=; b=5hoG2lVfjcLdohSHpM4iCeuSiCiha0smcKSS9Zwrty/Rdaz1tc9AqhNjVCwmZk5gbLJ5LkNAs 2oricXxhAPwADqvJwtlzr2twoSpmYYyJr3rpbzwhKqorhO2GKO3K/AL X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=V6lwEOni c=1 sm=1 tr=0 ts=690585be cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Py5lcOcq67Lbq8UMOfUA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: jZRhPTXFg4lyUGB-7Td5QoG7rX7fxZdA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX9Yw7Ez/yuJ+2 WXGbwtGxZ3ydu1iitJoWoMYkHjVzfFhuNW1S1Vr0FF1bS5qFEr+QHbrkquuuzF+/cpbTmNml5QK 1OydBh2RXqi/d+lVa5sdpYJ1va7DkE4mRXNyVOm3AB6l2BY0CNyN1x/T4If3SCG9MUe09AGfAXF R8REE/NcnyFBDwsJQP/JmO2BNsGYhAz17/r8spjfTYjmpPcd4bMHYXoy44HzZYHbOJagKb98kk9 8uaMi1VJQqaAFb9mXAvzy83ez9NCR+m4DgeuYDAcYsJRgby0AOJUX30vIfdc5mQxCHdjFhTe01E O1TFKt667SEc6xpv0cRPkDCuqsMvOa4rl5K19zm/NLDHsBjAYGYT3hrrEAR+NhRQAdEnakfSMS+ qGzMj23M6z51TY5bAxDwxoM4y+4Z4Q== X-Proofpoint-ORIG-GUID: jZRhPTXFg4lyUGB-7Td5QoG7rX7fxZdA 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 clxscore=1015 adultscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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 Tue Dec 16 07:28:47 2025 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 8D3A726ED5F for ; Sat, 1 Nov 2025 04:00:03 +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=1761969606; cv=none; b=EKQJlxIIusmTFFgWQv2tMbZ5z2e2rFx4Q+RrTkNsS2UbWgt6JqATc6BW9yvaBttvUndBXg2aEfkttGlQWDoReUX90rD2OhWjGK3Rj01E5a/gc9A935XtN9/nLKlrP7KcXyAOD7f36ZFe5/7rXQ2u7ESoCICwzE2ppt1w29wKCIA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969606; c=relaxed/simple; bh=Cpg3+E+77cgaN8CmBzJQTZxMkFdRoEwVVkKgFdeA8+8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uNt/dkxztFVgAfyu4r/tAvsKLs0i/OoUOZjb5cU71uJGkL1ei5cmU4Wib4daXyM2nVsgPv9mdrT67/eYaO7o1ICc309o26D8N1MBRryeoV5LQdQ+8Ck0ngLLFY8uR9jk81chi+iD/wM72XtFm/ATZSB6f0JhJVb94kFk3oovvrg= 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=dzTVcveU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Lv/R3qTL; 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="dzTVcveU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Lv/R3qTL" 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 5A13Yl4p428304 for ; Sat, 1 Nov 2025 04:00:03 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= GlcIk8VGLe34WMvbqxhiaOvLED3wY6vnyW7vFGcSUZs=; b=dzTVcveURJ8uBolK OOSdkNSFIcfNzfZcHSBI3iIdy2T0b3AgjykcvGapYMMp+g+R9Y+beeKOd1qW/yOE fraeZF555tJibJi9Z4xAGGQzrxQA8CO5I8xgNd8YWMeDFjWeckaUeRbeysvL0Ku3 mKXGgfh34vpuPijRz5HPKkkmkZr0vACMlgoKH03F+nYqT6RIcBGi6cYcU6MhWcuq wJgy4rSI/MpZElbAEix1nrQSXShKSc1PqxbTge8gGOScsinmGlAIvTReg048ky9M gVBYOx08K4hZTyoUOzV28lK0NR14gG3oMVpWDvRKSort3seeCVbYrU6BFQ5N0pBE 9XalxA== 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 4a5ae300vm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 04:00:03 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-29554d36a77so5175325ad.1 for ; Fri, 31 Oct 2025 21:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969603; x=1762574403; 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=GlcIk8VGLe34WMvbqxhiaOvLED3wY6vnyW7vFGcSUZs=; b=Lv/R3qTLHtplkj08Zv6o2y2cKofRedW0+ESotJxMcJAUfC0H2WQeKItIPAl5hZP8WZ ZtebFiQ6t+j/tRInF+bA6bIUst8YewNpaV7kSDC7HtgKtkJGo1tjjyWBhoRcetEb7PNv w/vbhVO5kt/VBM2heKduj1EISd4VxnkjZI97iDzmV/xUSsVzE+CDK8e6b0pnVDP6kb3i mjZFxs87IMXRyVLWizCUgTSsxhqYDyMPv0B5ZZKTAbVxwichg9QrcXQeRy1SV74a6kh5 NPbCPJ9qsWH1j2N+LXfuLA62u/u0HpETJ1fb0t47lGZmkJaGg17OZOfuFQ1ZiOmx4TPc SdBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969603; x=1762574403; 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=GlcIk8VGLe34WMvbqxhiaOvLED3wY6vnyW7vFGcSUZs=; b=Ylp+XSq0OnKi8S6LB1XgNo/OMXnTbeL3rt/Cc4iVnkoFhNrLdDpCRoyapcG67cuEf9 Qol8ago6nyuCqJ0eiMPNSKjQ4ArYJ5v6R1TfPRKvJ+tFRo3pCX6PyKL/EzPoR0WXhHKt mBqeRUsLZG/uCThcQhGb1DnwfPQmOn/lY9wDDPBKK6jVYd1BlQt3F6h2zhTAV2pt91Jn kbo3HHKzoTklG+s3qmXFvYN28i54NR9h6t3E6UMD0XaRjZULzJfvDvaNnn1Odp1nG5NY Sx2czvtblayuTrvqD9AhMNmNIiXGBdpCMh1cdfriBzyB4Gf0XePV60EZYhimgPqOwTDY ZN+g== X-Forwarded-Encrypted: i=1; AJvYcCWuJLzMrfilFV4Jw7M+ezs7qL2g1Ve9IF6b7okkNtRVeWxuJYbW3ZTA7D0upIhJLeWuDEEe1b9phH4C2/k=@vger.kernel.org X-Gm-Message-State: AOJu0YxW+5eltNOMWMLQNVTIM2IkufNsN+un7pr7hRuOVtA6OG/O8VQE KTexSo4r19sOMBug62jh45WqeG39cDfZ1kMcPo9rYgN89PmXE0Hog1VytYvHnH4tvWW6eAQwtgT f4AmMew50Cu1hE3ZJrp2Oa3Qcg/tm41yJSCVErSX+EItAsJS3vDgfeaJ4FRL80RI/g8Y= X-Gm-Gg: ASbGncs+H5d5ZhCIiZXX553TEZlsdUQ+EhK+W3yINvJPtpHeSQVFoWhuUde004F2Cnd qTuP+3fcU7jr55uWm4epjEuV7FNqLnK7BN7rST/6k4fDUyBgWaxu3EFesz7bBCGt8sMYMneBTlq vHC3rF4WfZQFZJ1OCVVEdeMt4En8KIE9be5QK0rU6EHMJR2iltjAN+9MBI6oPRPdlWdpA3SP2zY hUe58ttaAtTRocNMuxBP6F1b2xNaSIwFcsMyA7RR9q/6wmdx28VVE28bNyv4jz4c5+8qH/m1NJY qPSJ3x6mBBorGxLOoVCOiGpKGgpnrIJSpEqOaKRZF4ik1PO8PAErp1gxF08hevmqOa8WDPETX94 WXqyQLCp4RYIuwmYknGiJHPkyi7dXubX1rQ== X-Received: by 2002:a17:902:ce91:b0:295:4d24:31b5 with SMTP id d9443c01a7336-2954d24341dmr27202585ad.26.1761969602750; Fri, 31 Oct 2025 21:00:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEnujD4KfpMKIa1jbnip3JbXoF83Crapp1dKuTRMgwycbHmlRZs7b7Qay7n+31/vmIdwou0WA== X-Received: by 2002:a17:902:ce91:b0:295:4d24:31b5 with SMTP id d9443c01a7336-2954d24341dmr27202175ad.26.1761969602200; Fri, 31 Oct 2025 21:00:02 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.20.59.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 21:00:01 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:35 +0530 Subject: [PATCH v9 4/7] 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: <20251101-tc9563-v9-4-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=1221; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Cpg3+E+77cgaN8CmBzJQTZxMkFdRoEwVVkKgFdeA8+8=; b=E/GibS1CySbengy4S+tVaLsYBBBEbb+oHQBsSpYkwMFpxOdh2BPROUZK8Zfy+jh1PyWjjMkpo C6wCyo30DSpAmHjbtYN79LvxVb7VI5uZCP0EY0r3zi1L5PJ1zPHTwUI X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-ORIG-GUID: rx3JjiTWC6ZR0hRQKvFl-CWygHXUkIWD X-Proofpoint-GUID: rx3JjiTWC6ZR0hRQKvFl-CWygHXUkIWD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfXzHYTxaVwxkNH MctsSrFMQYDxoBgpP71BUhYCsKOOk/vkvit1BQ1ZOU10D6B61wQmewJNmpYTSONGFCBAccAH0Ui R3MsAUsGC2WpxG+MDTzVkyPDE5beEo61gjIDhIKD9am2suK1hFdLg1Wr1VHFtR0uSJJ55KJWW2v cbEAUYPcOIP08b3hFW7IvM6GGwj77PKgcyRMtii3zMXAeumsa6Djmsq4+/wrcAjj3A6EqtQUk8E cQiRLrJDgIZfQ0Iq8UaPozPxiTDRIJoK61vn41WteAUHE0gy5QKHnMu3kEIr04AcpSgXCQY6WfR FKQN5z8/UuNH0AFlhPQgEdwrH5DtS3SlMg9t5kp8k7GoG4dqurJK36Rdmm/QEOtEWXUpxzY9IoQ OemwCrw1Xsq+/K03AVqp6B66mIWfFA== X-Authority-Analysis: v=2.4 cv=CfUFJbrl c=1 sm=1 tr=0 ts=690585c3 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=dSOQ3hK3KXaY1HoqDbQA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q: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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 Implement assert_perst() function op for dwc drivers. Signed-off-by: Krishna Chaitanya Chundru Acked-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pcie-designware-host.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index 20c9333bcb1c4812e2fd96047a49944574df1e6f..b56dd1d51fa4f03931942dc9da6= 49bef8859f192 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -842,10 +842,19 @@ void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus= *bus, unsigned int devfn, } EXPORT_SYMBOL_GPL(dw_pcie_own_conf_map_bus); =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 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 int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) --=20 2.34.1 From nobody Tue Dec 16 07:28:47 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04A0F26F2B3 for ; Sat, 1 Nov 2025 04:00:09 +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=1761969611; cv=none; b=dz9OmLFWAzzz96HFlQV9cK38piR6vkLiNgIZWq0nmsMU160pwR9l1uAlrWFvklKSgiSOwsSwUwDrjrBojnn7dcaUt5rki4vOHvsuMAM+Dg67NCDE2AdMlfsYzmgHe4fmitMl1YYGPlDn3eUPo55TVx5xQZwrDhL2DxGOtZOjE8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969611; c=relaxed/simple; bh=/rHGDiZUdOdrl9DYepaOQeGv1VtjtTYXi/+ZkT8cb+s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SFxfID4Cijj1FRXX1rfxgMjGTj5HUaY8ijePxc4Y7i1RqEgS+fB6+bssFpoxGbFT31x9w+W6h+9FLZBHCPmckIhrLppOu8wElwEq+WU2bIPdxQLa4A9whV5xB+pq/qJqLSmnFVSQ1yxxvaBapwau+vPN//2ESHGrl0+iqpCUzZU= 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=TuXMLO4M; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZHUvsahj; 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="TuXMLO4M"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZHUvsahj" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A13R4g7520347 for ; Sat, 1 Nov 2025 04:00:08 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= TUun8ttkoQTOkHeDhGd/NSYDbZVcwe4JABD7MBbYCrY=; b=TuXMLO4Mwi+OQcmI M6GtmmtWO7xl/RyIJhOXNW5/k8NraVBPmAbcFzs1LpGUCW6X/XAqFgOmP/D82J29 2MNGsBLpyhR7k4KBQQuSVMApYqYz4xOJYsxh+t0GOc7/u+Q5nm+mO/aC8DsYlgLW 7K/6ijmu65Ht/Sx00jW8VbIxsvuSLVsHy5p3oz6t9+a+Qww0dphE0m1xLj57fqYa L13h/AotM1493JshZcymzKXUquvAq4hl8FyOwj9O4FZgT4qeBTE1lnBakS1zUota V9E7sy6ClkN0Is4+vKzI4/mFBRX+sw/ACafGj//B9E5iCqG/CwFn/N5i5Q27QbRF ojEYFQ== 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 4a5a9vg19k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 04:00:08 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-294df925293so27525115ad.2 for ; Fri, 31 Oct 2025 21:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969608; x=1762574408; 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=TUun8ttkoQTOkHeDhGd/NSYDbZVcwe4JABD7MBbYCrY=; b=ZHUvsahjt/knFgGJui7oDPL+E6OmvfRgp1VLICdckZAatL0KWnyq4osHYCLP2/rjsP J6pGGXd3g6o4UAjrzE8OhNpdmeX+ILXp4VaYscMgirJSxuDUqFtNEIku7ASPsT+FM4KD IWrBtiVNOUUE4T8nYvdpDB7+giqNzT9Xy3HODxbX0044LhKZ8ZH4xOeW2H5j9yfbClip zv0te9DMVy8J3siv0fxy2elEF0DRd7j9mVn5kGYNuwFOCF4IdKiOhF+QEefd0PsNT9wh Uk5S2/zEMWkbHsjaUlDFHttWK11Wm3j7auuSx+hW4gbgX8d9NbZUrxJrMPzY3XRVoY0x xU4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969608; x=1762574408; 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=TUun8ttkoQTOkHeDhGd/NSYDbZVcwe4JABD7MBbYCrY=; b=lTYuN1J+vyrkb0XnlcRRBzaSvQKeP7TnoVF5HsUQg7/UmzOVuVdD5IEUdNM+JevqB4 3JTHOvkXdJXgnCMMZ2y6Vhvxm4K6/AZJsDme442u1wzuArITClvqbAnecpiSGmwSL4AI umKXjPf1MYMOiOCVXOSj/83MQW9sB6QGSfNktjnlQRqFVzKSL+ZjH9x6weh7fgxjUaXg mLELlm5JYLz3FEDC5E+5z4b97TiYGr9f4JmS8ocNyrCeWS32dxXCNublfUxwxc7Rhh1R c0Ch7mmRuQPptarma7gg5F3QjdSOFl/enI41Q31V+14aXUGD1nZpckAHCzypg4A5O4UV CPoQ== X-Forwarded-Encrypted: i=1; AJvYcCW2Bqpsor2o4jb7D977Bisq7Qfosp9Sqxxi4JrzzTRAPUMptTB1vKe0wIWfUCsCwZKrAEvDS2IykBTSZq8=@vger.kernel.org X-Gm-Message-State: AOJu0YwFBTYxPCSlk4KvXyfBPVmA5QvTYXb5KEk+5CL/0EyoQB8HwguE VH9ZVDS/nyWb7F7jkKuuoL9eP/teN8Vnu4421uWPU9uS7rR/4gwj+0GzWkrfT/BDehD47RpxmwQ +zlPDuzM5mN2PdujYuVkwh4LQpcOSh4fqetFKX74WSmjfy3uwbkL6pjObZaCrAVW1S08= X-Gm-Gg: ASbGnctFUekypQFf0W4FVbtHR3gXmPAz2rt87BVQQkhcd8aPNeoMdcgDxw0g+kXMnsV 2MwaVFJpOPzWO++t2zml2+lLrSrPHzIw9oo88EY5zNzk1AC7aWrxO5+m+uuhQThucMoi4H1XZfr 2iyuCZw8V+LUPmXEJV7BFRiJtrVMpgWPoXK7Sh44ypMOvdJ4pZ/opGlL2SYJEbAxK3kKbNABiQH TQ7oKg53w28sX29HX+O14fzFq4XXmgRHAkLtRplljvfvtBrSd7E+5otxXNZ33hToTtKYhcX/S84 bJwaiQxaxtr7Bget+QH33LO5O2UeFPWjQXj2eoiIAvUIT/lieytRRlQ0BoQNtpn8vuUVTukeOGs dkC2KFO5ivZvBJIrW/zGgpyNIZ1MikdguOQ== X-Received: by 2002:a17:903:185:b0:290:9a31:26da with SMTP id d9443c01a7336-2951a37a3d6mr76863545ad.16.1761969607633; Fri, 31 Oct 2025 21:00:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGKAAec1m6KMSQ27zZIpV5w0wm864d/cFqrgqxQkc3z3RS2QIMzPOiuhWEcwaukQDzGofo9Eg== X-Received: by 2002:a17:903:185:b0:290:9a31:26da with SMTP id d9443c01a7336-2951a37a3d6mr76863085ad.16.1761969607071; Fri, 31 Oct 2025 21:00:07 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.21.00.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 21:00:06 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:36 +0530 Subject: [PATCH v9 5/7] 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: <20251101-tc9563-v9-5-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=1479; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=/rHGDiZUdOdrl9DYepaOQeGv1VtjtTYXi/+ZkT8cb+s=; b=Lnb0kzer2s2KLRgW1R4m1XdeYI6aM+xYc3kfH0jbPdg1zODFUgULpywmccRH/RJ5i4TyZrvs3 TXDDygSCY9mCnIuEfsxGuYCrfV4Vk4yQ7h8Y6FivM/7Si6SgkyZQjwl X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX2ZlY8UDRePBm zVMsZgst+HrXKTW6KLegGr0q5F4EjP8Wfm4gZ/U6qdxmE1LpxpGnro3ZlD6gltFCfhqX9HPtFiB L05ay8ak+r8VtuDaCpzCN1Dvwuhmuclp+7EuWrF2JrUpHGuNr7WwZ58nWDL/uCKiXsfngel3VhM lqTeJGTZgAd3ocGRikWnZb+OjaoliptBwrUSaUmka0VBTPtBiTP4uz2t0OHyEWswN1DZ/cNkTdz 2zySamIfp1fnxk1PITaIwCxB5yNmUGGRYyW1MPJQp2kmv4n18nLEkTABvDZ2jUU1m6gc1ZQowFA sN9HwGrGpnYLugWgjpfsg//aCbAfj/keUxxXajHbp9y25CKpws3dfzeaAKVNKtAD/LTrLLyhb7g oUmseI3owhTo4H2D/taW9mcV8FyH6Q== X-Authority-Analysis: v=2.4 cv=c6CmgB9l c=1 sm=1 tr=0 ts=690585c8 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=j2XxTBISUlk66HYKGUMA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: 8Kpn9SF52BXALY6CQjURBZtHAW0oQ-nY X-Proofpoint-GUID: 8Kpn9SF52BXALY6CQjURBZtHAW0oQ-nY 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 lowpriorityscore=0 adultscore=0 bulkscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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 Acked-by: Manivannan Sadhasivam --- 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 805edbbfe7eba496bc99ca82051dee43d240f359..cdc605b44e19e17319c39933f22= d0b7710c5e9ef 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -696,6 +696,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; @@ -1516,6 +1528,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 Tue Dec 16 07:28:47 2025 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 4DB3125E824 for ; Sat, 1 Nov 2025 04:00:15 +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=1761969617; cv=none; b=MhNAcm2qmBaBz1hQimvwCxQ52G8GgGFwZpuIwx40ldSdJMUflRlI3qnTACQwnkTwfx35JnEobd9MA3phHYW7r6uzOIqq/wE6xfdgJqdTqqfhqhGwMP2blqFUk0nthabX9RJMsGr7YHHBFWYWzpIldz+FhCEH6kPbepelp23oxPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969617; c=relaxed/simple; bh=jRJVNmRKWaUyKPYxNThJKMDGqR2NEEWZYcy73oDMgMY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GmThYyaMCNFiX2IP+mwFJO5zSJfAA67fPXTZaNJLxUIi2RZNM7p12t623cNG3FwVLXUmjnLydoT7axwVHIS9fPZPqrBNo0wCAOhQ98h5qoZwIufhCuVa5xtSOxETW6oIaJjMpa72LmMDXHc4r/cxuvMLK7T9piCG9HSOPGrjmME= 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=cvATolhy; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Vg+SSg4d; 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="cvATolhy"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Vg+SSg4d" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59VJfJnW897536 for ; Sat, 1 Nov 2025 04:00:14 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= vzQgOeMry1ItMrZAjqq5fsj4t5zzFirVCIw6IOfjCfg=; b=cvATolhyxUDqfCAc wG4t7yJY7cP0F4fvPx7l2QDHO4LPwAFqPAh32UOJAZcz0ns5NrNlL/n07rZX1yfV T9VRjpaSebDFjWAQ7uxjc/P446+ZupnGwVGFFh9pRuKJB/v+7UDVn6+LvAElf5XY Mf3XOm3K1sx+33Pr/7HbMlMiZs3JqhtYZM+tWO2Qo7E5ZmAgYn5O4IVxtxtCge3u hrLmMsNOxMtxlbKN5kehHpbnDuiy0Gdfze47mhLTbPxJTjDTwjdWhlpN8eunwJhr 9T670T2guM0EMqfNjMItAQNXmLS9qN3tglws3FUdCDbOSrg0lvXIHWc2sH45JF+p tV65VQ== 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 4a4gb2414y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 04:00:13 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2698b5fbe5bso40694725ad.0 for ; Fri, 31 Oct 2025 21:00:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969613; x=1762574413; 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=vzQgOeMry1ItMrZAjqq5fsj4t5zzFirVCIw6IOfjCfg=; b=Vg+SSg4du8M28gvX4V8PdWLfCYamXEt/3cJqiwG4wEvuq+gr9bfJAhI6RPNoXweb/m Xg/lmIUHg30qPqa+t7hxOy19oJMt9H9XsaEmRFVM5yB18L9QXWXb7J1xPa+yxSzcL8S6 W80Jyl9WfH8998HpZELwhm9yeaBdZJGaxqXmJ4p0/56/FDgoidjcvWxpCb08T6oX+qln AkiwRmNtzHG+utKr3hRjjqXXM9L7p8pA05qouv1U6oUZvDfYiSoboUHv8cjbZ+x+Y+LQ wvOuTTabvX/TVr29kXd7ZY5ZIM0uhn015cVoRaASxa5nfq8Ei6lKIOtgEE2fCT6KIKP9 sFag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969613; x=1762574413; 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=vzQgOeMry1ItMrZAjqq5fsj4t5zzFirVCIw6IOfjCfg=; b=KJJA0UXRTlQa6FqbH0aa4H9YOyoNjcQ9idcRYyVBTVUPkizUNyIZGvWcs3ytoTvbJE 10ues6toKKWCqKcpMVce4hS/J8F5fP9K2+Rhfbtrc9j1+6oX+AMjmbWo42X8SuOSsodc P5PHDJCuWy6ew9HPfSZYu245g7MtLADlKj5zjV5jm4TXqCGFmkkR5rleiSqxTQ2cs5jU y5UIht3gHS3SkYAu7wgC3F0WdR57bMLeTubrN9a/QNrqqj2oBQ46g21BSq+kIIfxjSoF KWQSanzRBGs2P983M9yI5GvfP8fhLk114zTWi1NDTgGx22bdsfRgZPo5sAdzj2yDg6cB UeUQ== X-Forwarded-Encrypted: i=1; AJvYcCUKrAgDvb5UVPOejI/PCzV7/SbZixCx5ucfePyeN3XtixsDt81ulPNomMw/Y13YNsSW6XPioCQDUvaBJ2M=@vger.kernel.org X-Gm-Message-State: AOJu0YwEZT42ouqo81ez+UeVpqnNtuNIdI+NONPnd4TNqhuzxdlVwNx8 M9bKtZ/k8qYAxih0wuM+N8wjIfUelxerOB0ggBcXArunKKcMsI2WtsrSp3Xf6WC2elInjJjc1HE tUpDEh/eBUCugUw3QvYvlzrkowJRowx1HAYwhnBuohK8nVWUpk81cOeYQrx9Y9iAglxA= X-Gm-Gg: ASbGncvAMLBan3t3vZhTOgJkSdAl9qT+Yx/NxChFMAJ1Rxu8ISI9EmZL4GSFWd+sMEk 0dUXuRhn48uxMqHMq8IwG3fL5XTyipbnr67SoXM6HDQpcExSr7fiZQUlTYN7lIwcCPC0pHhPz0O S85Z2q2BPP56hq17HF4HrtYazfO49jJHUW2cqUQo7vtuv6JoaauxOMYaJZGKPIkjq6/pgEyCebv X0QxtDmK915a+T8BDdwAiYEkjMT1f5tfPhV0p/ZTih5GxXH3+DEOCs5OSjL39N5RtmXbMknKEgj gbRLyHBBTPrcwjt09Ecbtws4ovgDq3zP1SEMax1M/XPAJl8iOTz3cyv1LpZTCi7ELDHRQPrYfzH L87Mk8CRAYnl2I3ed7yEhv9w+UPKf97p60w== X-Received: by 2002:a17:902:d2d0:b0:295:49ab:3593 with SMTP id d9443c01a7336-29549ab53edmr33999895ad.29.1761969613060; Fri, 31 Oct 2025 21:00:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUheIRjvz3OE+8J4TZEx3lxBIf7IExUlWeobFK4xE9CChFD3q8UXFHJLumXBNUfTx34qMgOQ== X-Received: by 2002:a17:902:d2d0:b0:295:49ab:3593 with SMTP id d9443c01a7336-29549ab53edmr33999095ad.29.1761969612347; Fri, 31 Oct 2025 21:00:12 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.21.00.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 21:00:12 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:37 +0530 Subject: [PATCH v9 6/7] 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: <20251101-tc9563-v9-6-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=20731; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=jRJVNmRKWaUyKPYxNThJKMDGqR2NEEWZYcy73oDMgMY=; b=2G0PHD2GWLW3wcUVZtYWIv5aneWSqiUGmZg084WuMYA71iZfNfVSEs/LceQwiAIv6UhSRs2Wq P36vrL30Xv7AVlx2681nJ4mt6GyT8eEq9dXLCZ9ie2imPjWKJTdOn5f X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=efswvrEH c=1 sm=1 tr=0 ts=690585ce cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=ovcFienBLN5XsLGGFz8A:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX8pGqnna8lOLQ vs/Ff8jlLUemimkwqk0LZCWgpTgH6WFLBFyG4ubrMTmAAceW+4512vki/NcPZDlJGyvNmt+TMZE LJpcVBC0yeD/YZyRznurseApzxKRrUupXQtSaGyERQ8cWjR9L9MTwf4dHdMf/7VCRFSHxrLHX7v iw2bHIxuMNjU/Cothu1G9S5STDgCwcxS6QwKOFqbLMAly/VUK2ysjSz/H5S6s64WxRkZa8Y9F8N 4FfirZ8y480LAjVGMqoPV0Vw7Wt0TbIOEyMIOrBMH2gkbORAFs61pda81l49eXxKHbzVFy0XEJY d0pBq7tfHxS6/ouOtg0PtWP4Afu6geSDRud8vPk89vW16RixTP/pWMmkS35asYTsZ3QGJ96/riv SSSz8n2YN0jbw2ueWbVqXRnomhDjXQ== X-Proofpoint-GUID: Kny1erdXdoedRkoHcolcCXetLyvHmBhI X-Proofpoint-ORIG-GUID: Kny1erdXdoedRkoHcolcCXetLyvHmBhI 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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. Reviewed-by: Bjorn Andersson Reviewed-by: Bartosz Golaszewski Signed-off-by: Krishna Chaitanya Chundru Reviewed-by: Manivannan Sadhasivam --- drivers/pci/pwrctrl/Kconfig | 14 + drivers/pci/pwrctrl/Makefile | 2 + drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 648 +++++++++++++++++++++++++++= ++++ 3 files changed, 664 insertions(+) diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig index 6956c18548114ce12247b560f1ef159eb7e90b10..b43fdf052d376e14e9481d6dd97= e89db3a48ca69 100644 --- a/drivers/pci/pwrctrl/Kconfig +++ b/drivers/pci/pwrctrl/Kconfig @@ -22,6 +22,20 @@ 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 + default m if ARCH_QCOM + 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..46339a23204f64c817b0a01d5f8= 1853bdb8759e5 --- /dev/null +++ b/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c @@ -0,0 +1,648 @@ +// 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 +#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_GPIO_DEASSERT_BITS 0xc /* Bits to clear for GPIO deassert = */ + +#define TC9563_TX_MARGIN_MIN_UA 400000 + +/* + * From TC9563 PORSYS rev 0.2, figure 1.1 POR boot sequence + * wait for 10ms for the internal osc frequency to stabilize. + */ +#define TC9563_OSC_STAB_DELAY_US (10 * USEC_PER_MSEC) + +#define TC9563_L0S_L1_DELAY_UNIT_NS 256 /* Each unit represents 256 nanos= econds */ + +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 < TC9563_L0S_L1_DELAY_UNIT_NS) + return 0; + + /* convert to units of 256ns */ + units =3D ns / TC9563_L0S_L1_DELAY_UNIT_NS; + + 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 =3D ctx->cfg[port].tx_amp; + int port_access; + + if (amp < TC9563_TX_MARGIN_MIN_UA) + return 0; + + /* txmargin =3D (Amp(uV) - 400000) / 3125 */ + amp =3D (amp - TC9563_TX_MARGIN_MIN_UA) / 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 =3D ctx->cfg[port].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 ? TC9563_GPIO_DEASSERT_BITS : 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 =3D &ctx->cfg[port]; + int ret; + + /* 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, "toshiba,tx-amplitude-microvolt", &cfg= ->tx_amp); + if (ret && ret !=3D -EINVAL) + return ret; + + ret =3D of_property_read_u8_array(node, "n-fts", cfg->nfts, ARRAY_SIZE(cf= g->nfts)); + if (ret && ret !=3D -EINVAL) + return ret; + + cfg->disable_dfe =3D of_property_read_bool(node, "toshiba,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); + + fsleep(TC9563_OSC_STAB_DELAY_US); + + 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); + if (ret) { + dev_err(ctx->pwrctrl.dev, "Setting Tx amplitude failed\n"); + goto power_off; + } + + ret =3D tc9563_pwrctrl_set_nfts(ctx, i); + 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 < ARRAY_SIZE(tc9563_supply_names); 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, "resx", GPIOD_OUT_HIGH); + if (IS_ERR(ctx->reset_gpio)) { + ret =3D dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "failed to get resx= 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) { + port++; + 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) { + port++; + 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 From nobody Tue Dec 16 07:28:47 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE6C32673AF for ; Sat, 1 Nov 2025 04:00:20 +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=1761969622; cv=none; b=OsmFPrQsYyVqJPENzcTOS5eJwq1nPIhhyam8Og3zY8qlg2k/hjmBuPonqj3nVmqHZvlMGHFfVif1SgNltzvJx2fbZWO76GZ/OIqe5DDSEr8uoltTKP2wz2cyVLiecopg+6wGne2fy33Q52qd2Rxa6tErm3IF8eY2HophwgejrXE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761969622; c=relaxed/simple; bh=Sv6AS5x3K2KhKdvBG7hjL3mkMhlIbMFrdThx5r4suHY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oNhTnaCrm/kpJVU/DJnU9ssxiu9eTU9oP7e39aBz/HyKkzpfArbaOp+NEBupNwjYG5vZylJLSSyzHrWKZNHiZr377b7K7S24R4xQ7W+df7JKmn3rlkP4oSdi2k3tVpGnL++2AAvnV2JvTe1x7KvVhU2O2BOuBxvKBV2Yu/WWew0= 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=H0FLZs4F; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cO/KpCnU; 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="H0FLZs4F"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cO/KpCnU" 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 5A10JiTU214856 for ; Sat, 1 Nov 2025 04:00: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= OVxVd9mZ1eZAjQgeyNOAfdUg8XGT565AF3QZkQ1SayU=; b=H0FLZs4FXwnUPBnP ubz3NPtz1dkywrPLoqlkpdbPpqEmmfOMQyAyQCOErrVjBLrv/bxlLlUIwwWhRqWS RK8srHJiZ+xjbMe7AtJ4PYWONMNiKWKJZ76wpBydgfqlFgAmgI3rWwGemLPYwFKQ Ya9KRNy+I1wgz+TEaZ6zRYpz20ZtBXvBxd1HIfP1tdBZ8y2vASYXJ/Kngm7ag57k MCsXyRdNBVL00OJAL8TdZv6APmN+BxWDGaqOqkzKYtKlFrlK2nc7GSS5NnUM+758 kBemh2LDpPUKHSJF5fHvFubDBZ5me3RQAkl8lfiE1zr3jrpeWqelSx7TAfHFsyHk 3HrS3w== 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 4a57jn08kc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 01 Nov 2025 04:00:19 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-29523ed27e0so15262585ad.1 for ; Fri, 31 Oct 2025 21:00:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1761969618; x=1762574418; 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=OVxVd9mZ1eZAjQgeyNOAfdUg8XGT565AF3QZkQ1SayU=; b=cO/KpCnUhbOLH44AuhWEZuqDWKRkJCNijNjV6k7p5iQO3gpYIFPmHmMkgqheetLsqh 1BdSntBqcPUfAS8wT86hKs1pp15rFlIVSD2443wRFsTyHKIWrjG1BuSZQTKfq86+MuBf wrvL6SVRVeSxlf2NpPwhTTV3XJRfU+5bxJW1qov7YnYCLxDFIZI5sv9LiD9yh2yPMp4W ipfNt9gBrbU9t41C8zX92RPkpicPJW8gQ150FqOI1u0HVMiNA0MYc3m4D4KqfEtC4bXf KZzMzPGfHSJvHPLRKQ/eclyQ9WYgApiCjrZTgr8ZecCtkIps0PWAbsWlgZgZoK7xm/9h TBog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761969618; x=1762574418; 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=OVxVd9mZ1eZAjQgeyNOAfdUg8XGT565AF3QZkQ1SayU=; b=gUfIUdWbPeJwqT9JCqW96GdkHCmh4dTv/8awwAIGHhNau5P7SEJ8lDBBucocRYmbXU 6aBCgPHCvdnnzziqNCbcVKb8iTRdW7hpAtsqJi3kyzfMuGhgFvZAMhkw6aHlxi38LPud RTCOyI4eShyhr/WlH7hHa7QuTnwJydoO8C0mK/PvGGy4TthfCn8TlwY7nH2KNq8KERay f52VS+dG95TMf6JgQZwQRW7N/fOy5v/SHKse/36JmRboX1yQ2vOYkQ55pCUYCFZH4iDq MeFeedBH0RJGDIyLOiOjkavrM35pvBOZHEE7+y26l6LsRqqi8Nb9RJW9ZSF98nckF+/c cfaQ== X-Forwarded-Encrypted: i=1; AJvYcCWB5bBd4oHTriObPTfXW339VjpfeLRl6uJoTIhJO0GBpaUL6OK0wusIO2ZrHDI666wLyFElkG2AIYH3wHQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxoS42YKlxrUv03MDOBSQP2FN1g+Ej6gvkJ9jhvdGMEncxCgIkz X8X5kucGpoHDZs3v/8ucJnKK7foRi0nzuPibASVHHehDGaloruPsl2qSpfxoSEkbVl3OdURZfXc QUu+saibFlOeDb2EBjtYQEEBcXQYeJ+5Dpva5HGmlG3hG6bML3gKvvccqn2qoj0/32jHtmO+14y s= X-Gm-Gg: ASbGnct0kFhYDsz2oS6QsvQurIGCzPYJrTehp2OUn2WbVL3rSbjjPZxRNjwjtch4zfs Oy1eiz6VcGdpfwaGwJhUWf+hjZpJaagUkDKqeTv6tMT471qDShgulriDH/7vHm1HmKY389UQ5h9 VunsiNVZ+lCOvez9nhoTbdtwOsgW7z7fxvvWv3AKWJ6OqquTYwz8eoSP3aOd9Aonx0aBeMRt+B1 iBUyiBBILBoW7HuV7EBvJTRUaGwTOr2uqotm+jiSJ3WjeDBI1n3g3dtteGPpcO7brlnD8JmocOt Io3CNGFN4bicq61QDYb9aVv9CUJhARmtf+MFBs1rTTnLo4RxEem0H33wO1JegOr0ouckaX+3liI uWseGrZyVlQp1FcAM+4OIX4iFwgSTW0/etg== X-Received: by 2002:a17:903:228a:b0:295:557e:7467 with SMTP id d9443c01a7336-295557e7b0emr18852815ad.17.1761969617936; Fri, 31 Oct 2025 21:00:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEV/YE/IZxbEQWBfscMXqHdSN/fXQ8HkGeboGhi9RTUNzK1qMXttkj1i2AMDNt4xiHGg1Mg0Q== X-Received: by 2002:a17:903:228a:b0:295:557e:7467 with SMTP id d9443c01a7336-295557e7b0emr18852405ad.17.1761969617427; Fri, 31 Oct 2025 21:00:17 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-295268717ffsm41490725ad.2.2025.10.31.21.00.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Oct 2025 21:00:17 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 01 Nov 2025 09:29:38 +0530 Subject: [PATCH v9 7/7] 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: <20251101-tc9563-v9-7-de3429f7787a@oss.qualcomm.com> References: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> In-Reply-To: <20251101-tc9563-v9-0-de3429f7787a@oss.qualcomm.com> To: Bjorn Helgaas , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jingoo Han , Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio , cros-qcom-dts-watchers@chromium.org Cc: linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru , Dmitry Baryshkov , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1761969577; l=4926; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Sv6AS5x3K2KhKdvBG7hjL3mkMhlIbMFrdThx5r4suHY=; b=rDOAemcF0w8IU32RA59R4X1zFkonTPWsF1dEHqr8SkRW6PooUOIcH4PIOIK8gEPdqPquu5SqC mNyldpQEqyICkELP/2zxSxA3OMeAVsvL/9A2jO3N7oUL+wEtj/GzjcY X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=StidKfO0 c=1 sm=1 tr=0 ts=690585d3 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=xTuWgevKKEmUOcCBws0A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: DjQXPLLcZOxba2plqVSMyKcEt_pVL4jG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAzMCBTYWx0ZWRfX4cwKNnEBimYY TEjp1tAU5P5uIVU4pg43XFWDseDw0yKIqkhbgrLKDHFlG+0s3lJ+fNNA9CyQOzUnewzBCkVpIcm zhTx3AmpIYUVjfcXTCsiU5uHEN9Is5OASLMmH1kjHyt3K1Y5OwxB2U7rZqFv6iVoHweOPeuyQs4 u+047MZrwlw1Jmkd5tBaln2a/NFIgldQstrDKsFTPtbTVvhwBrfxQzDZS0wDaAnxPMNW97MRBCA HZAYJAMsJabidRyvpPYu0iaHWhgMoxdUh8yBP7nmzeh9jm6gwYei5fxFDXhhkXoCMMlG/qKApnO axDswjE3Ep//sZYd5sO+JdGMj3XCvqZhxBl9WGKeniv28DnQ7D2W5IWU1Tz8rZ7OCAzGE83K6Sz zhQFCmzbQxWwtMjsQKSYz2Ge6N0y2Q== X-Proofpoint-ORIG-GUID: DjQXPLLcZOxba2plqVSMyKcEt_pVL4jG 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-31_08,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 adultscore=0 malwarescore=0 impostorscore=0 spamscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511010030 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. Reviewed-by: Bjorn Andersson Acked-by: Manivannan Sadhasivam Reviewed-by: Dmitry Baryshkov Signed-off-by: Krishna Chaitanya Chundru --- 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..6aa49519508a2f88afa23f8f801= 5f986c0a5b84e 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>; + + resx-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