mirror of
https://xff.cz/git/u-boot/
synced 2025-11-01 10:56:02 +01:00
stm32mp1: ram: remove the support of calibration result
The support of a predefined DDR PHY tuning result is removed for STM32MP1 driver because it is not needed at the supported frequency when built-in calibration is executed. The calibration parameters were provided in the device tree by the optional node "st,phy-cal", activated in ddr helper file by the compilation flag DDR_PHY_CAL_SKIP and filled with values generated by the CubeMX DDR utilities. This patch - updates the binding file to remove "st,phy-cal" support - updates the device trees and remove the associated defines - simplifies the STM32MP1 DDR driver and remove the support of the optional parameter "st,phy-cal" After this patch, the built-in calibration is always executed and the calibration registers are moved in the phy dynamic part; that allows manual tests. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
committed by
Patrice Chotard
parent
4831ba2903
commit
9819fe345c
@@ -95,26 +95,22 @@ static __maybe_unused int stm32mp1_ddr_setup(struct udevice *dev)
|
||||
{ .name = x, \
|
||||
.offset = offsetof(struct stm32mp1_ddr_config, y), \
|
||||
.size = sizeof(config.y) / sizeof(u32), \
|
||||
.present = z, \
|
||||
}
|
||||
|
||||
#define CTL_PARAM(x) PARAM("st,ctl-"#x, c_##x, NULL)
|
||||
#define PHY_PARAM(x) PARAM("st,phy-"#x, p_##x, NULL)
|
||||
#define PHY_PARAM_OPT(x) PARAM("st,phy-"#x, p_##x, &config.p_##x##_present)
|
||||
|
||||
const struct {
|
||||
const char *name; /* name in DT */
|
||||
const u32 offset; /* offset in config struct */
|
||||
const u32 size; /* size of parameters */
|
||||
bool * const present; /* presence indication for opt */
|
||||
} param[] = {
|
||||
CTL_PARAM(reg),
|
||||
CTL_PARAM(timing),
|
||||
CTL_PARAM(map),
|
||||
CTL_PARAM(perf),
|
||||
PHY_PARAM(reg),
|
||||
PHY_PARAM(timing),
|
||||
PHY_PARAM_OPT(cal)
|
||||
PHY_PARAM(timing)
|
||||
};
|
||||
|
||||
config.info.speed = ofnode_read_u32_default(node, "st,mem-speed", 0);
|
||||
@@ -133,25 +129,11 @@ static __maybe_unused int stm32mp1_ddr_setup(struct udevice *dev)
|
||||
param[idx].size);
|
||||
dev_dbg(dev, "%s: %s[0x%x] = %d\n", __func__,
|
||||
param[idx].name, param[idx].size, ret);
|
||||
if (ret &&
|
||||
(ret != -FDT_ERR_NOTFOUND || !param[idx].present)) {
|
||||
if (ret) {
|
||||
dev_err(dev, "Cannot read %s, error=%d\n",
|
||||
param[idx].name, ret);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (param[idx].present) {
|
||||
/* save presence of optional parameters */
|
||||
*param[idx].present = true;
|
||||
if (ret == -FDT_ERR_NOTFOUND) {
|
||||
*param[idx].present = false;
|
||||
#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE
|
||||
/* reset values if used later */
|
||||
memset((void *)((u32)&config +
|
||||
param[idx].offset),
|
||||
0, param[idx].size * sizeof(u32));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ret = clk_get_by_name(dev, "axidcg", &axidcg);
|
||||
|
||||
Reference in New Issue
Block a user