gpio相关的几种寄存器
pad control register :pad控制
pad mux register:pad 复用
select input register:输入模式选择
比如
EIM_D16
比如要把MX53_PAD_EIM_OE设置为输入模式并且上拉:
uboot下
u32 reg;
mxc_request_iomux(MX53_PIN_EIM_OE, IOMUX_CONFIG_ALT1);
mxc_iomux_set_pad(MX53_PIN_EIM_OE, PAD_CTL_22K_PU|PAD_CTL_PUE_PULL|PAD_CTL_PKE_ENABLE);
reg = readl(GPIO2_BASE_ADDR + GPIO_GDIR);
reg &= ~(1<<25);
writel(reg, GPIO2_BASE_ADDR + GPIO_GDIR);
内核下
在mx53_smd.c
static iomux_v3_cfg_t mx53_smd_pads[] = {
/*LCD5V_EN*/
MX53_PAD_EIM_OE__GPIO2_25,
...
}
在iomux-mx53.h中
#define MX53_PAD_EIM_OE__GPIO2_25
(_MX53_PAD_EIM_OE__GPIO2_25 | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP|PAD_CTL_PKE|PAD_CTL_PUE))
然后进入文件系统之后,直接
echo 57 > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio57/direction
cat /sys/class/gpio/gpio57/value