[PATCH 1/3] dt-bindings: i2c: dw: Add DWC_i2c compatible
From: Aniket Limaye
Date: Sat Sep 19 2026 - 05:08:00 EST
Add the "snps,dwc-i2c" compatible for Synopsys Advanced I2C Controller
referred as DWC_i2c. 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>
---
.../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..f56272a45096 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: snps,dwc-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: Synopsys Advanced I2C/SMBus/PMBus Controller
+ const: snps,dwc-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 snps,dwc-i2c IP
+ 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 snps,dwc-i2c IP
+ variant, where fifo depth cannot be autodetected.
+
unevaluatedProperties: false
required:
@@ -172,4 +195,14 @@ examples:
interrupts = <8>;
clocks = <&ahb_clk>;
};
+ - |
+ i2c@53b00000 {
+ compatible = "snps,dwc-i2c";
+ reg = <0x53b00000 0x1000>;
+ interrupts = <166>;
+ clocks = <&sysclk>;
+ clock-frequency = <100000>;
+ snps,tx-fifo-depth = <32>;
+ snps,rx-fifo-depth = <32>;
+ };
...
--
2.53.0