* [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI
2017-03-07 9:44 [RESEND PATCH v2 0/2] Add STM32 SAI support olivier moysan
@ 2017-03-07 9:44 ` olivier moysan
[not found] ` <1488879872-7839-2-git-send-email-olivier.moysan-qxv4g6HH51o@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: olivier moysan @ 2017-03-07 9:44 UTC (permalink / raw)
To: lgirdwood, broonie, perex, tiwai, mcoquelin.stm32,
alexandre.torgue, alsa-devel, robh, mark.rutland, devicetree,
linux-arm-kernel, olivier.moysan
Cc: arnaud.pouliquen
This patch adds documentation of device tree bindings for the
STM32 SAI ASoC driver.
Signed-off-by: olivier moysan <olivier.moysan@st.com>
---
.../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++++++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt
diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.txt b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
new file mode 100644
index 0000000..b3be26d
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
@@ -0,0 +1,79 @@
+STMicroelectronics STM32 Serial Audio Interface (SAI).
+
+The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
+as I2S standards, LSB or MSB-justified, PCM/DSP, TDM, and AC'97.
+The SAI contains two independent audio sub-blocks. Each sub-block has
+its own clock generator and I/O lines controller.
+
+Required properties:
+ - compatible: Should be "st,stm32f4-sai"
+ - reg: Base address and size of SAI common register set.
+ - clocks: Must contain phandle and clock specifier pairs for each entry
+ in clock-names.
+ - clock-names: Must contain "clk_x8k" and "clk_x11k"
+ "clk_x8k": SAI parent clock for sampling rates multiple of 8kHz.
+ "clk_x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
+ - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
+
+Note: Each SAI controller should have an alias correctly numbered
+in "aliases" node, to provide explicit name to CPU DAI.
+
+Optional properties:
+ - resets: Reference to a reset controller asserting the SAI
+
+SAI subnodes:
+Two subnodes corresponding to SAI sub-block instances A et B can be defined.
+Subnode can be omitted for unsused sub-block.
+
+SAI subnodes required properties:
+ - compatible: Should be "st,stm32-sai-sub-a" or "st,stm32-sai-sub-b"
+ for SAI sub-block A or B respectively.
+ - reg: Base address and size of SAI sub-block register set.
+ - clocks: Must contain one phandle and clock specifier pair
+ for sai_ck which feeds the internal clock generator.
+ - clock-names: Must contain "sai_ck".
+ - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
+ - dma-names: identifier string for each DMA request line
+ "tx": if sai sub-block is configured as playback DAI
+ "rx": if sai sub-block is configured as capture DAI
+ - pinctrl-names: should contain only value "default"
+ - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt
+
+Example:
+sai1: sai1@40015800 {
+ compatible = "st,stm32f4-sai";
+ reg = <0x40015800 0x400>;
+ clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>;
+ clock-names = "clk_x8k", "clk_x11k";
+ interrupts = <87>;
+ resets = <&rcc 310>;
+
+ sai1b: sai@1 {
+ #sound-dai-cells = <0>;
+ compatible = "st,stm32-sai-sub-b";
+ clocks = <&rcc 1 CLK_SAI2>;
+ clock-names = "sai_ck";
+ dmas = <&dma2 5 0 0x400 0x1>;
+ dma-names = "tx";
+ };
+};
+
+sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "STM32-Sound-Card";
+ status = "okay";
+
+ simple-audio-card,dai-link@0 {
+ format = "i2s";
+ cpu {
+ sound-dai = <&sai1b>;
+ };
+ codec {
+ sound-dai = <&codec>;
+ };
+ };
+};
+
+aliases {
+ sai1 = &sai1;
+};
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI
[not found] ` <1488879872-7839-2-git-send-email-olivier.moysan-qxv4g6HH51o@public.gmane.org>
@ 2017-03-15 17:46 ` Rob Herring
2017-03-16 10:50 ` Olivier MOYSAN
0 siblings, 1 reply; 5+ messages in thread
From: Rob Herring @ 2017-03-15 17:46 UTC (permalink / raw)
To: olivier moysan
Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, broonie-DgEjT+Ai2ygdnm+yROfE0A,
perex-/Fr2/VpizcU, tiwai-IBi9RG/b67k,
mcoquelin.stm32-Re5JQEeQqe8AvxtiuMwx3w,
alexandre.torgue-qxv4g6HH51o, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
mark.rutland-5wv7dgnIgG8, devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
arnaud.pouliquen-qxv4g6HH51o
On Tue, Mar 07, 2017 at 10:44:31AM +0100, olivier moysan wrote:
> This patch adds documentation of device tree bindings for the
> STM32 SAI ASoC driver.
>
> Signed-off-by: olivier moysan <olivier.moysan-qxv4g6HH51o@public.gmane.org>
> ---
> .../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++++++++++++++++++++++
> 1 file changed, 79 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.txt b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
> new file mode 100644
> index 0000000..b3be26d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
> @@ -0,0 +1,79 @@
> +STMicroelectronics STM32 Serial Audio Interface (SAI).
> +
> +The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
> +as I2S standards, LSB or MSB-justified, PCM/DSP, TDM, and AC'97.
> +The SAI contains two independent audio sub-blocks. Each sub-block has
> +its own clock generator and I/O lines controller.
> +
> +Required properties:
> + - compatible: Should be "st,stm32f4-sai"
> + - reg: Base address and size of SAI common register set.
> + - clocks: Must contain phandle and clock specifier pairs for each entry
> + in clock-names.
> + - clock-names: Must contain "clk_x8k" and "clk_x11k"
> + "clk_x8k": SAI parent clock for sampling rates multiple of 8kHz.
> + "clk_x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
clk_ is redundant.
> + - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
> +
> +Note: Each SAI controller should have an alias correctly numbered
> +in "aliases" node, to provide explicit name to CPU DAI.
No, it shouldn't. Why do you need that?
> +
> +Optional properties:
> + - resets: Reference to a reset controller asserting the SAI
> +
> +SAI subnodes:
> +Two subnodes corresponding to SAI sub-block instances A et B can be defined.
> +Subnode can be omitted for unsused sub-block.
> +
> +SAI subnodes required properties:
> + - compatible: Should be "st,stm32-sai-sub-a" or "st,stm32-sai-sub-b"
> + for SAI sub-block A or B respectively.
> + - reg: Base address and size of SAI sub-block register set.
> + - clocks: Must contain one phandle and clock specifier pair
> + for sai_ck which feeds the internal clock generator.
> + - clock-names: Must contain "sai_ck".
> + - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
> + - dma-names: identifier string for each DMA request line
> + "tx": if sai sub-block is configured as playback DAI
> + "rx": if sai sub-block is configured as capture DAI
> + - pinctrl-names: should contain only value "default"
> + - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt
> +
> +Example:
> +sai1: sai1@40015800 {
> + compatible = "st,stm32f4-sai";
> + reg = <0x40015800 0x400>;
> + clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>;
> + clock-names = "clk_x8k", "clk_x11k";
> + interrupts = <87>;
> + resets = <&rcc 310>;
> +
> + sai1b: sai@1 {
unit address needs a reg property.
audio-controller@1
> + #sound-dai-cells = <0>;
> + compatible = "st,stm32-sai-sub-b";
> + clocks = <&rcc 1 CLK_SAI2>;
> + clock-names = "sai_ck";
> + dmas = <&dma2 5 0 0x400 0x1>;
> + dma-names = "tx";
> + };
> +};
> +
> +sound {
> + compatible = "simple-audio-card";
Perhaps you want to use the graph-card here. It's getting close to
merging.
> + simple-audio-card,name = "STM32-Sound-Card";
> + status = "okay";
> +
> + simple-audio-card,dai-link@0 {
> + format = "i2s";
> + cpu {
> + sound-dai = <&sai1b>;
> + };
> + codec {
> + sound-dai = <&codec>;
> + };
> + };
> +};
> +
> +aliases {
> + sai1 = &sai1;
> +};
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI
2017-03-15 17:46 ` Rob Herring
@ 2017-03-16 10:50 ` Olivier MOYSAN
2017-03-18 20:43 ` Rob Herring
0 siblings, 1 reply; 5+ messages in thread
From: Olivier MOYSAN @ 2017-03-16 10:50 UTC (permalink / raw)
To: Rob Herring
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
alsa-devel@alsa-project.org, Alexandre TORGUE, Arnaud POULIQUEN,
tiwai@suse.com, lgirdwood@gmail.com, broonie@kernel.org,
mcoquelin.stm32@gmail.com, linux-arm-kernel@lists.infradead.org
Hello Rob,
Thanks for your feedback.
On 03/15/2017 06:46 PM, Rob Herring wrote:
> On Tue, Mar 07, 2017 at 10:44:31AM +0100, olivier moysan wrote:
>> This patch adds documentation of device tree bindings for the
>> STM32 SAI ASoC driver.
>>
>> Signed-off-by: olivier moysan <olivier.moysan@st.com>
>> ---
>> .../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++++++++++++++++++++++
>> 1 file changed, 79 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>
>> diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.txt b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>> new file mode 100644
>> index 0000000..b3be26d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>> @@ -0,0 +1,79 @@
>> +STMicroelectronics STM32 Serial Audio Interface (SAI).
>> +
>> +The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
>> +as I2S standards, LSB or MSB-justified, PCM/DSP, TDM, and AC'97.
>> +The SAI contains two independent audio sub-blocks. Each sub-block has
>> +its own clock generator and I/O lines controller.
>> +
>> +Required properties:
>> + - compatible: Should be "st,stm32f4-sai"
>> + - reg: Base address and size of SAI common register set.
>> + - clocks: Must contain phandle and clock specifier pairs for each entry
>> + in clock-names.
>> + - clock-names: Must contain "clk_x8k" and "clk_x11k"
>> + "clk_x8k": SAI parent clock for sampling rates multiple of 8kHz.
>> + "clk_x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
>
> clk_ is redundant.
>
Do you mean, removing clk_ prefix ?
>> + - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
>> +
>> +Note: Each SAI controller should have an alias correctly numbered
>> +in "aliases" node, to provide explicit name to CPU DAI.
>
> No, it shouldn't. Why do you need that?
>
Yes, this is not mandatory. This is convenient to identify sai
controller, as we may have up to 8 instances.
I can make it optional, or remove it if you think it is not relevant.
>
>> +
>> +Optional properties:
>> + - resets: Reference to a reset controller asserting the SAI
>> +
>> +SAI subnodes:
>> +Two subnodes corresponding to SAI sub-block instances A et B can be defined.
>> +Subnode can be omitted for unsused sub-block.
>> +
>> +SAI subnodes required properties:
>> + - compatible: Should be "st,stm32-sai-sub-a" or "st,stm32-sai-sub-b"
>> + for SAI sub-block A or B respectively.
>> + - reg: Base address and size of SAI sub-block register set.
>> + - clocks: Must contain one phandle and clock specifier pair
>> + for sai_ck which feeds the internal clock generator.
>> + - clock-names: Must contain "sai_ck".
>> + - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
>> + - dma-names: identifier string for each DMA request line
>> + "tx": if sai sub-block is configured as playback DAI
>> + "rx": if sai sub-block is configured as capture DAI
>> + - pinctrl-names: should contain only value "default"
>> + - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt
>> +
>> +Example:
>> +sai1: sai1@40015800 {
>> + compatible = "st,stm32f4-sai";
>> + reg = <0x40015800 0x400>;
reg = <0x40015800 0x4>;
>> + clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>;
>> + clock-names = "clk_x8k", "clk_x11k";
>> + interrupts = <87>;
>> + resets = <&rcc 310>;
>> +
>> + sai1b: sai@1 {
>
> unit address needs a reg property.
>
> audio-controller@1
>
Right. This needs to be updated as follows:
sai1b: sai1b@40015824 {
...
reg = <0x40015824 0x1C>;
...
};
>> + #sound-dai-cells = <0>;
>> + compatible = "st,stm32-sai-sub-b";
>> + clocks = <&rcc 1 CLK_SAI2>;
>> + clock-names = "sai_ck";
>> + dmas = <&dma2 5 0 0x400 0x1>;
>> + dma-names = "tx";
>> + };
>> +};
>> +
>> +sound {
>> + compatible = "simple-audio-card";
>
> Perhaps you want to use the graph-card here. It's getting close to
> merging.
>
mclk-fs property is required when SAI is configured as master.
It seems that mclk-fs is not supported in current version
of audio graph card. So I thing I should keep simple card for the time
being. Anyway, I plan further updates for SAI, so I will
have opportunity to change to graph card at that time.
>> + simple-audio-card,name = "STM32-Sound-Card";
>> + status = "okay";
>> +
>> + simple-audio-card,dai-link@0 {
>> + format = "i2s";
mclk-fs = <256>;
>> + cpu {
>> + sound-dai = <&sai1b>;
>> + };
>> + codec {
>> + sound-dai = <&codec>;
>> + };
>> + };
>> +};
>> +
>> +aliases {
>> + sai1 = &sai1;
>> +};
>> --
>> 1.9.1
>>
regards
olivier
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI
2017-03-16 10:50 ` Olivier MOYSAN
@ 2017-03-18 20:43 ` Rob Herring
0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2017-03-18 20:43 UTC (permalink / raw)
To: Olivier MOYSAN
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
alsa-devel@alsa-project.org, Alexandre TORGUE, Arnaud POULIQUEN,
tiwai@suse.com, lgirdwood@gmail.com, broonie@kernel.org,
mcoquelin.stm32@gmail.com, linux-arm-kernel@lists.infradead.org
On Thu, Mar 16, 2017 at 5:50 AM, Olivier MOYSAN <olivier.moysan@st.com> wrote:
> Hello Rob,
>
> Thanks for your feedback.
>
> On 03/15/2017 06:46 PM, Rob Herring wrote:
>> On Tue, Mar 07, 2017 at 10:44:31AM +0100, olivier moysan wrote:
>>> This patch adds documentation of device tree bindings for the
>>> STM32 SAI ASoC driver.
>>>
>>> Signed-off-by: olivier moysan <olivier.moysan@st.com>
>>> ---
>>> .../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++++++++++++++++++++++
>>> 1 file changed, 79 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.txt b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>> new file mode 100644
>>> index 0000000..b3be26d
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>> @@ -0,0 +1,79 @@
>>> +STMicroelectronics STM32 Serial Audio Interface (SAI).
>>> +
>>> +The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
>>> +as I2S standards, LSB or MSB-justified, PCM/DSP, TDM, and AC'97.
>>> +The SAI contains two independent audio sub-blocks. Each sub-block has
>>> +its own clock generator and I/O lines controller.
>>> +
>>> +Required properties:
>>> + - compatible: Should be "st,stm32f4-sai"
>>> + - reg: Base address and size of SAI common register set.
>>> + - clocks: Must contain phandle and clock specifier pairs for each entry
>>> + in clock-names.
>>> + - clock-names: Must contain "clk_x8k" and "clk_x11k"
>>> + "clk_x8k": SAI parent clock for sampling rates multiple of 8kHz.
>>> + "clk_x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
>>
>> clk_ is redundant.
>>
>
> Do you mean, removing clk_ prefix ?
Yes.
>
>>> + - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
>>> +
>>> +Note: Each SAI controller should have an alias correctly numbered
>>> +in "aliases" node, to provide explicit name to CPU DAI.
>>
>> No, it shouldn't. Why do you need that?
>>
>
> Yes, this is not mandatory. This is convenient to identify sai
> controller, as we may have up to 8 instances.
> I can make it optional, or remove it if you think it is not relevant.
Remove it.
>
>>
>>> +
>>> +Optional properties:
>>> + - resets: Reference to a reset controller asserting the SAI
>>> +
>>> +SAI subnodes:
>>> +Two subnodes corresponding to SAI sub-block instances A et B can be defined.
>>> +Subnode can be omitted for unsused sub-block.
>>> +
>>> +SAI subnodes required properties:
>>> + - compatible: Should be "st,stm32-sai-sub-a" or "st,stm32-sai-sub-b"
>>> + for SAI sub-block A or B respectively.
>>> + - reg: Base address and size of SAI sub-block register set.
>>> + - clocks: Must contain one phandle and clock specifier pair
>>> + for sai_ck which feeds the internal clock generator.
>>> + - clock-names: Must contain "sai_ck".
>>> + - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
>>> + - dma-names: identifier string for each DMA request line
>>> + "tx": if sai sub-block is configured as playback DAI
>>> + "rx": if sai sub-block is configured as capture DAI
>>> + - pinctrl-names: should contain only value "default"
>>> + - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt
>>> +
>>> +Example:
>>> +sai1: sai1@40015800 {
>>> + compatible = "st,stm32f4-sai";
>>> + reg = <0x40015800 0x400>;
>
> reg = <0x40015800 0x4>;
>
>>> + clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>;
>>> + clock-names = "clk_x8k", "clk_x11k";
>>> + interrupts = <87>;
>>> + resets = <&rcc 310>;
>>> +
>>> + sai1b: sai@1 {
>>
>> unit address needs a reg property.
>>
>> audio-controller@1
>>
>
> Right. This needs to be updated as follows:
> sai1b: sai1b@40015824 {
audio-controller@...
> ...
> reg = <0x40015824 0x1C>;
> ...
> };
>
>>> + #sound-dai-cells = <0>;
>>> + compatible = "st,stm32-sai-sub-b";
>>> + clocks = <&rcc 1 CLK_SAI2>;
>>> + clock-names = "sai_ck";
>>> + dmas = <&dma2 5 0 0x400 0x1>;
>>> + dma-names = "tx";
>>> + };
>>> +};
>>> +
>>> +sound {
>>> + compatible = "simple-audio-card";
>>
>> Perhaps you want to use the graph-card here. It's getting close to
>> merging.
>>
>
> mclk-fs property is required when SAI is configured as master.
> It seems that mclk-fs is not supported in current version
> of audio graph card. So I thing I should keep simple card for the time
> being. Anyway, I plan further updates for SAI, so I will
> have opportunity to change to graph card at that time.
Well, it's not easy to switch later and maintain compatibility. Is it
complicated to add mclk-fs property? The intent is graph-card supports
everything simple-card supports.
Rob
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI
[not found] <f6a9354e-dbab-f485-c763-21c8e3af3d62@st.com>
@ 2017-03-21 10:31 ` Olivier MOYSAN
0 siblings, 0 replies; 5+ messages in thread
From: Olivier MOYSAN @ 2017-03-21 10:31 UTC (permalink / raw)
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
alsa-devel@alsa-project.org, Alexandre TORGUE, Arnaud POULIQUEN,
lgirdwood@gmail.com, tiwai@suse.com, broonie@kernel.org,
mcoquelin.stm32@gmail.com, linux-arm-kernel@lists.infradead.org
Hello Rob,
On 03/18/2017 09:43 PM, Rob Herring wrote:
> On Thu, Mar 16, 2017 at 5:50 AM, Olivier MOYSAN <olivier.moysan@st.com> wrote:
>> Hello Rob,
>>
>> Thanks for your feedback.
>>
>> On 03/15/2017 06:46 PM, Rob Herring wrote:
>>> On Tue, Mar 07, 2017 at 10:44:31AM +0100, olivier moysan wrote:
>>>> This patch adds documentation of device tree bindings for the
>>>> STM32 SAI ASoC driver.
>>>>
>>>> Signed-off-by: olivier moysan <olivier.moysan@st.com>
>>>> ---
>>>> .../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++++++++++++++++++++++
>>>> 1 file changed, 79 insertions(+)
>>>> create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.txt b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>>> new file mode 100644
>>>> index 0000000..b3be26d
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.txt
>>>> @@ -0,0 +1,79 @@
>>>> +STMicroelectronics STM32 Serial Audio Interface (SAI).
>>>> +
>>>> +The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
>>>> +as I2S standards, LSB or MSB-justified, PCM/DSP, TDM, and AC'97.
>>>> +The SAI contains two independent audio sub-blocks. Each sub-block has
>>>> +its own clock generator and I/O lines controller.
>>>> +
>>>> +Required properties:
>>>> + - compatible: Should be "st,stm32f4-sai"
>>>> + - reg: Base address and size of SAI common register set.
>>>> + - clocks: Must contain phandle and clock specifier pairs for each entry
>>>> + in clock-names.
>>>> + - clock-names: Must contain "clk_x8k" and "clk_x11k"
>>>> + "clk_x8k": SAI parent clock for sampling rates multiple of 8kHz.
>>>> + "clk_x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
>>>
>>> clk_ is redundant.
>>>
>>
>> Do you mean, removing clk_ prefix ?
>
> Yes.
>
>>
>>>> + - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
>>>> +
>>>> +Note: Each SAI controller should have an alias correctly numbered
>>>> +in "aliases" node, to provide explicit name to CPU DAI.
>>>
>>> No, it shouldn't. Why do you need that?
>>>
>>
>> Yes, this is not mandatory. This is convenient to identify sai
>> controller, as we may have up to 8 instances.
>> I can make it optional, or remove it if you think it is not relevant.
>
> Remove it.
>
One more thing regarding aliases.
In future patches, I will add alsa controls to configure sai.
Some stm32 socs exhibit several sai (4 instances for H7)
It will be necessary to identify to which sai each control apply,
through the control names:
SAI1A control X
SAI2A control X
...
sub-node compatible already allows to identify A or B sub-instance.
An alternative to alias, may be to use dev_name information to identify
sai instance. But this does not produce user friendly control names.
Another way is to use compatible also. The drawback here
is to multiply compatible names. (many soc families and many instances)
What is your recommendation ?
If there is another solution, I did not consider, please let me know.
>>
>>>
>>>> +
>>>> +Optional properties:
>>>> + - resets: Reference to a reset controller asserting the SAI
>>>> +
>>>> +SAI subnodes:
>>>> +Two subnodes corresponding to SAI sub-block instances A et B can be defined.
>>>> +Subnode can be omitted for unsused sub-block.
>>>> +
>>>> +SAI subnodes required properties:
>>>> + - compatible: Should be "st,stm32-sai-sub-a" or "st,stm32-sai-sub-b"
>>>> + for SAI sub-block A or B respectively.
>>>> + - reg: Base address and size of SAI sub-block register set.
>>>> + - clocks: Must contain one phandle and clock specifier pair
>>>> + for sai_ck which feeds the internal clock generator.
>>>> + - clock-names: Must contain "sai_ck".
>>>> + - dmas: see Documentation/devicetree/bindings/dma/stm32-dma.txt
>>>> + - dma-names: identifier string for each DMA request line
>>>> + "tx": if sai sub-block is configured as playback DAI
>>>> + "rx": if sai sub-block is configured as capture DAI
>>>> + - pinctrl-names: should contain only value "default"
>>>> + - pinctrl-0: see Documentation/devicetree/bindings/pinctrl/pinctrl-stm32.txt
>>>> +
>>>> +Example:
>>>> +sai1: sai1@40015800 {
>>>> + compatible = "st,stm32f4-sai";
>>>> + reg = <0x40015800 0x400>;
>>
>> reg = <0x40015800 0x4>;
>>
>>>> + clocks = <&rcc 1 CLK_SAIQ_PDIV>, <&rcc 1 CLK_I2SQ_PDIV>;
>>>> + clock-names = "clk_x8k", "clk_x11k";
>>>> + interrupts = <87>;
>>>> + resets = <&rcc 310>;
>>>> +
>>>> + sai1b: sai@1 {
>>>
>>> unit address needs a reg property.
>>>
>>> audio-controller@1
>>>
>>
>> Right. This needs to be updated as follows:
>> sai1b: sai1b@40015824 {
>
> audio-controller@...
>
>> ...
>> reg = <0x40015824 0x1C>;
>> ...
>> };
>>
>>>> + #sound-dai-cells = <0>;
>>>> + compatible = "st,stm32-sai-sub-b";
>>>> + clocks = <&rcc 1 CLK_SAI2>;
>>>> + clock-names = "sai_ck";
>>>> + dmas = <&dma2 5 0 0x400 0x1>;
>>>> + dma-names = "tx";
>>>> + };
>>>> +};
>>>> +
>>>> +sound {
>>>> + compatible = "simple-audio-card";
>>>
>>> Perhaps you want to use the graph-card here. It's getting close to
>>> merging.
>>>
>>
>> mclk-fs property is required when SAI is configured as master.
>> It seems that mclk-fs is not supported in current version
>> of audio graph card. So I thing I should keep simple card for the time
>> being. Anyway, I plan further updates for SAI, so I will
>> have opportunity to change to graph card at that time.
>
> Well, it's not easy to switch later and maintain compatibility. Is it
> complicated to add mclk-fs property? The intent is graph-card supports
> everything simple-card supports.
>
> Rob
>
Right, it should not be too complicated to add mclk-fs support to
graph-card.
BRs
olivier
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-03-21 10:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <f6a9354e-dbab-f485-c763-21c8e3af3d62@st.com>
2017-03-21 10:31 ` [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI Olivier MOYSAN
2017-03-07 9:44 [RESEND PATCH v2 0/2] Add STM32 SAI support olivier moysan
2017-03-07 9:44 ` [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI olivier moysan
[not found] ` <1488879872-7839-2-git-send-email-olivier.moysan-qxv4g6HH51o@public.gmane.org>
2017-03-15 17:46 ` Rob Herring
2017-03-16 10:50 ` Olivier MOYSAN
2017-03-18 20:43 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).