mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00: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");
 |