summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2026-04-13 20:50:04 +0300
committerBjorn Helgaas <bhelgaas@google.com>2026-04-13 20:50:04 +0300
commit85d9948d59efad0833139f11c3e07fa25c688b12 (patch)
tree34038a0b0f91db98839bce6627bf4ce34cca1c3a
parent7d7c6ebd46d952335ff33e21f77fdd761ac2b573 (diff)
parentbd3622e5b8e0650669332d9e10244a704560cbfe (diff)
downloadlinux-85d9948d59efad0833139f11c3e07fa25c688b12.tar.xz
Merge branch 'pci/pwrctrl'
- Rename 'slot' driver to 'generic' since it can handle any device with individual power control as well as slots (Neil Armstrong) - Add UPD720201/UPD720202 USB 3.0 xHCI Host Controller .compatible so generic pwrctrl driver can control it (Neil Armstrong) * pci/pwrctrl: PCI/pwrctrl: generic: Add UPD720201/UPD720202 USB 3.0 xHCI Host Controller support PCI/pwrctrl: generic: Simplify dev_err_probe() usage PCI/pwrctrl: generic: Rename pci-pwrctrl-slot as generic
-rw-r--r--drivers/pci/controller/dwc/Kconfig4
-rw-r--r--drivers/pci/pwrctrl/Kconfig13
-rw-r--r--drivers/pci/pwrctrl/Makefile4
-rw-r--r--drivers/pci/pwrctrl/generic.c (renamed from drivers/pci/pwrctrl/slot.c)13
4 files changed, 18 insertions, 16 deletions
diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
index d0aa031397fa..4bd36e133ca6 100644
--- a/drivers/pci/controller/dwc/Kconfig
+++ b/drivers/pci/controller/dwc/Kconfig
@@ -309,7 +309,7 @@ config PCIE_QCOM
select CRC8
select PCIE_QCOM_COMMON
select PCI_HOST_COMMON
- select PCI_PWRCTRL_SLOT
+ select PCI_PWRCTRL_GENERIC
help
Say Y here to enable PCIe controller support on Qualcomm SoCs. The
PCIe controller uses the DesignWare core plus Qualcomm-specific
@@ -431,7 +431,7 @@ config PCIE_SPACEMIT_K1
depends on ARCH_SPACEMIT || COMPILE_TEST
depends on HAS_IOMEM
select PCIE_DW_HOST
- select PCI_PWRCTRL_SLOT
+ select PCI_PWRCTRL_GENERIC
default ARCH_SPACEMIT
help
Enables support for the DesignWare based PCIe controller in
diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
index cd3aa15bad00..9eec767cda86 100644
--- a/drivers/pci/pwrctrl/Kconfig
+++ b/drivers/pci/pwrctrl/Kconfig
@@ -11,17 +11,18 @@ config PCI_PWRCTRL_PWRSEQ
select POWER_SEQUENCING
select PCI_PWRCTRL
-config PCI_PWRCTRL_SLOT
- tristate "PCI Power Control driver for PCI slots"
+config PCI_PWRCTRL_GENERIC
+ tristate "Generic PCI Power Control driver for PCI slots and endpoints"
select POWER_SEQUENCING
select PCI_PWRCTRL
help
- Say Y here to enable the PCI Power Control driver to control the power
- state of PCI slots.
+ Say Y here to enable the generic PCI Power Control driver to control
+ the power state of PCI slots and endpoints.
This is a generic driver that controls the power state of different
- 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.
+ PCI slots and endpoints. The voltage regulators powering the rails
+ of the PCI slots or endpoints are expected to be defined in the
+ devicetree node of the PCI bridge or endpoint.
config PCI_PWRCTRL_TC9563
tristate "PCI Power Control driver for TC9563 PCIe switch"
diff --git a/drivers/pci/pwrctrl/Makefile b/drivers/pci/pwrctrl/Makefile
index 13b02282106c..f6bb4fb9a410 100644
--- a/drivers/pci/pwrctrl/Makefile
+++ b/drivers/pci/pwrctrl/Makefile
@@ -5,7 +5,7 @@ pci-pwrctrl-core-y := core.o
obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
-obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
-pci-pwrctrl-slot-y := slot.o
+obj-$(CONFIG_PCI_PWRCTRL_GENERIC) += pci-pwrctrl-generic.o
+pci-pwrctrl-generic-y := generic.o
obj-$(CONFIG_PCI_PWRCTRL_TC9563) += pci-pwrctrl-tc9563.o
diff --git a/drivers/pci/pwrctrl/slot.c b/drivers/pci/pwrctrl/generic.c
index 082af81efe25..fcedd435f723 100644
--- a/drivers/pci/pwrctrl/slot.c
+++ b/drivers/pci/pwrctrl/generic.c
@@ -88,18 +88,15 @@ static int slot_pwrctrl_probe(struct platform_device *pdev)
ret = of_regulator_bulk_get_all(dev, dev_of_node(dev),
&slot->supplies);
- if (ret < 0) {
- dev_err_probe(dev, ret, "Failed to get slot regulators\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Failed to get slot regulators\n");
slot->num_supplies = ret;
slot->clk = devm_clk_get_optional(dev, NULL);
- if (IS_ERR(slot->clk)) {
+ if (IS_ERR(slot->clk))
return dev_err_probe(dev, PTR_ERR(slot->clk),
"Failed to enable slot clock\n");
- }
skip_resources:
slot->pwrctrl.power_on = slot_pwrctrl_power_on;
@@ -122,6 +119,10 @@ static const struct of_device_id slot_pwrctrl_of_match[] = {
{
.compatible = "pciclass,0604",
},
+ /* Renesas UPD720201/UPD720202 USB 3.0 xHCI Host Controller */
+ {
+ .compatible = "pci1912,0014",
+ },
{ }
};
MODULE_DEVICE_TABLE(of, slot_pwrctrl_of_match);