| |
| 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"); |