11.LED驱动程序设计(2)-LED驱动程序设计
来源:互联网 发布:excel恢复之前数据 编辑:程序博客网 时间:2024/05/21 09:38
#include <linux/module.h>
#include <linux/init.h>
#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/io.h>
#include <mach/gpio-bank-k.h>
#include "led.h"
#define LEDCON 0x7f008800
#define LEDDAT 0x7f008808
unsigned int *led_config;
unsigned int *led_data;
struct cdev cdev;
dev_t devno;
int led_open(struct inode *node, struct file *filp)
{
led_config = ioremap(LEDCON,4);
writel(0x11110000,led_config);
led_data = ioremap(LEDDAT,4);
return 0;
}
long led_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch (cmd)
{
case LED_ON:
writel(0x00,led_data);
return 0;
case LED_OFF:
writel(0xff,led_data);
return 0;
default:
return -EINVAL;
}
}
static struct file_operations led_fops =
{
.open = led_open,
.unlocked_ioctl = led_ioctl,
};
static int led_init()
{
cdev_init(&cdev,&led_fops);
alloc_chrdev_region(&devno, 0 , 1 , "myled");
cdev_add(&cdev, devno, 1);
return 0;
}
static void led_exit()
{
cdev_del(&cdev);
unregister_chrdev_region(devno,1);
}
module_init(led_init);
module_exit(led_exit);
#include <linux/init.h>
#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/io.h>
#include <mach/gpio-bank-k.h>
#include "led.h"
#define LEDCON 0x7f008800
#define LEDDAT 0x7f008808
unsigned int *led_config;
unsigned int *led_data;
struct cdev cdev;
dev_t devno;
int led_open(struct inode *node, struct file *filp)
{
led_config = ioremap(LEDCON,4);
writel(0x11110000,led_config);
led_data = ioremap(LEDDAT,4);
return 0;
}
long led_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
switch (cmd)
{
case LED_ON:
writel(0x00,led_data);
return 0;
case LED_OFF:
writel(0xff,led_data);
return 0;
default:
return -EINVAL;
}
}
static struct file_operations led_fops =
{
.open = led_open,
.unlocked_ioctl = led_ioctl,
};
static int led_init()
{
cdev_init(&cdev,&led_fops);
alloc_chrdev_region(&devno, 0 , 1 , "myled");
cdev_add(&cdev, devno, 1);
return 0;
}
static void led_exit()
{
cdev_del(&cdev);
unregister_chrdev_region(devno,1);
}
module_init(led_init);
module_exit(led_exit);
0 0
- 11.LED驱动程序设计(2)-LED驱动程序设计
- LED驱动程序设计
- Led驱动程序的设计
- led驱动程序设计
- LED驱动程序设计
- 3-11 LED驱动程序设计
- Tiny6410 ——LED 驱动程序设计
- 国嵌视频LED驱动程序设计
- ARM内核驱动—LED驱动程序设计
- 11.LED驱动程序设计(1)-字符设备控制
- Linux字符设备驱动程序开发(3)-LED驱动程序设计
- LED驱动程序
- LED驱动程序
- LED 驱动程序
- 《OK6410-LED驱动程序设计》之使用系统定义的宏
- s3c6410开发板LED驱动程序设计详细…
- S3C2440 LED驱动程序学习
- S3C2410 LED驱动程序
- 【翻译】 Unity3D VR 教程:4.VR中的用户界面
- Hibernate框架(二)缓存、事务、多表关系详解
- 基于Flexlive.CQP.Framework的C# 酷Q UDP实现
- "好的产品应该是用完即走"——您若认真,您就输了
- MySQL5.79 服务无法启动。服务没有报告任何错误 解决方案
- 11.LED驱动程序设计(2)-LED驱动程序设计
- 【leetcode】7. Reverse Integer
- 12.按键驱动程序设计(1)-混杂设备驱动模型
- JavaScript DOM编程艺术一个网页图片切换
- 12.按键驱动程序设计(2)-Linux中断处理
- 12.按键驱动程序设计(3)-按键驱动硬件操作实现
- 12.按键驱动程序设计(4)-中断分层
- 12.按键驱动程序设计(5)-按键定时器去抖
- 12.按键驱动程序设计(6)-驱动支持多按键优化