1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun #ifndef GPIOLIB_OF_H
4*4882a593Smuzhiyun #define GPIOLIB_OF_H
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun struct gpio_chip;
7*4882a593Smuzhiyun enum of_gpio_flags;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun #ifdef CONFIG_OF_GPIO
10*4882a593Smuzhiyun struct gpio_desc *of_find_gpio(struct device *dev,
11*4882a593Smuzhiyun const char *con_id,
12*4882a593Smuzhiyun unsigned int idx,
13*4882a593Smuzhiyun unsigned long *lookupflags);
14*4882a593Smuzhiyun int of_gpiochip_add(struct gpio_chip *gc);
15*4882a593Smuzhiyun void of_gpiochip_remove(struct gpio_chip *gc);
16*4882a593Smuzhiyun int of_gpio_get_count(struct device *dev, const char *con_id);
17*4882a593Smuzhiyun bool of_gpio_need_valid_mask(const struct gpio_chip *gc);
18*4882a593Smuzhiyun void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev);
19*4882a593Smuzhiyun #else
of_find_gpio(struct device * dev,const char * con_id,unsigned int idx,unsigned long * lookupflags)20*4882a593Smuzhiyun static inline struct gpio_desc *of_find_gpio(struct device *dev,
21*4882a593Smuzhiyun const char *con_id,
22*4882a593Smuzhiyun unsigned int idx,
23*4882a593Smuzhiyun unsigned long *lookupflags)
24*4882a593Smuzhiyun {
25*4882a593Smuzhiyun return ERR_PTR(-ENOENT);
26*4882a593Smuzhiyun }
of_gpiochip_add(struct gpio_chip * gc)27*4882a593Smuzhiyun static inline int of_gpiochip_add(struct gpio_chip *gc) { return 0; }
of_gpiochip_remove(struct gpio_chip * gc)28*4882a593Smuzhiyun static inline void of_gpiochip_remove(struct gpio_chip *gc) { }
of_gpio_get_count(struct device * dev,const char * con_id)29*4882a593Smuzhiyun static inline int of_gpio_get_count(struct device *dev, const char *con_id)
30*4882a593Smuzhiyun {
31*4882a593Smuzhiyun return 0;
32*4882a593Smuzhiyun }
of_gpio_need_valid_mask(const struct gpio_chip * gc)33*4882a593Smuzhiyun static inline bool of_gpio_need_valid_mask(const struct gpio_chip *gc)
34*4882a593Smuzhiyun {
35*4882a593Smuzhiyun return false;
36*4882a593Smuzhiyun }
of_gpio_dev_init(struct gpio_chip * gc,struct gpio_device * gdev)37*4882a593Smuzhiyun static inline void of_gpio_dev_init(struct gpio_chip *gc,
38*4882a593Smuzhiyun struct gpio_device *gdev)
39*4882a593Smuzhiyun {
40*4882a593Smuzhiyun }
41*4882a593Smuzhiyun #endif /* CONFIG_OF_GPIO */
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun extern struct notifier_block gpio_of_notifier;
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun #endif /* GPIOLIB_OF_H */
46