linux/drivers/pci/pwrctrl
Krishna Chaitanya Chundru 4c9c7be473 PCI: pwrctrl: Add power control driver for TC9563
TC9563 is a PCIe switch that has one upstream and three downstream ports.
One of the downstream ports is connected to an integrated ethernet MAC
endpoint. The other two downstream ports are available to connect to
external devices. One Host can connect to TC9563 by upstream port. The
TC9563 switch needs to be configured after powering on and before the PCIe
link is up.

The PCIe controller driver already enables link training at the host side
even before this driver probe happens. Due to this, when driver enables
power to the switch, it participates in link training and the PCIe link may
come up before configuring the switch through I2C. Once the link is up the
configuration done through I2C will not have any effect. To prevent the
host from participating in link training, disable link training on the host
side to ensure the link does not come up before the switch is configured
via I2C.

Based on DT property and type of the port, TC9563 is configured through
I2C.

Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
[bhelgaas: squash fixes from
https://lore.kernel.org/r/20251120065116.13647-2-mani@kernel.org
https://lore.kernel.org/r/20251120065116.13647-3-mani@kernel.org]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20251101-tc9563-v9-6-de3429f7787a@oss.qualcomm.com
2025-11-24 15:30:52 -06:00
..
Kconfig PCI: pwrctrl: Add power control driver for TC9563 2025-11-24 15:30:52 -06:00
Makefile PCI: pwrctrl: Add power control driver for TC9563 2025-11-24 15:30:52 -06:00
core.c PCI/pwrctrl: Cancel outstanding rescan work when unregistering 2025-05-23 15:22:25 -05:00
pci-pwrctrl-pwrseq.c
pci-pwrctrl-tc9563.c PCI: pwrctrl: Add power control driver for TC9563 2025-11-24 15:30:52 -06:00
slot.c PCI/pwrctrl: Fix double cleanup on devm_add_action_or_reset() failure 2025-08-13 14:34:27 -05:00