linux-loongson/Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml
Carlos Song 489c773a68 dt-bindings: i3c: silvaco,i3c-master: add i.MX94 and i.MX95 I3C
Add compatible string "nxp,imx94-i3c" and "nxp,imx95-i3c" for the i.MX94
chip and i.MX95 chip. Backward is compatible with "silvaco,i3c-master-v1".

Also i.MX94 and i.MX95 I3C only need two clocks and Legacy I3C needs
three clocks. So add restrictions for clock and clock-names properties
for different Socs.

Signed-off-by: Carlos Song <carlos.song@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250427083230.3325700-2-carlos.song@nxp.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2025-05-24 22:45:36 +02:00

96 lines
1.8 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/i3c/silvaco,i3c-master.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Silvaco I3C master
maintainers:
- Conor Culhane <conor.culhane@silvaco.com>
properties:
compatible:
oneOf:
- enum:
- nuvoton,npcm845-i3c
- silvaco,i3c-master-v1
- items:
- enum:
- nxp,imx94-i3c
- nxp,imx95-i3c
- const: silvaco,i3c-master-v1
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
minItems: 2
items:
- description: system clock
- description: bus clock
- description: other (slower) events clock
clock-names:
minItems: 2
items:
- const: pclk
- const: fast_clk
- const: slow_clk
resets:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clock-names
- clocks
allOf:
- $ref: i3c.yaml#
- if:
properties:
compatible:
enum:
- nuvoton,npcm845-i3c
- silvaco,i3c-master-v1
then:
properties:
clocks:
minItems: 3
clock-names:
minItems: 3
- if:
properties:
compatible:
contains:
enum:
- nxp,imx94-i3c
- nxp,imx95-i3c
then:
properties:
clocks:
maxItems: 2
clock-names:
maxItems: 2
unevaluatedProperties: false
examples:
- |
i3c@a0000000 {
compatible = "silvaco,i3c-master-v1";
clocks = <&zynqmp_clk 71>, <&fclk>, <&sclk>;
clock-names = "pclk", "fast_clk", "slow_clk";
interrupt-parent = <&gic>;
interrupts = <0 89 4>;
reg = <0xa0000000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
};