[U-Boot] arm, i2c: added support for the TWSI I2C Interface

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sat Jul 18 12:55:38 CEST 2009


On 10:01 Thu 16 Jul     , Heiko Schocher wrote:
> added support for the Hardware I2C TWSI Interface on
> kirkwood SOCs, based on the Linux driver, without IRQ
> support.
> 
> Tested on a ARM926EJS (CPU Core Version FEROCEON_88FR131
> SOC Family: KIRKWOOD, KW88F6281) based suen3 board
> 
> Signed-off-by: Heiko Schocher <hs at denx.de>
could apply the following CONFIG name convention cleanup before please
> ---
>  drivers/i2c/Makefile      |    1 +
>  drivers/i2c/mv64xxx-i2c.c |  452 +++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 453 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/i2c/mv64xxx-i2c.c
> 
> diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile
> index ef32f13..ce30111 100644
> --- a/drivers/i2c/Makefile
> +++ b/drivers/i2c/Makefile
> @@ -33,6 +33,7 @@ COBJS-$(CONFIG_DRIVER_OMAP1510_I2C) += omap1510_i2c.o
>  COBJS-$(CONFIG_DRIVER_OMAP24XX_I2C) += omap24xx_i2c.o
>  COBJS-$(CONFIG_DRIVER_OMAP34XX_I2C) += omap24xx_i2c.o
>  COBJS-$(CONFIG_DRIVER_S3C24X0_I2C) += s3c24x0_i2c.o
> +COBJS-$(CONFIG_I2C_MV64xxx) += mv64xxx-i2c.o
>  COBJS-$(CONFIG_S3C44B0_I2C) += s3c44b0_i2c.o
>  COBJS-$(CONFIG_SOFT_I2C) += soft_i2c.o
>  COBJS-$(CONFIG_TSI108_I2C) += tsi108_i2c.o
> diff --git a/drivers/i2c/mv64xxx-i2c.c b/drivers/i2c/mv64xxx-i2c.c
> new file mode 100644
> index 0000000..6ba2782
> --- /dev/null
> +++ b/drivers/i2c/mv64xxx-i2c.c
> @@ -0,0 +1,452 @@
> +/*
> + * Driver for the i2c controller on the Marvell line of host bridges
> + * (e.g, gt642[46]0, mv643[46]0, mv644[46]0, and Orion SoC family).
> + *
> + * Based on:
> + * Author: Mark A. Greer <mgreer at mvista.com>
> + *
> + * 2005 (c) MontaVista, Software, Inc.  This file is licensed under
> + * the terms of the GNU General Public License version 2.  This program
> + * is licensed "as is" without any warranty of any kind, whether express
> + * or implied.
> + *
> + * ported from Linux to u-boot
> + * (C) Copyright 2009
> + * Heiko Schocher, DENX Software Engineering, hs at denx.de.
> + *
> + */
> +#include <common.h>
> +#include <i2c.h>
> +#include <asm/arch/kirkwood.h>
> +#include <asm/errno.h>
> +#include <asm/io.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static unsigned int i2c_bus_num __attribute__ ((section (".data"))) = 0;
> +#if defined(CONFIG_I2C_MUX)
> +static unsigned int i2c_bus_num_mux __attribute__ ((section ("data"))) = 0;
								.data
> +#endif
no need of put it in section .data on arm
> +
<snip>
> +
> +void
> +i2c_init(int speed, int slaveadd)
> +{
> +	mv64xxx_i2c_hw_init();
impossible to specify a speed?
or update it at runtime?
> +}
>
Best Regards,
J.


More information about the U-Boot mailing list