接口设计
26 Nov 2024
Read time: 1 minute(s)
Driver 层接口设计
以下接口是 TSensor 设备驱动框架的标准接口。
函数原型 | 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 |
函数原型 | 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);