diff options
| author | Tze Yee Ng <[email protected]> | 2026-05-04 19:36:03 -0700 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-05-12 11:42:41 -0600 |
| commit | b42c67188c1453a68de4464b07a21da660f811c6 (patch) | |
| tree | c4e9e14e56e28be0eb11c68a9ad1162ca76f5acd /include/fuzzing_engine.h | |
| parent | 5732bd0f457b4c671e46574d64d4acb099c0f0a5 (diff) | |
mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHY
The Cadence SD6HC (SDHCI spec v4.20+) controller uses a soft PHY whose
DLL delay characteristics vary with PVT (Process, Voltage, Temperature)
and board-level trace routing.
A static delay value programmed via device tree for SD High Speed mode is
insufficient because the optimal sampling point varies per board, SD card,
and operating conditions. Runtime calibration is required.
While the SD Physical Layer Specification does not mandate tuning for
SD HS mode (only for UHS-I SDR50/SDR104), the Cadence SD6HC PHY
requires runtime calibration of its receive data delay line to find a
valid sampling window under constrained clock conditions.
The tuning is triggered from the set_ios_post callback because at that
moment hardware has committed the new bus width, clock frequency, and speed
mode to the controller registers. This ensuring the tuning sequence runs
at the correct SD HS operating conditions.
The tuning is gated by a device tree property "cdns,sd-hs-tuning" so
that only boards requiring runtime calibration opt in. When enabled,
the driver performs a 40-tap DLL sweep using CMD19 to find the largest
consecutive passing window, then programs the midpoint into
PHY_DLL_SLAVE_CTRL_REG.
To enable on a board, add to the MMC node in device tree:
&mmc {
cdns,sd-hs-tuning;
};
Signed-off-by: Tze Yee Ng <[email protected]>
Diffstat (limited to 'include/fuzzing_engine.h')
0 files changed, 0 insertions, 0 deletions
