[v3,6/6] ASoC: qdsp6: dt-bindings: Add q6afe pcm dt binding documentation
diff mbox series

Message ID 20200212015222.8229-7-adam@serbinski.com
State New
Headers show
Series
  • [v3,1/6] ASoC: qdsp6: dt-bindings: Add q6afe pcm dt binding
Related show

Commit Message

Adam Serbinski Feb. 12, 2020, 1:52 a.m. UTC
This patch adds documentation of bindings required for PCM ports on AFE.

Signed-off-by: Adam Serbinski <adam@serbinski.com>
CC: Andy Gross <agross@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: Liam Girdwood <lgirdwood@gmail.com>
CC: Patrick Lai <plai@codeaurora.org>
CC: Banajit Goswami <bgoswami@codeaurora.org>
CC: Jaroslav Kysela <perex@perex.cz>
CC: Takashi Iwai <tiwai@suse.com>
CC: alsa-devel@alsa-project.org
CC: linux-arm-msm@vger.kernel.org
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
---
 .../devicetree/bindings/sound/qcom,q6afe.txt  | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)

Comments

Srinivas Kandagatla Feb. 12, 2020, 9:59 a.m. UTC | #1
On 12/02/2020 01:52, Adam Serbinski wrote:
> This patch adds documentation of bindings required for PCM ports on AFE.
> 
> Signed-off-by: Adam Serbinski <adam@serbinski.com>
> CC: Andy Gross <agross@kernel.org>
> CC: Mark Rutland <mark.rutland@arm.com>
> CC: Liam Girdwood <lgirdwood@gmail.com>
> CC: Patrick Lai <plai@codeaurora.org>
> CC: Banajit Goswami <bgoswami@codeaurora.org>
> CC: Jaroslav Kysela <perex@perex.cz>
> CC: Takashi Iwai <tiwai@suse.com>
> CC: alsa-devel@alsa-project.org
> CC: linux-arm-msm@vger.kernel.org
> CC: devicetree@vger.kernel.org
> CC: linux-kernel@vger.kernel.org
> ---
>   .../devicetree/bindings/sound/qcom,q6afe.txt  | 42 +++++++++++++++++++
>   1 file changed, 42 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> index d74888b9f1bb..6b1b17d31a2a 100644
> --- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> +++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
> @@ -51,6 +51,24 @@ configuration of each dai. Must contain the following properties.
>   	Definition: Must be list of serial data lines used by this dai.
>   	should be one or more of the 0-3 sd lines.
>   
> + - qcom,pcm-quantype
> +	Usage: required for pcm interface
> +	Value type: <u32>
> +	Definition: PCM quantization type
> +		0 - ALAW, no padding
> +		1 - MULAW, no padding
> +		2 - Linear, no padding
> +		3 - ALAW, padding
> +		4 - MULAW, padding
> +		5 - Linear, padding
> +
> + - qcom,pcm-slot-mapping
> +	Usage: required for pcm interface

Are these not specific to 8k and 16k mode ?
We should probably list values for both modes here.

--srini

> +	Value type: <prop-encoded-array>
> +	Definition: Slot mapping for audio channels. Array size is the number
> +		of slots, minimum 1, maximum 4. The value is 0 for no mapping
> +		to the slot, or the channel number from 1 to 32.
> +
>    - qcom,tdm-sync-mode:
>   	Usage: required for tdm interface
>   	Value type: <prop-encoded-array>
> @@ -174,5 +192,29 @@ q6afe@4 {
>   			reg = <23>;
>   			qcom,sd-lines = <1>;
>   		};
> +
> +		pri-pcm-rx@105 {
> +			reg = <105>;
> +			qcom,pcm-quantype = <2>;
> +			qcom,pcm-slot-mapping = <1>;
> +		};
> +
> +		pri-pcm-tx@106 {
> +			reg = <106>;
> +			qcom,pcm-quantype = <2>;
> +			qcom,pcm-slot-mapping = <1>;
> +		};
> +
> +		quat-pcm-rx@111 {
> +			reg = <111>;
> +			qcom,pcm-quantype = <5>;
> +			qcom,pcm-slot-mapping = <0 0 1>;
> +		};
> +
> +		quat-pcm-tx@112 {
> +			reg = <112>;
> +			qcom,pcm-quantype = <5>;
> +			qcom,pcm-slot-mapping = <0 0 1>;
> +		};
>   	};
>   };
>
Adam Serbinski Feb. 12, 2020, 11:01 a.m. UTC | #2
On 2020-02-12 04:59, Srinivas Kandagatla wrote:
> On 12/02/2020 01:52, Adam Serbinski wrote:
>> This patch adds documentation of bindings required for PCM ports on 
>> AFE.
>> 
>> Signed-off-by: Adam Serbinski <adam@serbinski.com>
>> CC: Andy Gross <agross@kernel.org>
>> CC: Mark Rutland <mark.rutland@arm.com>
>> CC: Liam Girdwood <lgirdwood@gmail.com>
>> CC: Patrick Lai <plai@codeaurora.org>
>> CC: Banajit Goswami <bgoswami@codeaurora.org>
>> CC: Jaroslav Kysela <perex@perex.cz>
>> CC: Takashi Iwai <tiwai@suse.com>
>> CC: alsa-devel@alsa-project.org
>> CC: linux-arm-msm@vger.kernel.org
>> CC: devicetree@vger.kernel.org
>> CC: linux-kernel@vger.kernel.org
>> ---
>>   .../devicetree/bindings/sound/qcom,q6afe.txt  | 42 
>> +++++++++++++++++++
>>   1 file changed, 42 insertions(+)
>> 
>> diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt 
>> b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
>> index d74888b9f1bb..6b1b17d31a2a 100644
>> --- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
>> +++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
>> @@ -51,6 +51,24 @@ configuration of each dai. Must contain the 
>> following properties.
>>   	Definition: Must be list of serial data lines used by this dai.
>>   	should be one or more of the 0-3 sd lines.
>>   + - qcom,pcm-quantype
>> +	Usage: required for pcm interface
>> +	Value type: <u32>
>> +	Definition: PCM quantization type
>> +		0 - ALAW, no padding
>> +		1 - MULAW, no padding
>> +		2 - Linear, no padding
>> +		3 - ALAW, padding
>> +		4 - MULAW, padding
>> +		5 - Linear, padding
>> +
>> + - qcom,pcm-slot-mapping
>> +	Usage: required for pcm interface
> 
> Are these not specific to 8k and 16k mode ?
> We should probably list values for both modes here.

No, this is just the offset that the audio sample is placed in with 
respect to a maximum of 4 slots, 16 bits wide, beginning with the sync 
pulse.

When switching between 8 and 16k sample rate, it is just the sync pulse 
rate that is changed. The audio sample will be delivered in the same 
slot, just at a different frequency.


>> +	Value type: <prop-encoded-array>
>> +	Definition: Slot mapping for audio channels. Array size is the 
>> number
>> +		of slots, minimum 1, maximum 4. The value is 0 for no mapping
>> +		to the slot, or the channel number from 1 to 32.
>> +
>>    - qcom,tdm-sync-mode:
>>   	Usage: required for tdm interface
>>   	Value type: <prop-encoded-array>
>> @@ -174,5 +192,29 @@ q6afe@4 {
>>   			reg = <23>;
>>   			qcom,sd-lines = <1>;
>>   		};
>> +
>> +		pri-pcm-rx@105 {
>> +			reg = <105>;
>> +			qcom,pcm-quantype = <2>;
>> +			qcom,pcm-slot-mapping = <1>;
>> +		};
>> +
>> +		pri-pcm-tx@106 {
>> +			reg = <106>;
>> +			qcom,pcm-quantype = <2>;
>> +			qcom,pcm-slot-mapping = <1>;
>> +		};
>> +
>> +		quat-pcm-rx@111 {
>> +			reg = <111>;
>> +			qcom,pcm-quantype = <5>;
>> +			qcom,pcm-slot-mapping = <0 0 1>;
>> +		};
>> +
>> +		quat-pcm-tx@112 {
>> +			reg = <112>;
>> +			qcom,pcm-quantype = <5>;
>> +			qcom,pcm-slot-mapping = <0 0 1>;
>> +		};
>>   	};
>>   };
>>
Srinivas Kandagatla Feb. 12, 2020, 11:43 a.m. UTC | #3
On 12/02/2020 11:01, Adam Serbinski wrote:
>>>
>>> +
>>> + - qcom,pcm-slot-mapping
>>> +    Usage: required for pcm interface
>>
>> Are these not specific to 8k and 16k mode ?
>> We should probably list values for both modes here.
> 
> No, this is just the offset that the audio sample is placed in with 
> respect to a maximum of 4 slots, 16 bits wide, beginning with the sync 
> pulse.


That's not true atleast by the QDSP documentation,
according to it we will use more slots to transfer at higher sample 
rate. ex:
16 kHz data can be transferred using 8 kHz samples in two
slots.

Also there are 32 slots for each of 4 supported channels for PCM AFE port.


> 
> When switching between 8 and 16k sample rate, it is just the sync pulse 
> rate that is changed. The audio sample will be delivered in the same 
> slot, just at a different frequency.
Adam Serbinski Feb. 12, 2020, 12:07 p.m. UTC | #4
On 2020-02-12 06:43, Srinivas Kandagatla wrote:
> On 12/02/2020 11:01, Adam Serbinski wrote:
>>>> 
>>>> +
>>>> + - qcom,pcm-slot-mapping
>>>> +    Usage: required for pcm interface
>>> 
>>> Are these not specific to 8k and 16k mode ?
>>> We should probably list values for both modes here.
>> 
>> No, this is just the offset that the audio sample is placed in with 
>> respect to a maximum of 4 slots, 16 bits wide, beginning with the sync 
>> pulse.
> 
> 
> That's not true atleast by the QDSP documentation,
> according to it we will use more slots to transfer at higher sample 
> rate. ex:
> 16 kHz data can be transferred using 8 kHz samples in two
> slots.
> 
> Also there are 32 slots for each of 4 supported channels for PCM AFE 
> port.

Ok, if that's the case, then it sounds like someone else is going to 
have to implement it. I have no way to test that kind of a 
configuration, so attempting to implement it would be futile.

> 
> 
>> 
>> When switching between 8 and 16k sample rate, it is just the sync 
>> pulse rate that is changed. The audio sample will be delivered in the 
>> same slot, just at a different frequency.

Patch
diff mbox series

diff --git a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
index d74888b9f1bb..6b1b17d31a2a 100644
--- a/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
+++ b/Documentation/devicetree/bindings/sound/qcom,q6afe.txt
@@ -51,6 +51,24 @@  configuration of each dai. Must contain the following properties.
 	Definition: Must be list of serial data lines used by this dai.
 	should be one or more of the 0-3 sd lines.
 
+ - qcom,pcm-quantype
+	Usage: required for pcm interface
+	Value type: <u32>
+	Definition: PCM quantization type
+		0 - ALAW, no padding
+		1 - MULAW, no padding
+		2 - Linear, no padding
+		3 - ALAW, padding
+		4 - MULAW, padding
+		5 - Linear, padding
+
+ - qcom,pcm-slot-mapping
+	Usage: required for pcm interface
+	Value type: <prop-encoded-array>
+	Definition: Slot mapping for audio channels. Array size is the number
+		of slots, minimum 1, maximum 4. The value is 0 for no mapping
+		to the slot, or the channel number from 1 to 32.
+
  - qcom,tdm-sync-mode:
 	Usage: required for tdm interface
 	Value type: <prop-encoded-array>
@@ -174,5 +192,29 @@  q6afe@4 {
 			reg = <23>;
 			qcom,sd-lines = <1>;
 		};
+
+		pri-pcm-rx@105 {
+			reg = <105>;
+			qcom,pcm-quantype = <2>;
+			qcom,pcm-slot-mapping = <1>;
+		};
+
+		pri-pcm-tx@106 {
+			reg = <106>;
+			qcom,pcm-quantype = <2>;
+			qcom,pcm-slot-mapping = <1>;
+		};
+
+		quat-pcm-rx@111 {
+			reg = <111>;
+			qcom,pcm-quantype = <5>;
+			qcom,pcm-slot-mapping = <0 0 1>;
+		};
+
+		quat-pcm-tx@112 {
+			reg = <112>;
+			qcom,pcm-quantype = <5>;
+			qcom,pcm-slot-mapping = <0 0 1>;
+		};
 	};
 };