Edit online

数据结构设计

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];
};