141d9d44dSDave Gerlach /* SPDX-License-Identifier: GPL-2.0 */ 241d9d44dSDave Gerlach /* 341d9d44dSDave Gerlach * TI pm33xx platform data 441d9d44dSDave Gerlach * 541d9d44dSDave Gerlach * Copyright (C) 2016-2018 Texas Instruments, Inc. 641d9d44dSDave Gerlach * Dave Gerlach <d-gerlach@ti.com> 741d9d44dSDave Gerlach */ 841d9d44dSDave Gerlach 941d9d44dSDave Gerlach #ifndef _LINUX_PLATFORM_DATA_PM33XX_H 1041d9d44dSDave Gerlach #define _LINUX_PLATFORM_DATA_PM33XX_H 1141d9d44dSDave Gerlach 1241d9d44dSDave Gerlach #include <linux/kbuild.h> 1341d9d44dSDave Gerlach #include <linux/types.h> 1441d9d44dSDave Gerlach 1541d9d44dSDave Gerlach #ifndef __ASSEMBLER__ 1641d9d44dSDave Gerlach struct am33xx_pm_sram_addr { 1741d9d44dSDave Gerlach void (*do_wfi)(void); 1841d9d44dSDave Gerlach unsigned long *do_wfi_sz; 1941d9d44dSDave Gerlach unsigned long *resume_offset; 2041d9d44dSDave Gerlach unsigned long *emif_sram_table; 2141d9d44dSDave Gerlach unsigned long *ro_sram_data; 2241d9d44dSDave Gerlach }; 2341d9d44dSDave Gerlach 2441d9d44dSDave Gerlach struct am33xx_pm_platform_data { 2541d9d44dSDave Gerlach int (*init)(void); 2641d9d44dSDave Gerlach int (*soc_suspend)(unsigned int state, int (*fn)(unsigned long)); 2741d9d44dSDave Gerlach struct am33xx_pm_sram_addr *(*get_sram_addrs)(void); 2841d9d44dSDave Gerlach }; 2941d9d44dSDave Gerlach 3041d9d44dSDave Gerlach struct am33xx_pm_sram_data { 3141d9d44dSDave Gerlach u32 wfi_flags; 3241d9d44dSDave Gerlach u32 l2_aux_ctrl_val; 3341d9d44dSDave Gerlach u32 l2_prefetch_ctrl_val; 3441d9d44dSDave Gerlach } __packed __aligned(8); 3541d9d44dSDave Gerlach 3641d9d44dSDave Gerlach struct am33xx_pm_ro_sram_data { 3741d9d44dSDave Gerlach u32 amx3_pm_sram_data_virt; 3841d9d44dSDave Gerlach u32 amx3_pm_sram_data_phys; 3941d9d44dSDave Gerlach } __packed __aligned(8); 4041d9d44dSDave Gerlach 4141d9d44dSDave Gerlach #endif /* __ASSEMBLER__ */ 4241d9d44dSDave Gerlach #endif /* _LINUX_PLATFORM_DATA_PM33XX_H */ 43