* 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
* [RESEND PATCH v2 0/2] Add STM32 SAI support @ 2017-03-07 9:44 olivier moysan 2017-03-07 9:44 ` [RESEND PATCH v2 1/2] ASoC: stm32: add bindings for SAI olivier moysan 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-set handles the Serial Audio Interface (SAI) IP on STM32 platforms. The SAI IP is composed of two Sub-block A and B. (see the figure below) Each sub-block makes use of individual and shared resources. Shared resources: - Reset line. Reset common and sub-block registers. - Bus interface clocks. This clock is not exposed in device as it it managed by clock driver, according to kernel clocks gating. - Common register. SAI IP exhibits a common configuration register to manage synchronization modes. NB: These modes are not yet implemented in this version of the SAI driver. - Interrupt. Sub-blocks have their own interrupt status registers but they share the same interrupt line. Individual resources: - Register set - DMA request line. - Communication interface. Each sub-block has its own GPIOs and associated bus lines. - Kernel clock. Each sub-block has its own dedicated clock for its communication interface. To reflect this architecture Sub-block A and B are handled by 2 child devices. Sub-block A and B devices can be configured independently either as transmitter or receiver. A PCM device is associated to each sub-block. A sub-block has to select the appropriated parent clock at runtime, depending on the audio stream sampling rate to be played or captured. Two parent clocks must be provided to support sampling rates multiples of 8 kHz or 11.025kHz. Interface clock +--------------------------------+ +---------------> | SAI IP | Reset | +-----------------+ | +---------------> | |common registers | | | +-----------------+ | | | | +----------------------+ | | | Sub-block A | | Kernel clock A | | | | Bus A +--------------------> | +----------------+ +----------------> | | |A registers | | | | | +----------------+ | | | +----------------------+ | | | | +----------------------+ | | | Sub-block B | | Kernel clock B | | | | Bus B +--------------------> | +----------------+ +-----------------> | | |B registers | | | | | +----------------+ | | | +----------------------+ | | | +--------------------------------+ Changes in v2: - Fix warnings olivier moysan (2): ASoC: stm32: add bindings for SAI ASoC: stm32: add SAI driver .../devicetree/bindings/sound/st,stm32-sai.txt | 79 ++ sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/stm/Kconfig | 8 + sound/soc/stm/Makefile | 6 + sound/soc/stm/stm32_sai.c | 123 +++ sound/soc/stm/stm32_sai.h | 202 +++++ sound/soc/stm/stm32_sai_sub.c | 899 +++++++++++++++++++++ 8 files changed, 1319 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-sai.txt create mode 100644 sound/soc/stm/Kconfig create mode 100644 sound/soc/stm/Makefile create mode 100644 sound/soc/stm/stm32_sai.c create mode 100644 sound/soc/stm/stm32_sai.h create mode 100644 sound/soc/stm/stm32_sai_sub.c -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [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
[parent not found: <1488879872-7839-2-git-send-email-olivier.moysan-qxv4g6HH51o@public.gmane.org>]
* 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
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).