mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 01:48:52 +09:00
![Patrick Delaunay](/assets/img/avatar_default.png)
Update the binding file for gpio, it is just an alignment with kernel v5.3. The U-Boot code example for gpio-hog (not directly linked to binding) is moved in a new file doc/README.gpio. [commit 21676b706e99 ("gpio: fixes for gpio-hog support") & 'commit 4762a9988ede ("gpio: add gpio-hog support")'] Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Reviewed-by: Simon Glass <sjg@chromium.org>
43 lines
1.1 KiB
Plaintext
43 lines
1.1 KiB
Plaintext
|
|
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");
|