#ifndef __LINUX_GPIO_NOMADIK_H
#define __LINUX_GPIO_NOMADIK_H
struct fwnode_handle;
#define PINCTRL_NMK_STN8815 …
#define PINCTRL_NMK_DB8500 …
#define GPIO_BLOCK_SHIFT …
#define NMK_GPIO_PER_CHIP …
#define NMK_MAX_BANKS …
#define NMK_GPIO_DAT …
#define NMK_GPIO_DATS …
#define NMK_GPIO_DATC …
#define NMK_GPIO_PDIS …
#define NMK_GPIO_DIR …
#define NMK_GPIO_DIRS …
#define NMK_GPIO_DIRC …
#define NMK_GPIO_SLPC …
#define NMK_GPIO_AFSLA …
#define NMK_GPIO_AFSLB …
#define NMK_GPIO_LOWEMI …
#define NMK_GPIO_RIMSC …
#define NMK_GPIO_FIMSC …
#define NMK_GPIO_IS …
#define NMK_GPIO_IC …
#define NMK_GPIO_RWIMSC …
#define NMK_GPIO_FWIMSC …
#define NMK_GPIO_WKS …
#define NMK_GPIO_EDGELEVEL …
#define NMK_GPIO_LEVEL …
enum nmk_gpio_pull { … };
enum nmk_gpio_slpm { … };
struct nmk_gpio_chip { … };
#define NMK_GPIO_ALT_GPIO …
#define NMK_GPIO_ALT_A …
#define NMK_GPIO_ALT_B …
#define NMK_GPIO_ALT_C …
#define NMK_GPIO_ALT_CX_SHIFT …
#define NMK_GPIO_ALT_C1 …
#define NMK_GPIO_ALT_C2 …
#define NMK_GPIO_ALT_C3 …
#define NMK_GPIO_ALT_C4 …
#define PRCM_GPIOCR_ALTCX(pin_num,\
altc1_used, altc1_ri, altc1_cb,\
altc2_used, altc2_ri, altc2_cb,\
altc3_used, altc3_ri, altc3_cb,\
altc4_used, altc4_ri, altc4_cb) …
enum prcm_gpiocr_reg_index { … };
enum prcm_gpiocr_altcx_index { … };
struct prcm_gpiocr_altcx { … } __packed;
struct prcm_gpiocr_altcx_pin_desc { … };
struct nmk_function { … };
struct nmk_pingroup { … };
#define NMK_PIN_GROUP(a, b) …
struct nmk_pinctrl_soc_data { … };
#ifdef CONFIG_PINCTRL_STN8815
void nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc);
#else
static inline void
nmk_pinctrl_stn8815_init(const struct nmk_pinctrl_soc_data **soc)
{ … }
#endif
#ifdef CONFIG_PINCTRL_DB8500
void nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc);
#else
static inline void
nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc)
{ … }
#endif
#ifdef CONFIG_PINCTRL_DB8540
void nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc);
#else
static inline void
nmk_pinctrl_db8540_init(const struct nmk_pinctrl_soc_data **soc)
{ … }
#endif
struct platform_device;
#ifdef CONFIG_DEBUG_FS
void nmk_gpio_dbg_show_one(struct seq_file *s, struct pinctrl_dev *pctldev,
struct gpio_chip *chip, unsigned int offset,
unsigned int gpio);
#else
static inline void nmk_gpio_dbg_show_one(struct seq_file *s,
struct pinctrl_dev *pctldev,
struct gpio_chip *chip,
unsigned int offset,
unsigned int gpio)
{
}
#endif
void __nmk_gpio_make_output(struct nmk_gpio_chip *nmk_chip,
unsigned int offset, int val);
void __nmk_gpio_set_slpm(struct nmk_gpio_chip *nmk_chip, unsigned int offset,
enum nmk_gpio_slpm mode);
struct nmk_gpio_chip *nmk_gpio_populate_chip(struct fwnode_handle *fwnode,
struct platform_device *pdev);
#ifdef CONFIG_PINCTRL_NOMADIK
extern struct nmk_gpio_chip *nmk_gpio_chips[NMK_MAX_BANKS];
extern spinlock_t nmk_gpio_slpm_lock;
int __maybe_unused nmk_prcm_gpiocr_get_mode(struct pinctrl_dev *pctldev,
int gpio);
#endif
#endif