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