mbox series

[v2,00/13] ASoC: ti: davinci-i2s: Add features to McBSP driver

Message ID 20240402071213.11671-1-bastien.curutchet@bootlin.com (mailing list archive)
Headers show
Series ASoC: ti: davinci-i2s: Add features to McBSP driver | expand

Message

Bastien Curutchet April 2, 2024, 7:12 a.m. UTC
This series aims to add some features to McBSP driver.

Convert bindings from .txt to .yaml.
Add possibility to use an external clock as sample rate generator's
input.
Add handling of new formats (TDM, S24_LE, BP_FC).
Enable the detection of unexpected frame pulses.
Set the clock free-running mode according to SND_SOC_DAIFMT_[GATED/CONT]
configuration in DAI format.
Add ti,T1-framing[tx/rx] properties in DT. They allow to set the data
delay to two bit-clock periods.

This has been tested on a platform designed off of the DAVINCI/OMAP-L138
connected to 3 daisy-chained AD7767. An external clock drives the
sample rate generator through the CLKS pin.
The hardware I have only allowed me to test acquisition side of McBSP.
It is connected to a 6 channels TDM and acts as Bit clock provider and
Frame clock consumer.

Change log v1 -> v2:
  PATCH 1 (bindings):
     * Drop power-domains property's description
     * Drop the unused label 'mcbsp0' in example
     * Add <> around each entry of the 'dmas' property
     * Add 'Reviewed-by: Rob Herring <robh@kernel.org>'
  PATCH 2 (bindings):
     * Drop the 'ti,enable-sync-err' flag
     * Drop the 'ti,disable-free-run' flag
     * Add 'Reviewed-by: Rob Herring <robh@kernel.org>'
  PATCH 4:
     * In probe() use dev_err for fixed error
  PATCH 7 (TDM):
     * set playback.max_channels to 128
     * Add a check on tx_mask as the one done for rx_mask
     * Allow TDM with BP_FP format
  PATCH 9:
     * Detection of unexpected frame pulses is enabled by default
  PATCH 10:
     * Free-running mode is selected by the DAI format through
       SND_SOC_DAIFMT_[CONT/GATED]
  PATCH 12:
     * drop the 'ti,drive-dx' property
     * add 'ti,T1-framing-[rx/tx]' properties
  PATCH 13:
     * Drop the drive_dx part
     * Add support for 'T1 framing' with data delay set to 2 bit-clock
       periods
Bastien Curutchet (13):
  ASoC: dt-bindings: davinci-mcbsp: convert McBSP bindings to yaml
    schema
  ASoC: dt-bindings: davinci-mcbsp: Add optional clock
  ASoC: ti: davinci-i2s: Remove the unused clk_input_pin attribute
  ASoC: ti: davinci-i2s: Replace dev_err with dev_err_probe
  ASoC: ti: davinci-i2s: Use external clock to drive sample rate
    generator
  ASoC: ti: davinci-i2s: Delete unnecessary assignment
  ASoC: ti: davinci-i2s: Add TDM support
  ASoC: ti: davinci-i2s: Add handling of BP_FC format
  ASoC: ti: davinci-i2s: Enable unexpected frame pulses detection
  ASoC: ti: davinci-i2s: Link free-run mode to
    SND_SOC_DAIFMT_[GATED/CONT]
  ASoC: ti: davinci-i2s: Add S24_LE to supported formats
  ASoC: dt-bindings: davinci-mcbsp: Add the 'ti,T1-framing-{rx/tx}'
    flags
  ASoC: ti: davinci-i2s: Add T1 framing support

 .../bindings/sound/davinci-mcbsp.txt          |  50 ----
 .../bindings/sound/davinci-mcbsp.yaml         | 113 +++++++
 include/linux/platform_data/davinci_asp.h     |  15 -
 sound/soc/ti/davinci-i2s.c                    | 278 ++++++++++++++----
 4 files changed, 333 insertions(+), 123 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/davinci-mcbsp.txt
 create mode 100644 Documentation/devicetree/bindings/sound/davinci-mcbsp.yaml

Comments

Péter Ujfalusi April 9, 2024, 2:39 p.m. UTC | #1
Hi Bastien,

On 02/04/2024 10:12, Bastien Curutchet wrote:
> This series aims to add some features to McBSP driver.
> 
> Convert bindings from .txt to .yaml.
> Add possibility to use an external clock as sample rate generator's
> input.
> Add handling of new formats (TDM, S24_LE, BP_FC).
> Enable the detection of unexpected frame pulses.
> Set the clock free-running mode according to SND_SOC_DAIFMT_[GATED/CONT]
> configuration in DAI format.
> Add ti,T1-framing[tx/rx] properties in DT. They allow to set the data
> delay to two bit-clock periods.
> 
> This has been tested on a platform designed off of the DAVINCI/OMAP-L138
> connected to 3 daisy-chained AD7767. An external clock drives the
> sample rate generator through the CLKS pin.
> The hardware I have only allowed me to test acquisition side of McBSP.
> It is connected to a 6 channels TDM and acts as Bit clock provider and
> Frame clock consumer.

Nice and clean, thank you for the updates!

Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>

PS: sorry for the delay.

> 
> Change log v1 -> v2:
>   PATCH 1 (bindings):
>      * Drop power-domains property's description
>      * Drop the unused label 'mcbsp0' in example
>      * Add <> around each entry of the 'dmas' property
>      * Add 'Reviewed-by: Rob Herring <robh@kernel.org>'
>   PATCH 2 (bindings):
>      * Drop the 'ti,enable-sync-err' flag
>      * Drop the 'ti,disable-free-run' flag
>      * Add 'Reviewed-by: Rob Herring <robh@kernel.org>'
>   PATCH 4:
>      * In probe() use dev_err for fixed error
>   PATCH 7 (TDM):
>      * set playback.max_channels to 128
>      * Add a check on tx_mask as the one done for rx_mask
>      * Allow TDM with BP_FP format
>   PATCH 9:
>      * Detection of unexpected frame pulses is enabled by default
>   PATCH 10:
>      * Free-running mode is selected by the DAI format through
>        SND_SOC_DAIFMT_[CONT/GATED]
>   PATCH 12:
>      * drop the 'ti,drive-dx' property
>      * add 'ti,T1-framing-[rx/tx]' properties
>   PATCH 13:
>      * Drop the drive_dx part
>      * Add support for 'T1 framing' with data delay set to 2 bit-clock
>        periods
> Bastien Curutchet (13):
>   ASoC: dt-bindings: davinci-mcbsp: convert McBSP bindings to yaml
>     schema
>   ASoC: dt-bindings: davinci-mcbsp: Add optional clock
>   ASoC: ti: davinci-i2s: Remove the unused clk_input_pin attribute
>   ASoC: ti: davinci-i2s: Replace dev_err with dev_err_probe
>   ASoC: ti: davinci-i2s: Use external clock to drive sample rate
>     generator
>   ASoC: ti: davinci-i2s: Delete unnecessary assignment
>   ASoC: ti: davinci-i2s: Add TDM support
>   ASoC: ti: davinci-i2s: Add handling of BP_FC format
>   ASoC: ti: davinci-i2s: Enable unexpected frame pulses detection
>   ASoC: ti: davinci-i2s: Link free-run mode to
>     SND_SOC_DAIFMT_[GATED/CONT]
>   ASoC: ti: davinci-i2s: Add S24_LE to supported formats
>   ASoC: dt-bindings: davinci-mcbsp: Add the 'ti,T1-framing-{rx/tx}'
>     flags
>   ASoC: ti: davinci-i2s: Add T1 framing support
> 
>  .../bindings/sound/davinci-mcbsp.txt          |  50 ----
>  .../bindings/sound/davinci-mcbsp.yaml         | 113 +++++++
>  include/linux/platform_data/davinci_asp.h     |  15 -
>  sound/soc/ti/davinci-i2s.c                    | 278 ++++++++++++++----
>  4 files changed, 333 insertions(+), 123 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/sound/davinci-mcbsp.txt
>  create mode 100644 Documentation/devicetree/bindings/sound/davinci-mcbsp.yaml
>
Mark Brown April 9, 2024, 11:34 p.m. UTC | #2
On Tue, 02 Apr 2024 09:12:00 +0200, Bastien Curutchet wrote:
> This series aims to add some features to McBSP driver.
> 
> Convert bindings from .txt to .yaml.
> Add possibility to use an external clock as sample rate generator's
> input.
> Add handling of new formats (TDM, S24_LE, BP_FC).
> Enable the detection of unexpected frame pulses.
> Set the clock free-running mode according to SND_SOC_DAIFMT_[GATED/CONT]
> configuration in DAI format.
> Add ti,T1-framing[tx/rx] properties in DT. They allow to set the data
> delay to two bit-clock periods.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/13] ASoC: dt-bindings: davinci-mcbsp: convert McBSP bindings to yaml schema
        commit: 22a1dd652de329394ca81dd2fe046444920c96dc
[02/13] ASoC: dt-bindings: davinci-mcbsp: Add optional clock
        commit: 6a4b6b062a5917d611c1bde7189c5147cf0ca832
[03/13] ASoC: ti: davinci-i2s: Remove the unused clk_input_pin attribute
        commit: 904fb8f843a99ae7473d184412b6c7bd46a51593
[04/13] ASoC: ti: davinci-i2s: Replace dev_err with dev_err_probe
        commit: 6b1517b30d6dc9442d92f0273726f1e7390eff2c
[05/13] ASoC: ti: davinci-i2s: Use external clock to drive sample rate generator
        commit: 714ffb8d36f94bdc6d576417b451e9c568c83894
[06/13] ASoC: ti: davinci-i2s: Delete unnecessary assignment
        commit: 7dd7a6d2648b0b253cb8be3cdf8e895a995548fe
[07/13] ASoC: ti: davinci-i2s: Add TDM support
        commit: 37e313cda35aa16623ccae630530651c786a1392
[08/13] ASoC: ti: davinci-i2s: Add handling of BP_FC format
        commit: eff21f5f8ea01834835ebe35995dba40f8435795
[09/13] ASoC: ti: davinci-i2s: Enable unexpected frame pulses detection
        commit: 94d57c541dbdd350a91baeee94d3f5148e1d4dd7
[10/13] ASoC: ti: davinci-i2s: Link free-run mode to SND_SOC_DAIFMT_[GATED/CONT]
        commit: 091b440ffd7cb542fd45c39dddd56bd870f9e180
[11/13] ASoC: ti: davinci-i2s: Add S24_LE to supported formats
        commit: 92e7bb2b6aa374c130dcf052f2c52f63c5b75d38
[12/13] ASoC: dt-bindings: davinci-mcbsp: Add the 'ti,T1-framing-{rx/tx}' flags
        commit: 609302ca04a3177463b0fbf4d5fc55a3ab4f900d
[13/13] ASoC: ti: davinci-i2s: Add T1 framing support
        commit: 08e02fa48429c34db231cc3b58b940de2f7caf35

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark