Edit online

接口设计

26 Nov 2024
Read time: 1 minute(s)

Driver 层接口设计

以下接口是 TSensor 设备驱动框架的标准接口。

1. aic_tsen_fetch
函数原型 rt_size_t aic_tsen_fetch(struct rt_sensor_device *sensor, void *buf, rt_size_t len)
功能说明 读取 TSensor 温度数据
参数定义
sensor - 指向 sensor 设备
buf - 用来保存读取到的温度,是 struct rt_sensor_data 类型的数据结构
len - buf 的长度
返回值 1,成功; <0,失败
注意事项 目前仅支持读取 CPU 位置处的 TSensor
2. aic_tsen_control
函数原型 rt_err_t aic_tsen_control(struct rt_sensor_device *sensor, int cmd, void *args)
功能说明 TSensor 驱动的 ioctl 接口
参数定义
sensor - 指向 sensor 设备
cmd - ioctl 命令码
args - ioctl 命令相应的参数
返回值 -1,失败
注意事项 目前暂未实现此接口中的 ioctl 命令,所以统一返回 -1。 不影响正常读数据功能

HAL 层接口设计

HAL 层的函数接口声明存放在 hal_tsen.h 中,主要接口有:
void hal_tsen_enable(int enable);
void hal_tsen_ch_enable(u32 ch, int enable);
int hal_tsen_ch_init(struct aic_tsen_ch *chan, u32 pclk);

int hal_tsen_get_temp(struct aic_tsen_ch *chan, s32 *val);
s32 hal_tsen_data2temp(struct aic_tsen_ch *chan);
u16 hal_tsen_temp2data(struct aic_tsen_ch *chan, s32 temp);
void hal_tsen_status_show(struct aic_tsen_ch *chan);

irqreturn_t hal_tsen_irq_handle(int irq, void *arg);