Hi,
this small series add support for enabling PCIe reference clock by driver.
Thanks,
Michal
Changes in v3:
- use PCIe instead of pcie
- add stable cc
- update commit message - reported by Krzysztof
Changes in v2:
- new patch in this series because I found that it has never been sent
- Update commit message - reported by Krzysztof
- Check return value from clk_prepare_enable() - reported by Krzysztof
Hyun Kwon (1):
PCI: xilinx-nwl: Enable the clock through CCF
Michal Simek (1):
dt-bindings: pci: xilinx-nwl: Document optional clock property
.../devicetree/bindings/pci/xilinx-nwl-pcie.txt | 1 +
drivers/pci/controller/pcie-xilinx-nwl.c | 12 ++++++++++++
2 files changed, 13 insertions(+)
--
2.32.0
Clock property hasn't been documented in binding document but it is used
for quite a long time where clock was specified by commit 9c8a47b484ed
("arm64: dts: xilinx: Add the clock nodes for zynqmp").
Signed-off-by: Michal Simek <[email protected]>
---
(no changes since v2)
Changes in v2:
- new patch in this series because I found that it has never been sent
Bharat: Can you please start to work on converting it to yaml?
---
Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt
index 2d677e90a7e2..f56f8c58c5d9 100644
--- a/Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt
@@ -35,6 +35,7 @@ Required properties:
Optional properties:
- dma-coherent: present if DMA operations are coherent
+- clocks: Input clock specifier. Refer to common clock bindings
Example:
++++++++
--
2.32.0
From: Hyun Kwon <[email protected]>
Enable PCIe reference clock. There is no remove function that's why
this should be enough for simple operation.
Normally this clock is enabled by default by firmware but there are
usecases where this clock should be enabled by driver itself.
It is also good that PCIe clock is recorded in a clock framework.
Fixes: ab597d35ef11 ("PCI: xilinx-nwl: Add support for Xilinx NWL PCIe Host Controller")
Cc: [email protected]
Signed-off-by: Hyun Kwon <[email protected]>
Signed-off-by: Bharat Kumar Gogada <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
---
Changes in v3:
- use PCIe instead of pcie
- add stable cc
- update commit message - reported by Krzysztof
Changes in v2:
- Update commit message - reported by Krzysztof
- Check return value from clk_prepare_enable() - reported by Krzysztof
drivers/pci/controller/pcie-xilinx-nwl.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c
index 8689311c5ef6..1c3d5b87ef20 100644
--- a/drivers/pci/controller/pcie-xilinx-nwl.c
+++ b/drivers/pci/controller/pcie-xilinx-nwl.c
@@ -6,6 +6,7 @@
* (C) Copyright 2014 - 2015, Xilinx, Inc.
*/
+#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
@@ -169,6 +170,7 @@ struct nwl_pcie {
u8 last_busno;
struct nwl_msi msi;
struct irq_domain *legacy_irq_domain;
+ struct clk *clk;
raw_spinlock_t leg_mask_lock;
};
@@ -823,6 +825,16 @@ static int nwl_pcie_probe(struct platform_device *pdev)
return err;
}
+ pcie->clk = devm_clk_get(dev, NULL);
+ if (IS_ERR(pcie->clk))
+ return PTR_ERR(pcie->clk);
+
+ err = clk_prepare_enable(pcie->clk);
+ if (err) {
+ dev_err(dev, "can't enable PCIe ref clock\n");
+ return err;
+ }
+
err = nwl_pcie_bridge_init(pcie);
if (err) {
dev_err(dev, "HW Initialization failed\n");
--
2.32.0
On Fri, 25 Jun 2021 12:48:22 +0200, Michal Simek wrote:
> Clock property hasn't been documented in binding document but it is used
> for quite a long time where clock was specified by commit 9c8a47b484ed
> ("arm64: dts: xilinx: Add the clock nodes for zynqmp").
>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> (no changes since v2)
>
> Changes in v2:
> - new patch in this series because I found that it has never been sent
>
> Bharat: Can you please start to work on converting it to yaml?
>
> ---
> Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: Rob Herring <[email protected]>
Hi Bjorn and Krzysztof,
pá 25. 6. 2021 v 12:48 odesílatel Michal Simek <[email protected]> napsal:
>
> Hi,
>
> this small series add support for enabling PCIe reference clock by driver.
>
> Thanks,
> Michal
>
> Changes in v3:
> - use PCIe instead of pcie
> - add stable cc
> - update commit message - reported by Krzysztof
>
> Changes in v2:
> - new patch in this series because I found that it has never been sent
> - Update commit message - reported by Krzysztof
> - Check return value from clk_prepare_enable() - reported by Krzysztof
>
> Hyun Kwon (1):
> PCI: xilinx-nwl: Enable the clock through CCF
>
> Michal Simek (1):
> dt-bindings: pci: xilinx-nwl: Document optional clock property
>
> .../devicetree/bindings/pci/xilinx-nwl-pcie.txt | 1 +
> drivers/pci/controller/pcie-xilinx-nwl.c | 12 ++++++++++++
> 2 files changed, 13 insertions(+)
>
> --
> 2.32.0
>
Can you please take a look at this series?
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs
On Fri, 25 Jun 2021 12:48:21 +0200, Michal Simek wrote:
> this small series add support for enabling PCIe reference clock by driver.
>
> Thanks,
> Michal
>
> Changes in v3:
> - use PCIe instead of pcie
> - add stable cc
> - update commit message - reported by Krzysztof
>
> [...]
Applied to pci/xilinx-nwl, thanks!
[1/2] dt-bindings: pci: xilinx-nwl: Document optional clock property
https://git.kernel.org/lpieralisi/pci/c/4d79e36718
[2/2] PCI: xilinx-nwl: Enable the clock through CCF
https://git.kernel.org/lpieralisi/pci/c/de0a01f529
Thanks,
Lorenzo