GPIO配置和管理

本文介绍了GPIO在BootLoader阶段的配置,如gpio_tlmm_config()函数的使用,并讲解了GPIO驱动强度的不同定义。此外,还阐述了GPIOLIB架构中的sysfs用户接口,包括GPIO在Sysfs的路径中的三种入口,以及如何通过内核代码导出GPIO到sysfs并创建符号链接。
摘要由CSDN通过智能技术生成

BootLoader阶段

BootLoader阶段可以调用gpio_tlmm_config()函数完成GPIO_CFGn寄存器的配置,举例如下:
#define TLMM_VOL_UP_BTN_GPIO    85  
gpio_tlmm_config(TLMM_VOL_UP_BTN_GPIO, 0,GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA, GPIO_ENABLE)  
gpio_tlmm_config()定义如下:  
void gpio_tlmm_config(uint32_t gpio,uint8_t func,  
                     uint8_tdir, uint8_t pull,  
                     uint8_tdrvstr, uint32_t enable)  
{  
       uint32_tval = 0;  
   
       val|= pull;  
       val|= func << 2;  
       val|= drvstr << 6;  
       val|= enable << 9;//如果func=0,enable=1为输出,enable=0为输出  
   
       writel(val,(uint32_t *)GPIO_CONFIG_ADDR(gpio));  
       return;  
}

其中驱动强度的可用定义如下:

/* GPIO TLMM: Drive Strength */  
#define GPIO_2MA        0  
#define GPIO

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值