2023-11-05 09:29:31

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH v5 RESEND 0/2] PCI: rcar: support regulators for PCIe

Here are the patches to make PCIe cards work in slot CN15 on a Renesas
KingFisher board. Please apply.

Changes since v4:
* rebased to 6.6
* added ack from Mani (Thanks!)

Wolfram Sang (2):
dt-bindings: PCI: rcar-pci-host: add optional regulators
PCI: rcar-host: add support for optional regulators

.../devicetree/bindings/pci/rcar-pci-host.yaml | 11 +++++++++++
drivers/pci/controller/pcie-rcar-host.c | 16 +++++++++++++++-
2 files changed, 26 insertions(+), 1 deletion(-)

--
2.35.1


2023-11-05 09:29:34

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH v5 RESEND 2/2] PCI: rcar-host: add support for optional regulators

The KingFisher board has regulators for miniPCIe, so enable these
optional regulators using devm. devm will automatically disable them
when the driver releases the device. Order variables in reverse-xmas
while we are here.

Signed-off-by: Wolfram Sang <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Acked-by: Manivannan Sadhasivam <[email protected]>
---
drivers/pci/controller/pcie-rcar-host.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/pcie-rcar-host.c b/drivers/pci/controller/pcie-rcar-host.c
index 88975e40ee2f..7aecc114af4f 100644
--- a/drivers/pci/controller/pcie-rcar-host.c
+++ b/drivers/pci/controller/pcie-rcar-host.c
@@ -29,6 +29,7 @@
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
+#include <linux/regulator/consumer.h>

#include "pcie-rcar.h"

@@ -953,14 +954,20 @@ static const struct of_device_id rcar_pcie_of_match[] = {
{},
};

+/* Design note 346 from Linear Technology says order is not important */
+static const char * const rcar_pcie_supplies[] = {
+ "vpcie12v", "vpcie3v3", "vpcie1v5"
+};
+
static int rcar_pcie_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
+ struct pci_host_bridge *bridge;
struct rcar_pcie_host *host;
struct rcar_pcie *pcie;
+ unsigned int i;
u32 data;
int err;
- struct pci_host_bridge *bridge;

bridge = devm_pci_alloc_host_bridge(dev, sizeof(*host));
if (!bridge)
@@ -971,6 +978,13 @@ static int rcar_pcie_probe(struct platform_device *pdev)
pcie->dev = dev;
platform_set_drvdata(pdev, host);

+ for (i = 0; i < ARRAY_SIZE(rcar_pcie_supplies); i++) {
+ err = devm_regulator_get_enable_optional(dev, rcar_pcie_supplies[i]);
+ if (err < 0 && err != -ENODEV)
+ return dev_err_probe(dev, err, "can't enable regulator %s\n",
+ rcar_pcie_supplies[i]);
+ }
+
pm_runtime_enable(pcie->dev);
err = pm_runtime_get_sync(pcie->dev);
if (err < 0) {
--
2.35.1

2023-11-05 09:29:37

by Wolfram Sang

[permalink] [raw]
Subject: [PATCH v5 RESEND 1/2] dt-bindings: PCI: rcar-pci-host: add optional regulators

Support regulators found on the KingFisher board for miniPCIe (1.5 and
3.3v). For completeness, describe a 12v regulator while we are here.

Signed-off-by: Wolfram Sang <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Acked-by: Krzysztof Kozlowski <[email protected]>
---
.../devicetree/bindings/pci/rcar-pci-host.yaml | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/pci/rcar-pci-host.yaml b/Documentation/devicetree/bindings/pci/rcar-pci-host.yaml
index 8fdfbc763d70..b6a7cb32f61e 100644
--- a/Documentation/devicetree/bindings/pci/rcar-pci-host.yaml
+++ b/Documentation/devicetree/bindings/pci/rcar-pci-host.yaml
@@ -68,6 +68,15 @@ properties:
phy-names:
const: pcie

+ vpcie1v5-supply:
+ description: The 1.5v regulator to use for PCIe.
+
+ vpcie3v3-supply:
+ description: The 3.3v regulator to use for PCIe.
+
+ vpcie12v-supply:
+ description: The 12v regulator to use for PCIe.
+
required:
- compatible
- reg
@@ -121,5 +130,7 @@ examples:
clock-names = "pcie", "pcie_bus";
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
resets = <&cpg 319>;
+ vpcie3v3-supply = <&pcie_3v3>;
+ vpcie12v-supply = <&pcie_12v>;
};
};
--
2.35.1

2023-12-14 15:51:42

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v5 RESEND 0/2] PCI: rcar: support regulators for PCIe

On Sun, Nov 05, 2023 at 10:29:06AM +0100, Wolfram Sang wrote:
> Here are the patches to make PCIe cards work in slot CN15 on a Renesas
> KingFisher board. Please apply.
>
> Changes since v4:
> * rebased to 6.6
> * added ack from Mani (Thanks!)
>
> Wolfram Sang (2):
> dt-bindings: PCI: rcar-pci-host: add optional regulators
> PCI: rcar-host: add support for optional regulators
>
> .../devicetree/bindings/pci/rcar-pci-host.yaml | 11 +++++++++++
> drivers/pci/controller/pcie-rcar-host.c | 16 +++++++++++++++-
> 2 files changed, 26 insertions(+), 1 deletion(-)

Can we have this series in 6.8, pretty please?


Attachments:
(No filename) (650.00 B)
signature.asc (849.00 B)
Download all attachments

2023-12-14 19:17:04

by Krzysztof Wilczyński

[permalink] [raw]
Subject: Re: [PATCH v5 RESEND 0/2] PCI: rcar: support regulators for PCIe

Hello,

> Here are the patches to make PCIe cards work in slot CN15 on a Renesas
> KingFisher board. Please apply.

Applied to controller/rcar, thank you!

[01/02] dt-bindings: PCI: rcar-pci-host: Add optional regulators
https://git.kernel.org/pci/pci/c/b952f96a57e6
[02/02] PCI: rcar-host: Add support for optional regulators
https://git.kernel.org/pci/pci/c/6797e4da2dd1

Krzysztof

2023-12-14 19:19:14

by Krzysztof Wilczyński

[permalink] [raw]
Subject: Re: [PATCH v5 RESEND 0/2] PCI: rcar: support regulators for PCIe

Hello,

> > Here are the patches to make PCIe cards work in slot CN15 on a Renesas
> > KingFisher board. Please apply.
[...]
> Can we have this series in 6.8, pretty please?

Applied, so it should make it to 6.8. Apologies for the delay.

Krzysztof

2023-12-14 19:34:13

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v5 RESEND 0/2] PCI: rcar: support regulators for PCIe


> Applied, so it should make it to 6.8. Apologies for the delay.

Awesome, thank you!


Attachments:
(No filename) (94.00 B)
signature.asc (849.00 B)
Download all attachments