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. + + 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
