0001 SLIM(Serial Low Power Interchip Media Bus) bus
0002
0003 SLIMbus is a 2-wire bus, and is used to communicate with peripheral
0004 components like audio-codec.
0005
0006 Required property for SLIMbus controller node:
0007 - compatible - name of SLIMbus controller
0008
0009 Child nodes:
0010 Every SLIMbus controller node can contain zero or more child nodes
0011 representing slave devices on the bus. Every SLIMbus slave device is
0012 uniquely determined by the enumeration address containing 4 fields:
0013 Manufacturer ID, Product code, Device index, and Instance value for
0014 the device.
0015 If child node is not present and it is instantiated after device
0016 discovery (slave device reporting itself present).
0017
0018 In some cases it may be necessary to describe non-probeable device
0019 details such as non-standard ways of powering up a device. In
0020 such cases, child nodes for those devices will be present as
0021 slaves of the SLIMbus controller, as detailed below.
0022
0023 Required property for SLIMbus child node if it is present:
0024 - reg - Should be ('Device index', 'Instance ID') from SLIMbus
0025 Enumeration Address.
0026 Device Index Uniquely identifies multiple Devices within
0027 a single Component.
0028 Instance ID Is for the cases where multiple Devices of the
0029 same type or Class are attached to the bus.
0030
0031 - compatible -"slimMID,PID". The textual representation of Manufacturer ID,
0032 Product Code, shall be in lower case hexadecimal with leading
0033 zeroes suppressed
0034
0035 Optional property for SLIMbus child node if it is present:
0036 - slim-ifc-dev - Should be phandle to SLIMBus Interface device.
0037 Required for devices which deal with streams.
0038
0039 SLIMbus example for Qualcomm's slimbus manager component:
0040
0041 slim@28080000 {
0042 compatible = "qcom,apq8064-slim", "qcom,slim";
0043 reg = <0x28080000 0x2000>,
0044 interrupts = <0 33 0>;
0045 clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
0046 clock-names = "iface", "core";
0047 #address-cells = <2>;
0048 #size-cell = <0>;
0049
0050 codec_ifd: ifd@0,0{
0051 compatible = "slim217,60";
0052 reg = <0 0>;
0053 };
0054
0055 codec: wcd9310@1,0{
0056 compatible = "slim217,60";
0057 reg = <1 0>;
0058 slim-ifc-dev = <&codec_ifd>;
0059 };
0060 };