实现步骤
1. Pimmap配置GPIO属性
Pinmap.c文件是用于对一些具有GPIO属性的I/O pin提供功能,驱动等级,上下拉等方面的配置,是需要根据外部连接电路,实际功能用途来配置状态;这个不同于芯片At Reset与After Reset后pin的状态,At Reset与After Reset是芯片内部固定的状态,不能动态修改,而Pinmap是可以被软件定义寄存器修改的。另外,Pinmap.c还配置一些电源域的选择,UART口的分配等。实际上Pinmap就是一些相关配置寄存器汇总在一起的一种表现形式而已,可读性比较好。Pinmap从U-boot阶段开始起作用。
文件路径:…\bsp\bootloader\u-boot15\board\spreadtrum\sl8541e_su806_v2\pinmap-sl8541e.c
//GPIO配置
static pinmap_t pinmap[]={
...
//LED0
{REG_PIN_RFCTL16, BITS_PIN_AF(3)},//function选择
//驱动强度、上下拉配置和输入输出状态等
{REG_MISC_PIN_RFCTL16, BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_NUL|BIT_PIN_SLP_AP|BIT_PIN_SLP_NUL|BIT_PIN_SLP_OE},
//LED0
{REG_PIN_RFCTL16, BITS_PIN_AF(3)},
{REG_MISC_PIN_RFCTL16, BITS_PIN_DS(1)|BIT_PIN_NULL|BIT_PIN_NUL