56 lines
1.9 KiB
C
Raw Permalink Normal View History

2025-04-10 17:31:33 +08:00
/****************************************************************************
*
* Copy right: 2024-, Copyrigths of EigenComm Ltd.
* File name: api_pad.h
* Description: ec7xx openhal pad entry header file
* History: Rev1.0 2024-01-22
*
****************************************************************************/
#ifndef _API_PAD_H_
#define _API_PAD_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "api_def.h"
#define EC_PAD_INDEX_START (11)
#define EC_PAD_INDEX_LIMIT (54)
typedef enum {
OPEN_PAD_IOCTL_FUNC = 0,
OPEN_PAD_IOCTL_PULLUP ,
OPEN_PAD_IOCTL_PULLDOWN ,
OPEN_PAD_IOCTL_PULLSELECT ,
} api_pad_ioctl_t;
//如果参数mux值为7表示该pad禁用
typedef struct
{
uint8_t mux : 3;
uint8_t pullUpEnable : 1;
uint8_t pullDownEnable : 1;
uint8_t pullSelect : 1;
uint8_t inputControl : 1;
uint8_t outputControl : 1;
} PadConfigLite_t;
//上电加载默认配置读存储区配置默认值返回初始化的PAD数量
int api_pad_startup(void* para);
uint32_t api_pad_default(char* str,PadConfigLite_t *cfg);
//申请pad端口并更新配置返回用户操作ID应用层区分
uint32_t api_pad_create(uint32_t paddr,void *config);
api_ret_t api_pad_delete(uint32_t usrId);
//申请等待pad资源
api_ret_t api_pad_open(uint32_t usrId,void *config,size_t timeout);
api_ret_t api_pad_apply(uint32_t usrId,void *cb);
api_ret_t api_pad_close(uint32_t usrId);
//配置接口
api_ret_t api_pad_ioctl(uint32_t usrId,api_pad_ioctl_t type, void *para);
api_ret_t api_pad_pmctl(uint32_t usrId,open_hal_pm_t *cfg, size_t count);
//查询接口,返回枚举量
api_ret_t api_pad_query(uint32_t usrId);
//测试接口
int api_test_pad(void);
#ifdef __cplusplus
}
#endif
#endif /* _API_PAD_H_ */