As the j722s and am62p resume sequence differs on the way they are detecting that the board is resuming, we should have a specific compatible for each one of them.
For that purpose, introduce ti,j722s-ddrss compatible. Signed-off-by: Richard Genoud (TI) <[email protected]> --- arch/arm/dts/k3-j722s-r5-evm.dts | 4 ++++ drivers/ram/k3-ddrss/k3-ddrss.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/arm/dts/k3-j722s-r5-evm.dts b/arch/arm/dts/k3-j722s-r5-evm.dts index e1ef5d181ed7..cc4a5910673b 100644 --- a/arch/arm/dts/k3-j722s-r5-evm.dts +++ b/arch/arm/dts/k3-j722s-r5-evm.dts @@ -11,6 +11,10 @@ #include "k3-am62a-ddr.dtsi" #include "k3-j722s-r5.dtsi" +&memorycontroller { + compatible = "ti,j722s-ddrss", "ti,am62a-ddrss"; +}; + /* WKUP UART0 is used for DM firmware logs */ &wkup_uart0 { status = "okay"; diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c index 7b2d2e0814b8..7b23123ab00d 100644 --- a/drivers/ram/k3-ddrss/k3-ddrss.c +++ b/drivers/ram/k3-ddrss/k3-ddrss.c @@ -1283,6 +1283,11 @@ static int k3_ddrss_get_info(struct udevice *dev, struct ram_info *info) return 0; } +__weak bool j7xx_board_is_resuming(void) +{ + return false; +} + static struct ram_ops k3_ddrss_ops = { .get_info = k3_ddrss_get_info, }; @@ -1301,11 +1306,18 @@ static const struct k3_ddrss_data j721s2_data = { .flags = MULTI_DDR_SUBSYSTEM, }; +static const struct k3_ddrss_data j722s_data = { + .flags = SINGLE_DDR_SUBSYSTEM, + .is_lpm_resume = j7xx_board_is_resuming, + .ddrss_deassert_retention = am62xx_ddrss_deassert_retention, +}; + static const struct udevice_id k3_ddrss_ids[] = { {.compatible = "ti,am62a-ddrss", .data = (ulong)&am62xx_data, }, {.compatible = "ti,am64-ddrss", .data = (ulong)&k3_data, }, {.compatible = "ti,j721e-ddrss", .data = (ulong)&k3_data, }, {.compatible = "ti,j721s2-ddrss", .data = (ulong)&j721s2_data, }, + {.compatible = "ti,j722s-ddrss", .data = (ulong)&j722s_data, }, {} }; -- 2.47.3

