/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2014-2021. All rights reserved. * Description: ci drv func decl. * Author: Hisilicon * Create: 2014-08-02 */ #ifndef __DRV_CI_H__ #define __DRV_CI_H__ #include "td_type.h" #include "soc_errno.h" #include "drv_ioctl_ci.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif #undef LOG_MODULE_ID #define LOG_MODULE_ID SOC_ID_CI #define LOG_D_FUNCTRACE 0 #define LOG_D_UNFTRACE 0 #define MAX_CIS_SIZE 512 /* CI driver configure structure */ typedef struct ext_ci_pccd_debuginfo { ext_ci_pccd_status status; ext_ci_pccd_ready ready; td_bool by_pass; td_u16 buffer_size; td_bool is_ciplus; ext_ci_attr attr; td_u32 io_cnt; } ci_pccd_debuginfo, *ci_pccd_debuginfo_ptr; td_void drv_ci_init_mutex(td_void); td_void drv_ci_de_init_mutex(td_void); td_s32 drv_ci_init(td_void); td_void drv_ci_de_init(td_void); td_s32 drv_ci_open(ext_ci_port port); td_s32 drv_ci_close(ext_ci_port port); td_s32 drv_ci_standby(ext_ci_port port); td_s32 drv_ci_resume(ext_ci_port port); td_s32 drv_ci_pccd_open(ext_ci_port port, ext_ci_pccd card); td_void drv_ci_pccd_close(ext_ci_port port, ext_ci_pccd card); td_s32 drv_ci_pccd_ctrl_power(ext_ci_port port, ext_ci_pccd card, ext_ci_pccd_ctrl_power ctrl_power); td_s32 drv_ci_pccd_reset(ext_ci_port port, ext_ci_pccd card); td_s32 drv_ci_pccd_is_ready(ext_ci_port port, ext_ci_pccd card, ext_ci_pccd_ready* ready); td_s32 drv_ci_pccd_detect(ext_ci_port port, ext_ci_pccd card, ext_ci_pccd_status* status); td_s32 drv_ci_pccd_get_status(ext_ci_port port, ext_ci_pccd card, td_u8 *value); td_s32 drv_ci_pccd_io_read(ext_ci_port port, ext_ci_pccd card, td_u8 *buffer, td_u32 buffer_len, td_u32 *read_len); td_s32 drv_ci_pccd_io_write(ext_ci_port port, ext_ci_pccd card, const td_u8 *buffer, td_u32 write_len, td_u32 *write_ok_len); td_s32 drv_ci_pccd_check_cis(ext_ci_port port, ext_ci_pccd card); td_s32 drv_ci_pccd_write_cor(ext_ci_port port, ext_ci_pccd card); td_s32 drv_ci_pccd_io_reset(ext_ci_port port, ext_ci_pccd card); td_s32 drv_ci_pccd_neg_buffer_size(ext_ci_port port, ext_ci_pccd card, td_u16 *buffer_size); td_s32 drv_ci_pccd_ts_ctrl(ext_ci_port port, ext_ci_pccd card, ext_ci_pccd_tsctrl cmd, const ext_ci_pccd_tsctrl_param *param); td_s32 drv_ci_pccd_get_debug_info(ext_ci_port port, ext_ci_pccd card, ci_pccd_debuginfo_ptr debug_info); td_s32 drv_ci_pccd_dbg_io_print_ctrl(ext_ci_port port, ext_ci_pccd card, td_bool print); td_s32 drv_ci_pccd_write_cor_ex(ext_ci_port port, ext_ci_pccd card, td_u16 addr, td_u8 u8_data); td_s32 drv_ci_pccd_get_cis(ext_ci_port port, ext_ci_pccd card, td_u8 *cis, td_u32 cis_len, td_u32 *ci_len); td_s32 drv_ci_set_attr(ext_ci_port port, ext_ci_attr ci_attr); td_s32 drv_ci_get_attr(ext_ci_port port, ext_ci_attr *ci_attr); #ifdef __cplusplus #if __cplusplus } #endif #endif #endif