u-boot/drivers/gpio/da8xx_gpio.h
Simon Glass bcee8d6764 dm: gpio: Allow control of GPIO uclass in SPL
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>
2019-12-15 08:52:29 +08:00

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