of_get_named_gpiod_flags() is visible and directly usable by GPIO consumers, but it really should not as the gpiod interface relies on the simpler gpiod_get() to provide properly-configured GPIOs. of_get_named_gpiod_flags() is just used internally by gpiolib to implement gpiod_get(), and by the old of_get_named_gpio_flags() function, therefore it makes sense to make it gpiolib-private. As a side-effect, the unused (and unneeded) of_get_gpiod_flags() inline function is also removed, and of_get_named_gpio_flags() is moved from a static inline function to a regular one in gpiolib-of.c This results in all references to gpiod_* functions in of_gpio.h being gone, which is the way it should be since this file is part of the old integer GPIO interface. Changes since v1: - Fixed compilation error when CONFIG_OF_GPIO is not defined - Fixed warning due to of_gpio_flags enum not being declared in private gpiolib.h header Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Internal GPIO functions.
 | 
						|
 *
 | 
						|
 * Copyright (C) 2013, Intel Corporation
 | 
						|
 * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
 | 
						|
 *
 | 
						|
 * This program is free software; you can redistribute it and/or modify
 | 
						|
 * it under the terms of the GNU General Public License version 2 as
 | 
						|
 * published by the Free Software Foundation.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef GPIOLIB_H
 | 
						|
#define GPIOLIB_H
 | 
						|
 | 
						|
#include <linux/err.h>
 | 
						|
#include <linux/device.h>
 | 
						|
 | 
						|
enum of_gpio_flags;
 | 
						|
 | 
						|
/**
 | 
						|
 * struct acpi_gpio_info - ACPI GPIO specific information
 | 
						|
 * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
 | 
						|
 * @active_low: in case of @gpioint, the pin is active low
 | 
						|
 */
 | 
						|
struct acpi_gpio_info {
 | 
						|
	bool gpioint;
 | 
						|
	bool active_low;
 | 
						|
};
 | 
						|
 | 
						|
#ifdef CONFIG_ACPI
 | 
						|
void acpi_gpiochip_add(struct gpio_chip *chip);
 | 
						|
void acpi_gpiochip_remove(struct gpio_chip *chip);
 | 
						|
 | 
						|
struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index,
 | 
						|
					  struct acpi_gpio_info *info);
 | 
						|
#else
 | 
						|
static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
 | 
						|
static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
 | 
						|
 | 
						|
static inline struct gpio_desc *
 | 
						|
acpi_get_gpiod_by_index(struct device *dev, int index,
 | 
						|
			struct acpi_gpio_info *info)
 | 
						|
{
 | 
						|
	return ERR_PTR(-ENOSYS);
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
int gpiochip_request_own_desc(struct gpio_desc *desc, const char *label);
 | 
						|
void gpiochip_free_own_desc(struct gpio_desc *desc);
 | 
						|
 | 
						|
struct gpio_desc *of_get_named_gpiod_flags(struct device_node *np,
 | 
						|
		   const char *list_name, int index, enum of_gpio_flags *flags);
 | 
						|
 | 
						|
#endif /* GPIOLIB_H */
 |