Skip to content

Commit

Permalink
Merge branch 'next-i2c' of git://aeryn.fluff.org.uk/bjdooks/linux
Browse files Browse the repository at this point in the history
* 'next-i2c' of git://aeryn.fluff.org.uk/bjdooks/linux:
  i2c-stu300: Make driver depend on MACH_U300
  i2c-s3c2410: use resource_size()
  i2c: Use resource_size macro
  i2c: ST DDC I2C U300 bus driver v3
  i2c-bfin-twi: pull in io.h for ioremap()
  • Loading branch information
torvalds committed Jun 17, 2009
2 parents 8d15b0e + 4eaad8a commit 65795ef
Show file tree
Hide file tree
Showing 15 changed files with 1,074 additions and 33 deletions.
13 changes: 13 additions & 0 deletions drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,19 @@ config I2C_SIMTEC
This driver can also be built as a module. If so, the module
will be called i2c-simtec.

config I2C_STU300
tristate "ST Microelectronics DDC I2C interface"
depends on MACH_U300
default y if MACH_U300
help
If you say yes to this option, support will be included for the
I2C interface from ST Microelectronics simply called "DDC I2C"
supporting both I2C and DDC, used in e.g. the U300 series
mobile platforms.

This driver can also be built as a module. If so, the module
will be called i2c-stu300.

config I2C_VERSATILE
tristate "ARM Versatile/Realview I2C bus support"
depends on ARCH_VERSATILE || ARCH_REALVIEW
Expand Down
1 change: 1 addition & 0 deletions drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ obj-$(CONFIG_I2C_S6000) += i2c-s6000.o
obj-$(CONFIG_I2C_SH7760) += i2c-sh7760.o
obj-$(CONFIG_I2C_SH_MOBILE) += i2c-sh_mobile.o
obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o
obj-$(CONFIG_I2C_STU300) += i2c-stu300.o
obj-$(CONFIG_I2C_VERSATILE) += i2c-versatile.o

# External I2C/SMBus adapter drivers
Expand Down
8 changes: 4 additions & 4 deletions drivers/i2c/busses/i2c-at91.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,10 @@ static int __devinit at91_i2c_probe(struct platform_device *pdev)
if (!res)
return -ENXIO;

if (!request_mem_region(res->start, res->end - res->start + 1, "at91_i2c"))
if (!request_mem_region(res->start, resource_size(res), "at91_i2c"))
return -EBUSY;

twi_base = ioremap(res->start, res->end - res->start + 1);
twi_base = ioremap(res->start, resource_size(res));
if (!twi_base) {
rc = -ENOMEM;
goto fail0;
Expand Down Expand Up @@ -252,7 +252,7 @@ static int __devinit at91_i2c_probe(struct platform_device *pdev)
fail1:
iounmap(twi_base);
fail0:
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));

return rc;
}
Expand All @@ -268,7 +268,7 @@ static int __devexit at91_i2c_remove(struct platform_device *pdev)

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
iounmap(twi_base);
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));

clk_disable(twi_clk); /* disable peripheral clock */
clk_put(twi_clk);
Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/i2c-au1550.c
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ i2c_au1550_probe(struct platform_device *pdev)
goto out;
}

priv->ioarea = request_mem_region(r->start, r->end - r->start + 1,
priv->ioarea = request_mem_region(r->start, resource_size(r),
pdev->name);
if (!priv->ioarea) {
ret = -EBUSY;
Expand Down
3 changes: 2 additions & 1 deletion drivers/i2c/busses/i2c-bfin-twi.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/i2c.h>
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/timer.h>
#include <linux/spinlock.h>
Expand Down Expand Up @@ -651,7 +652,7 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
goto out_error_get_res;
}

iface->regs_base = ioremap(res->start, res->end - res->start + 1);
iface->regs_base = ioremap(res->start, resource_size(res));
if (iface->regs_base == NULL) {
dev_err(&pdev->dev, "Cannot map IO\n");
rc = -ENXIO;
Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/i2c-highlander.c
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ static int __devinit highlander_i2c_probe(struct platform_device *pdev)
if (unlikely(!dev))
return -ENOMEM;

dev->base = ioremap_nocache(res->start, res->end - res->start + 1);
dev->base = ioremap_nocache(res->start, resource_size(res));
if (unlikely(!dev->base)) {
ret = -ENXIO;
goto err;
Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/i2c-mv64xxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ mv64xxx_i2c_map_regs(struct platform_device *pd,
if (!r)
return -ENODEV;

size = r->end - r->start + 1;
size = resource_size(r);

if (!request_mem_region(r->start, size, drv_data->adapter.name))
return -EBUSY;
Expand Down
8 changes: 4 additions & 4 deletions drivers/i2c/busses/i2c-ocores.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,14 +234,14 @@ static int __devinit ocores_i2c_probe(struct platform_device *pdev)
if (!i2c)
return -ENOMEM;

if (!request_mem_region(res->start, res->end - res->start + 1,
if (!request_mem_region(res->start, resource_size(res),
pdev->name)) {
dev_err(&pdev->dev, "Memory region busy\n");
ret = -EBUSY;
goto request_mem_failed;
}

i2c->base = ioremap(res->start, res->end - res->start + 1);
i2c->base = ioremap(res->start, resource_size(res));
if (!i2c->base) {
dev_err(&pdev->dev, "Unable to map registers\n");
ret = -EIO;
Expand Down Expand Up @@ -283,7 +283,7 @@ static int __devinit ocores_i2c_probe(struct platform_device *pdev)
request_irq_failed:
iounmap(i2c->base);
map_failed:
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));
request_mem_failed:
kfree(i2c);

Expand Down Expand Up @@ -311,7 +311,7 @@ static int __devexit ocores_i2c_remove(struct platform_device* pdev)

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (res)
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));

kfree(i2c);

Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/i2c-omap.c
Original file line number Diff line number Diff line change
Expand Up @@ -828,7 +828,7 @@ omap_i2c_probe(struct platform_device *pdev)
dev->idle = 1;
dev->dev = &pdev->dev;
dev->irq = irq->start;
dev->base = ioremap(mem->start, mem->end - mem->start + 1);
dev->base = ioremap(mem->start, resource_size(mem));
if (!dev->base) {
r = -ENOMEM;
goto err_free_mem;
Expand Down
10 changes: 4 additions & 6 deletions drivers/i2c/busses/i2c-pca-platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@
#include <asm/irq.h>
#include <asm/io.h>

#define res_len(r) ((r)->end - (r)->start + 1)

struct i2c_pca_pf_data {
void __iomem *reg_base;
int irq; /* if 0, use polling */
Expand Down Expand Up @@ -148,7 +146,7 @@ static int __devinit i2c_pca_pf_probe(struct platform_device *pdev)
goto e_print;
}

if (!request_mem_region(res->start, res_len(res), res->name)) {
if (!request_mem_region(res->start, resource_size(res), res->name)) {
ret = -ENOMEM;
goto e_print;
}
Expand All @@ -161,13 +159,13 @@ static int __devinit i2c_pca_pf_probe(struct platform_device *pdev)

init_waitqueue_head(&i2c->wait);

i2c->reg_base = ioremap(res->start, res_len(res));
i2c->reg_base = ioremap(res->start, resource_size(res));
if (!i2c->reg_base) {
ret = -ENOMEM;
goto e_remap;
}
i2c->io_base = res->start;
i2c->io_size = res_len(res);
i2c->io_size = resource_size(res);
i2c->irq = irq;

i2c->adap.nr = pdev->id >= 0 ? pdev->id : 0;
Expand Down Expand Up @@ -250,7 +248,7 @@ static int __devinit i2c_pca_pf_probe(struct platform_device *pdev)
e_remap:
kfree(i2c);
e_alloc:
release_mem_region(res->start, res_len(res));
release_mem_region(res->start, resource_size(res));
e_print:
printk(KERN_ERR "Registering PCA9564/PCA9665 FAILED! (%d)\n", ret);
return ret;
Expand Down
8 changes: 4 additions & 4 deletions drivers/i2c/busses/i2c-pmcmsp.c
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ static int __devinit pmcmsptwi_probe(struct platform_device *pldev)
}

/* reserve the memory region */
if (!request_mem_region(res->start, res->end - res->start + 1,
if (!request_mem_region(res->start, resource_size(res),
pldev->name)) {
dev_err(&pldev->dev,
"Unable to get memory/io address region 0x%08x\n",
Expand All @@ -294,7 +294,7 @@ static int __devinit pmcmsptwi_probe(struct platform_device *pldev)

/* remap the memory */
pmcmsptwi_data.iobase = ioremap_nocache(res->start,
res->end - res->start + 1);
resource_size(res));
if (!pmcmsptwi_data.iobase) {
dev_err(&pldev->dev,
"Unable to ioremap address 0x%08x\n", res->start);
Expand Down Expand Up @@ -360,7 +360,7 @@ static int __devinit pmcmsptwi_probe(struct platform_device *pldev)
iounmap(pmcmsptwi_data.iobase);

ret_unreserve:
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));

ret_err:
return rc;
Expand All @@ -385,7 +385,7 @@ static int __devexit pmcmsptwi_remove(struct platform_device *pldev)
iounmap(pmcmsptwi_data.iobase);

res = platform_get_resource(pldev, IORESOURCE_MEM, 0);
release_mem_region(res->start, res->end - res->start + 1);
release_mem_region(res->start, resource_size(res));

return 0;
}
Expand Down
9 changes: 4 additions & 5 deletions drivers/i2c/busses/i2c-pxa.c
Original file line number Diff line number Diff line change
Expand Up @@ -993,7 +993,6 @@ static const struct i2c_algorithm i2c_pxa_pio_algorithm = {
.functionality = i2c_pxa_functionality,
};

#define res_len(r) ((r)->end - (r)->start + 1)
static int i2c_pxa_probe(struct platform_device *dev)
{
struct pxa_i2c *i2c;
Expand All @@ -1008,7 +1007,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
if (res == NULL || irq < 0)
return -ENODEV;

if (!request_mem_region(res->start, res_len(res), res->name))
if (!request_mem_region(res->start, resource_size(res), res->name))
return -ENOMEM;

i2c = kzalloc(sizeof(struct pxa_i2c), GFP_KERNEL);
Expand Down Expand Up @@ -1038,15 +1037,15 @@ static int i2c_pxa_probe(struct platform_device *dev)
goto eclk;
}

i2c->reg_base = ioremap(res->start, res_len(res));
i2c->reg_base = ioremap(res->start, resource_size(res));
if (!i2c->reg_base) {
ret = -EIO;
goto eremap;
}
i2c->reg_shift = REG_SHIFT(id->driver_data);

i2c->iobase = res->start;
i2c->iosize = res_len(res);
i2c->iosize = resource_size(res);

i2c->irq = irq;

Expand Down Expand Up @@ -1110,7 +1109,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
eclk:
kfree(i2c);
emalloc:
release_mem_region(res->start, res_len(res));
release_mem_region(res->start, resource_size(res));
return ret;
}

Expand Down
4 changes: 2 additions & 2 deletions drivers/i2c/busses/i2c-s3c2410.c
Original file line number Diff line number Diff line change
Expand Up @@ -828,7 +828,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
goto err_clk;
}

i2c->ioarea = request_mem_region(res->start, (res->end-res->start)+1,
i2c->ioarea = request_mem_region(res->start, resource_size(res),
pdev->name);

if (i2c->ioarea == NULL) {
Expand All @@ -837,7 +837,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
goto err_clk;
}

i2c->regs = ioremap(res->start, (res->end-res->start)+1);
i2c->regs = ioremap(res->start, resource_size(res));

if (i2c->regs == NULL) {
dev_err(&pdev->dev, "cannot map IO\n");
Expand Down
Loading

0 comments on commit 65795ef

Please sign in to comment.