| # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/slimbus/slimbus.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: SLIM (Serial Low Power Interchip Media) bus |
| |
| maintainers: |
| - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
| |
| description: |
| SLIMbus is a 2-wire bus, and is used to communicate with peripheral |
| components like audio-codec. |
| |
| properties: |
| $nodename: |
| pattern: "^slim(@.*|-[0-9a-f])*$" |
| |
| "#address-cells": |
| const: 2 |
| |
| "#size-cells": |
| const: 0 |
| |
| patternProperties: |
| "^.*@[0-9a-f]+,[0-9a-f]+$": |
| type: object |
| description: | |
| Every SLIMbus controller node can contain zero or more child nodes |
| representing slave devices on the bus. Every SLIMbus slave device is |
| uniquely determined by the enumeration address containing 4 fields:: |
| Manufacturer ID, Product code, Device index, and Instance value for the |
| device. |
| |
| If child node is not present and it is instantiated after device |
| discovery (slave device reporting itself present). |
| |
| In some cases it may be necessary to describe non-probeable device |
| details such as non-standard ways of powering up a device. In such cases, |
| child nodes for those devices will be present as slaves of the SLIMbus |
| controller. |
| |
| properties: |
| compatible: |
| pattern: "^slim[0-9a-f]+,[0-9a-f]+$" |
| |
| reg: |
| maxItems: 1 |
| description: | |
| Pair of (device index, instande ID), where:: |
| - Device index, which uniquely identifies multiple devices within a |
| single component. |
| - Instance ID, can be used for the cases where multiple devices of |
| the same type or class are attached to the bus. |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: true |
| |
| required: |
| - "#address-cells" |
| - "#size-cells" |
| |
| additionalProperties: true |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/qcom,gcc-msm8960.h> |
| #include <dt-bindings/clock/qcom,lcc-msm8960.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| soc { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges; |
| |
| slim@28080000 { |
| compatible = "qcom,apq8064-slim", "qcom,slim"; |
| reg = <0x28080000 0x2000>, <0x80207c 4>; |
| reg-names = "ctrl", "slew"; |
| interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>; |
| clock-names = "iface", "core"; |
| #address-cells = <2>; |
| #size-cells = <0>; |
| |
| audio-codec@1,0 { |
| compatible = "slim217,60"; |
| reg = <1 0>; |
| }; |
| }; |
| }; |