6410 gpio控制及接口
2012-06-20 09:44
351 查看
updating
其中需要说明的是
1.s3c_gpio_cfgpin(pin, S3C_GPIO_OUTPUT);//out mode
第二个参数可选的值有
S3C_GPIO_OUTPUT
S3C_GPIO_INPUT
S3C_GPIO_SFN(x)
其定义分别是,在gpio-cfg.c
#define S3C_GPIO_INPUT (S3C_GPIO_SPECIAL(0))
#define S3C_GPIO_OUTPUT(S3C_GPIO_SPECIAL(1))
#define S3C_GPIO_SFN(x) (S3C_GPIO_SPECIAL(x))
比如
![](http://my.csdn.net/uploads/201207/12/1342049717_9146.jpg)
欲配置GPL8为output模式
可以是s3c_gpio_cfgpin(pin, S3C_GPIO_OUTPUT)
也可以是s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(1))
欲配置GPL8为中断模式
可以是s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(3))
2.s3c_gpio_setpull(pin,S3C_GPIO_PULL_UP)
第二个参数可选为
#define S3C_GPIO_PULL_NONE
((__force s3c_gpio_pull_t)0x00)
#define S3C_GPIO_PULL_DOWN ((__force s3c_gpio_pull_t)0x01)
#define S3C_GPIO_PULL_UP ((__force s3c_gpio_pull_t)0x02)
比如GPN的某个上拉位
unsigned tmp; //gpe1 pull up,置位3:2=10b,其余不变 tmp = readl(S3C64XX_GPEPUD); tmp &= ~(2<<2); tmp |= 2<<2; writel(tmp,S3C64XX_GPEPUD); //gpe1 output mode,置位7:6:5:4=0001b,其余不变 tmp =readl(S3C64XX_GPECON); tmp &= ~(F<<4); tmp |= 1<<4; writel(tmp,S3C64XX_GPECON); //gpe1 output 0,置位1=0b,其余不变 tmp = __raw_readl(S3C64XX_GPEDAT); tmp &=~(1<<1) //
if(line==0 ){ uart_scancode_start(S3C64XX_GPA(3)); printk("-----------uart_open(%d) called\n", line); } if(line==1){ uart_scancode_start(S3C64XX_GPA(7)); printk("-----------uart_open(%d) called\n", line); } static void uart_scancode_init(unsigned long pin) { /* s3c_gpio_cfgpin(S3C64XX_GPM(3), S3C_GPIO_OUTPUT);//out mode s3c_gpio_setpull(S3C64XX_GPM(3),S3C_GPIO_PULL_UP);//pull */ s3c_gpio_cfgpin(pin, S3C_GPIO_OUTPUT);//out mode s3c_gpio_setpull(pin,S3C_GPIO_PULL_UP);//pull } static void uart_scancode_start(unsigned long pin) { uart_scancode_init(pin); gpio_set_value(pin,0); //gpio_set_value(S3C64XX_GPM(3),1); } static void uart_scancode_stop(unsigned long pin) { gpio_set_value(pin,1); //gpio_set_value(S3C64XX_GPM(3),0); }
其中需要说明的是
1.s3c_gpio_cfgpin(pin, S3C_GPIO_OUTPUT);//out mode
第二个参数可选的值有
S3C_GPIO_OUTPUT
S3C_GPIO_INPUT
S3C_GPIO_SFN(x)
其定义分别是,在gpio-cfg.c
#define S3C_GPIO_INPUT (S3C_GPIO_SPECIAL(0))
#define S3C_GPIO_OUTPUT(S3C_GPIO_SPECIAL(1))
#define S3C_GPIO_SFN(x) (S3C_GPIO_SPECIAL(x))
比如
![](http://my.csdn.net/uploads/201207/12/1342049717_9146.jpg)
欲配置GPL8为output模式
可以是s3c_gpio_cfgpin(pin, S3C_GPIO_OUTPUT)
也可以是s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(1))
欲配置GPL8为中断模式
可以是s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(3))
2.s3c_gpio_setpull(pin,S3C_GPIO_PULL_UP)
第二个参数可选为
#define S3C_GPIO_PULL_NONE
((__force s3c_gpio_pull_t)0x00)
#define S3C_GPIO_PULL_DOWN ((__force s3c_gpio_pull_t)0x01)
#define S3C_GPIO_PULL_UP ((__force s3c_gpio_pull_t)0x02)
比如GPN的某个上拉位
![](http://my.csdn.net/uploads/201207/12/1342050965_1957.jpg)
相关文章推荐
- 6410 gpio控制及接口
- 通用GPIO驱动和apk(含jni),支持所有GPIO,支持LED控制,支持友善6410/210开发板,支持安卓2.3/4.0,内核2.6/3.0
- (10)用树莓派B+的GPIO接口控制发光二极管闪烁
- 通用GPIO驱动和apk(含jni),支持所有GPIO,支持LED控制,支持友善6410/210开发板,支持安卓2.3/4.0,内核2.6/3.0
- 使用GPIO控制SPI接口的AD芯片 (转)
- Intel Edison —— 控制GPIO接口,网页显示传感器数值
- 通过Raspberry Pi(树莓派)的GPIO接口控制发光二极管
- GPIO控制一个外部接口驱动
- 挂接在/proc上的GPIO控制一个外部接口驱动
- OK6410 GPIO 控制LED 亮灭代码
- ok6410 LED/GPIO 控制 C#程序
- 使用GPIO控制SPI接口的AD芯片//来源不详
- ARM嵌入式学习--OK6410裸板程序--1.GPIO控制LED
- 控制IO端口 s3c2410_gpio_setpin()的使用 .
- Am335x 之GPIO控制
- OpenWRT GPIO口控制 WLED
- 智能小车制作过程全纪录: 四、软件平台--- Java 控制GPIO
- 在DM355平台上如何在应用层直接控制GPIO----操作arm的寄存器
- Linux驱动程序开发 - 设备控制接口
- EasyARM i.mx287学习笔记——通过modbus tcp控制GPIO