#ifndef __AML_GPIO__ #define __AML_GPIO__ #include /** * struct meson_reg_desc - a register descriptor * * @reg: register offset in the regmap * @bit: bit index in register * * The structure describes the information needed to control pull, * pull-enable, direction, etc. for a single pin */ struct meson_reg_desc { unsigned int reg; unsigned int bit; }; /** * enum meson_reg_type - type of registers encoded in @meson_reg_desc */ enum meson_reg_type { REG_PULLEN, REG_PULL, REG_DIR, REG_OUT, REG_IN, NUM_REG, }; struct meson_bank { const char *name; unsigned int first; unsigned int last; struct meson_reg_desc regs[NUM_REG]; }; #define GPIO_REG_BIT(reg, bit) ((reg<<5)|bit) #define GPIO_REG(value) ((value>>5)) #define GPIO_BIT(value) ((value&0x1F)) #define BIT(bit) (1<