资源简介

代码片段和文件信息
/* gpio_drv.c */
#include
#include
#include
#include
#include /* printk() */
#include /* kmalloc() */
#include /* everything... */
#include /* error codes */
#include /* size_t */
#include
#include
#include
#include
#include
#include
#include
#include
#include “gpio_drv.h“
static int major = 0;
module_param(major int 0);
void s3c2410_gpio_cfgpin(unsigned int pin unsigned int function)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long shift = 1;
unsigned long mask = 0x03;
unsigned long con;
unsigned long flags;
if (pin < S3C2410_GPIO_BANKB)
{
shift = 0;
mask = 0x01;
}
mask <<= (S3C2410_GPIO_OFFSET(pin) << shift);
local_irq_save(flags);
con = __raw_readl(base + 0x00);
con &= ~mask;
con |= function;
__raw_writel(con base + 0x00);
local_irq_restore(flags);
}
void s3c2410_gpio_pullup(unsigned int pin unsigned int to)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long offs = S3C2410_GPIO_OFFSET(pin);
unsigned long flags;
unsigned long up;
if (pin < S3C2410_GPIO_BANKB)
{
return;
}
local_irq_save(flags);
up = __raw_readl(base + 0x08);
up &= ~(1 << offs);
up |= to << offs;
__raw_writel(up base + 0x08);
local_irq_restore(flags);
}
void s3c2410_gpio_setpin(unsigned int pin unsigned int to)
{
unsigned long base = S3C2410_GPIO_base(pin);
unsigned long offs = S3C2410_GPIO_OFFSET(pin);
unsigned long flags;
unsigned long dat;
local_irq_save(flags);
dat = __raw_readl(base + 0x04);
dat &= ~(1 << offs);
dat |= to << offs;
__raw_writel(dat base + 0x04);
local_irq_restore(flags);
}
int gpio_open (struct inode *inode struct file *filp)
{
s3c2410_gpio_pullup(S3C2410_GPB0 1); /* BEEP*/
s3c2410_gpio_pullup(S3C2410_GPF4 1); /* LED D12 */
s3c2410_gpio_pullup(S3C2410_GPF5 1); /* LED D11 */
s3c2410_gpio_pullup(S3C2410_GPF6 1); /* LED D10 */
s3c2410_gpio_pullup(S3C2410_GPF7 1); /* LED D9 */
s3c2410_gpio_cfgpin(S3C2410_GPB0 S3C2410_GPB0_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF4_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF5_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF6_OUTP);
s3c2410_gpio_cfgpin(S3C2410_GPF4 S3C2410_GPF7_OUTP);
return 0;
}
ssize_t gpio_read(struct file *file char __user *buff size_t count loff_t *offp)
{
return 0;
}
ssize_t gpio_write(struct file *file const char __user *buff size_t count loff_t *offp)
{
return 0;
}
int switch_gpio(unsigned int pin unsigned int swt)
{
if (!((pin <= S3C2410_GPF7) && (pin >= S3C2410_GPF4)) && (pin != S3C2410_GPB0))
{
printk(“Unsupp
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5412 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_drv.c
文件 674 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_drv.h
文件 870 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\gpio_test.c
文件 394 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-3-2\Makefile
文件 11829 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_drv.c
文件 936 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_drv.h
文件 1248 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\butt_test.c
文件 674 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\gpio_drv.h
文件 373 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-6\Makefile
文件 384 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\Makefile
文件 943 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test.c
文件 3021 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv.c
文件 460 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv_load
文件 165 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\driver\11-7\test_drv_unload
文件 1132 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-1-1\copy_file.c
文件 230 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-1-1\Makefile
文件 1166 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\lock_set.c
文件 429 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\Makefile
文件 474 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\read_lock.c
文件 495 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-2-1\write_lock.c
文件 244 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-1\Makefile
文件 2515 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-1\multiplex_select.c
文件 241 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-2\Makefile
文件 1821 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-3-3-2\multiplex_poll.c
文件 646 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\com_reader.c
文件 304 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\Makefile
文件 3057 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\uart_api.c
文件 375 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\reader\uart_api.h
文件 712 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\writer\com_writer.c
文件 302 2008-12-19 19:17 嵌入式Linux应用程序开发标准教程 源码\file_io\6-4\writer\Makefile
............此处省略162个文件信息
相关资源
- Micrium.RTOS.1.0.0.pack
- uboot到linux logo显示不间断 补丁
- ISE_14.7_license.lic
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- UNIX/LINUX编程实践教程的源码
- 嵌入式图形界面MiniGUI的示例程序9例
- Linux任务管理器
- linux应用层的华容道游戏源代码
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- ARM嵌入式项目实战
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- stm32 用SPI 方式读写 SDHC
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
评论
共有 条评论