Loading arch/arm/mach-pxa/devices.c +1 −1 Original line number Diff line number Diff line Loading @@ -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), Loading drivers/i2c/busses/i2c-pxa.c +18 −2 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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) Loading Loading
arch/arm/mach-pxa/devices.c +1 −1 Original line number Diff line number Diff line Loading @@ -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), Loading
drivers/i2c/busses/i2c-pxa.c +18 −2 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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) Loading