kernel_samsung_a53x/drivers/soc/samsung/cpif/modem_ctrl.h

59 lines
1.5 KiB
C
Raw Normal View History

2024-06-15 16:02:09 -03:00
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2019 Samsung Electronics.
*
*/
#ifndef __MODEM_CTRL_H__
#define __MODEM_CTRL_H__
#define MIF_INIT_TIMEOUT (15 * HZ)
#if IS_ENABLED(CONFIG_SEC_MODEM_S5100)
struct msi_reg_type {
u32 msi_data;
u32 msi_check;
u32 err_report;
u32 reserved;
u32 boot_stage;
u32 img_addr_lo;
u32 img_addr_hi;
u32 img_size;
};
enum boot_stage_bit {
BOOT_STAGE_ROM_BIT,
BOOT_STAGE_PCI_LINKUP_START_BIT,
BOOT_STAGE_PCI_PHY_INIT_DONE_BIT,
BOOT_STAGE_PCI_DBI_DONE_BIT,
BOOT_STAGE_PCI_LTSSM_DISABLE_BIT,
BOOT_STAGE_PCI_LTSSM_ENABLE_BIT,
BOOT_STAGE_PCI_MSI_START_BIT,
BOOT_STAGE_PCI_WAIT_DOORBELL_BIT,
BOOT_STAGE_DOWNLOAD_PBL_BIT,
BOOT_STAGE_DOWNLOAD_PBL_DONE_BIT,
BOOT_STAGE_SECURITY_START_BIT,
BOOT_STAGE_CHECK_BL1_ID_BIT,
BOOT_STAGE_JUMP_BL1_BIT,
/* Not documented but the it is the last stage */
BOOT_STAGE_DONE_BIT,
};
/* Every bits of boot_stage_bit are filled */
#define BOOT_STAGE_DONE_MASK (BIT(BOOT_STAGE_DONE_BIT + 1) - 1)
#endif
void modem_ctrl_set_kerneltime(struct modem_ctl *mc);
int modem_ctrl_check_offset_data(struct modem_ctl *mc);
void change_modem_state(struct modem_ctl *mc, enum modem_state state);
#if IS_ENABLED(CONFIG_SEC_MODEM_S5100)
int s5100_force_crash_exit_ext(void);
int s5100_poweron_pcie(struct modem_ctl *mc, bool boot_on);
int s5100_try_gpio_cp_wakeup(struct modem_ctl *mc);
int s5100_set_outbound_atu(struct modem_ctl *mc, struct cp_btl *btl,
loff_t *pos, u32 map_size);
#endif
#endif /* __MODEM_CTRL_H__ */