目前我需要在uboot最早的节点通过寄存器操作gpio,但是遇到一个问题,如下如,我找不到GPIO0_set_DATA01这个寄存器的相关描述,相同,下面说的寄存器在什么位置能看到,或者您那边又在uboot阶段操作gpio的方法吗
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
目前我需要在uboot最早的节点通过寄存器操作gpio,但是遇到一个问题,如下如,我找不到GPIO0_set_DATA01这个寄存器的相关描述,相同,下面说的寄存器在什么位置能看到,或者您那边又在uboot阶段操作gpio的方法吗
gpio0_encry_pins_default: gpio0_encry_pins_default {
pinctrl-single,pins = <
AM62X_IOPAD(0x0ac, PIN_OUTPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */
>;
};
&main_gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&gpio0_encry_pins_default>;
status = "okay";
};
看看哪里有问题
我这边验证不成功
请问具体怎么不成功?
我按照6254的芯片手册描述,直接操作寄存器,也是不生效,如下是我在uboot的spl_board_init函数中,控制gpio0_42的代码,电平也是没变化,您看看是不是cpu芯片手册写错了
/*Write 100h to the GPIO_SET_DATA23*/
writel(0x400, 0x00600040);
/*Write 0h to the GPIO_DIR23 register to configure as output pin*/
writel(0xfbff, 0x00600038);
/*Read in GPIO_OUT_DATA23 register, change bit 10 to 0x1,
and write the new value back to GPIO_OUT_DATA23*/
gpio_val = readl(0x0060003c);
printf("gpio-val=%x\n",gpio_val);
gpio_val = gpio_val|BIT(10);
printf("gpio-val=%x\n",gpio_val);
writel(gpio_val,0x0060003c);