
GPIO hog (CONFIG_GPIO_HOG)
--------

All the GPIO hog are initialized in gpio_hog_probe_all() function called in
board_r.c just before board_late_init() but you can also acces directly to
the gpio with gpio_hog_lookup_name().


Example, for the device tree:

        tca6416@20 {
                compatible = "ti,tca6416";
                reg = <0x20>;
                #gpio-cells = <2>;
                gpio-controller;

                env_reset {
                        gpio-hog;
                        input;
                        gpios = <6 GPIO_ACTIVE_LOW>;
                };
                boot_rescue {
                        gpio-hog;
                        input;
                        line-name = "foo-bar-gpio";
                        gpios = <7 GPIO_ACTIVE_LOW>;
                };
        };

You can than access the gpio in your board code with:

	struct gpio_desc *desc;
	int ret;

	ret = gpio_hog_lookup_name("boot_rescue", &desc);
	if (ret)
		return;
	if (dm_gpio_get_value(desc) == 1)
		printf("\nBooting into Rescue System\n");
	else if (dm_gpio_get_value(desc) == 0)
		printf("\nBoot normal\n");
