On Fri, Sep 25, 2026 at 12:26:28PM +0530, Aniket Limaye wrote:
> Add the "ti,tda54-i2c" compatible for Synopsys Advanced I2C Controller
> (DWC_i2c) present on TDA54 SoC. Compared to the existing
> "snps,designware-i2c" (DW_apb_i2c), it broadly differs in its register
> offsets and some bit fields, requiring changes to interrupt handling,
> timing handling, etc.
> 
> Unlike DW_apb_i2c, this IP has no COMP_PARAM_1 register to autodetect
> the FIFO depth from, so add snps,tx-fifo-depth and
> snps,rx-fifo-depth as required properties.
> 
> Signed-off-by: Aniket Limaye <[email protected]>
> 
> ---
> 
> Changes in v2:
> - Rename snps,dwc-i2c to ti,tda54-i2c
> - Link to v1: 
> https://lore.kernel.org/r/[email protected]/
> ---
>  .../bindings/i2c/snps,designware-i2c.yaml          | 33 
> ++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml 
> b/Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml
> index 467bdcbb8538..80a9376d6de7 100644
> --- a/Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml
> +++ b/Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml
> @@ -21,12 +21,23 @@ allOf:
>        properties:
>          reg:
>            maxItems: 1
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: ti,tda54-i2c
> +    then:
> +      required:
> +        - snps,tx-fifo-depth
> +        - snps,rx-fifo-depth
>  
>  properties:
>    compatible:
>      oneOf:
>        - description: Generic Synopsys DesignWare I2C controller
>          const: snps,designware-i2c
> +      - description: TI TDA54 SoC I2C controller (Synopsys DWC_i2c IP)
> +        const: ti,tda54-i2c
>        - description: Renesas RZ/N1D I2C controller
>          items:
>            - const: renesas,r9a06g032-i2c  # RZ/N1D
> @@ -121,6 +132,18 @@ properties:
>        low period of SCL line.
>      type: boolean
>  
> +  snps,tx-fifo-depth:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The depth of the hardware TX FIFO. Required on the ti,tda54-i2c
> +      variant, where fifo depth cannot be autodetected.

Why is the compatible not sufficient to get this information from?
Does it vary across controllers on the same device?

> +
> +  snps,rx-fifo-depth:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description:
> +      The depth of the hardware RX FIFO. Required on the ti,tda54-i2c
> +      variant, where fifo depth cannot be autodetected.
> +
>  unevaluatedProperties: false
>  
>  required:
> @@ -172,4 +195,14 @@ examples:
>        interrupts = <8>;
>        clocks = <&ahb_clk>;
>      };
> +  - |
> +    i2c@53b00000 {
> +      compatible = "ti,tda54-i2c";
> +      reg = <0x53b00000 0x1000>;
> +      interrupts = <166>;
> +      clocks = <&sysclk>;
> +      clock-frequency = <100000>;
> +      snps,tx-fifo-depth = <32>;
> +      snps,rx-fifo-depth = <32>;
> +    };
>  ...
> 
> -- 
> 2.53.0
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to