[PATCH 2/3] dt-bindings: i3c: Add Amlogic A9 I3C controller

Junyi Zhao via B4 Relay devnull+junyi.zhao.amlogic.com at kernel.org
Sun Oct 18 22:34:27 PDT 2026


From: Junyi Zhao <junyi.zhao at amlogic.com>

Add a devicetree binding schema for the A9 I3C controller.

The binding describes the controller instance and its bus-specific
properties required for driver probing.

Signed-off-by: Junyi Zhao <junyi.zhao at amlogic.com>
---
 .../devicetree/bindings/i3c/amlogic,i3c-a9.yaml    | 102 +++++++++++++++++++++
 1 file changed, 102 insertions(+)

diff --git a/Documentation/devicetree/bindings/i3c/amlogic,i3c-a9.yaml b/Documentation/devicetree/bindings/i3c/amlogic,i3c-a9.yaml
new file mode 100644
index 000000000..8e25122c6
--- /dev/null
+++ b/Documentation/devicetree/bindings/i3c/amlogic,i3c-a9.yaml
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2026 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i3c/amlogic,i3c-a9.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic A9 I3C master controller
+
+maintainers:
+  - Junyi Zhao <junyi.zhao at amlogic.com>
+
+description:
+  The Amlogic A9 SoC family embeds an I3C master controller based on the
+  Silvaco I3C Dual-Role Master IP, with Amlogic specific glue logic.
+
+allOf:
+  - $ref: /schemas/i3c/i3c.yaml#
+
+properties:
+  compatible:
+    enum:
+      - amlogic,i3c-a9
+      - amlogic,i3c-ao-a9
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    maxItems: 2
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+if:
+  properties:
+    compatible:
+      const: amlogic,i3c-a9
+then:
+  properties:
+    clocks:
+      items:
+        - description: APB peripheral clock
+        - description: I3C fast clock
+    clock-names:
+      items:
+        - const: pclk
+        - const: fast_clk
+else:
+  properties:
+    clocks:
+      maxItems: 1
+    clock-names:
+      items:
+        - const: fast_clk
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    i3c at 3a7000 {
+        compatible = "amlogic,i3c-a9";
+        reg = <0x3a7000 0x10000>;
+        interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <3>;
+        #size-cells = <0>;
+        clocks = <&clkc 15>,
+                 <&clkc 16>;
+        clock-names = "pclk", "fast_clk";
+        status = "disabled";
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    i3c at 22000 {
+        compatible = "amlogic,i3c-ao-a9";
+        reg = <0x22000 0x10000>;
+        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <3>;
+        #size-cells = <0>;
+        clocks = <&clkc 17>;
+        clock-names = "fast_clk";
+        status = "disabled";
+    };
+...

-- 
2.42.0





More information about the linux-i3c mailing list