lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241126164300.3305903-3-quic_mohs@quicinc.com>
Date: Tue, 26 Nov 2024 22:12:57 +0530
From: Mohammad Rafi Shaik <quic_mohs@...cinc.com>
To: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
        Liam Girdwood
	<lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
        Rob Herring
	<robh@...nel.org>,
        Krzysztof Kozlowski <krzk+dt@...nel.org>,
        Conor Dooley
	<conor+dt@...nel.org>, Vinod Koul <vkoul@...nel.org>,
        Bard Liao
	<yung-chuan.liao@...ux.intel.com>,
        Jaroslav Kysela <perex@...ex.cz>, "Takashi
 Iwai" <tiwai@...e.com>
CC: Pierre-Louis Bossart <pierre-louis.bossart@...ux.dev>,
        Sanyog Kale
	<sanyog.r.kale@...el.com>,
        <linux-arm-msm@...r.kernel.org>, <linux-sound@...r.kernel.org>,
        <devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        <quic_rohkumar@...cinc.com>, <kernel@...cinc.com>,
        Mohammad Rafi Shaik <quic_mohs@...cinc.com>
Subject: [PATCH v3 2/5] ASoC: dt-bindings: wcd937x-sdw: Add static channel mapping support

Add static channel mapping between master and slave rx/tx ports for
Qualcomm wcd937x soundwire codec.

Currently, the channel map index value for each soundwire port is
hardcoded in the wcd937x-sdw driver, and the same channel map index
value is configured in the soundwire master.

The Qualcomm board like the QCM6490-IDP require static channel map
settings for the soundwire master and slave ports.

If another boards which are using enable wcd937x, the channel mapping
index values between master and slave may be different depending on the
board hw design and requirements. If the above properties are not used
in a SoC specific device tree, the channel mapping index values are set
to default.

With the introduction of the following channel mapping properties, it is
now possible to configure the master channel mapping directly from the
device tree.

The qcom,tx-channel-mapping property specifies the static channel mapping
between the slave and master tx ports in the order of slave port channels
which is adc1, adc2, adc3, adc4, dmic0, dmic1, mbhc, dmic2, dmic3, dmci4,
dmic5, dmic6, dmic7.

The qcom,rx-channel-mapping property specifies the static channel mapping
between the slave and master rx ports in the order of slave port channels
which is hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.

Signed-off-by: Mohammad Rafi Shaik <quic_mohs@...cinc.com>
---
 .../bindings/sound/qcom,wcd937x-sdw.yaml      | 48 +++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/qcom,wcd937x-sdw.yaml b/Documentation/devicetree/bindings/sound/qcom,wcd937x-sdw.yaml
index d3cf8f59cb23..7893b1c1f80b 100644
--- a/Documentation/devicetree/bindings/sound/qcom,wcd937x-sdw.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,wcd937x-sdw.yaml
@@ -58,6 +58,44 @@ properties:
     items:
       enum: [1, 2, 3, 4, 5]
 
+  qcom,tx-channel-mapping:
+    description: |
+      Specifies static channel mapping between slave and master tx port
+      channels.
+      In the order of slave port channels which is adc1, adc2, adc3,
+      dmic0, dmic1, mbhc, dmic2, dmic3, dmci4, dmic5, dmic6, dmic7.
+      The channel map index values are fixed values.
+      SWRM_CH1 ==> 1
+      SWRM_CH2 ==> 2
+      SWRM_CH3 ==> 4
+      SWRM_CH4 ==> 8
+
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    minItems: 12
+    maxItems: 12
+    additionalItems: false
+    items:
+      enum: [1, 2, 4, 8]
+
+  qcom,rx-channel-mapping:
+    description: |
+      Specifies static channels mapping between slave and master rx port
+      channels.
+      In the order of slave port channels, which is
+      hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.
+      The channel map index values are fixed values.
+      SWRM_CH1 ==> 1
+      SWRM_CH2 ==> 2
+      SWRM_CH3 ==> 4
+      SWRM_CH4 ==> 8
+
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    minItems: 8
+    maxItems: 8
+    additionalItems: false
+    items:
+      enum: [1, 2, 4, 8]
+
 required:
   - compatible
   - reg
@@ -66,6 +104,9 @@ additionalProperties: false
 
 examples:
   - |
+
+    #include <dt-bindings/sound/qcom,wcd93xx.h>
+
     soundwire@...0000 {
         reg = <0x03210000 0x2000>;
         #address-cells = <2>;
@@ -74,6 +115,9 @@ examples:
             compatible = "sdw20217010a00";
             reg = <0 4>;
             qcom,rx-port-mapping = <1 2 3 4 5>;
+            qcom,rx-channel-mapping =  /bits/ 8 <SWRM_CH1 SWRM_CH2 SWRM_CH1
+                                                 SWRM_CH1 SWRM_CH2 SWRM_CH1
+                                                 SWRM_CH1 SWRM_CH2>;
         };
     };
 
@@ -85,6 +129,10 @@ examples:
             compatible = "sdw20217010a00";
             reg = <0 3>;
             qcom,tx-port-mapping = <2 2 3 4>;
+            qcom,tx-channel-mapping = /bits/ 8 <SWRM_CH1 SWRM_CH2 SWRM_CH2
+                                                SWRM_CH1 SWRM_CH2 SWRM_CH3
+                                                SWRM_CH3 SWRM_CH4 SWRM_CH1
+                                                SWRM_CH2 SWRM_CH3 SWRM_CH4>;
         };
     };
 
-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ