CODE_LINUX_DRV_GPIO

主要用途:实现GPIO驱动,实现对GPIO信号的控制。

能力分类:嵌入式

应用领域:安防监控,测试设备,机器人,智能家居,照明显示

交易方式: 定制

参考价格:50000.00 小贴士:当前佣金是0%

好评率:100%| 综合评分:5.0| 已购买:0次
联系我 收藏店铺
分享: 

 模块描述

1.1  原理及方式

该驱动实现ZYNQ平台下GPIO (General Purpose Input/Output)驱动。

1.2  主要功能

实现GPIO驱动,实现对GPIO信号的控制。

 标准模块

根据Linux驱动架构设计。

 模块设计

3.1  结构体设计

1) xgpio_instance

GPIO实例结构体,包含GPIO中断锁,信号方向等信息

struct xgpio_instance {

struct of_mm_gpio_chip mmchip;

u32 gpio_state;

u32 gpio_dir;

u32 offset;

int irq_base;

u32 irq_enable;

spinlock_t gpio_lock;

struct irq_domain *irq_domain;

};

3.2  主要函数说明

1) GPIO读取函数

函数原型

static int xgpio_get(struct gpio_chip *gc, unsigned int gpio)

功能描述

读取特定GPIO设备信号

输入参数

gc,GPIO设备指针

gpio,指示控制哪个GPIO信号

输出参数

全局变量值的变化

返回值

0,指定GPIO信号被设为输入信号;否则返回负值

2) MAC设备打开函数

函数原型

static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)

功能描述

将某个值写入指定GPIO设备信号

输入参数

gc,GPIO设备指针

gpio,指示控制哪个GPIO信号

val,将此值写入GPIO信号

输出参数

全局变量值的变化

返回值

3) GPIO输入信号设定函数

函数原型

static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)

功能描述

设定某GPIO信号为输入信号

输入参数

gc,GPIO设备指针

gpio,指示控制哪个GPIO信号

输出参数

全局变量值的变化

返回值

0

4) GPIO输出信号设定函数

函数原型

static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)

功能描述

设定某GPIO信号为输出信号

输入参数

gc,GPIO设备指针

gpio,指示控制哪个GPIO信号

val,将此值写入GPIO信号

输出参数

全局变量值的变化

返回值

0

 使用方法

1. gpio.h放置在Linux内核的include/linux/gpio/目录下;将gpio-xilinx.c放置在Linux内核的drivers/gpio/下

2. 在该目录下的Makefile中增加

“obj-$(CONFIG_GPIO_XILINX) += gpio-xilinx.o”

3. 在该目录下的Kconfig文件中增加

config GPIO_XILINX

tristate "Xilinx GPIO support"

depends on OF_GPIO && (PPC || MICROBLAZE || ARCH_ZYNQ || X86 || ARCH_ZYNQMP)

help

Say yes here to support the Xilinx FPGA GPIO device

 应用举例

通过上层封装的GPIO库中代码,可以GPIO设备进行控制

 其他


总体评价

好评率:100%

好评数量:0

总体评分

工作速度:5分

工作质量:5分

工作态度:5分

暂无评价

企业其他能力

More>