Message ID | 1600409084-29093-3-git-send-email-srivasam@codeaurora.org |
---|---|
State | Superseded |
Headers | show |
Series | Qualcomm's lpass-hdmi ASoC driver to support audio over dp port | expand |
On Fri, Sep 18, 2020 at 11:34:41AM +0530, Srinivasa Rao Mandadapu wrote: > From: V Sujith Kumar Reddy <vsujithk@codeaurora.org> > > Adds bindings for lpass hdmi interface > which can support audio path over dp. > > Signed-off-by: Srinivasa Rao <srivasam@codeaurora.org> > Signed-off-by: V Sujith Kumar Reddy <vsujithk@codeaurora.org> > --- > .../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 74 +++++++++++++++------- > 1 file changed, 52 insertions(+), 22 deletions(-) > > diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml > index 09c9bd2..f95ef70 100644 > --- a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml > +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml > @@ -24,9 +24,10 @@ properties: > - qcom,sc7180-lpass-cpu > > reg: > - maxItems: 1 > + maxItems: 2 > description: LPAIF core registers > - > + reg-names: > + maxItems: 2 > clocks: > minItems: 3 > maxItems: 6 > @@ -36,15 +37,16 @@ properties: > maxItems: 6 > > interrupts: > - maxItems: 1 > + maxItems: 2 > description: LPAIF DMA buffer interrupt > - > + interrupt-names: > + maxItems: 2 > qcom,adsp: > $ref: /schemas/types.yaml#/definitions/phandle > description: Phandle for the audio DSP node > > iommus: > - maxItems: 1 > + maxItems: 2 > description: Phandle to apps_smmu node with sid mask > > power-domains: > @@ -60,10 +62,12 @@ properties: > const: 0 > > patternProperties: > - "(^mi2s-[0-9a-f]$|mi2s)": > + "^dai-link@[0-9a-f]$": > type: object > - description: Required properties for each DAI > - > + description: | > + LPASS CPU dai node for each I2S device. Bindings of each node > + depends on the specific driver providing the functionality and > + properties. > properties: > reg: > maxItems: 1 > @@ -85,9 +89,11 @@ patternProperties: > required: > - compatible > - reg > + - reg-names > - clocks > - clock-names > - interrupts > + - interrupt-names > - '#sound-dai-cells' > > additionalProperties: false > @@ -134,13 +140,32 @@ allOf: > then: > properties: > clock-names: > - items: > - - const: pcnoc-sway-clk > - - const: audio-core > - - const: mclk0 > - - const: pcnoc-mport-clk > - - const: mi2s-bit-clk0 > - - const: mi2s-bit-clk1 > + oneOf: > + - 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 > + reg-names: > + anyOf: > + - items: #for I2S and HDMI > + - const: lpass-hdmiif > + - const: lpass-lpaif It would be a bit cleaner if you switch the order. Then you are just adding on to the end. Otherwise, Reviewed-by: Rob Herring <robh@kernel.org> > + - items: #for I2S > + - const: lpass-lpaif > + interrupt-names: > + anyOf: > + - items: #for I2S and HDMI > + - const: lpass-irq-lpaif > + - const: lpass-irq-hdmi > + - items: #for I2S > + - const: lpass-irq-lpaif > required: > - iommus > - power-domains > @@ -152,12 +177,15 @@ examples: > soc { > #address-cells = <2>; > #size-cells = <2>; > - lpass@62f00000 { > + lpass@62d80000 { > compatible = "qcom,sc7180-lpass-cpu"; > > - reg = <0 0x62f00000 0 0x29000>; > - > - iommus = <&apps_smmu 0x1020 0>; > + reg = <0 0x62d87000 0 0x68000>, > + <0 0x62f00000 0 0x29000>; > + reg-names = "lpass-hdmiif", > + "lpass-lpaif"; > + iommus = <&apps_smmu 0x1020 0>, > + <&apps_smmu 0x1032 0>; > power-domains = <&lpass_hm 0>; > > clocks = <&gcc 131>, > @@ -171,14 +199,16 @@ examples: > "mclk0", "pcnoc-mport-clk", > "mi2s-bit-clk0", "mi2s-bit-clk1"; > > - interrupts = <0 160 1>; > - > + interrupts = <0 160 1>, > + <0 268 1>; > + interrupt-names = "lpass-irq-lpaif", > + "lpass-irq-hdmi"; > #sound-dai-cells = <1>; > > #address-cells = <1>; > #size-cells = <0>; > /* Optional to set different MI2S SD lines */ > - mi2s-primary@0 { > + dai-link@0 { > reg = <MI2S_PRIMARY>; > qcom,playback-sd-lines = <1>; > qcom,capture-sd-lines = <0>; > -- > Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc., > is a member of Code Aurora Forum, a Linux Foundation Collaborative Project. >
diff --git a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml index 09c9bd2..f95ef70 100644 --- a/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml @@ -24,9 +24,10 @@ properties: - qcom,sc7180-lpass-cpu reg: - maxItems: 1 + maxItems: 2 description: LPAIF core registers - + reg-names: + maxItems: 2 clocks: minItems: 3 maxItems: 6 @@ -36,15 +37,16 @@ properties: maxItems: 6 interrupts: - maxItems: 1 + maxItems: 2 description: LPAIF DMA buffer interrupt - + interrupt-names: + maxItems: 2 qcom,adsp: $ref: /schemas/types.yaml#/definitions/phandle description: Phandle for the audio DSP node iommus: - maxItems: 1 + maxItems: 2 description: Phandle to apps_smmu node with sid mask power-domains: @@ -60,10 +62,12 @@ properties: const: 0 patternProperties: - "(^mi2s-[0-9a-f]$|mi2s)": + "^dai-link@[0-9a-f]$": type: object - description: Required properties for each DAI - + description: | + LPASS CPU dai node for each I2S device. Bindings of each node + depends on the specific driver providing the functionality and + properties. properties: reg: maxItems: 1 @@ -85,9 +89,11 @@ patternProperties: required: - compatible - reg + - reg-names - clocks - clock-names - interrupts + - interrupt-names - '#sound-dai-cells' additionalProperties: false @@ -134,13 +140,32 @@ allOf: then: properties: clock-names: - items: - - const: pcnoc-sway-clk - - const: audio-core - - const: mclk0 - - const: pcnoc-mport-clk - - const: mi2s-bit-clk0 - - const: mi2s-bit-clk1 + oneOf: + - 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 + reg-names: + anyOf: + - items: #for I2S and HDMI + - const: lpass-hdmiif + - const: lpass-lpaif + - items: #for I2S + - const: lpass-lpaif + interrupt-names: + anyOf: + - items: #for I2S and HDMI + - const: lpass-irq-lpaif + - const: lpass-irq-hdmi + - items: #for I2S + - const: lpass-irq-lpaif required: - iommus - power-domains @@ -152,12 +177,15 @@ examples: soc { #address-cells = <2>; #size-cells = <2>; - lpass@62f00000 { + lpass@62d80000 { compatible = "qcom,sc7180-lpass-cpu"; - reg = <0 0x62f00000 0 0x29000>; - - iommus = <&apps_smmu 0x1020 0>; + reg = <0 0x62d87000 0 0x68000>, + <0 0x62f00000 0 0x29000>; + reg-names = "lpass-hdmiif", + "lpass-lpaif"; + iommus = <&apps_smmu 0x1020 0>, + <&apps_smmu 0x1032 0>; power-domains = <&lpass_hm 0>; clocks = <&gcc 131>, @@ -171,14 +199,16 @@ examples: "mclk0", "pcnoc-mport-clk", "mi2s-bit-clk0", "mi2s-bit-clk1"; - interrupts = <0 160 1>; - + interrupts = <0 160 1>, + <0 268 1>; + interrupt-names = "lpass-irq-lpaif", + "lpass-irq-hdmi"; #sound-dai-cells = <1>; #address-cells = <1>; #size-cells = <0>; /* Optional to set different MI2S SD lines */ - mi2s-primary@0 { + dai-link@0 { reg = <MI2S_PRIMARY>; qcom,playback-sd-lines = <1>; qcom,capture-sd-lines = <0>;