gpiolib: Get rid of not used of_node member
All new drivers should use fwnode and / or parent to provide the necessary information to the GPIO library. Cc: Thierry Reding <treding@nvidia.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
dc0989e3aa
commit
70d0fc4288
|
@ -1388,16 +1388,6 @@ void acpi_gpiochip_remove(struct gpio_chip *chip)
|
|||
kfree(acpi_gpio);
|
||||
}
|
||||
|
||||
void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev)
|
||||
{
|
||||
/* Set default fwnode to parent's one if present */
|
||||
if (gc->parent)
|
||||
ACPI_COMPANION_SET(&gdev->dev, ACPI_COMPANION(gc->parent));
|
||||
|
||||
if (gc->fwnode)
|
||||
device_set_node(&gdev->dev, gc->fwnode);
|
||||
}
|
||||
|
||||
static int acpi_gpio_package_count(const union acpi_object *obj)
|
||||
{
|
||||
const union acpi_object *element = obj->package.elements;
|
||||
|
|
|
@ -26,8 +26,6 @@ struct gpio_device;
|
|||
void acpi_gpiochip_add(struct gpio_chip *chip);
|
||||
void acpi_gpiochip_remove(struct gpio_chip *chip);
|
||||
|
||||
void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev);
|
||||
|
||||
void acpi_gpiochip_request_interrupts(struct gpio_chip *chip);
|
||||
void acpi_gpiochip_free_interrupts(struct gpio_chip *chip);
|
||||
|
||||
|
@ -42,8 +40,6 @@ int acpi_gpio_count(struct device *dev, const char *con_id);
|
|||
static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
|
||||
static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
|
||||
|
||||
static inline void acpi_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev) { }
|
||||
|
||||
static inline void
|
||||
acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { }
|
||||
|
||||
|
|
|
@ -651,7 +651,7 @@ static struct gpio_desc *of_parse_own_gpio(struct device_node *np,
|
|||
u32 tmp;
|
||||
int ret;
|
||||
|
||||
chip_np = chip->of_node;
|
||||
chip_np = dev_of_node(&chip->gpiodev->dev);
|
||||
if (!chip_np)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
|
@ -743,7 +743,7 @@ static int of_gpiochip_scan_gpios(struct gpio_chip *chip)
|
|||
struct device_node *np;
|
||||
int ret;
|
||||
|
||||
for_each_available_child_of_node(chip->of_node, np) {
|
||||
for_each_available_child_of_node(dev_of_node(&chip->gpiodev->dev), np) {
|
||||
if (!of_property_read_bool(np, "gpio-hog"))
|
||||
continue;
|
||||
|
||||
|
@ -953,14 +953,15 @@ EXPORT_SYMBOL_GPL(of_mm_gpiochip_remove);
|
|||
#ifdef CONFIG_PINCTRL
|
||||
static int of_gpiochip_add_pin_range(struct gpio_chip *chip)
|
||||
{
|
||||
struct device_node *np = chip->of_node;
|
||||
struct of_phandle_args pinspec;
|
||||
struct pinctrl_dev *pctldev;
|
||||
struct device_node *np;
|
||||
int index = 0, ret;
|
||||
const char *name;
|
||||
static const char group_names_propname[] = "gpio-ranges-group-names";
|
||||
struct property *group_names;
|
||||
|
||||
np = dev_of_node(&chip->gpiodev->dev);
|
||||
if (!np)
|
||||
return 0;
|
||||
|
||||
|
@ -1046,7 +1047,7 @@ int of_gpiochip_add(struct gpio_chip *chip)
|
|||
struct device_node *np;
|
||||
int ret;
|
||||
|
||||
np = to_of_node(dev_fwnode(&chip->gpiodev->dev));
|
||||
np = dev_of_node(&chip->gpiodev->dev);
|
||||
if (!np)
|
||||
return 0;
|
||||
|
||||
|
@ -1075,19 +1076,3 @@ void of_gpiochip_remove(struct gpio_chip *chip)
|
|||
{
|
||||
fwnode_handle_put(chip->fwnode);
|
||||
}
|
||||
|
||||
void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev)
|
||||
{
|
||||
/* Set default OF node to parent's one if present */
|
||||
if (gc->parent)
|
||||
gdev->dev.of_node = gc->parent->of_node;
|
||||
|
||||
if (gc->fwnode)
|
||||
gc->of_node = to_of_node(gc->fwnode);
|
||||
|
||||
/* If the gpiochip has an assigned OF node this takes precedence */
|
||||
if (gc->of_node)
|
||||
gdev->dev.of_node = gc->of_node;
|
||||
else
|
||||
gc->of_node = gdev->dev.of_node;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,6 @@ struct gpio_desc *of_find_gpio(struct device_node *np,
|
|||
int of_gpiochip_add(struct gpio_chip *gc);
|
||||
void of_gpiochip_remove(struct gpio_chip *gc);
|
||||
int of_gpio_get_count(struct device *dev, const char *con_id);
|
||||
void of_gpio_dev_init(struct gpio_chip *gc, struct gpio_device *gdev);
|
||||
#else
|
||||
static inline struct gpio_desc *of_find_gpio(struct device_node *np,
|
||||
const char *con_id,
|
||||
|
@ -38,10 +37,6 @@ static inline int of_gpio_get_count(struct device *dev, const char *con_id)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void of_gpio_dev_init(struct gpio_chip *gc,
|
||||
struct gpio_device *gdev)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_OF_GPIO */
|
||||
|
||||
extern struct notifier_block gpio_of_notifier;
|
||||
|
|
|
@ -659,10 +659,12 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
|
|||
int base = 0;
|
||||
int ret = 0;
|
||||
|
||||
/* If the calling driver did not initialize firmware node, do it here */
|
||||
if (gc->fwnode)
|
||||
fwnode = gc->fwnode;
|
||||
else if (gc->parent)
|
||||
fwnode = dev_fwnode(gc->parent);
|
||||
gc->fwnode = fwnode;
|
||||
|
||||
/*
|
||||
* First: allocate and populate the internal stat container, and
|
||||
|
@ -676,14 +678,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
|
|||
gdev->chip = gc;
|
||||
gc->gpiodev = gdev;
|
||||
|
||||
of_gpio_dev_init(gc, gdev);
|
||||
acpi_gpio_dev_init(gc, gdev);
|
||||
|
||||
/*
|
||||
* Assign fwnode depending on the result of the previous calls,
|
||||
* if none of them succeed, assign it to the parent's one.
|
||||
*/
|
||||
gc->fwnode = gdev->dev.fwnode = dev_fwnode(&gdev->dev) ?: fwnode;
|
||||
device_set_node(&gdev->dev, gc->fwnode);
|
||||
|
||||
gdev->id = ida_alloc(&gpio_ida, GFP_KERNEL);
|
||||
if (gdev->id < 0) {
|
||||
|
|
|
@ -503,13 +503,6 @@ struct gpio_chip {
|
|||
* the device tree automatically may have an OF translation
|
||||
*/
|
||||
|
||||
/**
|
||||
* @of_node:
|
||||
*
|
||||
* Pointer to a device tree node representing this GPIO controller.
|
||||
*/
|
||||
struct device_node *of_node;
|
||||
|
||||
/**
|
||||
* @of_gpio_n_cells:
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue