RK3288 uboot阶段GPIO功能复用(急)
在uboot阶段实现GPIO的功能复用,比如pin Ball pin name
R25 HOST_D6/TS_SYNC/CIF_VSYNC/GPIO2_B0
R25pin的默认功能是CIF_VSYNC,如果把它的功能改为GPIO2_B0应该怎么做? 本帖最后由 怪兽one 于 2017-10-11 00:22 编辑
C:\Users\Administrator\Pictures\1.png
#define GRF_GPIO2B_0GPIO (grf_read(GRF_GPIO2B_IOMUX)&0xFFFFFFFA)
grf_write(GRF_GPIO2B_0GPIO,GRF_GPIO2B_IOMUX);
此方法是否可行? 试着将xml文件下面有关dvp的配置去掉,内核dts或者dtsi下的dvp印脚定义改成gpio 本帖最后由 怪兽one 于 2017-10-11 15:39 编辑
leung先森 发表于 2017-10-11 09:17
试着将xml文件下面有关dvp的配置去掉,内核dts或者dtsi下的dvp印脚定义改成gpio
你说的是kernel阶段是吧?我想要在uboot阶段就配置好gpio功能,
在uboot阶段加入如下代码
//GPIO2_B0 gpio out
static uint32 grf_gpio2b_iomux;
grf_gpio2b_iomux = (grf_readl(GRF_GPIO2B_IOMUX)&0xFFFFFFFC)|(3<<16);
// grf_writel((3 << 16) & grf_gpio2b_iomux, GRF_GPIO2B_IOMUX);
grf_writel(grf_gpio2b_iomux, GRF_GPIO2B_IOMUX);
gpio_direction_output(GPIO_BANK2 | GPIO_B0, 1);
//GPIO2_B1 interrupt
static uint32 grf_gpio2b_iomux;
int gpio_irq;
grf_gpio2b_iomux = (grf_readl(GRF_GPIO2B_IOMUX)&0xFFFFFFF3)|(3<<18);
grf_writel(grf_gpio2b_iomux, GRF_GPIO2B_IOMUX);
gpio_irq = gpio_to_irq(GPIO_BANK2 | GPIO_B1);
这样设理论不知可行不可行 grf_writel((0x0000 | (0x03 << 16)), GRF_GPIO2B_IOMUX); //bit1:bit000:gpio
gpio_direction_output(GPIO_BANK2 | GPIO_B0, 1);
页:
[1]