Skip to content

Commit

Permalink
i2c: Convert most new-style drivers to use module aliasing
Browse files Browse the repository at this point in the history
Based on earlier work by Jon Smirl and Jochen Friedrich.

Update most new-style i2c drivers to use standard module aliasing
instead of the old driver_name/type driver matching scheme. I've
left the video drivers apart (except for SoC camera drivers) as
they're a bit more diffcult to deal with, they'll have their own
patch later.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Jon Smirl <jonsmirl@gmail.com>
Cc: Jochen Friedrich <jochen@scram.de>
  • Loading branch information
Jean Delvare authored and Jean Delvare committed Apr 29, 2008
1 parent d2653e9 commit 3760f73
Showing 43 changed files with 211 additions and 247 deletions.
3 changes: 1 addition & 2 deletions arch/arm/mach-at91/board-csb337.c
Original file line number Diff line number Diff line change
@@ -79,8 +79,7 @@ static struct at91_udc_data __initdata csb337_udc_data = {

static struct i2c_board_info __initdata csb337_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds1307",
I2C_BOARD_INFO("ds1307", 0x68),
},
};

3 changes: 1 addition & 2 deletions arch/arm/mach-at91/board-dk.c
Original file line number Diff line number Diff line change
@@ -132,8 +132,7 @@ static struct i2c_board_info __initdata dk_i2c_devices[] = {
I2C_BOARD_INFO("x9429", 0x28),
},
{
I2C_BOARD_INFO("at24c", 0x50),
.type = "24c1024",
I2C_BOARD_INFO("24c1024", 0x50),
}
};

3 changes: 1 addition & 2 deletions arch/arm/mach-at91/board-eb9200.c
Original file line number Diff line number Diff line change
@@ -93,8 +93,7 @@ static struct at91_mmc_data __initdata eb9200_mmc_data = {

static struct i2c_board_info __initdata eb9200_i2c_devices[] = {
{
I2C_BOARD_INFO("at24c", 0x50),
.type = "24c512",
I2C_BOARD_INFO("24c512", 0x50),
},
};

3 changes: 1 addition & 2 deletions arch/arm/mach-iop32x/em7210.c
Original file line number Diff line number Diff line change
@@ -50,8 +50,7 @@ static struct sys_timer em7210_timer = {
*/
static struct i2c_board_info __initdata em7210_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-rs5c372", 0x32),
.type = "rs5c372a",
I2C_BOARD_INFO("rs5c372a", 0x32),
},
};

4 changes: 1 addition & 3 deletions arch/arm/mach-iop32x/glantank.c
Original file line number Diff line number Diff line change
@@ -176,12 +176,10 @@ static struct f75375s_platform_data glantank_f75375s = {

static struct i2c_board_info __initdata glantank_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-rs5c372", 0x32),
.type = "rs5c372a",
I2C_BOARD_INFO("rs5c372a", 0x32),
},
{
I2C_BOARD_INFO("f75375", 0x2e),
.type = "f75375",
.platform_data = &glantank_f75375s,
},
};
4 changes: 1 addition & 3 deletions arch/arm/mach-iop32x/n2100.c
Original file line number Diff line number Diff line change
@@ -208,12 +208,10 @@ static struct f75375s_platform_data n2100_f75375s = {

static struct i2c_board_info __initdata n2100_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-rs5c372", 0x32),
.type = "rs5c372b",
I2C_BOARD_INFO("rs5c372b", 0x32),
},
{
I2C_BOARD_INFO("f75375", 0x2e),
.type = "f75375",
.platform_data = &n2100_f75375s,
},
};
2 changes: 1 addition & 1 deletion arch/arm/mach-ixp4xx/dsmg600-setup.c
Original file line number Diff line number Diff line change
@@ -65,7 +65,7 @@ static struct platform_device dsmg600_i2c_gpio = {

static struct i2c_board_info __initdata dsmg600_i2c_board_info [] = {
{
I2C_BOARD_INFO("rtc-pcf8563", 0x51),
I2C_BOARD_INFO("pcf8563", 0x51),
},
};

2 changes: 1 addition & 1 deletion arch/arm/mach-ixp4xx/nas100d-setup.c
Original file line number Diff line number Diff line change
@@ -54,7 +54,7 @@ static struct platform_device nas100d_flash = {

static struct i2c_board_info __initdata nas100d_i2c_board_info [] = {
{
I2C_BOARD_INFO("rtc-pcf8563", 0x51),
I2C_BOARD_INFO("pcf8563", 0x51),
},
};

2 changes: 1 addition & 1 deletion arch/arm/mach-ixp4xx/nslu2-setup.c
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ static struct i2c_gpio_platform_data nslu2_i2c_gpio_data = {

static struct i2c_board_info __initdata nslu2_i2c_board_info [] = {
{
I2C_BOARD_INFO("rtc-x1205", 0x6f),
I2C_BOARD_INFO("x1205", 0x6f),
},
};

2 changes: 0 additions & 2 deletions arch/arm/mach-omap1/board-h2.c
Original file line number Diff line number Diff line change
@@ -351,11 +351,9 @@ static void __init h2_init_smc91x(void)
static struct i2c_board_info __initdata h2_i2c_board_info[] = {
{
I2C_BOARD_INFO("tps65010", 0x48),
.type = "tps65010",
.irq = OMAP_GPIO_IRQ(58),
}, {
I2C_BOARD_INFO("isp1301_omap", 0x2d),
.type = "isp1301_omap",
.irq = OMAP_GPIO_IRQ(2),
},
};
3 changes: 1 addition & 2 deletions arch/arm/mach-omap1/board-h3.c
Original file line number Diff line number Diff line change
@@ -473,8 +473,7 @@ static struct omap_board_config_kernel h3_config[] __initdata = {

static struct i2c_board_info __initdata h3_i2c_board_info[] = {
{
I2C_BOARD_INFO("tps65010", 0x48),
.type = "tps65013",
I2C_BOARD_INFO("tps65013", 0x48),
/* .irq = OMAP_GPIO_IRQ(??), */
},
};
1 change: 0 additions & 1 deletion arch/arm/mach-omap1/board-osk.c
Original file line number Diff line number Diff line change
@@ -254,7 +254,6 @@ static struct tps65010_board tps_board = {
static struct i2c_board_info __initdata osk_i2c_board_info[] = {
{
I2C_BOARD_INFO("tps65010", 0x48),
.type = "tps65010",
.irq = OMAP_GPIO_IRQ(OMAP_MPUIO(1)),
.platform_data = &tps_board,

4 changes: 1 addition & 3 deletions arch/arm/mach-orion5x/db88f5281-setup.c
Original file line number Diff line number Diff line change
@@ -292,9 +292,7 @@ static struct mv643xx_eth_platform_data db88f5281_eth_data = {
* RTC DS1339 on I2C bus
****************************************************************************/
static struct i2c_board_info __initdata db88f5281_i2c_rtc = {
.driver_name = "rtc-ds1307",
.type = "ds1339",
.addr = 0x68,
I2C_BOARD_INFO("ds1339", 0x68),
};

/*****************************************************************************
7 changes: 2 additions & 5 deletions arch/arm/mach-orion5x/dns323-setup.c
Original file line number Diff line number Diff line change
@@ -220,19 +220,16 @@ static struct platform_device *dns323_plat_devices[] __initdata = {
static struct i2c_board_info __initdata dns323_i2c_devices[] = {
{
I2C_BOARD_INFO("g760a", 0x3e),
.type = "g760a",
},
#if 0
/* this entry requires the new-style driver model lm75 driver,
* for the meantime "insmod lm75.ko force_lm75=0,0x48" is needed */
{
I2C_BOARD_INFO("lm75", 0x48),
.type = "g751",
I2C_BOARD_INFO("g751", 0x48),
},
#endif
{
I2C_BOARD_INFO("rtc-m41t80", 0x68),
.type = "m41t80",
I2C_BOARD_INFO("m41t80", 0x68),
}
};

4 changes: 1 addition & 3 deletions arch/arm/mach-orion5x/kurobox_pro-setup.c
Original file line number Diff line number Diff line change
@@ -162,9 +162,7 @@ static struct mv643xx_eth_platform_data kurobox_pro_eth_data = {
* RTC 5C372a on I2C bus
****************************************************************************/
static struct i2c_board_info __initdata kurobox_pro_i2c_rtc = {
.driver_name = "rtc-rs5c372",
.type = "rs5c372a",
.addr = 0x32,
I2C_BOARD_INFO("rs5c372a", 0x32),
};

/*****************************************************************************
4 changes: 1 addition & 3 deletions arch/arm/mach-orion5x/rd88f5182-setup.c
Original file line number Diff line number Diff line change
@@ -224,9 +224,7 @@ static struct mv643xx_eth_platform_data rd88f5182_eth_data = {
* RTC DS1338 on I2C bus
****************************************************************************/
static struct i2c_board_info __initdata rd88f5182_i2c_rtc = {
.driver_name = "rtc-ds1307",
.type = "ds1338",
.addr = 0x68,
I2C_BOARD_INFO("ds1338", 0x68),
};

/*****************************************************************************
3 changes: 1 addition & 2 deletions arch/arm/mach-orion5x/ts209-setup.c
Original file line number Diff line number Diff line change
@@ -276,8 +276,7 @@ static void __init ts209_find_mac_addr(void)
#define TS209_RTC_GPIO 3

static struct i2c_board_info __initdata qnap_ts209_i2c_rtc = {
.driver_name = "rtc-s35390a",
.addr = 0x30,
I2C_BOARD_INFO("s35390a", 0x30),
.irq = 0,
};

5 changes: 1 addition & 4 deletions arch/arm/mach-pxa/pcm990-baseboard.c
Original file line number Diff line number Diff line change
@@ -320,16 +320,13 @@ static struct soc_camera_link iclink[] = {
static struct i2c_board_info __initdata pcm990_i2c_devices[] = {
{
/* Must initialize before the camera(s) */
I2C_BOARD_INFO("pca953x", 0x41),
.type = "pca9536",
I2C_BOARD_INFO("pca9536", 0x41),
.platform_data = &pca9536_data,
}, {
I2C_BOARD_INFO("mt9v022", 0x48),
.type = "mt9v022",
.platform_data = &iclink[0], /* With extender */
}, {
I2C_BOARD_INFO("mt9m001", 0x5d),
.type = "mt9m001",
.platform_data = &iclink[0], /* With extender */
},
};
3 changes: 0 additions & 3 deletions arch/blackfin/mach-bf533/boards/stamp.c
Original file line number Diff line number Diff line change
@@ -499,20 +499,17 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
{
I2C_BOARD_INFO("ad7142_joystick", 0x2C),
.type = "ad7142_joystick",
.irq = 39,
},
#endif
#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
{
I2C_BOARD_INFO("pcf8574_lcd", 0x22),
.type = "pcf8574_lcd",
},
#endif
#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
{
I2C_BOARD_INFO("pcf8574_keypad", 0x27),
.type = "pcf8574_keypad",
.irq = 39,
},
#endif
3 changes: 0 additions & 3 deletions arch/blackfin/mach-bf537/boards/stamp.c
Original file line number Diff line number Diff line change
@@ -751,20 +751,17 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
#if defined(CONFIG_JOYSTICK_AD7142) || defined(CONFIG_JOYSTICK_AD7142_MODULE)
{
I2C_BOARD_INFO("ad7142_joystick", 0x2C),
.type = "ad7142_joystick",
.irq = 55,
},
#endif
#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
{
I2C_BOARD_INFO("pcf8574_lcd", 0x22),
.type = "pcf8574_lcd",
},
#endif
#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
{
I2C_BOARD_INFO("pcf8574_keypad", 0x27),
.type = "pcf8574_keypad",
.irq = 72,
},
#endif
2 changes: 0 additions & 2 deletions arch/blackfin/mach-bf548/boards/ezkit.c
Original file line number Diff line number Diff line change
@@ -641,13 +641,11 @@ static struct i2c_board_info __initdata bfin_i2c_board_info1[] = {
#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
{
I2C_BOARD_INFO("pcf8574_lcd", 0x22),
.type = "pcf8574_lcd",
},
#endif
#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
{
I2C_BOARD_INFO("pcf8574_keypad", 0x27),
.type = "pcf8574_keypad",
.irq = 212,
},
#endif
27 changes: 12 additions & 15 deletions arch/powerpc/sysdev/fsl_soc.c
Original file line number Diff line number Diff line change
@@ -418,22 +418,21 @@ arch_initcall(gfar_of_init);
#include <linux/i2c.h>
struct i2c_driver_device {
char *of_device;
char *i2c_driver;
char *i2c_type;
};

static struct i2c_driver_device i2c_devices[] __initdata = {
{"ricoh,rs5c372a", "rtc-rs5c372", "rs5c372a",},
{"ricoh,rs5c372b", "rtc-rs5c372", "rs5c372b",},
{"ricoh,rv5c386", "rtc-rs5c372", "rv5c386",},
{"ricoh,rv5c387a", "rtc-rs5c372", "rv5c387a",},
{"dallas,ds1307", "rtc-ds1307", "ds1307",},
{"dallas,ds1337", "rtc-ds1307", "ds1337",},
{"dallas,ds1338", "rtc-ds1307", "ds1338",},
{"dallas,ds1339", "rtc-ds1307", "ds1339",},
{"dallas,ds1340", "rtc-ds1307", "ds1340",},
{"stm,m41t00", "rtc-ds1307", "m41t00"},
{"dallas,ds1374", "rtc-ds1374", "rtc-ds1374",},
{"ricoh,rs5c372a", "rs5c372a"},
{"ricoh,rs5c372b", "rs5c372b"},
{"ricoh,rv5c386", "rv5c386"},
{"ricoh,rv5c387a", "rv5c387a"},
{"dallas,ds1307", "ds1307"},
{"dallas,ds1337", "ds1337"},
{"dallas,ds1338", "ds1338"},
{"dallas,ds1339", "ds1339"},
{"dallas,ds1340", "ds1340"},
{"stm,m41t00", "m41t00"},
{"dallas,ds1374", "rtc-ds1374"},
};

static int __init of_find_i2c_driver(struct device_node *node,
@@ -444,9 +443,7 @@ static int __init of_find_i2c_driver(struct device_node *node,
for (i = 0; i < ARRAY_SIZE(i2c_devices); i++) {
if (!of_device_is_compatible(node, i2c_devices[i].of_device))
continue;
if (strlcpy(info->driver_name, i2c_devices[i].i2c_driver,
KOBJ_NAME_LEN) >= KOBJ_NAME_LEN ||
strlcpy(info->type, i2c_devices[i].i2c_type,
if (strlcpy(info->type, i2c_devices[i].i2c_type,
I2C_NAME_SIZE) >= I2C_NAME_SIZE)
return -ENOMEM;
return 0;
3 changes: 1 addition & 2 deletions arch/sh/boards/renesas/migor/setup.c
Original file line number Diff line number Diff line change
@@ -199,8 +199,7 @@ static struct platform_device *migor_devices[] __initdata = {

static struct i2c_board_info __initdata migor_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-rs5c372", 0x32),
.type = "rs5c372b",
I2C_BOARD_INFO("rs5c372b", 0x32),
},
{
I2C_BOARD_INFO("migor_ts", 0x51),
3 changes: 1 addition & 2 deletions arch/sh/boards/renesas/r7780rp/setup.c
Original file line number Diff line number Diff line change
@@ -199,8 +199,7 @@ static struct platform_device smbus_device = {

static struct i2c_board_info __initdata highlander_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-rs5c372", 0x32),
.type = "r2025sd",
I2C_BOARD_INFO("r2025sd", 0x32),
},
};

23 changes: 5 additions & 18 deletions drivers/gpio/pca953x.c
Original file line number Diff line number Diff line change
@@ -23,21 +23,17 @@
#define PCA953X_INVERT 2
#define PCA953X_DIRECTION 3

/* This is temporary - in 2.6.26 i2c_driver_data should replace it. */
struct pca953x_desc {
char name[I2C_NAME_SIZE];
unsigned long driver_data;
};

static const struct pca953x_desc pca953x_descs[] = {
static const struct i2c_device_id pca953x_id[] = {
{ "pca9534", 8, },
{ "pca9535", 16, },
{ "pca9536", 4, },
{ "pca9537", 4, },
{ "pca9538", 8, },
{ "pca9539", 16, },
/* REVISIT several pca955x parts should work here too */
{ }
};
MODULE_DEVICE_TABLE(i2c, pca953x_id);

struct pca953x_chip {
unsigned gpio_start;
@@ -193,26 +189,16 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)
}

static int __devinit pca953x_probe(struct i2c_client *client,
const struct i2c_device_id *did)
const struct i2c_device_id *id)
{
struct pca953x_platform_data *pdata;
struct pca953x_chip *chip;
int ret, i;
const struct pca953x_desc *id = NULL;

pdata = client->dev.platform_data;
if (pdata == NULL)
return -ENODEV;

/* this loop vanishes when we get i2c_device_id */
for (i = 0; i < ARRAY_SIZE(pca953x_descs); i++)
if (!strcmp(pca953x_descs[i].name, client->name)) {
id = pca953x_descs + i;
break;
}
if (!id)
return -ENODEV;

chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL);
if (chip == NULL)
return -ENOMEM;
@@ -292,6 +278,7 @@ static struct i2c_driver pca953x_driver = {
},
.probe = pca953x_probe,
.remove = pca953x_remove,
.id_table = pca953x_id,
};

static int __init pca953x_init(void)
Loading

0 comments on commit 3760f73

Please sign in to comment.