1、为了方便使用ti内核中提供的配置引脚复用的函数davinci_cfg_reg(),首先在arch/arm/mach-davinci/dm365.c文件中static const struct mux_config dm365_pins[] = {数组添加如下内容:
MUX_CFG(DM365, GPIO84, 1, 16, 1, 1, false)
MUX_CFG(DM365, GPIO83, 1, 16, 1, 1, false)
MUX_CFG(DM365, GPIO63, 2, 6, 1, 0, false)
MUX_CFG(DM365, GPIO89, 1, 6, 3, 0, false)
MUX_CFG(DM365, GPIO69, 2, 0, 3, 0, false)
这些内容是为了给davinci_cfg_reg函数提供需要的配置复用引脚的MUX控制寄存器的编号、寄存器对应的位偏移、位掩码、模式位值等,以便davinci_cfg_reg完成引脚功能的配置。
除了添加上面文件中的内容,还需要在arch/arm/mach-davinci/include/mach/mux.h文件的enum davinci_dm365_index {枚举中定义相对应上面数组定义的5个GPIO,如下:
DM365_GPIO84,
DM365_GPIO83,
DM365_GPIO63,
DM365_GPIO89,
DM365_GPIO69,
这四个枚举成员的位置编号值必须和上面介绍的mux_config dm365_pins数组成员位于同一位置,因为davinci_cfg_reg()函数的参数就是enum davinci_dm365_index枚举中的成员,davinci_cfg_reg()函数根据获得的枚举成员参数,来到mux_config dm365_pins[]数组中相应位置找到需要配置的引脚复用控制寄存器。