文章目录
记录UBOOT中操作gpio的笔记
按照道理来说,其实uboot就是一个简单的kernel模型,其操作方法和kernel中的类似。只是函数接口不一样。
uboot 中用于匹配的函数是 fdt_node_offset_by_compatible
这个不是按照节点名字来匹配的,而是按照compatible属性进行匹配的,也就是说在dts中会按照compatible = "atmel,24c02";
中的属性来匹配。
node = fdt_node_offset_by_compatible(blob,0, "simple-panel");
if (node < 0) {
printf("Lamson-->No detect Pine,mini_control.\n");
return -ENODEV;
}
if (!fdt_device_is_available(blob,node)) {
printf("Lamson-->device gpio_ctl is disabled\n");
return -1;
}
fdtdec_decode_gpios(blob, node, "power-gpios", &gpio_ctl[0], 1);
gpio_direction_output(gpio_ctl[1].gpio,1);
下面为设备数的配置
lvds_panel: lvds-panel {
status = "okay";
compatible = "simple-panel";
backlight = <&backlight>;
bus-format = <MEDIA_BUS_FMT_RBG888_1X24>;
enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
power-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
backlight-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
.....
};
或者在对应的board,c里面去操作。