diff options
| author | Loic Poulain <loic.poulain@oss.qualcomm.com> | 2026-09-29 14:25:46 +0200 |
|---|---|---|
| committer | Andi Shyti <andi.shyti@kernel.org> | 2026-10-04 16:32:34 +0200 |
| commit | e2ac856c74518976c76b8736363c64a84ebbd155 (patch) | |
| tree | ba89938a7b8bbc10c76ac6c2081b5f522f452d7a /tools/lib/python | |
| parent | d07c7775ca17c4123164806d6210f22dd62cef4f (diff) | |
| download | linux-next-e2ac856c74518976c76b8736363c64a84ebbd155.tar.gz linux-next-e2ac856c74518976c76b8736363c64a84ebbd155.zip | |
i2c: qcom-cci: Support per-mode CCI clock rates
The CCI hw_params timing values (thigh, tlow, etc.) are expressed in
clock ticks and are only valid at the specific CCI clock rate they were
calibrated for. Different I2C modes may be calibrated for different
rates, and the single CCI clock is shared by all masters.
Turn the timing table into a two-dimensional [rate][mode] matrix so a
given rate can carry timing sets for each mode, and select the entry
matching the currently running clock rate at init time. The existing
per-variant values are moved under their calibrated rate (19.2 MHz for
v1/v1.5, 37.5 MHz for v2), no timing values are changed.
At this stage the driver only validates the running rate against the
table, the timings are only valid at the exact rate they were calibrated
for, so if the current rate has no matching entry for a master's mode,
fail initialization rather than program incorrect timings. A following
patch actively enforces the required rate so this becomes a safety net.
Suggested-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://patch.msgid.link/20260929-cci-clk-fix-v6-2-62a268cccb0f@oss.qualcomm.com
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
