Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f23d4911 authored by Eric Miao's avatar Eric Miao Committed by Eric Miao
Browse files

[ARM] pxa: add platform device ID table to pxa i2c driver



Signed-off-by: default avatarEric Miao <eric.miao@marvell.com>
parent 9fa7eb28
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ static struct resource pxa3xx_resources_i2c_power[] = {
};

struct platform_device pxa3xx_device_i2c_power = {
	.name		= "pxa2xx-i2c",
	.name		= "pxa3xx-pwri2c",
	.id		= 1,
	.resource	= pxa3xx_resources_i2c_power,
	.num_resources	= ARRAY_SIZE(pxa3xx_resources_i2c_power),
+18 −2
Original line number Diff line number Diff line
@@ -34,11 +34,25 @@
#include <linux/err.h>
#include <linux/clk.h>

#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <mach/i2c.h>

/*
 * I2C register offsets will be shifted 0 or 1 bit left, depending on
 * different SoCs
 */
#define REG_SHIFT_0	(0 << 0)
#define REG_SHIFT_1	(1 << 0)
#define REG_SHIFT(d)	((d) & 0x1)

static const struct platform_device_id i2c_pxa_id_table[] = {
	{ "pxa2xx-i2c",		REG_SHIFT_1 },
	{ "pxa3xx-pwri2c",	REG_SHIFT_0 },
	{ },
};
MODULE_DEVICE_TABLE(platform, i2c_pxa_id_table);

/*
 * I2C registers and bit definitions
 */
@@ -985,6 +999,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
	struct pxa_i2c *i2c;
	struct resource *res;
	struct i2c_pxa_platform_data *plat = dev->dev.platform_data;
	struct platform_device_id *id = platform_get_device_id(dev);
	int ret;
	int irq;

@@ -1028,7 +1043,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
		ret = -EIO;
		goto eremap;
	}
	i2c->reg_shift = (cpu_is_pxa3xx() && (dev->id == 1)) ? 0 : 1;
	i2c->reg_shift = REG_SHIFT(id->driver_data);

	i2c->iobase = res->start;
	i2c->iosize = res_len(res);
@@ -1150,6 +1165,7 @@ static struct platform_driver i2c_pxa_driver = {
		.name	= "pxa2xx-i2c",
		.owner	= THIS_MODULE,
	},
	.id_table	= i2c_pxa_id_table,
};

static int __init i2c_adap_pxa_init(void)