共3条
1/1 1 跳转至页
帮忙看看这个ADC的驱动
这个驱动怎么没有file_operations,没有open操作?初始化的时候也没有注册设备? 编译以及insmod都没问题。我的板子是s3c2410,系统是mizi的armlinux。
应用程序怎么用这个驱动啊?
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/irq.h>
#include <linux/delay.h>
#include <asm/hardware.h>
#include <asm/semaphore.h>
#undef DEBUG
#ifdef DEBUG
#define DPRINTK(x...) {printk(__FUNCTION__"(%d): ",__LINE__);printk(##x);}
#else
#define DPRINTK(x...) (void)(0)
#endif
#define START_ADC_AIN(x) \
{ \
ADCCON = PRESCALE_EN | PRSCVL(255) | ADC_INPUT((x)) ; \
ADCCON |= ADC_START; \
}
static struct semaphore adc_lock;
static wait_queue_head_t *adc_wait;
static void adcdone_int_handler(int irq, void *dev_id, struct pt_regs *reg)
{
wake_up(adc_wait);
}
int s3c2410_adc_read(int ain, wait_queue_head_t *wait)
{
int ret = 0;
if (down_interruptible(&adc_lock))
return -ERESTARTSYS;
adc_wait = wait;
START_ADC_AIN(ain);
sleep_on_timeout(adc_wait, HZ/100); /* 10ms */
#if 0
if (signal_pending(current)) {
up(&adc_lock);
return -ERESTARTSYS;
}
#endif
ret = ADCDAT0 ;
up(&adc_lock);
adc_wait = NULL;
DPRINTK("AIN[%d] = 0x%04x, %d\n", ain, ret, ADCCON & 0x80 ? 1:0);
return (ret & 0x3ff);
}
int __init s3c2410_adc_init(void)
{
init_MUTEX(&adc_lock);
/* normal ADC */
ADCTSC = 0; //XP_PST(NOP_MODE);
if (request_irq(IRQ_ADC_DONE, adcdone_int_handler, SA_INTERRUPT,
"ADC", NULL) < 0)
goto irq_err;
return 0;
irq_err:
return 1;
}
module_init(s3c2410_adc_init);
#ifdef MODULE
void __exit s3c2410_adc_exit(void)
{
free_irq(IRQ_ADC_DONE, NULL);
}
module_exit(s3c2410_adc_exit);
MODULE_LICENSE("GPL");
#endif
关键词: 帮忙 看看 这个 驱动
共3条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
我要赚赏金
