mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
64 lines
2.2 KiB
Diff
64 lines
2.2 KiB
Diff
|
From d46bf9ec4596654f36245e3b14765bcb422be6ad Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||
|
Date: Wed, 24 Mar 2021 09:19:03 +0100
|
||
|
Subject: [PATCH 02/22] gpio: regmap: set gpio_chip of_node
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
This is needed for properly registering GPIO regmap as a child of a regmap
|
||
|
pin controller.
|
||
|
|
||
|
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||
|
Reviewed-by: Michael Walle <michael@walle.cc>
|
||
|
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
|
||
|
Acked-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
|
||
|
Link: https://lore.kernel.org/r/20210324081923.20379-3-noltari@gmail.com
|
||
|
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||
|
---
|
||
|
drivers/gpio/gpio-regmap.c | 5 +++++
|
||
|
include/linux/gpio/regmap.h | 4 ++++
|
||
|
2 files changed, 9 insertions(+)
|
||
|
|
||
|
--- a/drivers/gpio/gpio-regmap.c
|
||
|
+++ b/drivers/gpio/gpio-regmap.c
|
||
|
@@ -254,6 +254,11 @@ struct gpio_regmap *gpio_regmap_register
|
||
|
chip->names = config->names;
|
||
|
chip->label = config->label ?: dev_name(config->parent);
|
||
|
|
||
|
+#if defined(CONFIG_OF_GPIO)
|
||
|
+ /* gpiolib will use of_node of the parent if chip->of_node is NULL */
|
||
|
+ chip->of_node = to_of_node(config->fwnode);
|
||
|
+#endif /* CONFIG_OF_GPIO */
|
||
|
+
|
||
|
/*
|
||
|
* If our regmap is fast_io we should probably set can_sleep to false.
|
||
|
* Right now, the regmap doesn't save this property, nor is there any
|
||
|
--- a/include/linux/gpio/regmap.h
|
||
|
+++ b/include/linux/gpio/regmap.h
|
||
|
@@ -4,6 +4,7 @@
|
||
|
#define _LINUX_GPIO_REGMAP_H
|
||
|
|
||
|
struct device;
|
||
|
+struct fwnode_handle;
|
||
|
struct gpio_regmap;
|
||
|
struct irq_domain;
|
||
|
struct regmap;
|
||
|
@@ -16,6 +17,8 @@ struct regmap;
|
||
|
* @parent: The parent device
|
||
|
* @regmap: The regmap used to access the registers
|
||
|
* given, the name of the device is used
|
||
|
+ * @fwnode: (Optional) The firmware node.
|
||
|
+ * If not given, the fwnode of the parent is used.
|
||
|
* @label: (Optional) Descriptive name for GPIO controller.
|
||
|
* If not given, the name of the device is used.
|
||
|
* @ngpio: Number of GPIOs
|
||
|
@@ -57,6 +60,7 @@ struct regmap;
|
||
|
struct gpio_regmap_config {
|
||
|
struct device *parent;
|
||
|
struct regmap *regmap;
|
||
|
+ struct fwnode_handle *fwnode;
|
||
|
|
||
|
const char *label;
|
||
|
int ngpio;
|