数据结构设计
struct aic_rtp_dev
属于 HAL
层接口,管理 RTP 控制器的设备资源。
struct aic_rtp_dev { struct platform_device *pdev; struct attribute_group attrs; struct clk *clk; struct reset_control *rst; struct device *dev; struct input_dev *idev; void __iomem *regs; u32 irq; u32 pclk_rate; bool two_points; bool pressure_det; bool ignore_fifo_data; enum aic_rtp_mode mode; u32 max_press; u32 smp_period; u32 x_plate; u32 y_plate; u32 fuzz; struct workqueue_struct *workq; struct work_struct event_work; u32 intr; u32 fcr; struct aic_rtp_dat latest; enum aic_rtp_manual_mode_status mms; };
struct aic_rtp_ebuf
属于 HAL
层接口,用于缓存给应用层上报的坐标 event。
struct aic_rtp_event { u16 x; u16 y; u16 pressure; u16 down; }; struct aic_rtp_ebuf { u16 rd_pos; u16 wr_pos; struct aic_rtp_event event[AIC_RTP_EVT_BUF_SIZE]; };