Re: [PATCH v2 01/11] dt-bindings: i2c: nomadik: add mobileye,eyeq5-i2c bindings and example

From: Rob Herring
Date: Fri Mar 01 2024 - 10:11:57 EST


On Thu, Feb 29, 2024 at 07:10:49PM +0100, Théo Lebrun wrote:
> Add EyeQ5 bindings to the existing Nomadik I2C dt-bindings. Add the
> EyeQ5-specific property behind a conditional. Add an example for this
> compatible.
>
> Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/i2c/st,nomadik-i2c.yaml | 48 ++++++++++++++++++++--
> 1 file changed, 44 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml b/Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
> index 16024415a4a7..2d9d5b276762 100644
> --- a/Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
> +++ b/Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
> @@ -14,9 +14,6 @@ description: The Nomadik I2C host controller began its life in the ST
> maintainers:
> - Linus Walleij <linus.walleij@xxxxxxxxxx>
>
> -allOf:
> - - $ref: /schemas/i2c/i2c-controller.yaml#
> -
> # Need a custom select here or 'arm,primecell' will match on lots of nodes
> select:
> properties:
> @@ -24,6 +21,7 @@ select:
> contains:
> enum:
> - st,nomadik-i2c
> + - mobileye,eyeq5-i2c
> required:
> - compatible
>
> @@ -39,6 +37,10 @@ properties:
> - const: stericsson,db8500-i2c
> - const: st,nomadik-i2c
> - const: arm,primecell
> + # The variant found on Mobileye EyeQ5

Kind of obvious from the compatible string, but maybe you are keeping
the existing style...

> + - items:
> + - const: mobileye,eyeq5-i2c
> + - const: arm,primecell
>
> reg:
> maxItems: 1
> @@ -55,7 +57,7 @@ properties:
> - items:
> - const: mclk
> - const: apb_pclk
> - # Clock name in DB8500
> + # Clock name in DB8500 or EyeQ5
> - items:
> - const: i2cclk
> - const: apb_pclk
> @@ -70,6 +72,16 @@ properties:
> minimum: 1
> maximum: 400000
>
> + mobileye,olb:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + items:
> + - items:
> + - description: Phandle to OLB system controller node.
> + - description: Platform-wide controller ID (integer starting from zero).

Rather than a made up ID, just store the shift value you ultimately
need.

These properties are fragile because they break if anything that's not
defined in DT changes whether that's register offset, bit offset,
bitfield size or values. Or also if there are additional fields to
access.

Rob