Re: [PATCH 3/5] i2c: designware: add MSCC Ocelot support

From: Rob Herring
Date: Fri Jul 20 2018 - 13:57:02 EST


On Tue, Jul 17, 2018 at 01:48:35PM +0200, Alexandre Belloni wrote:
> The Microsemi Ocelot I2C controller is a designware IP. It also has a
> second set of registers to allow tweaking SDA hold time and spike
> filtering.
>
> Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
> ---
> .../bindings/i2c/i2c-designware.txt | 5 ++++-
> drivers/i2c/busses/i2c-designware-core.h | 1 +
> drivers/i2c/busses/i2c-designware-platdrv.c | 20 +++++++++++++++++++
> 3 files changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-designware.txt b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> index fbb0a6d8b964..7af4176da4af 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> +++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
> @@ -2,7 +2,7 @@
>
> Required properties :
>
> - - compatible : should be "snps,designware-i2c"
> + - compatible : should be "snps,designware-i2c" or "mscc,ocelot-i2c"

Sounds like the registers are optional (or could be initialized by
firmware), so shouldn't 'snps,designware-i2c' be a fallback compatible?

> - reg : Offset and length of the register set for the device
> - interrupts : <IRQ> where IRQ is the interrupt number.
>
> @@ -11,6 +11,9 @@ Recommended properties :
> - clock-frequency : desired I2C bus clock frequency in Hz.
>
> Optional properties :
> + - reg : for "mscc,ocelot-i2c", a second register set to configure the SDA hold
> + time, named ICPU_CFG:TWI_DELAY in the datasheet.
> +
> - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
> This option is only supported in hardware blocks version 1.11a or newer.

Perhaps this needs an update too? It sounds like Microsemi fixed this
problem on their own before version 1.11a of the IP block.

Rob