mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-03 18:01:41 +01:00 
			
		
		
		
	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");
 |