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