[PATCH 08/12] mpc5121: Added I2C support.
Grant Likely
grant.likely at secretlab.ca
Thu May 7 07:01:38 EST 2009
On Wed, May 6, 2009 at 2:15 PM, Wolfgang Denk <wd at denx.de> wrote:
> From: Piotr Ziecik <kosmo at semihalf.com>
>
> - Enabled I2C interrupts on MPC5121.
> - Updated Kconfig for i2c-mpc driver.
I think this workaround belongs in the driver itself.
g.
>
> Signed-off-by: Piotr Ziecik <kosmo at semihalf.com>
> Signed-off-by: Wolfgang Denk <wd at denx.de>
> Cc: <linux-i2c at vger.kernel.org>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Cc: John Rigby <jcrigby at gmail.com>
> ---
> arch/powerpc/platforms/512x/mpc5121_ads.c | 2 ++
> arch/powerpc/platforms/512x/mpc512x.h | 1 +
> arch/powerpc/platforms/512x/mpc512x_shared.c | 24 ++++++++++++++++++++++++
> drivers/i2c/busses/Kconfig | 9 +++++----
> 4 files changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/512x/mpc5121_ads.c b/arch/powerpc/platforms/512x/mpc5121_ads.c
> index 441abc4..a8976b4 100644
> --- a/arch/powerpc/platforms/512x/mpc5121_ads.c
> +++ b/arch/powerpc/platforms/512x/mpc5121_ads.c
> @@ -42,6 +42,8 @@ static void __init mpc5121_ads_setup_arch(void)
> for_each_compatible_node(np, "pci", "fsl,mpc5121-pci")
> mpc83xx_add_bridge(np);
> #endif
> +
> + mpc512x_init_i2c();
> }
>
> static void __init mpc5121_ads_init_IRQ(void)
> diff --git a/arch/powerpc/platforms/512x/mpc512x.h b/arch/powerpc/platforms/512x/mpc512x.h
> index 9c03693..f4db8a7 100644
> --- a/arch/powerpc/platforms/512x/mpc512x.h
> +++ b/arch/powerpc/platforms/512x/mpc512x.h
> @@ -13,5 +13,6 @@
> #define __MPC512X_H__
> extern unsigned long mpc512x_find_ips_freq(struct device_node *node);
> extern void __init mpc512x_init_IRQ(void);
> +extern void __init mpc512x_init_i2c(void);
> void __init mpc512x_declare_of_platform_devices(void);
> #endif /* __MPC512X_H__ */
> diff --git a/arch/powerpc/platforms/512x/mpc512x_shared.c b/arch/powerpc/platforms/512x/mpc512x_shared.c
> index 7135d89..b776e45 100644
> --- a/arch/powerpc/platforms/512x/mpc512x_shared.c
> +++ b/arch/powerpc/platforms/512x/mpc512x_shared.c
> @@ -65,6 +65,30 @@ void __init mpc512x_init_IRQ(void)
> ipic_set_default_priority();
> }
>
> +void __init mpc512x_init_i2c(void)
> +{
> + struct device_node *np;
> + void __iomem *i2cctl;
> +
> + /* Enable I2C interrupts */
> + np = of_find_compatible_node(NULL, NULL, "fsl,mpc5121-i2c-ctrl");
> + if (np) {
> + i2cctl = of_iomap(np, 0);
> + if (i2cctl) {
> + /*
> + * Set interrupt enable bits:
> + * - I2C-0: bit 24,
> + * - I2C-1: bit 26,
> + * - I2C-2: bit 28.
> + */
> + out_be32(i2cctl, 0x15000000);
> + iounmap(i2cctl);
> + }
> +
> + of_node_put(np);
> + }
> +}
> +
> /*
> * Nodes to do bus probe on, soc and localbus
> */
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index a48c8ae..57ed637 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -391,13 +391,14 @@ config I2C_IXP2000
> instead.
>
> config I2C_MPC
> - tristate "MPC107/824x/85xx/52xx/86xx"
> + tristate "MPC107/824x/85xx/512x/52xx/86xx"
> depends on PPC32
> help
> If you say yes to this option, support will be included for the
> - built-in I2C interface on the MPC107/Tsi107/MPC8240/MPC8245 and
> - MPC85xx/MPC8641 family processors. The driver may also work on 52xx
> - family processors, though interrupts are known not to work.
> + built-in I2C interface on the MPC107/Tsi107/MPC8240/MPC8245,
> + MPC85xx/MPC8641 and MPC512x family processors. The driver may
> + also work on 52xx family processors, though interrupts are known
> + not to work.
>
> This driver can also be built as a module. If so, the module
> will be called i2c-mpc.
> --
> 1.6.0.6
>
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
More information about the Linuxppc-dev
mailing list