diff options
author | Magnus Damm <damm@opensource.se> | 2012-03-30 17:44:02 +0900 |
---|---|---|
committer | Wolfram Sang <w.sang@pengutronix.de> | 2012-05-12 14:28:12 +0200 |
commit | ad33707417e4fa3dd4b12f9ed912e2349a984026 (patch) | |
tree | 3757668b186a5490796c3e5fde349c2dd3189342 /drivers/i2c | |
parent | 26f8d43df75c79332f3b7b60cc1c748e2cad5753 (diff) | |
download | linux-stable-ad33707417e4fa3dd4b12f9ed912e2349a984026.tar.gz linux-stable-ad33707417e4fa3dd4b12f9ed912e2349a984026.tar.bz2 linux-stable-ad33707417e4fa3dd4b12f9ed912e2349a984026.zip |
i2c: sh_mobile: add device tree support
This patch enables DT support for the IIC driver
used on SH-based SoCs such as sh7722 and sh7724
among others as well as SH-Mobile SoCs such as
sh7367, sh7377, sh7372, sh73a0 and r8a7740.
Tested with out-of-tree DT support code on the
sh7372 Mackerel board.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-sh_mobile.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index 675c9692d148..8110ca45f342 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c @@ -27,6 +27,7 @@ #include <linux/platform_device.h> #include <linux/interrupt.h> #include <linux/i2c.h> +#include <linux/of_i2c.h> #include <linux/err.h> #include <linux/pm_runtime.h> #include <linux/clk.h> @@ -653,6 +654,7 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) adap->dev.parent = &dev->dev; adap->retries = 5; adap->nr = dev->id; + adap->dev.of_node = dev->dev.of_node; strlcpy(adap->name, dev->name, sizeof(adap->name)); @@ -667,6 +669,8 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) dev_info(&dev->dev, "I2C adapter %d with bus speed %lu Hz\n", adap->nr, pd->bus_speed); + + of_i2c_register_devices(adap); return 0; err_all: @@ -710,11 +714,18 @@ static const struct dev_pm_ops sh_mobile_i2c_dev_pm_ops = { .runtime_resume = sh_mobile_i2c_runtime_nop, }; +static const struct of_device_id sh_mobile_i2c_dt_ids[] __devinitconst = { + { .compatible = "renesas,rmobile-iic", }, + {}, +}; +MODULE_DEVICE_TABLE(of, sh_mobile_i2c_dt_ids); + static struct platform_driver sh_mobile_i2c_driver = { .driver = { .name = "i2c-sh_mobile", .owner = THIS_MODULE, .pm = &sh_mobile_i2c_dev_pm_ops, + .of_match_table = sh_mobile_i2c_dt_ids, }, .probe = sh_mobile_i2c_probe, .remove = sh_mobile_i2c_remove, |