Re: [PATCH 01/11] Documentation: device-tree: sound: Update lpass-cpu driver binding

From: Ajit Pandey
Date: Sat Apr 25 2020 - 10:06:15 EST


On 4/16/2020 1:23 PM, Srinivas Kandagatla wrote:


On 11/04/2020 09:02, Ajit Pandey wrote:
Done the required cleanups to update lpass-cpu binding with newer
yaml formats.

Signed-off-by: Ajit Pandey <ajitp@xxxxxxxxxxxxxx>


---
 .../devicetree/bindings/sound/qcom,lpass-cpu.txt | 158 ---------------------
 .../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 103 ++++++++++++++
 2 files changed, 103 insertions(+), 158 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-cpu.txt
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml

diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.txt b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.txt
deleted file mode 100644
index a49b878..00000000
--- a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.txt
+++ /dev/null
@@ -1,158 +0,0 @@
-* Qualcomm Technologies LPASS CPU DAI binding
-
-Low-Power Audio SubSystem (LPASS) consist of MI2S interfaces for audio data
-transfer on external codec. LPASS cpu driver is a common code to configure
-MI2S related CPU dai's across different version of LPASS architecture.
-
-- compatible:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <stringlist>
-ÂÂÂ Definition: compatible string corresponds to lpass variants driver
-ÂÂÂÂÂÂÂÂÂÂÂ must be "qcom, lpass-cpu-sc7180" for sc7180 lpass
This patch will not apply on mainline, looks like this was done on top of your local repo, please fix this!

Best thing would be rebase patches top of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/log/?h=for-next
Sure I'll rebase on top of mentioned tip during v2 patch chain submission

Secondly, Split this patch into two,
1> converting in to yaml
2> adding new changes
so that it will be easy to see what exactly changed.

thanks,
srini

I've not added any newer properties here just changed it to yaml format only

Thanks & Regards

Ajit

-ÂÂÂÂÂÂÂÂÂÂÂ must be "qcom,apq8016-lpass-cpu" for apq8016 lpass
-- reg:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <prop-encoded-array>
-ÂÂÂ Definition: must specify the base address and size of the LPAIF CORE
-ÂÂÂÂÂÂÂÂÂÂÂ region of lpass variant.
-- reg-names:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <stringlist>
-ÂÂÂ Definition: must be "lpass-lpaif"
-
-- iommus:
-ÂÂÂÂÂÂÂ Usage: required for "qcom, lpass-cpu-sc7180" compatible string
-ÂÂÂÂÂÂÂ Value type: <prop-encoded-array>
-ÂÂÂÂÂÂÂ Definition: sid mask for lpaif memory region to apps_smmu
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ must be <&apps_smmu 0x1020 0>
-
-- power-domains:
-ÂÂÂ Usage: required for "qcom, lpass-cpu-sc7180" compatible string
-ÂÂÂ Value type: <phandle>
-ÂÂÂ Definition: reference to power-domains
-ÂÂÂÂÂÂÂÂÂÂÂ must be <&lpass_hm LPASS_CORE_HM_GDSCR>
-
-- clocks:
-ÂÂÂÂÂÂÂ Usage: required
-ÂÂÂ Value type: <phandle>
-ÂÂÂ Definition: reference to the clocks that match clock-names
-
-- clock-names:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <stringlist>
-ÂÂÂ Definition: The clocks needed depend on the compatible string:
-ÂÂÂ qcom,lpass-cpu-apq8016:
-ÂÂÂÂÂÂÂ must be "ahbix-clk", "mi2s-osr-clk", "mi2s-bit-clk0",
-ÂÂÂÂÂÂÂ mi2s-bit-clk1", "mi2s-bit-clk2", "mi2s-bit-clk3",
-ÂÂÂÂÂÂÂ "pcnoc-mport-clk", "pcnoc-sway-clk"
-ÂÂÂ qcom, lpass-cpu-sc7180:
-ÂÂÂÂÂÂÂ must be "noc", "audio-core", "mclk0", "sysnoc_mport",
-ÂÂÂÂÂÂÂ "pri_ibit", "sec_ibit"
-
-- #sound-dai-cells
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <u32>
-ÂÂÂ Definition: Must be 1
-
-- interrupts:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <prop-encoded-array>
-ÂÂÂ Definition: reference to the interrupts that match interrupt-names
-
-- interrupt-names:
-ÂÂÂ Usage: required
-ÂÂÂ Value type: <stringlist>
-ÂÂÂ Definition: must be "lpass-irq-lpaif"
-
-- qcom,adsp:
-ÂÂÂÂÂÂÂ Usage: optional
-ÂÂÂÂÂÂÂ Value type: <phandle>
-ÂÂÂ Definition: Phandle for the audio DSP node
-
-= MI2S DAIs (Digial Audio Interface)
-"dais" child node of the lpass node. It represents mi2s dais, each mi2s dai is
-subnode of "dais" representing board specific dai setup & required dai clocks.
-"dais" node should have following properties.
-
-- id:
-ÂÂÂ Usage: required for mi2s interface
-ÂÂÂ Value type: <u32>
-ÂÂÂ Definition: Must be dai id defined in lpass bindings like MI2S_PRIMARY
-
-- qcom,bitclk-name:
-ÂÂÂ Usage: required for mi2s interface
-ÂÂÂ Value type: <stringlist>
-ÂÂÂ Definition: bitclk name corresponds to MI2S of lpass version
-
-- qcom,mclk-name:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <stringlist>
-ÂÂÂÂÂÂÂ Definition: external mclk name corresponds to MI2S of lpass version
-
-- qcom,osrclk-name:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <stringlist>
-ÂÂÂÂÂÂÂ Definition: osrclk name corresponds to MI2S of lpass version
-
-- qcom,spkmode-mask:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <u32>
-ÂÂÂÂÂÂÂ Definition: board specific property to change default spkmode mask
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ of MI2S dai based on dataline connection on board.
-
-- qcom,micmode-mask:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <u32>
-ÂÂÂÂÂÂÂ Definition: board specific property to change default micmode mask
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ of MI2S dai based on dataline connection on board.
-
-- qcom,loopback-mask:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <u32>
-ÂÂÂÂÂÂÂ Definition: board specific property to change default loopback mask
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ of MI2S dai as per requirement.
-
-- qcom,wssrc-mask:
-ÂÂÂÂÂÂÂ Usage: optional for mi2s interface
-ÂÂÂÂÂÂÂ Value type: <u32>
-ÂÂÂÂÂÂÂ Definition: board specific property to change default wssrc mask
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ of MI2S dai based as per requirement.
-
-Example:
-
-lpass_cpu: lpass {
-ÂÂÂ compatible = "qcom, lpass-cpu-sc7180";
-
-ÂÂÂ reg = <0 0x62F00000 0 0x29000>;
-ÂÂÂ reg-names = "lpass-lpaif";
-
-ÂÂÂ iommus = <&apps_smmu 0x1020 0>;
-
-ÂÂÂ power-domains = <&lpass_hm LPASS_CORE_HM_GDSCR>;
-
-ÂÂÂ clocks = <&gcc GCC_LPASS_CFG_NOC_SWAY_CLK>,
-ÂÂÂÂÂÂÂÂ <&lpasscorecc LPASS_AUDIO_CORE_CORE_CLK>,
-ÂÂÂÂÂÂÂÂ <&lpasscorecc LPASS_AUDIO_CORE_EXT_MCLK0_CLK>,
-ÂÂÂÂÂÂÂÂ <&lpasscorecc LPASS_AUDIO_CORE_SYSNOC_MPORT_CORE_CLK>,
-ÂÂÂÂÂÂÂÂ <&lpasscorecc LPASS_AUDIO_CORE_LPAIF_PRI_IBIT_CLK>,
-ÂÂÂÂÂÂÂÂ <&lpasscorecc LPASS_AUDIO_CORE_LPAIF_SEC_IBIT_CLK>;
-
-ÂÂÂ clock-names = "noc", "audio-core", "mclk0", "sysnoc_mport",
-ÂÂÂÂÂÂÂÂÂÂÂÂÂ "pri_ibit", "sec_ibit";
-
-ÂÂÂ #sound-dai-cells = <1>;
-
-ÂÂÂ interrupts = <0 160 IRQ_TYPE_LEVEL_HIGH>;
-ÂÂÂ interrupt-names = "lpass-irq-lpaif";
-
-ÂÂÂ prim-mi2s@0 {
-ÂÂÂÂÂÂÂ id = <MI2S_PRIMARY>;
-ÂÂÂÂÂÂÂ qcom,bitclk-name = "pri_ibit";
-ÂÂÂÂÂÂÂ qcom,mclk-name = "mclk0";
-ÂÂÂ };
-
-ÂÂÂ sec-mi2s@1 {
-ÂÂÂÂÂÂÂ id = <MI2S_SECONDARY>;
-ÂÂÂÂÂÂÂ qcom,bitclk-name = "sec_ibit";
-ÂÂÂ };
-};
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
new file mode 100644
index 00000000..a87a406
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm LPASS CPU dai driver bindings
+
+maintainers:
+Â - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
+Â - Ajit Pandey <ajitp@xxxxxxxxxxxxxx>
+
+description: |
+Â Qualcomm 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
+
+Â reg:
+ÂÂÂ items:
+ÂÂÂÂÂ - description: LPAIF core registers
+
+Â reg-names:
+ÂÂÂ items:
+ÂÂÂÂÂ - const: lpass-lpaif
+
+Â clocks:
+ÂÂÂ items:
+ÂÂÂÂÂ - description: AHBIX core clock for IPQ806X
+ÂÂÂÂÂ - description: oscillator clock for MI2S external interfaces
+ÂÂÂÂÂ - description: Bit clock for single MI2S dai in IPQ806X
+ÂÂÂÂÂ - description: Bit clock for MI2S_PRIMARY dai interface
+ÂÂÂÂÂ - description: Bit clock for MI2S_SECONDARY dai interface
+ÂÂÂÂÂ - description: Bit clock for MI2S_TERTIARY dai interface
+ÂÂÂÂÂ - description: Bit clock for MI2S_QUATERNARY dai interface
+ÂÂÂÂÂ - description: NOC MPORT clock of LPASS core
+ÂÂÂÂÂ - description: NOC SWAY clock of LPASS core
+
+Â clock-names:
+ÂÂÂ items:
+ÂÂÂÂÂ - const: ahbix-clk
+ÂÂÂÂÂ - const: mi2s-osr-clk
+ÂÂÂÂÂ - const: mi2s-bit-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
+
+Â interrupts:
+ÂÂÂ items:
+ÂÂÂÂÂ - description: LPAIF DMA buffer interrupt
+
+Â interrupt-names:
+ÂÂÂ items:
+ÂÂÂÂÂ - const: lpass-irq-lpaif
+
+Â qcom,adsp:
+ÂÂÂ maxItems: 1
+ÂÂÂ description: Phandle for the audio DSP node
+
+Â '#sound-dai-cells':
+ÂÂÂ const: 1
+
+required:
+Â - compatible
+Â - reg
+Â - reg-names
+Â - clocks
+Â - clock-names
+Â - interrupts
+Â - interrupt-names
+Â - sound-dai-cells
+
+optional:
+Â - qcom,adsp
+
+examples:
+Â lpass@28100000 {
+ÂÂÂ compatible = "qcom,lpass-cpu";
+ÂÂÂ clocks = <&lcc AHBIX_CLK>,
+ÂÂÂÂÂÂÂÂ <&lcc MI2S_OSR_CLK>,
+ÂÂÂÂÂÂÂÂ <&lcc MI2S_BIT_CLK>;
+
+ÂÂÂ clock-names = "ahbix-clk",
+ÂÂÂÂÂÂÂÂÂÂÂÂÂ "mi2s-osr-clk",
+ÂÂÂÂÂÂÂÂÂÂÂÂÂ "mi2s-bit-clk";
+
+ÂÂÂ interrupts = <0 85 1>;
+ÂÂÂ interrupt-names = "lpass-irq-lpaif";
+
+ÂÂÂ reg = <0x28100000 0x10000>;
+ÂÂÂ reg-names = "lpass-lpaif";
+ÂÂÂ #sound-dai-cells = <1>;
+ÂÂÂ qcom,adsp = <&adsp>;
+