Commit 814a3225 authored by Théo Lebrun's avatar Théo Lebrun Committed by Wolfram Sang
Browse files

i2c: nomadik: support Mobileye EyeQ6H I2C controller



Add EyeQ6H support to the nmk-i2c AMBA driver. It shares the same quirk
as EyeQ5: the memory bus only supports 32-bit accesses. Avoid writeb()
and readb() by reusing the same `priv->has_32b_bus` flag.

It does NOT need to write speed-mode specific value into a register;
therefore it does not depend on the mobileye,olb DT property.

Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarThéo Lebrun <theo.lebrun@bootlin.com>
Signed-off-by: default avatarAndi Shyti <andi.shyti@kernel.org>
Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
parent a0d15cc4
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -6,10 +6,10 @@
 * I2C master mode controller driver, used in Nomadik 8815
 * and Ux500 platforms.
 *
 * The Mobileye EyeQ5 platform is also supported; it uses
 * The Mobileye EyeQ5 and EyeQ6H platforms are also supported; they use
 * the same Ux500/DB8500 IP block with two quirks:
 *  - The memory bus only supports 32-bit accesses.
 *  - A register must be configured for the I2C speed mode;
 *  - (only EyeQ5) A register must be configured for the I2C speed mode;
 *    it is located in a shared register region called OLB.
 *
 * Author: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
@@ -1075,6 +1075,10 @@ static const struct of_device_id nmk_i2c_eyeq_match_table[] = {
		.compatible = "mobileye,eyeq5-i2c",
		.data = (void *)(NMK_I2C_EYEQ_FLAG_32B_BUS | NMK_I2C_EYEQ_FLAG_IS_EYEQ5),
	},
	{
		.compatible = "mobileye,eyeq6h-i2c",
		.data = (void *)NMK_I2C_EYEQ_FLAG_32B_BUS,
	},
};

static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id)