| From d2233c152d926d5c44485e0f93f82fecbfb7140e Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Mon, 3 Jun 2013 22:11:58 -0700 |
| Subject: ARM: shmobile: r8a7778: add support I2C driver |
| |
| Add a platform device for the r8a7778 I2C. |
| |
| Signed-off-by: Yusuke Goda <yusuke.goda.sx@renesas.com> |
| Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| (cherry picked from commit 46b9a092dacea4f30dbdfc58ca2c1ac4e97f6255) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| |
| Conflicts: |
| arch/arm/mach-shmobile/include/mach/r8a7778.h |
| --- |
| arch/arm/mach-shmobile/include/mach/r8a7778.h | 2 ++ |
| arch/arm/mach-shmobile/setup-r8a7778.c | 25 +++++++++++++++++++++++++ |
| 2 files changed, 27 insertions(+) |
| |
| diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h |
| index 1d4207cc..184c727c 100644 |
| --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h |
| +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h |
| @@ -26,6 +26,8 @@ extern void r8a7778_add_standard_devices(void); |
| extern void r8a7778_add_standard_devices_dt(void); |
| extern void r8a7778_add_ether_device(struct sh_eth_plat_data *pdata); |
| extern void r8a7778_add_usb_phy_device(struct rcar_phy_platform_data *pdata); |
| +extern void r8a7778_add_i2c_device(int id); |
| + |
| extern void r8a7778_init_late(void); |
| extern void r8a7778_init_delay(void); |
| extern void r8a7778_init_irq(void); |
| diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c |
| index 94211335..67dfea7e 100644 |
| --- a/arch/arm/mach-shmobile/setup-r8a7778.c |
| +++ b/arch/arm/mach-shmobile/setup-r8a7778.c |
| @@ -272,6 +272,31 @@ void __init r8a7778_sdhi_init(int id, |
| info, sizeof(*info)); |
| } |
| |
| +/* I2C */ |
| +static struct resource i2c_resources[] __initdata = { |
| + /* I2C0 */ |
| + DEFINE_RES_MEM(0xffc70000, 0x1000), |
| + DEFINE_RES_IRQ(gic_iid(0x63)), |
| + /* I2C1 */ |
| + DEFINE_RES_MEM(0xffc71000, 0x1000), |
| + DEFINE_RES_IRQ(gic_iid(0x6e)), |
| + /* I2C2 */ |
| + DEFINE_RES_MEM(0xffc72000, 0x1000), |
| + DEFINE_RES_IRQ(gic_iid(0x6c)), |
| + /* I2C3 */ |
| + DEFINE_RES_MEM(0xffc73000, 0x1000), |
| + DEFINE_RES_IRQ(gic_iid(0x6d)), |
| +}; |
| + |
| +void __init r8a7778_add_i2c_device(int id) |
| +{ |
| + BUG_ON(id < 0 || id > 3); |
| + |
| + platform_device_register_simple( |
| + "i2c-rcar", id, |
| + i2c_resources + (2 * id), 2); |
| +} |
| + |
| void __init r8a7778_add_standard_devices(void) |
| { |
| int i; |
| -- |
| 1.8.4.3.gca3854a |
| |