Commit 1bb63cb
committed
PCI: pcie-brcmstb: optionally extend Tperst_clk time
Some endpoints need longer than the minimum Tperst_clk time of 100us
that the PCIe specification allows for, as they may need to sequence
internal resets off the stable output of internal PLLs prior to removal
of fundamental reset. PCIe switches are an especially bad case, in some
cases requiring up to 100 milliseconds for stable downstream link
behaviour.
Parse the DT property brcm,tperst-clk-ms and use this to hold PERST# low
during brcm_pcie_start_link().
The BRCM RC typically outputs 200us of stable refclk before deasserting
PERST#. By masking/forcing the output signal while deasserting the
internal reset, the effect is to extend the length of time that the
refclk is active and stable before PERST# is released.
The TX lanes will enter the Polling state before PERST# is released, but
this appears to be harmless.
Signed-off-by: Jonathan Bell <[email protected]>1 parent bcbcae4 commit 1bb63cb
1 file changed
+24
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| 137 | + | |
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
| |||
360 | 361 | | |
361 | 362 | | |
362 | 363 | | |
| 364 | + | |
363 | 365 | | |
364 | 366 | | |
365 | 367 | | |
| |||
1475 | 1477 | | |
1476 | 1478 | | |
1477 | 1479 | | |
| 1480 | + | |
1478 | 1481 | | |
1479 | 1482 | | |
1480 | 1483 | | |
1481 | 1484 | | |
1482 | 1485 | | |
1483 | 1486 | | |
1484 | | - | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
1485 | 1506 | | |
1486 | 1507 | | |
1487 | 1508 | | |
| |||
2046 | 2067 | | |
2047 | 2068 | | |
2048 | 2069 | | |
| 2070 | + | |
| 2071 | + | |
2049 | 2072 | | |
2050 | 2073 | | |
2051 | 2074 | | |
| |||
0 commit comments