On 8/28/2026 7:27 PM, Richard Genoud (TI) wrote:
> From: Abhash Kumar Jha <[email protected]>
> 
> When resuming from IO_ONLY_PLUS_DDR low power mode, the IOs are
> isolated. Remove that isolation in resume sequence.
> 

What is IO_ONLY_PLUS_DDR ? Please give bit more context about this mode

> On j7200, The canuart IOs are isolated whereas on j784s4, the
> mcu_general IOs are isolated.
> 
> Signed-off-by: Abhash Kumar Jha <[email protected]>
> Co-developed-by: Richard Genoud (TI) <[email protected]>
> Signed-off-by: Richard Genoud (TI) <[email protected]>
> ---
>  .../arm/mach-k3/include/mach/j721e_hardware.h | 11 ++++++++
>  .../mach-k3/include/mach/j784s4_hardware.h    | 10 ++++++++
>  arch/arm/mach-k3/r5/lpm-common.c              | 15 +++++++++++
>  board/ti/j721e/evm.c                          | 25 +++++++++++++++++++
>  board/ti/j784s4/evm.c                         | 24 ++++++++++++++++++
>  5 files changed, 85 insertions(+)
> 
> diff --git a/arch/arm/mach-k3/include/mach/j721e_hardware.h 
> b/arch/arm/mach-k3/include/mach/j721e_hardware.h
> index 5bef309af0a4..e6e437af4ec0 100644
> --- a/arch/arm/mach-k3/include/mach/j721e_hardware.h
> +++ b/arch/arm/mach-k3/include/mach/j721e_hardware.h
> @@ -14,6 +14,17 @@
>  #define WKUP_CTRL_MMR0_BASE                          0x43000000
>  #define MCU_CTRL_MMR0_BASE                           0x40f00000
>  #define CTRL_MMR0_BASE                                       0x00100000
> +#define DMSC_PWRCTRL_BASE                            0x44130000
> +
> +#define PMCTRL_IO_1                                  (DMSC_PWRCTRL_BASE + 
> 0x88)
> +#define PMCTRL_IO_LPM                                        PMCTRL_IO_1

Alignment,look one extra tab
> +#define CANUART_WAKE_CTRL                            0x18300
> +#define CANUART_WAKE_STAT0                           0x18308
> +#define CANUART_WAKE_STAT1                           0x1830C
> +
> +#define IO_ISO_MAGIC_VAL                             0x55555554
> +#define CANUART_WAKE_STAT1_CANUART_IO_MODE           BIT(0)
> [..]
>  
> +__weak void clear_isolation(void) { }
> +
>  /* This is used by J722s */
>  __weak void ctrl_mmr_unlock(void) { }

ctrl_mmr_unlock() is available at all stage, why we need weak here

>  
> @@ -72,11 +76,22 @@ void k3_deassert_ddr_ret(const char *pmic_name, unsigned 
> int ddr_ret_val,
>  bool j7xx_board_is_resuming(void)
>  {
>       struct udevice *pmic, *i2c;
> [..]> +       if (ret < 0)
> +             pr_err("Deisolation timeout");

this is panic state, if de-isolation failed ?

> +}
> +
> +#endif /* CONFIG_SPL_BUILD && CONFIG_TARGET_J7200_R5_EVM */
> +
> [..]> +       if (ret < 0)
> +             pr_err("Deisolation timeout");

same here

> +}
> +#endif /* CONFIG_SPL_BUILD && CONFIG_TARGET_J784s4_R5_EVM */
> +
>  void spl_board_init(void)
>  {
>       struct udevice *dev;

Reply via email to