xref: /linux/Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml (revision 50b7e7082a3dde5bdba14a4e40a2e2279fd08a7b)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i3c/silvaco,i3c-master.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Silvaco I3C master
8
9maintainers:
10  - Conor Culhane <conor.culhane@silvaco.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - nuvoton,npcm845-i3c
17          - silvaco,i3c-master-v1
18      - items:
19          - enum:
20              - nxp,imx94-i3c
21              - nxp,imx95-i3c
22          - const: silvaco,i3c-master-v1
23
24  reg:
25    maxItems: 1
26
27  interrupts:
28    maxItems: 1
29
30  clocks:
31    minItems: 2
32    items:
33      - description: system clock
34      - description: bus clock
35      - description: other (slower) events clock
36
37  clock-names:
38    minItems: 2
39    items:
40      - const: pclk
41      - const: fast_clk
42      - const: slow_clk
43
44  resets:
45    maxItems: 1
46
47required:
48  - compatible
49  - reg
50  - interrupts
51  - clock-names
52  - clocks
53
54allOf:
55  - $ref: i3c.yaml#
56  - if:
57      properties:
58        compatible:
59          enum:
60            - nuvoton,npcm845-i3c
61            - silvaco,i3c-master-v1
62    then:
63      properties:
64        clocks:
65          minItems: 3
66        clock-names:
67          minItems: 3
68  - if:
69      properties:
70        compatible:
71          contains:
72            enum:
73              - nxp,imx94-i3c
74              - nxp,imx95-i3c
75    then:
76      properties:
77        clocks:
78          maxItems: 2
79        clock-names:
80          maxItems: 2
81
82unevaluatedProperties: false
83
84examples:
85  - |
86    i3c@a0000000 {
87        compatible = "silvaco,i3c-master-v1";
88        clocks = <&zynqmp_clk 71>, <&fclk>, <&sclk>;
89        clock-names = "pclk", "fast_clk", "slow_clk";
90        interrupt-parent = <&gic>;
91        interrupts = <0 89 4>;
92        reg = <0xa0000000 0x1000>;
93        #address-cells = <3>;
94        #size-cells = <0>;
95    };
96