[PATCH v2] i2c: add Marvell 64xxx driver
Sebastian Hesselbarth
sebastian.hesselbarth at gmail.com
Thu Jul 17 02:33:29 PDT 2014
On 07/16/2014 11:25 PM, Antony Pavlov wrote:
> This driver is also used for Allwinner SoCs I2C controllers.
>
> Ported from linux-3.15.
>
> The most notable barebox driver version changes:
>
> * drop message offloading support;
> * add reg-io-width parameter to use driver with byte-oriented
> controller versions.
>
> Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
> ---
[...]
> diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
> new file mode 100644
> index 0000000..324796a
> --- /dev/null
> +++ b/drivers/i2c/busses/i2c-mv64xxx.c
> @@ -0,0 +1,687 @@
> +/*
> + * 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).
> + *
> + * This code was ported from linux-3.15 kernel by Antony Pavlov.
> + *
> + * 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.
> + */
> +#include <common.h>
> +#include <driver.h>
> +#include <init.h>
> +#include <of.h>
> +#include <malloc.h>
> +#include <types.h>
> +#include <xfuncs.h>
> +#include <clock.h>
> +#include <linux/clk.h>
> +#include <linux/err.h>
> +
> +#include <io.h>
> +#include <i2c/i2c.h>
> +#include <printk.h>
> +
> +#define MV64XXX_I2C_ADDR_ADDR(val) ((val & 0x7f) << 1)
> +#define MV64XXX_I2C_BAUD_DIV_N(val) (val & 0x7)
> +#define MV64XXX_I2C_BAUD_DIV_M(val) ((val & 0xf) << 3)
> +
> +#define MV64XXX_I2C_REG_CONTROL_ACK 0x00000004
> +#define MV64XXX_I2C_REG_CONTROL_IFLG 0x00000008
> +#define MV64XXX_I2C_REG_CONTROL_STOP 0x00000010
> +#define MV64XXX_I2C_REG_CONTROL_START 0x00000020
> +#define MV64XXX_I2C_REG_CONTROL_TWSIEN 0x00000040
> +#define MV64XXX_I2C_REG_CONTROL_INTEN 0x00000080
Antony,
I'll have a look at the driver itself later, but your patch is full
of superfluous tabs like above between '#define' and 'MV64XXX_foo'.
Isn't checkpatch.pl complaining about it? Anyway, no need to resend
before I have tested the driver itself.
Sebastian
More information about the barebox
mailing list