blob: 3b8cae9d1016bf824f2933e80ed0364f96bb21bd [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/slimbus/slimbus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: SLIM (Serial Low Power Interchip Media) bus
8
9maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description:
13 SLIMbus is a 2-wire bus, and is used to communicate with peripheral
14 components like audio-codec.
15
16properties:
17 $nodename:
18 pattern: "^slim(@.*|-([0-9]|[1-9][0-9]+))?$"
19
20 "#address-cells":
21 const: 2
22
23 "#size-cells":
24 const: 0
25
26patternProperties:
27 "^.*@[0-9a-f]+,[0-9a-f]+$":
28 type: object
29 description: |
30 Every SLIMbus controller node can contain zero or more child nodes
31 representing slave devices on the bus. Every SLIMbus slave device is
32 uniquely determined by the enumeration address containing 4 fields::
33 Manufacturer ID, Product code, Device index, and Instance value for the
34 device.
35
36 If child node is not present and it is instantiated after device
37 discovery (slave device reporting itself present).
38
39 In some cases it may be necessary to describe non-probeable device
40 details such as non-standard ways of powering up a device. In such cases,
41 child nodes for those devices will be present as slaves of the SLIMbus
42 controller.
43
44 properties:
45 compatible:
46 pattern: "^slim[0-9a-f]+,[0-9a-f]+$"
47
48 reg:
49 maxItems: 1
50 description: |
51 Pair of (device index, instande ID), where::
52 - Device index, which uniquely identifies multiple devices within a
53 single component.
54 - Instance ID, can be used for the cases where multiple devices of
55 the same type or class are attached to the bus.
56
57 required:
58 - compatible
59 - reg
60
61 additionalProperties: true
62
63required:
64 - "#address-cells"
65 - "#size-cells"
66
67additionalProperties: true
68
69examples:
70 - |
71 #include <dt-bindings/clock/qcom,gcc-msm8960.h>
72 #include <dt-bindings/clock/qcom,lcc-msm8960.h>
73 #include <dt-bindings/interrupt-controller/arm-gic.h>
74
75 soc {
76 #address-cells = <1>;
77 #size-cells = <1>;
78 ranges;
79
80 slim@28080000 {
81 compatible = "qcom,apq8064-slim", "qcom,slim";
82 reg = <0x28080000 0x2000>, <0x80207c 4>;
83 reg-names = "ctrl", "slew";
84 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
85 clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
86 clock-names = "iface", "core";
87 #address-cells = <2>;
88 #size-cells = <0>;
89
90 audio-codec@1,0 {
91 compatible = "slim217,60";
92 reg = <1 0>;
93 };
94 };
95 };