ioremap_gpio子系统_中断

ioremap_gpio子系统_中断
【一】、ioremap

void *ioremap(phys_addr_t offset, unsigned long size)
功能:物理地址到虚拟地址映射
参数:
        @offset   		物理地址
        @size              映射地址范围
返回值:成功返回映射后的虚拟地址,失败返回NULL

void iounmap(void __iomem *addr)
功能:解映射
参数:
        @addr      虚拟地址
        
【1】led驱动:
    字符设备驱动
        register_chrdev 
        创建设备文件   ---   class_create   device_create
        misc杂项设备
参考代码

【二】、GPIO子系统

<linux/gpio.h>

struct gpio {
	unsigned	gpio;		//gpio号
	unsigned long	flags;       //GPIOF_DIR_OUT    GPIOF_DIR_IN  GPIOF_INIT_LOW  	
    						//GPIOF_INIT_HIGH   GPIOF_OUT_INIT_LOW   
                             //GPIOF_OUT_INIT_HIGH
	const char	*label;      //名字
};

gpio号:s5p6818
GPIOA[31:0]  :     0 - 31
GPIOB[31:0]  :     32-63
GPIOC[31:0]  :     64-95
GPIOD[31:0]  :
GPIOE[31:0]  :

int gpio_request(unsigned gpio, const char *label)
功能:向内核请求注册使用gpio
参数:
        @gpio      gpio号
        @label      名字
返回值:失败返回负数错误码
void gpio_free(unsigned gpio)     //释放gpio

int gpio_request_one(unsigned gpio,unsigned long flags, const char *label)
功能:向内核请求注册使用gpio,并设置gpio引脚功能
参数:
        @gpio  	 gpio号
        @flags      gpio功能
        @label      名字
返回值:失败返回负数错误码
void gpio_free(unsigned gpio)     //释放gpio

int gpio_request_array(const struct gpio *array, size_t num)
功能:向内核请求注册使用一组gpio,并设置gpio引脚功能
参数:
        @array     struct gpio结构体指针
        @num      个数
返回值:失败返回负数错误码
void gpio_free_array(const struct gpio *array, size_t num)

int gpio_direction_input(unsigned gpio)
功能:设置gpio引脚的方向为输入方向
参数:
        @gpio  	 gpio号
int gpio_direction_output(unsigned gpio, int value)
int gpio_get_value(unsigned gpio)
void gpio_set_value(unsigned gpio, int value)
        
int gpio_to_irq(unsigned gpio) 
功能:将gpio号转成中断号
参数:
        @gpio  	 gpio号
返回值:成功返回中断号,失败返回负数错误码

【三】中断

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值