[PATCH] i2c-mux-pca954x: Add code to control reset line

Andrey Smirnov andrew.smirnov at gmail.com
Tue Nov 15 06:46:45 PST 2016


Most recent device tree binding for that mux support specifying a GPIO
connected to a reset line of that chip. Add code to handle that binding
in order to be able to use the chip on boards that leverage
aforementioned functionality.

Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
 drivers/i2c/muxes/i2c-mux-pca954x.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c
index baeae7b..0d5515b 100644
--- a/drivers/i2c/muxes/i2c-mux-pca954x.c
+++ b/drivers/i2c/muxes/i2c-mux-pca954x.c
@@ -45,6 +45,8 @@
 #include <i2c/i2c-algo-bit.h>
 #include <i2c/i2c-mux.h>
 #include <init.h>
+#include <gpio.h>
+#include <of_gpio.h>
 
 #define PCA954X_MAX_NCHANS 8
 
@@ -179,6 +181,7 @@ static int pca954x_probe(struct device_d *dev)
 	int num, force;
 	struct pca954x *data;
 	int ret = -ENODEV;
+	int gpio;
 
 	data = kzalloc(sizeof(struct pca954x), GFP_KERNEL);
 	if (!data) {
@@ -188,6 +191,10 @@ static int pca954x_probe(struct device_d *dev)
 
 	i2c_set_clientdata(client, data);
 
+	gpio = of_get_named_gpio(dev->device_node, "reset-gpios", 0);
+	if (gpio_is_valid(gpio))
+		gpio_direction_output(gpio, 1);
+
 	/* Read the mux register at addr to verify
 	 * that the mux is in fact present.
 	 */
-- 
2.5.5




More information about the barebox mailing list