2020-08-14 16:23:08 +05:30
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id : http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml#
$schema : http://devicetree.org/meta-schemas/core.yaml#
title : Qualcomm Technologies Inc. LPASS CPU dai driver bindings
maintainers :
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
- Rohit kumar <rohitkr@codeaurora.org>
description : |
Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist
of MI2S interface for audio data transfer on external codecs. LPASS cpu driver
is a module to configure Low-Power Audio Interface(LPAIF) core registers
across different IP versions.
properties :
compatible :
enum :
- qcom,lpass-cpu
- qcom,apq8016-lpass-cpu
- qcom,sc7180-lpass-cpu
reg :
2020-10-08 10:46:58 +05:30
maxItems : 2
2020-08-14 16:23:08 +05:30
description : LPAIF core registers
2020-04-20 21:24:47 -05:00
2020-10-08 10:46:58 +05:30
reg-names :
2020-04-20 21:24:47 -05:00
maxItems : 2
2020-08-14 16:23:08 +05:30
clocks :
minItems : 3
maxItems : 6
clock-names :
minItems : 3
maxItems : 6
interrupts :
2020-10-08 10:46:58 +05:30
maxItems : 2
2020-08-14 16:23:08 +05:30
description : LPAIF DMA buffer interrupt
2020-04-20 21:24:47 -05:00
2020-10-08 10:46:58 +05:30
interrupt-names :
maxItems : 2
2020-04-20 21:24:47 -05:00
2020-08-14 16:23:08 +05:30
qcom,adsp :
$ref : /schemas/types.yaml#/definitions/phandle
description : Phandle for the audio DSP node
iommus :
2020-10-08 10:46:58 +05:30
maxItems : 2
2020-08-14 16:23:08 +05:30
description : Phandle to apps_smmu node with sid mask
power-domains :
maxItems : 1
'#sound-dai-cells' :
const : 1
'#address-cells' :
const : 1
'#size-cells' :
const : 0
patternProperties :
2020-10-08 10:46:58 +05:30
"^dai-link@[0-9a-f]$" :
2020-08-14 16:23:08 +05:30
type : object
2020-10-08 10:46:58 +05:30
description : |
LPASS CPU dai node for each I2S device. Bindings of each node
depends on the specific driver providing the functionality and
properties.
2020-08-14 16:23:08 +05:30
properties :
reg :
maxItems : 1
description : Must be one of the DAI ID
qcom,playback-sd-lines :
$ref : /schemas/types.yaml#/definitions/uint32-array
description : list of MI2S data lines for playback
qcom,capture-sd-lines :
$ref : /schemas/types.yaml#/definitions/uint32-array
description : list of MI2S data lines for capture
required :
- reg
additionalProperties : false
required :
- compatible
- reg
2020-10-08 10:46:58 +05:30
- reg-names
2020-08-14 16:23:08 +05:30
- clocks
- clock-names
- interrupts
2020-10-08 10:46:58 +05:30
- interrupt-names
2020-08-14 16:23:08 +05:30
- '#sound-dai-cells'
additionalProperties : false
allOf :
- if :
properties :
compatible :
contains :
const : qcom,lpass-cpu
then :
properties :
clock-names :
items :
- const : ahbix-clk
- const : mi2s-osr-clk
- const : mi2s-bit-clk
- if :
properties :
compatible :
contains :
const : qcom,apq8016-lpass-cpu
then :
properties :
clock-names :
items :
- const : ahbix-clk
- const : mi2s-bit-clk0
- const : mi2s-bit-clk1
- const : mi2s-bit-clk2
- const : mi2s-bit-clk3
- const : pcnoc-mport-clk
- const : pcnoc-sway-clk
- if :
properties :
compatible :
contains :
const : qcom,sc7180-lpass-cpu
then :
properties :
clock-names :
2020-10-08 10:46:58 +05:30
oneOf :
2020-04-20 21:24:47 -05:00
- items : #for I2S
- const : pcnoc-sway-clk
- const : audio-core
- const : mclk0
- const : pcnoc-mport-clk
- const : mi2s-bit-clk0
- const : mi2s-bit-clk1
- items : #for HDMI
- const : pcnoc-sway-clk
- const : audio-core
- const : pcnoc-mport-clk
2020-10-08 10:46:58 +05:30
reg-names :
anyOf :
- items : #for I2S
2020-04-20 21:24:47 -05:00
- const : lpass-lpaif
2020-10-08 10:46:58 +05:30
- items : #for I2S and HDMI
2020-04-20 21:24:47 -05:00
- const : lpass-hdmiif
- const : lpass-lpaif
2020-10-08 10:46:58 +05:30
interrupt-names :
anyOf :
- items : #for I2S
2020-04-20 21:24:47 -05:00
- const : lpass-irq-lpaif
2020-10-08 10:46:58 +05:30
- items : #for I2S and HDMI
2020-04-20 21:24:47 -05:00
- const : lpass-irq-lpaif
- const : lpass-irq-hdmi
2020-08-14 16:23:08 +05:30
required :
- iommus
- power-domains
examples :
- |
#include <dt-bindings/sound/sc7180-lpass.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
2020-10-08 10:46:58 +05:30
lpass@62d80000 {
2020-08-14 16:23:08 +05:30
compatible = "qcom,sc7180-lpass-cpu";
2020-10-08 10:46:58 +05:30
reg = <0 0x62d87000 0 0x68000>,
<0 0x62f00000 0 0x29000>;
reg-names = "lpass-hdmiif",
"lpass-lpaif" ;
iommus = <&apps_smmu 0x1020 0>,
<&apps_smmu 0x1032 0>;
2020-08-14 16:23:08 +05:30
power-domains = <&lpass_hm 0>;
clocks = <&gcc 131>,
<&lpasscorecc 6>,
<&lpasscorecc 7>,
<&lpasscorecc 10>,
<&lpasscorecc 8>,
<&lpasscorecc 9>;
clock-names = "pcnoc-sway-clk", "audio-core",
"mclk0" , "pcnoc-mport-clk" ,
"mi2s-bit-clk0" , "mi2s-bit-clk1" ;
2020-10-08 10:46:58 +05:30
interrupts = <0 160 1>,
<0 268 1>;
interrupt-names = "lpass-irq-lpaif",
"lpass-irq-hdmi" ;
2020-08-14 16:23:08 +05:30
#sound-dai-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;
/* Optional to set different MI2S SD lines */
2020-10-08 10:46:58 +05:30
dai-link@0 {
2020-08-14 16:23:08 +05:30
reg = <MI2S_PRIMARY>;
qcom,playback-sd-lines = <1>;
qcom,capture-sd-lines = <0>;
};
};
};
...