1
0
Fork 0

i2c: Rename last mux driver to standard pattern

Update the MAINTAINERS entry and all other references accordingly.

Based on an original patch by Wolfram Sang.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Peter Korsgaard <peter.korsgaard@barco.com>

[wsa: fixed merge conflict due to rework in i2c_add_mux_adapter()]

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
hifive-unleashed-5.1
Jean Delvare 2012-04-28 15:32:06 +02:00 committed by Wolfram Sang
parent 353f56b5f3
commit e7065e20d9
6 changed files with 39 additions and 40 deletions

View File

@ -1,11 +1,11 @@
Kernel driver gpio-i2cmux Kernel driver i2c-gpio-mux
Author: Peter Korsgaard <peter.korsgaard@barco.com> Author: Peter Korsgaard <peter.korsgaard@barco.com>
Description Description
----------- -----------
gpio-i2cmux is an i2c mux driver providing access to I2C bus segments 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. from a master I2C bus and a hardware MUX controlled through GPIO pins.
E.G.: E.G.:
@ -26,16 +26,16 @@ according to the settings of the GPIO pins 1..N.
Usage Usage
----- -----
gpio-i2cmux uses the platform bus, so you need to provide a struct i2c-gpio-mux uses the platform bus, so you need to provide a struct
platform_device with the platform_data pointing to a struct platform_device with the platform_data pointing to a struct
gpio_i2cmux_platform_data with the I2C adapter number of the master 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 bus, the number of bus segments to create and the GPIO pins used
to control it. See include/linux/gpio-i2cmux.h for details. to control it. See include/linux/i2c-gpio-mux.h for details.
E.G. something like this for a MUX providing 4 bus segments E.G. something like this for a MUX providing 4 bus segments
controlled through 3 GPIO pins: controlled through 3 GPIO pins:
#include <linux/gpio-i2cmux.h> #include <linux/i2c-gpio-mux.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
static const unsigned myboard_gpiomux_gpios[] = { static const unsigned myboard_gpiomux_gpios[] = {
@ -57,7 +57,7 @@ static struct gpio_i2cmux_platform_data myboard_i2cmux_data = {
}; };
static struct platform_device myboard_i2cmux = { static struct platform_device myboard_i2cmux = {
.name = "gpio-i2cmux", .name = "i2c-gpio-mux",
.id = 0, .id = 0,
.dev = { .dev = {
.platform_data = &myboard_i2cmux_data, .platform_data = &myboard_i2cmux_data,

View File

@ -2937,9 +2937,9 @@ GENERIC GPIO I2C MULTIPLEXER DRIVER
M: Peter Korsgaard <peter.korsgaard@barco.com> M: Peter Korsgaard <peter.korsgaard@barco.com>
L: linux-i2c@vger.kernel.org L: linux-i2c@vger.kernel.org
S: Supported S: Supported
F: drivers/i2c/muxes/gpio-i2cmux.c F: drivers/i2c/muxes/i2c-mux-gpio.c
F: include/linux/gpio-i2cmux.h F: include/linux/i2c-mux-gpio.h
F: Documentation/i2c/muxes/gpio-i2cmux F: Documentation/i2c/muxes/i2c-mux-gpio
GENERIC HDLC (WAN) DRIVERS GENERIC HDLC (WAN) DRIVERS
M: Krzysztof Halasa <khc@pm.waw.pl> M: Krzysztof Halasa <khc@pm.waw.pl>

View File

@ -15,7 +15,7 @@ config I2C_MUX_GPIO
through GPIO pins. through GPIO pins.
This driver can also be built as a module. If so, the module 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 config I2C_MUX_PCA9541
tristate "NXP PCA9541 I2C Master Selector" tristate "NXP PCA9541 I2C Master Selector"

View File

@ -1,7 +1,7 @@
# #
# Makefile for multiplexer I2C chip drivers. # 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_PCA9541) += i2c-mux-pca9541.o
obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o

View File

@ -10,7 +10,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c-mux.h> #include <linux/i2c-mux.h>
#include <linux/gpio-i2cmux.h> #include <linux/i2c-mux-gpio.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
@ -20,10 +20,10 @@
struct gpiomux { struct gpiomux {
struct i2c_adapter *parent; struct i2c_adapter *parent;
struct i2c_adapter **adap; /* child busses */ 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; int i;
@ -31,28 +31,28 @@ static void gpiomux_set(const struct gpiomux *mux, unsigned val)
gpio_set_value(mux->data.gpios[i], val & (1 << i)); 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; struct gpiomux *mux = data;
gpiomux_set(mux, mux->data.values[chan]); i2c_mux_gpio_set(mux, mux->data.values[chan]);
return 0; 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; struct gpiomux *mux = data;
gpiomux_set(mux, mux->data.idle); i2c_mux_gpio_set(mux, mux->data.idle);
return 0; 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 gpiomux *mux;
struct gpio_i2cmux_platform_data *pdata; struct i2c_mux_gpio_platform_data *pdata;
struct i2c_adapter *parent; struct i2c_adapter *parent;
int (*deselect) (struct i2c_adapter *, void *, u32); int (*deselect) (struct i2c_adapter *, void *, u32);
unsigned initial_state; unsigned initial_state;
@ -86,16 +86,16 @@ static int __devinit gpiomux_probe(struct platform_device *pdev)
goto alloc_failed2; goto alloc_failed2;
} }
if (pdata->idle != GPIO_I2CMUX_NO_IDLE) { if (pdata->idle != I2C_MUX_GPIO_NO_IDLE) {
initial_state = pdata->idle; initial_state = pdata->idle;
deselect = gpiomux_deselect; deselect = i2c_mux_gpio_deselect;
} else { } else {
initial_state = pdata->values[0]; initial_state = pdata->values[0];
deselect = NULL; deselect = NULL;
} }
for (i = 0; i < pdata->n_gpios; i++) { for (i = 0; i < pdata->n_gpios; i++) {
ret = gpio_request(pdata->gpios[i], "gpio-i2cmux"); ret = gpio_request(pdata->gpios[i], "i2c-mux-gpio");
if (ret) if (ret)
goto err_request_gpio; goto err_request_gpio;
gpio_direction_output(pdata->gpios[i], gpio_direction_output(pdata->gpios[i],
@ -105,9 +105,8 @@ static int __devinit gpiomux_probe(struct platform_device *pdev)
for (i = 0; i < pdata->n_values; i++) { for (i = 0; i < pdata->n_values; i++) {
u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0; u32 nr = pdata->base_nr ? (pdata->base_nr + i) : 0;
mux->adap[i] = i2c_add_mux_adapter(parent, &pdev->dev, mux, mux->adap[i] = i2c_add_mux_adapter(parent, &pdev->dev, mux, nr, i,
nr, i, i2c_mux_gpio_select, deselect);
gpiomux_select, deselect);
if (!mux->adap[i]) { if (!mux->adap[i]) {
ret = -ENODEV; ret = -ENODEV;
dev_err(&pdev->dev, "Failed to add adapter %d\n", i); dev_err(&pdev->dev, "Failed to add adapter %d\n", i);
@ -138,7 +137,7 @@ alloc_failed:
return ret; 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); struct gpiomux *mux = platform_get_drvdata(pdev);
int i; int i;
@ -157,18 +156,18 @@ static int __devexit gpiomux_remove(struct platform_device *pdev)
return 0; return 0;
} }
static struct platform_driver gpiomux_driver = { static struct platform_driver i2c_mux_gpio_driver = {
.probe = gpiomux_probe, .probe = i2c_mux_gpio_probe,
.remove = __devexit_p(gpiomux_remove), .remove = __devexit_p(i2c_mux_gpio_remove),
.driver = { .driver = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "gpio-i2cmux", .name = "i2c-mux-gpio",
}, },
}; };
module_platform_driver(gpiomux_driver); module_platform_driver(i2c_mux_gpio_driver);
MODULE_DESCRIPTION("GPIO-based I2C multiplexer driver"); MODULE_DESCRIPTION("GPIO-based I2C multiplexer driver");
MODULE_AUTHOR("Peter Korsgaard <peter.korsgaard@barco.com>"); MODULE_AUTHOR("Peter Korsgaard <peter.korsgaard@barco.com>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:gpio-i2cmux"); MODULE_ALIAS("platform:i2c-mux-gpio");

View File

@ -1,5 +1,5 @@
/* /*
* gpio-i2cmux interface to platform code * i2c-mux-gpio interface to platform code
* *
* Peter Korsgaard <peter.korsgaard@barco.com> * Peter Korsgaard <peter.korsgaard@barco.com>
* *
@ -8,14 +8,14 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#ifndef _LINUX_GPIO_I2CMUX_H #ifndef _LINUX_I2C_MUX_GPIO_H
#define _LINUX_GPIO_I2CMUX_H #define _LINUX_I2C_MUX_GPIO_H
/* MUX has no specific idle mode */ /* 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 gpio-i2cmux * struct i2c_mux_gpio_platform_data - Platform-dependent data for i2c-mux-gpio
* @parent: Parent I2C bus adapter number * @parent: Parent I2C bus adapter number
* @base_nr: Base I2C bus number to number adapters from or zero for dynamic * @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 * @values: Array of bitmasks of GPIO settings (low/high) for each
@ -25,7 +25,7 @@
* @n_gpios: Number of GPIOs 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 * @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 parent;
int base_nr; int base_nr;
const unsigned *values; const unsigned *values;
@ -35,4 +35,4 @@ struct gpio_i2cmux_platform_data {
unsigned idle; unsigned idle;
}; };
#endif /* _LINUX_GPIO_I2CMUX_H */ #endif /* _LINUX_I2C_MUX_GPIO_H */