高通 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)