From: Eddie James <eajames@linux.ibm.com>
To: openbmc@lists.ozlabs.org
Subject: [PATCH linux dev-5.4 14/16] soc: aspeed: xdma: Add root complex reset
Date: Tue, 17 Mar 2020 17:13:34 -0500 [thread overview]
Message-ID: <20200317221336.19973-15-eajames@linux.ibm.com> (raw)
In-Reply-To: <20200317221336.19973-1-eajames@linux.ibm.com>
The PCI root complex must be taken out of reset in order for XDMA to
work.
Signed-off-by: Eddie James <eajames@linux.ibm.com>
---
arch/arm/boot/dts/aspeed-g6.dtsi | 3 ++-
drivers/soc/aspeed/aspeed-xdma.c | 19 +++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi
index cb511e0b1046..a22287186079 100644
--- a/arch/arm/boot/dts/aspeed-g6.dtsi
+++ b/arch/arm/boot/dts/aspeed-g6.dtsi
@@ -344,7 +344,8 @@
compatible = "aspeed,ast2600-xdma";
reg = <0x1e6e7000 0x100>;
clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
- resets = <&syscon ASPEED_RESET_DEV_XDMA>;
+ resets = <&syscon ASPEED_RESET_DEV_XDMA>, <&syscon ASPEED_RESET_RC_XDMA>;
+ reset-names = "dev", "rc";
interrupts-extended = <&gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
<&scu_ic0 ASPEED_AST2600_SCU_IC0_PCIE_PERST_LO_TO_HI>;
pcie-device = "bmc";
diff --git a/drivers/soc/aspeed/aspeed-xdma.c b/drivers/soc/aspeed/aspeed-xdma.c
index ad29fdf30b06..6bc1357445bc 100644
--- a/drivers/soc/aspeed/aspeed-xdma.c
+++ b/drivers/soc/aspeed/aspeed-xdma.c
@@ -207,6 +207,7 @@ struct aspeed_xdma {
void __iomem *base;
struct clk *clock;
struct reset_control *reset;
+ struct reset_control *reset_rc;
/* file_lock serializes reads of current_client */
struct mutex file_lock;
@@ -863,6 +864,12 @@ static int aspeed_xdma_probe(struct platform_device *pdev)
return PTR_ERR(ctx->reset);
}
+ ctx->reset_rc = devm_reset_control_get_exclusive(dev, "rc");
+ if (IS_ERR(ctx->reset_rc)) {
+ dev_dbg(dev, "Failed to request reset RC control.\n");
+ ctx->reset_rc = NULL;
+ }
+
ctx->pool = devm_gen_pool_create(dev, ilog2(PAGE_SIZE), -1, NULL);
if (!ctx->pool) {
dev_err(dev, "Failed to setup genalloc pool.\n");
@@ -902,6 +909,15 @@ static int aspeed_xdma_probe(struct platform_device *pdev)
if (rc)
return rc;
+ if (ctx->reset_rc) {
+ rc = reset_control_deassert(ctx->reset_rc);
+ if (rc) {
+ dev_err(dev, "Failed to clear the RC reset.\n");
+ return rc;
+ }
+ msleep(XDMA_RESET_TIME_MS);
+ }
+
rc = clk_prepare_enable(ctx->clock);
if (rc) {
dev_err(dev, "Failed to enable the clock.\n");
@@ -973,6 +989,9 @@ static int aspeed_xdma_remove(struct platform_device *pdev)
reset_control_assert(ctx->reset);
clk_disable_unprepare(ctx->clock);
+ if (ctx->reset_rc)
+ reset_control_assert(ctx->reset_rc);
+
return 0;
}
--
2.24.0
next prev parent reply other threads:[~2020-03-17 22:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-17 22:13 [PATCH linux dev-5.4 00/16] Aspeed: Add XDMA and SCU interrupt controller drivers Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 01/16] dt-bindings: interrupt-controller: Add Aspeed SCU interrupt controller Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 02/16] irqchip: " Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 03/16] ARM: dts: aspeed: ast2500: Add " Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 04/16] ARM: dts: aspeed: ast2600: Add SCU interrupt controllers Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 05/16] dt-bindings: soc: Add Aspeed XDMA Engine Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 06/16] soc: aspeed: Add XDMA Engine Driver Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 07/16] soc: aspeed: xdma: Add user interface Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 08/16] soc: aspeed: xdma: Add reset ioctl Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 09/16] ARM: dts: aspeed: ast2500: Add XDMA Engine Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 10/16] ARM: dts: aspeed: ast2600: " Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 11/16] ARM: dts: aspeed: witherspoon: Enable " Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 12/16] ARM: dts: aspeed: tacoma: Enable XDMA engine Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 13/16] soc: aspeed: xdma: Add memory controller configuration Eddie James
2020-03-17 22:13 ` Eddie James [this message]
2020-03-17 22:13 ` [PATCH linux dev-5.4 15/16] soc: aspeed: xdma: Disable PCI AHB bridge during probe Eddie James
2020-03-17 22:13 ` [PATCH linux dev-5.4 16/16] soc: aspeed: xdma: Fix BMC PCI device class and revision for AST2600 Eddie James
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=20200317221336.19973-15-eajames@linux.ibm.com \
--to=eajames@linux.ibm.com \
--cc=openbmc@lists.ozlabs.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.