高通 LK中的GPIO配置函数定义:
void gpio_tlmm_config(uint32_t gpio, uint8_t func,
uint8_t dir , uint8_t pull,
uint8_t drvstr, uint32_t enable)
{
uint32_t val = 0;
val |= pull; //bit1-0配置上下拉
val |= func << 2; //bit5-2功能配置,GPIO功能是0
val |= drvstr << 6; //bit8-6驱动能力配置
val |= enable << 9; //输出使能配置
writel(val, (uint32_t )GPIO_CONFIG_ADDR(gpio));
return;
}
#define GPIO_CONFIG_ADDR(x) (TLMM_BASE_ADDR + (x)0x1000)
GPIO_CONFIG_ADDR这个宏定义是和下图的地址一致的:0x01000000+ 0x1000n
即第n个GPIO的地址是0x01000000+ 0x1000n
这个函数的功能是对GPIO进行配置,其中第3个参数dir 是无效的。

(OE: output enable)
#define GPIO_ENABLE 0
#define GPIO_DISABLE 1
void gpio_set(uint32_t gpio, uint32_t dir)
{
writel(dir, (uint32_t *)GPIO_IN_OUT_ADDR(gpio));
return;
}
#define GPIO_IN_OUT_ADDR(x

本文介绍了高通LK环境中GPIO的配置和使用方法,包括`gpio_tlmm_config`函数的功能及其参数解析,以及`gpio_set`函数的输出高低或输入使能设置。通过示例展示了GPIO作为输入和输出的配置,并提到了读取GPIO状态的方法。
最低0.47元/天 解锁文章
797

被折叠的 条评论
为什么被折叠?



