AM4379-GPIO点LED灯设计(驱动层)
利用am4379的gpio5_10、gpio5_11、 gpio5_12点亮led灯,gpio5_13启动WiFi(与点灯操作一样)。
1、在头文件.h中增加控制寄存器定义
#define GPIO5_12_OUTPUT REG32(CtrlModCfgBase_Mapped+0xA48) // 信号别名 CTRL_CONF_GPIO5_12
#define GPIO5_13_OUTPUT REG32(CtrlModCfgBase_Mapped+0xA4C) // 信号别名 CTRL_CONF_GPIO5_13
#define GPIO5_OE REG32(Gpio5Base_Mapped + 0x134) // 端口输入输出属性设置地址
#define GPIO5_10_OUTPUT REG32(CtrlModCfgBase_Mapped+0xA40) // 信号别名 CTRL_CONF_GPIO5_10
#define GPIO5_11_OUTPUT REG32(CtrlModCfgBase_Mapped+0xA44) // 信号别名 CTRL_CONF_GPIO5_11
static void __iomem *Gpio5Base_Mapped;
#define REG32(addr) *((volatile unsigned long *)(addr))
#define GPIO5_SETDATAOUT REG32(Gpio5Base_Mapped+0x194)
#define GPIO5_REG_SIZE 0x198
#define GPIO5_REG_BASE 0x48322000
2、在gpio初始化函数中增加寄存器赋值
Gpio5Base_Mapped = ioremap(GPIO5_REG_BASE, GPIO5_REG_SIZE);
// 切换为GPIO引脚模式
GPIO5_12_OUTPUT = 0x00000007;
GPIO5_13_OUTPUT = 0x00000007;
GPIO5_10_OUTPUT = 0x00000007;
GPIO5_11_OUTPUT = 0x00000007;
// 设置GPIO5管脚输入输出方向
GPIO5_OE = 0xffffc3ff; // 设置GPIO5管脚输入输出:GPIO5-5为输入, GPIO5-12、GPIO5-13、GPIO5-10、GPIO5-11为输出
// GPIO5_10、GPIO5_11、GPIO5_12(WIFI工作状态指示灯)、GPIO5_13(WIFI电源开关)
GPIO5_SETDATAOUT |= ((0X1<<10)|(0X1<<11)|(0X1<<12)|(0X1<<13)) ;