xref: /freebsd/sys/contrib/device-tree/Bindings/slimbus/bus.txt (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
1SLIM(Serial Low Power Interchip Media Bus) bus
2
3SLIMbus is a 2-wire bus, and is used to communicate with peripheral
4components like audio-codec.
5
6Required property for SLIMbus controller node:
7- compatible	- name of SLIMbus controller
8
9Child nodes:
10Every SLIMbus controller node can contain zero or more child nodes
11representing slave devices on the bus. Every SLIMbus slave device is
12uniquely determined by the enumeration address containing 4 fields:
13Manufacturer ID, Product code, Device index, and Instance value for
14the device.
15If child node is not present and it is instantiated after device
16discovery (slave device reporting itself present).
17
18In some cases it may be necessary to describe non-probeable device
19details such as non-standard ways of powering up a device. In
20such cases, child nodes for those devices will be present as
21slaves of the SLIMbus controller, as detailed below.
22
23Required property for SLIMbus child node if it is present:
24- reg		- Should be ('Device index', 'Instance ID') from SLIMbus
25		  Enumeration  Address.
26		  Device Index Uniquely identifies multiple Devices within
27		  a single Component.
28		  Instance ID Is for the cases where multiple Devices of the
29		  same type or Class are attached to the bus.
30
31- compatible	-"slimMID,PID". The textual representation of Manufacturer ID,
32	 	  Product Code, shall be in lower case hexadecimal with leading
33		  zeroes suppressed
34
35Optional property for SLIMbus child node if it is present:
36- slim-ifc-dev	- Should be phandle to SLIMBus Interface device.
37		  Required for devices which deal with streams.
38
39SLIMbus example for Qualcomm's slimbus manager component:
40
41	slim@28080000 {
42		compatible = "qcom,apq8064-slim", "qcom,slim";
43		reg = <0x28080000 0x2000>,
44		interrupts = <0 33 0>;
45		clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
46		clock-names = "iface", "core";
47		#address-cells = <2>;
48		#size-cell = <0>;
49
50		codec_ifd: ifd@0,0{
51			compatible = "slim217,60";
52			reg = <0 0>;
53		};
54
55		codec: wcd9310@1,0{
56			compatible = "slim217,60";
57			reg = <1 0>;
58			slim-ifc-dev  = <&codec_ifd>;
59		};
60	};
61