You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.9 KiB

/*
* 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