Skip to content

Commit 5e5a246

Browse files
FROMLIST: PCI: pwrctrl: Add power control driver for tc9563
TC9563 is a PCIe switch which has one upstream and three downstream ports. To one of the downstream ports ethernet MAC is connected as endpoint device. Other two downstream ports are supposed to connect to external device. One Host can connect to TC9563 by upstream port. TC9563 switch needs to be configured after powering on and before PCIe link was 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 the link training and 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 affect.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 up on dt property and type of the port, tc9563 is configured through i2c. Link: https://lore.kernel.org/lkml/[email protected]/ Signed-off-by: Krishna Chaitanya Chundru <[email protected]> Reviewed-by: Bjorn Andersson <[email protected]> Reviewed-by: Bartosz Golaszewski <[email protected]>
1 parent 2c9bc88 commit 5e5a246

File tree

3 files changed

+641
-0
lines changed

3 files changed

+641
-0
lines changed

drivers/pci/pwrctrl/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,13 @@ config HAVE_PWRCTL
3131
config PCI_PWRCTL_PWRSEQ
3232
tristate
3333
select PCI_PWRCTRL_PWRSEQ
34+
35+
config PCI_PWRCTRL_TC9563
36+
tristate "PCI Power Control driver for TC9563 PCIe switch"
37+
select PCI_PWRCTRL
38+
help
39+
Say Y here to enable the PCI Power Control driver of TC9563 PCIe
40+
switch.
41+
42+
This driver enables power and configures the TC9563 PCIe switch
43+
through i2c.

drivers/pci/pwrctrl/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ obj-$(CONFIG_PCI_PWRCTRL_PWRSEQ) += pci-pwrctrl-pwrseq.o
77

88
obj-$(CONFIG_PCI_PWRCTRL_SLOT) += pci-pwrctrl-slot.o
99
pci-pwrctrl-slot-y := slot.o
10+
11+
obj-$(CONFIG_PCI_PWRCTRL_TC9563) += pci-pwrctrl-tc9563.o

0 commit comments

Comments
 (0)