mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 10:21:25 +01:00 
			
		
		
		
	The gpio_hog_probe_all() functionality can be perfectly well replaced by DM_FLAG_PROBE_AFTER_BIND DM flag, which would trigger .probe() callback of each GPIO hog driver instance after .bind() and thus configure the hogged GPIO accordingly. Signed-off-by: Marek Vasut <marex@denx.de> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Samuel Holland <samuel@sholland.org>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
GPIO hog (CONFIG_GPIO_HOG)
 | 
						|
--------
 | 
						|
 | 
						|
All the GPIO hog are initialized using DM_FLAG_PROBE_AFTER_BIND DM flag
 | 
						|
after bind().
 | 
						|
 | 
						|
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");
 |