mini2440Led驱动——linux-3.10.59
2014-12-26 10:01
555 查看
mini2440的led驱动,linux3.10.59
/* linux/drivers/char/mini2440_leds.c * Copyright (c) 2013 Feng Guoqing * * mini2440 LEDs Driver * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive for * more details. * */ #include <linux/miscdevice.h> #include <linux/delay.h> #include <asm/irq.h> #include <mach/regs-gpio.h> #include <mach/hardware.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/mm.h> #include <linux/fs.h> #include <linux/types.h> #include <linux/delay.h> #include <linux/moduleparam.h> #include <linux/slab.h> #include <linux/errno.h> #include <linux/ioctl.h> #include <linux/cdev.h> #include <linux/string.h> #include <linux/list.h> #include <linux/pci.h> #include <linux/gpio.h> #include <asm/uaccess.h> #include <asm/atomic.h> #include <asm/unistd.h> #define DEVICE_NAME "leds" static unsigned long led_table [] = { S3C2410_GPB(5), S3C2410_GPB(6), S3C2410_GPB(7), S3C2410_GPB(8), }; static unsigned int led_cfg_table [] = { S3C2410_GPIO_OUTPUT, S3C2410_GPIO_OUTPUT, S3C2410_GPIO_OUTPUT, S3C2410_GPIO_OUTPUT, }; static int sbc2440_leds_ioctl( struct file *file, unsigned int cmd, unsigned long arg) { switch(cmd) { case 0: case 1: if (arg > 4) { return -EINVAL; } gpio_set_value(led_table[arg], !cmd); return 0; default: return -EINVAL; } } static struct file_operations dev_fops = { .owner = THIS_MODULE, .unlocked_ioctl = sbc2440_leds_ioctl, }; static struct miscdevice misc = { .minor = MISC_DYNAMIC_MINOR, .name = DEVICE_NAME, .fops = &dev_fops, }; static int __init dev_init(void) { int ret; int i; for (i = 0; i < 4; i++) { s3c_gpio_cfgpin(led_table[i], led_cfg_table[i]); gpio_set_value(led_table[i], 0); } ret = misc_register(&misc); printk (DEVICE_NAME"\tinitialized\n"); return ret; } static void __exit dev_exit(void) { misc_deregister(&misc); } module_init(dev_init); module_exit(dev_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("FriendlyARM Inc.");
相关文章推荐
- mini2440 touchscreen驱动--linux-3.10.59
- Linux-2.6.32.2内核在mini2440上的移植(十五)---移植LED驱动
- Linux2.6.32驱动笔记(4)ioctl方法解析及mini2440-led驱动实现
- Linux-4.9.2内核在mini2440上的移植(十二)——LED驱动移植
- mini2440 pmw驱动-linux3.10.59
- mini2440在linux-2.6.34.2中添加LED驱动,并编写应用程序验证
- mini2440 adc驱动--linux-3.10.59
- 基于linux的mini2440 led驱动及应用程序
- Linux-2.6.32.2内核在mini2440上的移植(十五)---移植LED驱动
- mini2440 buttons的驱动-linux3.10.59
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(十五)---移植LED驱动
- mini2440 backlight驱动--linux-3.10.59
- Linux嵌入式驱动初体验(六)--- LED驱动测试程序
- s3c2440基于linux的gpio led字符设备驱动
- Linux嵌入式驱动初体验(七)--- LED驱动之字符设备篇
- mini2440驱动学习第二课————LED
- ARM+Linux驱动----点亮开发板的LED
- MINI2440的led应用程序及驱动设计
- 【转】嵌入式Linux之我行——LED驱动在2440上的实例开发
- s3c2440基于linux的gpio led字符设备驱动实践 [转]