曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6560|回复: 0
打印 上一主题 下一主题

[2410] S3C2410 GPIO端口号在 linux 中的定义

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2009-11-1 17:16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义文件
include/asm-arm/arch/S3C2410.h

S3C2410 的引脚共有 8 组,分别为
— Port A (GPA): 23-output port
— Port B (GPB): 11-input/output port
— Port C (GPC): 16-input/output port
— Port D (GPD): 16-input/output port
— Port E (GPE): 16-input/output port
— Port F (GPF):   8-input/output port
— Port G (GPG): 16-input/output port
— Port H (GPH): 11-input/output port

比如, GPIO 中的第 C 组 (GPC) 中的第 8 个引脚,可用如下宏来表示
#define GPIO_C8                 MAKE_GPIO_NUM(PORTC_OFS, 8)

上面,MAKE_GPIO_NUM 是这么定义的
#define MAKE_GPIO_NUM(p, o)     ((p << GPIO_PORT_SHIFTT) | (o << GPIO_OFS_SHIFT))

其中,GPIO_PORT_SHIFT 和 GPIO_OFS_SHIFT 的定义为
#define GPIO_OFS_SHIFT             0
#define GPIO_PORT_SHIFTT        8

而 PORTx_OFS 的定义为(x 为端口的组编号)
#define PORTA_OFS               0
#define PORTB_OFS               1
#define PORTC_OFS               2
#define PORTD_OFS               3
#define PORTE_OFS               4
#define PORTF_OFS               5
#define PORTG_OFS               6
#define PORTH_OFS               7

代入数字,展开 GPIO_C8 的定义为
MAKE_GPIO_NUM(2, 8) 即:
( 2 << 8 | 8 << 0)

由此可以看到,GPIO 的定义如下图所示:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 13:29 , Processed in 0.058482 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表