Edit online

接口设计

3 Mar 2025
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);