2023-08-30 17:31:07 +02:00
|
|
|
# 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:
|
2023-10-24 12:59:35 +02:00
|
|
|
pattern: "^slim(@.*|-([0-9]|[1-9][0-9]+))?$"
|
2023-08-30 17:31:07 +02:00
|
|
|
|
|
|
|
"#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>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|