* [PATCH 1/2] i2c: Rename last mux driver to standard pattern
@ 2012-04-28 13:32 Jean Delvare
[not found] ` <20120428153206.00c1e226-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
0 siblings, 1 reply; 6+ messages in thread
From: Jean Delvare @ 2012-04-28 13:32 UTC (permalink / raw)
To: Linux I2C; +Cc: Peter Korsgaard, Wolfram Sang
Update the MAINTAINERS entry and all other references accordingly.
Based on an original patch by Wolfram Sang.
Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Acked-by: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
---
Peter, I assumed your ack still applied, please yell if not.
Changes since v1:
* Renamed header file and documentation file too.
* Updated MAINTAINERS.
* Updated references.
Documentation/i2c/muxes/gpio-i2cmux | 65 ------------
Documentation/i2c/muxes/i2c-mux-gpio | 65 ++++++++++++
MAINTAINERS | 6 -
drivers/i2c/muxes/Kconfig | 2
drivers/i2c/muxes/Makefile | 2
drivers/i2c/muxes/gpio-i2cmux.c | 173 ----------------------------------
drivers/i2c/muxes/i2c-mux-gpio.c | 173 ++++++++++++++++++++++++++++++++++
include/linux/gpio-i2cmux.h | 38 -------
include/linux/i2c-mux-gpio.h | 38 +++++++
9 files changed, 281 insertions(+), 281 deletions(-)
--- linux-3.4-rc3.orig/drivers/i2c/muxes/Kconfig 2012-04-27 16:23:40.000000000 +0200
+++ linux-3.4-rc3/drivers/i2c/muxes/Kconfig 2012-04-27 16:23:49.202679506 +0200
@@ -15,7 +15,7 @@ config I2C_MUX_GPIO
through GPIO pins.
This driver can also be built as a module. If so, the module
- will be called gpio-i2cmux.
+ will be called i2c-mux-gpio.
config I2C_MUX_PCA9541
tristate "NXP PCA9541 I2C Master Selector"
--- linux-3.4-rc3.orig/drivers/i2c/muxes/Makefile 2012-04-27 16:23:40.000000000 +0200
+++ linux-3.4-rc3/drivers/i2c/muxes/Makefile 2012-04-27 16:23:49.203679506 +0200
@@ -1,7 +1,7 @@
#
# Makefile for multiplexer I2C chip drivers.
-obj-$(CONFIG_I2C_MUX_GPIO) += gpio-i2cmux.o
+obj-$(CONFIG_I2C_MUX_GPIO) += i2c-mux-gpio.o
obj-$(CONFIG_I2C_MUX_PCA9541) += i2c-mux-pca9541.o
obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o
--- linux-3.4-rc3.orig/drivers/i2c/muxes/gpio-i2cmux.c 2012-04-27 16:23:40.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,173 +0,0 @@
-/*
- * I2C multiplexer using GPIO API
- *
- * Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
- *
- * 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.
- */
-
-#include <linux/i2c.h>
-#include <linux/i2c-mux.h>
-#include <linux/gpio-i2cmux.h>
-#include <linux/platform_device.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/slab.h>
-#include <linux/gpio.h>
-
-struct gpiomux {
- struct i2c_adapter *parent;
- struct i2c_adapter **adap; /* child busses */
- struct gpio_i2cmux_platform_data data;
-};
-
-static void gpiomux_set(const struct gpiomux *mux, unsigned val)
-{
- int i;
-
- for (i = 0; i < mux->data.n_gpios; i++)
- gpio_set_value(mux->data.gpios[i], val & (1 << i));
-}
-
-static int gpiomux_select(struct i2c_adapter *adap, void *data, u32 chan)
-{
- struct gpiomux *mux = data;
-
- gpiomux_set(mux, mux->data.values[chan]);
-
- return 0;
-}
-
-static int gpiomux_deselect(struct i2c_adapter *adap, void *data, u32 chan)
-{
- struct gpiomux *mux = data;
-
- gpiomux_set(mux, mux->data.idle);
-
- return 0;
-}
-
-static int __devinit gpiomux_probe(struct platform_device *pdev)
-{
- struct gpiomux *mux;
- struct gpio_i2cmux_platform_data *pdata;
- struct i2c_adapter *parent;
- int (*deselect) (struct i2c_adapter *, void *, u32);
- unsigned initial_state;
- int i, ret;
-
- pdata = pdev->dev.platform_data;
- if (!pdata) {
- dev_err(&pdev->dev, "Missing platform data\n");
- return -ENODEV;
- }
-
- parent = i2c_get_adapter(pdata->parent);
- if (!parent) {
- dev_err(&pdev->dev, "Parent adapter (%d) not found\n",
- pdata->parent);
- return -ENODEV;
- }
-
- mux = kzalloc(sizeof(*mux), GFP_KERNEL);
- if (!mux) {
- ret = -ENOMEM;
- goto alloc_failed;
- }
-
- mux->parent = parent;
- mux->data = *pdata;
- mux->adap = kzalloc(sizeof(struct i2c_adapter *) * pdata->n_values,
- GFP_KERNEL);
- if (!mux->adap) {
- ret = -ENOMEM;
- goto alloc_failed2;
- }
-
- if (pdata->idle != GPIO_I2CMUX_NO_IDLE) {
- initial_state = pdata->idle;
- deselect = gpiomux_deselect;
- } else {
- initial_state = pdata->values[0];
- deselect = NULL;
- }
-
- for (i = 0; i < pdata->n_gpios; i++) {
- ret = gpio_request(pdata->gpios[i], "gpio-i2cmux");
- if (ret)
- goto err_request_gpio;
- gpio_direction_output(pdata->gpios[i],
- initial_state & (1 << i));
- }
-
- for (i = 0; i < pdata->n_values; i++) {
- u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0;
-
- mux->adap[i] = i2c_add_mux_adapter(parent, mux, nr, i,
- gpiomux_select, deselect);
- if (!mux->adap[i]) {
- ret = -ENODEV;
- dev_err(&pdev->dev, "Failed to add adapter %d\n", i);
- goto add_adapter_failed;
- }
- }
-
- dev_info(&pdev->dev, "%d port mux on %s adapter\n",
- pdata->n_values, parent->name);
-
- platform_set_drvdata(pdev, mux);
-
- return 0;
-
-add_adapter_failed:
- for (; i > 0; i--)
- i2c_del_mux_adapter(mux->adap[i - 1]);
- i = pdata->n_gpios;
-err_request_gpio:
- for (; i > 0; i--)
- gpio_free(pdata->gpios[i - 1]);
- kfree(mux->adap);
-alloc_failed2:
- kfree(mux);
-alloc_failed:
- i2c_put_adapter(parent);
-
- return ret;
-}
-
-static int __devexit gpiomux_remove(struct platform_device *pdev)
-{
- struct gpiomux *mux = platform_get_drvdata(pdev);
- int i;
-
- for (i = 0; i < mux->data.n_values; i++)
- i2c_del_mux_adapter(mux->adap[i]);
-
- for (i = 0; i < mux->data.n_gpios; i++)
- gpio_free(mux->data.gpios[i]);
-
- platform_set_drvdata(pdev, NULL);
- i2c_put_adapter(mux->parent);
- kfree(mux->adap);
- kfree(mux);
-
- return 0;
-}
-
-static struct platform_driver gpiomux_driver = {
- .probe = gpiomux_probe,
- .remove = __devexit_p(gpiomux_remove),
- .driver = {
- .owner = THIS_MODULE,
- .name = "gpio-i2cmux",
- },
-};
-
-module_platform_driver(gpiomux_driver);
-
-MODULE_DESCRIPTION("GPIO-based I2C multiplexer driver");
-MODULE_AUTHOR("Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:gpio-i2cmux");
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.4-rc3/drivers/i2c/muxes/i2c-mux-gpio.c 2012-04-27 16:23:49.222679507 +0200
@@ -0,0 +1,173 @@
+/*
+ * I2C multiplexer using GPIO API
+ *
+ * Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
+ *
+ * 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.
+ */
+
+#include <linux/i2c.h>
+#include <linux/i2c-mux.h>
+#include <linux/i2c-mux-gpio.h>
+#include <linux/platform_device.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/gpio.h>
+
+struct gpiomux {
+ struct i2c_adapter *parent;
+ struct i2c_adapter **adap; /* child busses */
+ struct gpio_i2cmux_platform_data data;
+};
+
+static void gpiomux_set(const struct gpiomux *mux, unsigned val)
+{
+ int i;
+
+ for (i = 0; i < mux->data.n_gpios; i++)
+ gpio_set_value(mux->data.gpios[i], val & (1 << i));
+}
+
+static int gpiomux_select(struct i2c_adapter *adap, void *data, u32 chan)
+{
+ struct gpiomux *mux = data;
+
+ gpiomux_set(mux, mux->data.values[chan]);
+
+ return 0;
+}
+
+static int gpiomux_deselect(struct i2c_adapter *adap, void *data, u32 chan)
+{
+ struct gpiomux *mux = data;
+
+ gpiomux_set(mux, mux->data.idle);
+
+ return 0;
+}
+
+static int __devinit gpiomux_probe(struct platform_device *pdev)
+{
+ struct gpiomux *mux;
+ struct gpio_i2cmux_platform_data *pdata;
+ struct i2c_adapter *parent;
+ int (*deselect) (struct i2c_adapter *, void *, u32);
+ unsigned initial_state;
+ int i, ret;
+
+ pdata = pdev->dev.platform_data;
+ if (!pdata) {
+ dev_err(&pdev->dev, "Missing platform data\n");
+ return -ENODEV;
+ }
+
+ parent = i2c_get_adapter(pdata->parent);
+ if (!parent) {
+ dev_err(&pdev->dev, "Parent adapter (%d) not found\n",
+ pdata->parent);
+ return -ENODEV;
+ }
+
+ mux = kzalloc(sizeof(*mux), GFP_KERNEL);
+ if (!mux) {
+ ret = -ENOMEM;
+ goto alloc_failed;
+ }
+
+ mux->parent = parent;
+ mux->data = *pdata;
+ mux->adap = kzalloc(sizeof(struct i2c_adapter *) * pdata->n_values,
+ GFP_KERNEL);
+ if (!mux->adap) {
+ ret = -ENOMEM;
+ goto alloc_failed2;
+ }
+
+ if (pdata->idle != GPIO_I2CMUX_NO_IDLE) {
+ initial_state = pdata->idle;
+ deselect = gpiomux_deselect;
+ } else {
+ initial_state = pdata->values[0];
+ deselect = NULL;
+ }
+
+ for (i = 0; i < pdata->n_gpios; i++) {
+ ret = gpio_request(pdata->gpios[i], "i2c-mux-gpio");
+ if (ret)
+ goto err_request_gpio;
+ gpio_direction_output(pdata->gpios[i],
+ initial_state & (1 << i));
+ }
+
+ for (i = 0; i < pdata->n_values; i++) {
+ u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0;
+
+ mux->adap[i] = i2c_add_mux_adapter(parent, mux, nr, i,
+ gpiomux_select, deselect);
+ if (!mux->adap[i]) {
+ ret = -ENODEV;
+ dev_err(&pdev->dev, "Failed to add adapter %d\n", i);
+ goto add_adapter_failed;
+ }
+ }
+
+ dev_info(&pdev->dev, "%d port mux on %s adapter\n",
+ pdata->n_values, parent->name);
+
+ platform_set_drvdata(pdev, mux);
+
+ return 0;
+
+add_adapter_failed:
+ for (; i > 0; i--)
+ i2c_del_mux_adapter(mux->adap[i - 1]);
+ i = pdata->n_gpios;
+err_request_gpio:
+ for (; i > 0; i--)
+ gpio_free(pdata->gpios[i - 1]);
+ kfree(mux->adap);
+alloc_failed2:
+ kfree(mux);
+alloc_failed:
+ i2c_put_adapter(parent);
+
+ return ret;
+}
+
+static int __devexit gpiomux_remove(struct platform_device *pdev)
+{
+ struct gpiomux *mux = platform_get_drvdata(pdev);
+ int i;
+
+ for (i = 0; i < mux->data.n_values; i++)
+ i2c_del_mux_adapter(mux->adap[i]);
+
+ for (i = 0; i < mux->data.n_gpios; i++)
+ gpio_free(mux->data.gpios[i]);
+
+ platform_set_drvdata(pdev, NULL);
+ i2c_put_adapter(mux->parent);
+ kfree(mux->adap);
+ kfree(mux);
+
+ return 0;
+}
+
+static struct platform_driver gpiomux_driver = {
+ .probe = gpiomux_probe,
+ .remove = __devexit_p(gpiomux_remove),
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "i2c-mux-gpio",
+ },
+};
+
+module_platform_driver(gpiomux_driver);
+
+MODULE_DESCRIPTION("GPIO-based I2C multiplexer driver");
+MODULE_AUTHOR("Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:i2c-mux-gpio");
--- linux-3.4-rc3.orig/include/linux/gpio-i2cmux.h 2012-04-27 16:23:40.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,38 +0,0 @@
-/*
- * gpio-i2cmux interface to platform code
- *
- * Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
- *
- * 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 _LINUX_GPIO_I2CMUX_H
-#define _LINUX_GPIO_I2CMUX_H
-
-/* MUX has no specific idle mode */
-#define GPIO_I2CMUX_NO_IDLE ((unsigned)-1)
-
-/**
- * struct gpio_i2cmux_platform_data - Platform-dependent data for gpio-i2cmux
- * @parent: Parent I2C bus adapter number
- * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
- * @values: Array of bitmasks of GPIO settings (low/high) for each
- * position
- * @n_values: Number of multiplexer positions (busses to instantiate)
- * @gpios: Array of GPIO numbers used to control MUX
- * @n_gpios: Number of GPIOs used to control MUX
- * @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used
- */
-struct gpio_i2cmux_platform_data {
- int parent;
- int base_nr;
- const unsigned *values;
- int n_values;
- const unsigned *gpios;
- int n_gpios;
- unsigned idle;
-};
-
-#endif /* _LINUX_GPIO_I2CMUX_H */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.4-rc3/include/linux/i2c-mux-gpio.h 2012-04-27 16:24:39.183682038 +0200
@@ -0,0 +1,38 @@
+/*
+ * i2c-mux-gpio interface to platform code
+ *
+ * Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
+ *
+ * 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 _LINUX_I2C_MUX_GPIO_H
+#define _LINUX_I2C_MUX_GPIO_H
+
+/* MUX has no specific idle mode */
+#define GPIO_I2CMUX_NO_IDLE ((unsigned)-1)
+
+/**
+ * struct gpio_i2cmux_platform_data - Platform-dependent data for i2c-mux-gpio
+ * @parent: Parent I2C bus adapter number
+ * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
+ * @values: Array of bitmasks of GPIO settings (low/high) for each
+ * position
+ * @n_values: Number of multiplexer positions (busses to instantiate)
+ * @gpios: Array of GPIO numbers used to control MUX
+ * @n_gpios: Number of GPIOs used to control MUX
+ * @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used
+ */
+struct gpio_i2cmux_platform_data {
+ int parent;
+ int base_nr;
+ const unsigned *values;
+ int n_values;
+ const unsigned *gpios;
+ int n_gpios;
+ unsigned idle;
+};
+
+#endif /* _LINUX_I2C_MUX_GPIO_H */
--- linux-3.4-rc3.orig/Documentation/i2c/muxes/gpio-i2cmux 2012-04-27 16:23:40.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,65 +0,0 @@
-Kernel driver gpio-i2cmux
-
-Author: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
-
-Description
------------
-
-gpio-i2cmux is an i2c mux driver providing access to I2C bus segments
-from a master I2C bus and a hardware MUX controlled through GPIO pins.
-
-E.G.:
-
- ---------- ---------- Bus segment 1 - - - - -
- | | SCL/SDA | |-------------- | |
- | |------------| |
- | | | | Bus segment 2 | |
- | Linux | GPIO 1..N | MUX |--------------- Devices
- | |------------| | | |
- | | | | Bus segment M
- | | | |---------------| |
- ---------- ---------- - - - - -
-
-SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
-according to the settings of the GPIO pins 1..N.
-
-Usage
------
-
-gpio-i2cmux uses the platform bus, so you need to provide a struct
-platform_device with the platform_data pointing to a struct
-gpio_i2cmux_platform_data with the I2C adapter number of the master
-bus, the number of bus segments to create and the GPIO pins used
-to control it. See include/linux/gpio-i2cmux.h for details.
-
-E.G. something like this for a MUX providing 4 bus segments
-controlled through 3 GPIO pins:
-
-#include <linux/gpio-i2cmux.h>
-#include <linux/platform_device.h>
-
-static const unsigned myboard_gpiomux_gpios[] = {
- AT91_PIN_PC26, AT91_PIN_PC25, AT91_PIN_PC24
-};
-
-static const unsigned myboard_gpiomux_values[] = {
- 0, 1, 2, 3
-};
-
-static struct gpio_i2cmux_platform_data myboard_i2cmux_data = {
- .parent = 1,
- .base_nr = 2, /* optional */
- .values = myboard_gpiomux_values,
- .n_values = ARRAY_SIZE(myboard_gpiomux_values),
- .gpios = myboard_gpiomux_gpios,
- .n_gpios = ARRAY_SIZE(myboard_gpiomux_gpios),
- .idle = 4, /* optional */
-};
-
-static struct platform_device myboard_i2cmux = {
- .name = "gpio-i2cmux",
- .id = 0,
- .dev = {
- .platform_data = &myboard_i2cmux_data,
- },
-};
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.4-rc3/Documentation/i2c/muxes/i2c-mux-gpio 2012-04-27 16:23:49.229679507 +0200
@@ -0,0 +1,65 @@
+Kernel driver i2c-gpio-mux
+
+Author: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
+
+Description
+-----------
+
+i2c-gpio-mux is an i2c mux driver providing access to I2C bus segments
+from a master I2C bus and a hardware MUX controlled through GPIO pins.
+
+E.G.:
+
+ ---------- ---------- Bus segment 1 - - - - -
+ | | SCL/SDA | |-------------- | |
+ | |------------| |
+ | | | | Bus segment 2 | |
+ | Linux | GPIO 1..N | MUX |--------------- Devices
+ | |------------| | | |
+ | | | | Bus segment M
+ | | | |---------------| |
+ ---------- ---------- - - - - -
+
+SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
+according to the settings of the GPIO pins 1..N.
+
+Usage
+-----
+
+i2c-gpio-mux uses the platform bus, so you need to provide a struct
+platform_device with the platform_data pointing to a struct
+gpio_i2cmux_platform_data with the I2C adapter number of the master
+bus, the number of bus segments to create and the GPIO pins used
+to control it. See include/linux/i2c-gpio-mux.h for details.
+
+E.G. something like this for a MUX providing 4 bus segments
+controlled through 3 GPIO pins:
+
+#include <linux/i2c-gpio-mux.h>
+#include <linux/platform_device.h>
+
+static const unsigned myboard_gpiomux_gpios[] = {
+ AT91_PIN_PC26, AT91_PIN_PC25, AT91_PIN_PC24
+};
+
+static const unsigned myboard_gpiomux_values[] = {
+ 0, 1, 2, 3
+};
+
+static struct gpio_i2cmux_platform_data myboard_i2cmux_data = {
+ .parent = 1,
+ .base_nr = 2, /* optional */
+ .values = myboard_gpiomux_values,
+ .n_values = ARRAY_SIZE(myboard_gpiomux_values),
+ .gpios = myboard_gpiomux_gpios,
+ .n_gpios = ARRAY_SIZE(myboard_gpiomux_gpios),
+ .idle = 4, /* optional */
+};
+
+static struct platform_device myboard_i2cmux = {
+ .name = "i2c-gpio-mux",
+ .id = 0,
+ .dev = {
+ .platform_data = &myboard_i2cmux_data,
+ },
+};
--- linux-3.4-rc3.orig/MAINTAINERS 2012-04-27 16:23:40.000000000 +0200
+++ linux-3.4-rc3/MAINTAINERS 2012-04-27 16:23:49.231679508 +0200
@@ -2940,9 +2940,9 @@ GENERIC GPIO I2C MULTIPLEXER DRIVER
M: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
L: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
S: Supported
-F: drivers/i2c/muxes/gpio-i2cmux.c
-F: include/linux/gpio-i2cmux.h
-F: Documentation/i2c/muxes/gpio-i2cmux
+F: drivers/i2c/muxes/i2c-mux-gpio.c
+F: include/linux/i2c-mux-gpio.h
+F: Documentation/i2c/muxes/i2c-mux-gpio
GENERIC HDLC (WAN) DRIVERS
M: Krzysztof Halasa <khc-9GfyWEdoJtJmR6Xm/wNWPw@public.gmane.org>
--
Jean Delvare
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] i2c-mux-gpio: Rename platform data structure
[not found] ` <20120428153206.00c1e226-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
@ 2012-04-28 13:35 ` Jean Delvare
[not found] ` <20120428153551.64d4d200-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-28 14:11 ` [PATCH 1/2] i2c: Rename last mux driver to standard pattern Peter Korsgaard
1 sibling, 1 reply; 6+ messages in thread
From: Jean Delvare @ 2012-04-28 13:35 UTC (permalink / raw)
To: Linux I2C; +Cc: Peter Korsgaard, Wolfram Sang
Align the name of i2c-mux-gpio's data structure on the new driver name.
Also change one define and adjust function names, even if they aren't
part of the public interface, for consistency.
Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Cc: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
---
I made this a separate patch for easier testing/review/bisection.
Wolfram, feel free to merge into the first patch if you prefer a
single patch.
drivers/i2c/muxes/i2c-mux-gpio.c | 33 +++++++++++++++++----------------
include/linux/i2c-mux-gpio.h | 6 +++---
2 files changed, 20 insertions(+), 19 deletions(-)
--- linux-3.4-rc3.orig/drivers/i2c/muxes/i2c-mux-gpio.c 2012-04-27 16:23:49.000000000 +0200
+++ linux-3.4-rc3/drivers/i2c/muxes/i2c-mux-gpio.c 2012-04-27 16:33:48.511263516 +0200
@@ -20,10 +20,10 @@
struct gpiomux {
struct i2c_adapter *parent;
struct i2c_adapter **adap; /* child busses */
- struct gpio_i2cmux_platform_data data;
+ struct i2c_mux_gpio_platform_data data;
};
-static void gpiomux_set(const struct gpiomux *mux, unsigned val)
+static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val)
{
int i;
@@ -31,28 +31,28 @@ static void gpiomux_set(const struct gpi
gpio_set_value(mux->data.gpios[i], val & (1 << i));
}
-static int gpiomux_select(struct i2c_adapter *adap, void *data, u32 chan)
+static int i2c_mux_gpio_select(struct i2c_adapter *adap, void *data, u32 chan)
{
struct gpiomux *mux = data;
- gpiomux_set(mux, mux->data.values[chan]);
+ i2c_mux_gpio_set(mux, mux->data.values[chan]);
return 0;
}
-static int gpiomux_deselect(struct i2c_adapter *adap, void *data, u32 chan)
+static int i2c_mux_gpio_deselect(struct i2c_adapter *adap, void *data, u32 chan)
{
struct gpiomux *mux = data;
- gpiomux_set(mux, mux->data.idle);
+ i2c_mux_gpio_set(mux, mux->data.idle);
return 0;
}
-static int __devinit gpiomux_probe(struct platform_device *pdev)
+static int __devinit i2c_mux_gpio_probe(struct platform_device *pdev)
{
struct gpiomux *mux;
- struct gpio_i2cmux_platform_data *pdata;
+ struct i2c_mux_gpio_platform_data *pdata;
struct i2c_adapter *parent;
int (*deselect) (struct i2c_adapter *, void *, u32);
unsigned initial_state;
@@ -86,9 +86,9 @@ static int __devinit gpiomux_probe(struc
goto alloc_failed2;
}
- if (pdata->idle != GPIO_I2CMUX_NO_IDLE) {
+ if (pdata->idle != I2C_MUX_GPIO_NO_IDLE) {
initial_state = pdata->idle;
- deselect = gpiomux_deselect;
+ deselect = i2c_mux_gpio_deselect;
} else {
initial_state = pdata->values[0];
deselect = NULL;
@@ -106,7 +106,8 @@ static int __devinit gpiomux_probe(struc
u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0;
mux->adap[i] = i2c_add_mux_adapter(parent, mux, nr, i,
- gpiomux_select, deselect);
+ i2c_mux_gpio_select,
+ deselect);
if (!mux->adap[i]) {
ret = -ENODEV;
dev_err(&pdev->dev, "Failed to add adapter %d\n", i);
@@ -137,7 +138,7 @@ alloc_failed:
return ret;
}
-static int __devexit gpiomux_remove(struct platform_device *pdev)
+static int __devexit i2c_mux_gpio_remove(struct platform_device *pdev)
{
struct gpiomux *mux = platform_get_drvdata(pdev);
int i;
@@ -156,16 +157,16 @@ static int __devexit gpiomux_remove(stru
return 0;
}
-static struct platform_driver gpiomux_driver = {
- .probe = gpiomux_probe,
- .remove = __devexit_p(gpiomux_remove),
+static struct platform_driver i2c_mux_gpio_driver = {
+ .probe = i2c_mux_gpio_probe,
+ .remove = __devexit_p(i2c_mux_gpio_remove),
.driver = {
.owner = THIS_MODULE,
.name = "i2c-mux-gpio",
},
};
-module_platform_driver(gpiomux_driver);
+module_platform_driver(i2c_mux_gpio_driver);
MODULE_DESCRIPTION("GPIO-based I2C multiplexer driver");
MODULE_AUTHOR("Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>");
--- linux-3.4-rc3.orig/include/linux/i2c-mux-gpio.h 2012-04-27 16:24:39.000000000 +0200
+++ linux-3.4-rc3/include/linux/i2c-mux-gpio.h 2012-04-27 16:29:40.649551160 +0200
@@ -12,10 +12,10 @@
#define _LINUX_I2C_MUX_GPIO_H
/* MUX has no specific idle mode */
-#define GPIO_I2CMUX_NO_IDLE ((unsigned)-1)
+#define I2C_MUX_GPIO_NO_IDLE ((unsigned)-1)
/**
- * struct gpio_i2cmux_platform_data - Platform-dependent data for i2c-mux-gpio
+ * struct i2c_mux_gpio_platform_data - Platform-dependent data for i2c-mux-gpio
* @parent: Parent I2C bus adapter number
* @base_nr: Base I2C bus number to number adapters from or zero for dynamic
* @values: Array of bitmasks of GPIO settings (low/high) for each
@@ -25,7 +25,7 @@
* @n_gpios: Number of GPIOs used to control MUX
* @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used
*/
-struct gpio_i2cmux_platform_data {
+struct i2c_mux_gpio_platform_data {
int parent;
int base_nr;
const unsigned *values;
--
Jean Delvare
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] i2c: Rename last mux driver to standard pattern
[not found] ` <20120428153206.00c1e226-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-28 13:35 ` [PATCH 2/2] i2c-mux-gpio: Rename platform data structure Jean Delvare
@ 2012-04-28 14:11 ` Peter Korsgaard
[not found] ` <87lilghrow.fsf-1Ae4nN3xCbAluPl5bxqUMw@public.gmane.org>
1 sibling, 1 reply; 6+ messages in thread
From: Peter Korsgaard @ 2012-04-28 14:11 UTC (permalink / raw)
To: Jean Delvare; +Cc: Linux I2C, Wolfram Sang
>>>>> "JD" == Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> writes:
JD> Update the MAINTAINERS entry and all other references accordingly.
JD> Based on an original patch by Wolfram Sang.
JD> Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
JD> Acked-by: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
JD> Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
JD> ---
JD> Peter, I assumed your ack still applied, please yell if not.
It does, thanks.
JD> Changes since v1:
JD> * Renamed header file and documentation file too.
JD> * Updated MAINTAINERS.
JD> * Updated references.
JD> Documentation/i2c/muxes/gpio-i2cmux | 65 ------------
JD> Documentation/i2c/muxes/i2c-mux-gpio | 65 ++++++++++++
JD> MAINTAINERS | 6 -
JD> drivers/i2c/muxes/Kconfig | 2
JD> drivers/i2c/muxes/Makefile | 2
JD> drivers/i2c/muxes/gpio-i2cmux.c | 173 ----------------------------------
JD> drivers/i2c/muxes/i2c-mux-gpio.c | 173 ++++++++++++++++++++++++++++++++++
JD> include/linux/gpio-i2cmux.h | 38 -------
JD> include/linux/i2c-mux-gpio.h | 38 +++++++
git diff -M patches are a lot easier to read for this kind of change.
--
Bye, Peter Korsgaard
DISCLAIMER:
Unless indicated otherwise, the information contained in this message is privileged and confidential, and is intended only for the use of the addressee(s) named above and others who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message and/or attachments is strictly prohibited. The company accepts no liability for any damage caused by any virus transmitted by this email. Furthermore, the company does not warrant a proper and complete transmission of this information, nor does it accept liability for any delays. If you have received this message in error, please contact the sender and delete the message. Thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] i2c-mux-gpio: Rename platform data structure
[not found] ` <20120428153551.64d4d200-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
@ 2012-04-28 14:13 ` Peter Korsgaard
2012-05-03 9:32 ` Wolfram Sang
1 sibling, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2012-04-28 14:13 UTC (permalink / raw)
To: Jean Delvare; +Cc: Linux I2C, Wolfram Sang
>>>>> "JD" == Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> writes:
JD> Align the name of i2c-mux-gpio's data structure on the new driver name.
JD> Also change one define and adjust function names, even if they aren't
JD> part of the public interface, for consistency.
JD> Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
JD> Cc: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
JD> Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Acked-by: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
--
Bye, Peter Korsgaard
DISCLAIMER:
Unless indicated otherwise, the information contained in this message is privileged and confidential, and is intended only for the use of the addressee(s) named above and others who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message and/or attachments is strictly prohibited. The company accepts no liability for any damage caused by any virus transmitted by this email. Furthermore, the company does not warrant a proper and complete transmission of this information, nor does it accept liability for any delays. If you have received this message in error, please contact the sender and delete the message. Thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] i2c: Rename last mux driver to standard pattern
[not found] ` <87lilghrow.fsf-1Ae4nN3xCbAluPl5bxqUMw@public.gmane.org>
@ 2012-05-01 6:45 ` Jean Delvare
0 siblings, 0 replies; 6+ messages in thread
From: Jean Delvare @ 2012-05-01 6:45 UTC (permalink / raw)
To: Peter Korsgaard; +Cc: Linux I2C, Wolfram Sang
On Sat, 28 Apr 2012 16:11:27 +0200, Peter Korsgaard wrote:
> >>>>> "JD" == Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> writes:
> JD> Documentation/i2c/muxes/gpio-i2cmux | 65 ------------
> JD> Documentation/i2c/muxes/i2c-mux-gpio | 65 ++++++++++++
> JD> MAINTAINERS | 6 -
> JD> drivers/i2c/muxes/Kconfig | 2
> JD> drivers/i2c/muxes/Makefile | 2
> JD> drivers/i2c/muxes/gpio-i2cmux.c | 173 ----------------------------------
> JD> drivers/i2c/muxes/i2c-mux-gpio.c | 173 ++++++++++++++++++++++++++++++++++
> JD> include/linux/gpio-i2cmux.h | 38 -------
> JD> include/linux/i2c-mux-gpio.h | 38 +++++++
>
> git diff -M patches are a lot easier to read for this kind of change.
Sure, but I'm not using git, and I don't think GNU diff has the option.
--
Jean Delvare
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] i2c-mux-gpio: Rename platform data structure
[not found] ` <20120428153551.64d4d200-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-28 14:13 ` Peter Korsgaard
@ 2012-05-03 9:32 ` Wolfram Sang
1 sibling, 0 replies; 6+ messages in thread
From: Wolfram Sang @ 2012-05-03 9:32 UTC (permalink / raw)
To: Jean Delvare; +Cc: Linux I2C, Peter Korsgaard
[-- Attachment #1: Type: text/plain, Size: 956 bytes --]
On Sat, Apr 28, 2012 at 03:35:51PM +0200, Jean Delvare wrote:
> Align the name of i2c-mux-gpio's data structure on the new driver name.
> Also change one define and adjust function names, even if they aren't
> part of the public interface, for consistency.
>
> Signed-off-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
> Cc: Peter Korsgaard <peter.korsgaard-ob4gmnvZ1/cAvxtiuMwx3w@public.gmane.org>
> Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> ---
> I made this a separate patch for easier testing/review/bisection.
> Wolfram, feel free to merge into the first patch if you prefer a
> single patch.
Applied both, squashed them (was still readable IMO) and fixed it up
because of the recent i2c_add_mux_adapter() rework.
Thanks a lot!
--
Pengutronix e.K. | Wolfram Sang |
Industrial Linux Solutions | http://www.pengutronix.de/ |
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-05-03 9:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-28 13:32 [PATCH 1/2] i2c: Rename last mux driver to standard pattern Jean Delvare
[not found] ` <20120428153206.00c1e226-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-28 13:35 ` [PATCH 2/2] i2c-mux-gpio: Rename platform data structure Jean Delvare
[not found] ` <20120428153551.64d4d200-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2012-04-28 14:13 ` Peter Korsgaard
2012-05-03 9:32 ` Wolfram Sang
2012-04-28 14:11 ` [PATCH 1/2] i2c: Rename last mux driver to standard pattern Peter Korsgaard
[not found] ` <87lilghrow.fsf-1Ae4nN3xCbAluPl5bxqUMw@public.gmane.org>
2012-05-01 6:45 ` Jean Delvare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).