2023年12月11日发(作者:东香菱)
linux adc驱动(基于三星通用adc api)
linux adc驱动(基于三星通用adc api)
硬件平台: 基于讯为开发板itop4412 scp 1G
驱动说明:
本驱动基于三星提供的通用api函数来实现的,具体adc寄存器操作有三星公司实 现,我们要做的是调用三星公司提供的api来实现我们自己的功能。下面对相关的结构体和api函数进行解析
[cpp] view plain copy
struct s3c_adc_client {
struct platform_device *pdev;
struct list_head pend;
wait_queue_head_t *wait;
unsigned int nr_samples;
int result;
unsigned char is_ts;
unsigned char channel;
void (*select_cb)(struct s3c_adc_client *c, unsigned selected);
void (*convert_cb)(struct s3c_adc_client *c,
unsigned val1, unsigned val2,
unsigned *samples_left);
};
一个具体s3c_adc_client结构体来描述一个具体的客户(一个具体的驱动)
2.我们需要在驱动中构建这个驱动,并且注册到linux的内核
[cpp] view plain copy
struct s3c_adc_client *s3c_adc_register(struct platform_device *pdev,
void (*select)(struct s3c_adc_client *client,
unsigned int selected),
void (*conv)(struct s3c_adc_client *client,
unsigned d0, unsigned d1,
unsigned *samples_left),
2023年12月11日发(作者:东香菱)
linux adc驱动(基于三星通用adc api)
linux adc驱动(基于三星通用adc api)
硬件平台: 基于讯为开发板itop4412 scp 1G
驱动说明:
本驱动基于三星提供的通用api函数来实现的,具体adc寄存器操作有三星公司实 现,我们要做的是调用三星公司提供的api来实现我们自己的功能。下面对相关的结构体和api函数进行解析
[cpp] view plain copy
struct s3c_adc_client {
struct platform_device *pdev;
struct list_head pend;
wait_queue_head_t *wait;
unsigned int nr_samples;
int result;
unsigned char is_ts;
unsigned char channel;
void (*select_cb)(struct s3c_adc_client *c, unsigned selected);
void (*convert_cb)(struct s3c_adc_client *c,
unsigned val1, unsigned val2,
unsigned *samples_left);
};
一个具体s3c_adc_client结构体来描述一个具体的客户(一个具体的驱动)
2.我们需要在驱动中构建这个驱动,并且注册到linux的内核
[cpp] view plain copy
struct s3c_adc_client *s3c_adc_register(struct platform_device *pdev,
void (*select)(struct s3c_adc_client *client,
unsigned int selected),
void (*conv)(struct s3c_adc_client *client,
unsigned d0, unsigned d1,
unsigned *samples_left),