Re: [PATCH v3 1/3] dt-bindings: i2c: dw: Add ti,tda54-i2c compatible
From: Conor Dooley
Date: Fri Sep 25 2026 - 12:49:04 EST
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 <a-limaye@xxxxxx>
>
> ---
>
> Changes in v2:
> - Rename snps,dwc-i2c to ti,tda54-i2c
> - Link to v1: https://lore.kernel.org/r/20260919-tda54-upstream-i2c-v1-1-b0b9f77be18b@xxxxxx/
> ---
> .../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