From: "Marek Behún" <kabel@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sasha Levin <sashal@kernel.org>
Cc: pali@kernel.org, stable@vger.kernel.org,
"Marek Behún" <marek.behun@nic.cz>,
"Remi Pommarel" <repk@triplefau.lt>,
"Tomasz Maciej Nowak" <tmn505@gmail.com>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Gregory CLEMENT" <gregory.clement@bootlin.com>,
"Marek Behún" <kabel@kernel.org>
Subject: [PATCH 4.19 20/20] arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
Date: Thu, 25 Nov 2021 00:05:00 +0100 [thread overview]
Message-ID: <20211124230500.27109-21-kabel@kernel.org> (raw)
In-Reply-To: <20211124230500.27109-1-kabel@kernel.org>
From: Marek Behún <marek.behun@nic.cz>
commit 715878016984b2617f6c1f177c50039e12e7bd5b upstream.
We found out that we are unable to control the PERST# signal via the
default pin dedicated to be PERST# pin (GPIO2[3] pin) on A3700 SOC when
this pin is in EP_PCIE1_Resetn mode. There is a register in the PCIe
register space called PERSTN_GPIO_EN (D0088004[3]), but changing the
value of this register does not change the pin output when measuring
with voltmeter.
We do not know if this is a bug in the SOC, or if it works only when
PCIe controller is in a certain state.
Commit f4c7d053d7f7 ("PCI: aardvark: Wait for endpoint to be ready
before training link") says that when this pin changes pinctrl mode
from EP_PCIE1_Resetn to GPIO, the PERST# signal is asserted for a brief
moment.
So currently the situation is that on A3700 boards the PERST# signal is
asserted in U-Boot (because the code in U-Boot issues reset via this pin
via GPIO mode), and then in Linux by the obscure and undocumented
mechanism described by the above mentioned commit.
We want to issue PERST# signal in a known way, therefore this patch
changes the pcie_reset_pin function from "pcie" to "gpio" and adds the
reset-gpios property to the PCIe node in device tree files of
EspressoBin and Armada 3720 Dev Board (Turris Mox device tree already
has this property and uDPU does not have a PCIe port).
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Cc: Remi Pommarel <repk@triplefau.lt>
Tested-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Marek Behún <kabel@kernel.org>
---
arch/arm64/boot/dts/marvell/armada-3720-db.dts | 3 +++
arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts | 3 +++
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 2 +-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-db.dts b/arch/arm64/boot/dts/marvell/armada-3720-db.dts
index f2cc00594d64..3e5789f37206 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-db.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-db.dts
@@ -128,6 +128,9 @@
/* CON15(V2.0)/CON17(V1.4) : PCIe / CON15(V2.0)/CON12(V1.4) :mini-PCIe */
&pcie0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
+ reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
index 1a3e6e3b04eb..f36089198243 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
@@ -55,6 +55,9 @@
/* J9 */
&pcie0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
+ reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index 5299a16459f2..7500be1a11a3 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -256,7 +256,7 @@
pcie_reset_pins: pcie-reset-pins {
groups = "pcie1";
- function = "pcie";
+ function = "gpio";
};
pcie_clkreq_pins: pcie-clkreq-pins {
--
2.32.0
next prev parent reply other threads:[~2021-11-24 23:05 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-24 23:04 [PATCH 4.19 00/20] Armada 3720 PCIe fixes for 4.19 Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 01/20] PCI: aardvark: Fix a leaked reference by adding missing of_node_put() Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 02/20] PCI: aardvark: Wait for endpoint to be ready before training link Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 03/20] PCI: aardvark: Train link immediately after enabling training Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 04/20] PCI: aardvark: Improve link training Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 05/20] PCI: aardvark: Issue PERST via GPIO Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 06/20] PCI: aardvark: Replace custom macros by standard linux/pci_regs.h macros Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 07/20] PCI: aardvark: Indicate error in 'val' when config read fails Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 08/20] PCI: aardvark: Don't touch PCIe registers if no card connected Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 09/20] PCI: aardvark: Fix compilation on s390 Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 10/20] PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link() Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 11/20] PCI: aardvark: Update comment about disabling link training Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 12/20] PCI: aardvark: Configure PCIe resources from 'ranges' DT property Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 13/20] PCI: aardvark: Fix PCIe Max Payload Size setting Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 14/20] PCI: aardvark: Fix link training Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 15/20] PCI: aardvark: Fix checking for link up via LTSSM state Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 16/20] pinctrl: armada-37xx: Correct mpp definitions Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 17/20] pinctrl: armada-37xx: add missing pin: PCIe1 Wakeup Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 18/20] pinctrl: armada-37xx: Correct PWM pins definitions Marek Behún
2021-11-24 23:04 ` [PATCH 4.19 19/20] arm64: dts: marvell: armada-37xx: declare PCIe reset pin Marek Behún
2021-11-24 23:05 ` Marek Behún [this message]
2021-11-28 14:16 ` [PATCH 4.19 00/20] Armada 3720 PCIe fixes for 4.19 Greg Kroah-Hartman
2021-11-28 14:16 ` Greg Kroah-Hartman
2021-11-28 14:22 ` Pali Rohár
2021-11-28 14:36 ` Greg Kroah-Hartman
2021-11-28 16:33 ` Pali Rohár
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211124230500.27109-21-kabel@kernel.org \
--to=kabel@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=gregory.clement@bootlin.com \
--cc=marek.behun@nic.cz \
--cc=pali@kernel.org \
--cc=repk@triplefau.lt \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=tmn505@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox