mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	At present if CONFIG_SPL_GPIO_SUPPORT is enabled then the GPIO uclass is included in SPL/TPL without any control for boards. Some boards may want to disable this to reduce code size where GPIOs are not needed in SPL or TPL. Add a new Kconfig option to permit this. Default it to 'y' so that existing boards work correctly. Change existing uses of CONFIG_DM_GPIO to CONFIG_IS_ENABLED(DM_GPIO) to preserve the current behaviour. Also update the 74x164 GPIO driver since it cannot build with SPL. This allows us to remove the hacks in config_uncmd_spl.h and Makefile.uncmd_spl (eventually those files should be removed). Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			820 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			820 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
 | 
						|
#ifndef _GPIO_DA8XX_DEFS_H_
 | 
						|
#define _GPIO_DA8XX_DEFS_H_
 | 
						|
 | 
						|
struct davinci_gpio {
 | 
						|
	unsigned int dir;
 | 
						|
	unsigned int out_data;
 | 
						|
	unsigned int set_data;
 | 
						|
	unsigned int clr_data;
 | 
						|
	unsigned int in_data;
 | 
						|
	unsigned int set_rising;
 | 
						|
	unsigned int clr_rising;
 | 
						|
	unsigned int set_falling;
 | 
						|
	unsigned int clr_falling;
 | 
						|
	unsigned int intstat;
 | 
						|
};
 | 
						|
 | 
						|
struct davinci_gpio_bank {
 | 
						|
	int num_gpio;
 | 
						|
	unsigned int irq_num;
 | 
						|
	unsigned int irq_mask;
 | 
						|
	unsigned long *in_use;
 | 
						|
	struct davinci_gpio *base;
 | 
						|
};
 | 
						|
 | 
						|
#define GPIO_NAME_SIZE		20
 | 
						|
#define MAX_NUM_GPIOS		144
 | 
						|
#define GPIO_BIT(gp)		((gp) & 0x1F)
 | 
						|
 | 
						|
#if CONFIG_IS_ENABLED(DM_GPIO)
 | 
						|
 | 
						|
/* Information about a GPIO bank */
 | 
						|
struct davinci_gpio_platdata {
 | 
						|
	int bank_index;
 | 
						|
	ulong base;	/* address of registers in physical memory */
 | 
						|
	const char *port_name;
 | 
						|
};
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |