尊敬的 TI:
很抱歉再次开机自检。
从下面的前一个帖子中、我认为我没有疑问。 但我错了!
我执行了 GPIO 测试以再次使 LED 闪烁。
在 K3-am654-base-board.dts 中、我添加了测试 GPIO。
GPIO_TEST:GPIO_TEST{
兼容="GPIO-test";
pintest-GPIO =<&wkup_GPIO0 25 GPIO_ACTIVE_HIGH_>;
u-boot、dm-spl;
};
cbhass_wakeup{(&C)
wkup_pmx0:pinmux@4301c000{
兼容="pinctrl-single";
REG =<0x4301c000 0x118>;
#pinctrl-cells =<1>;
pinctrl-single、寄存器宽度=<32>;
pinctrl-single、function-mask =<0xffffff>;
};
wkup_GPIO0:wkup_GPIO0@42110000{
兼容="ti、am654-gpio"、"ti、keystone-gpio";
REG =<0x42110000 0x100>;
GPIO 控制器;
#GPIO-cells =<2>;
ti、ngpio =<56>;
TI、Davinci-GPIO-Unbanked =<0>;
时钟=<&K3_CLKS 59 0>;
时钟名称="GPIO";
u-boot、dm-spl;
};
};
wkup_pmx0{.wkup_pmx0}
pinctrl-names ="default";
pinctrl-0 =<&GPIO_Identify_pines>;
GPIO_Identify_pins:GPIO_Identify_pins{
pinctrl-single、pins =<
AM65X_WKUP_IOPAD (0x0034、PIN_OUTPUT、7)/*(T1) MCU_OSPI1_CLK.WKUP_GPIO0_25 LED-ERR*/
>;
u-boot、dm-spl;
};
};
我在 board_late_init()中添加了我的测试函数。
int GPIO_control_test (void)
{
结构 GPIO_desc PIN_GPIO;
int 节点、pin0Val、ret;
节点= FDT_NODE_OFFSET_BY_compatible (gd->FDT_BLOB、0、"GPIO-test");
RET = GPIO_REQUEST_BY_NAME_NODEV (OFFSET_TO_ofnode)、"pintest-GPIO"、0、PIN_GPIO、GPIOD_is_OUT);
IF (dm_gpio_is_valid (&pin_gpio))
{
pin0Val = dm_gpio_get_value (&pin_gpio);
printf ("Eric:GPIO_control_test dm_GPIO_get_value =%d [1]\r\n"、pin0Val);
DM_GPIO_SET_DIR_FLAGS (&PIN_GPIO、GPIOD_is_OUT);
DM_GPIO_SET_VALUE (&PIN_GPIO、1);
mdelay (1000);
pin0Val = dm_gpio_get_value (&pin_gpio);
printf ("Eric:GPIO_control_test dm_GPIO_get_value =%d [2]\r\n"、pin0Val);
DM_GPIO_SET_VALUE (&PIN_GPIO、0);
mdelay (1000);
pin0Val = dm_gpio_get_value (&pin_gpio);
printf ("Eric:GPIO_control_test dm_GPIO_get_value =%d [3]\r\n"、pin0Val);
DM_GPIO_SET_VALUE (&PIN_GPIO、1);
mdelay (1000);
pin0Val = dm_gpio_get_value (&pin_gpio);
printf ("Eric:GPIO_CONTINL_TEST dm_GPIO_get_value =%d [4]\r\n",pin0Val? LEDST_ON:LEDST_OFF);
}
其他
printf ("Eric:gpio_control_test dm_gpio_is_valid 错误!! \r\n");
返回1;
}
在我的程序中、我想再次将 LED 闪烁为开、关和开。 它按我的要求工作。
但是、当我查看日志时、我始终从 dm_gpio_get_value 获取值为0。
我错过了什么吗?
谢谢。
Eric