* [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support
@ 2024-12-26 15:29 Marek Vasut
2024-12-26 15:29 ` [PATCH 2/2] ASoC: fsl_sai: Add " Marek Vasut
2025-01-02 21:25 ` [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document " Rob Herring
0 siblings, 2 replies; 3+ messages in thread
From: Marek Vasut @ 2024-12-26 15:29 UTC (permalink / raw)
To: linux-sound
Cc: Marek Vasut, Conor Dooley, Fabio Estevam, Jaroslav Kysela,
Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Michael Turquette,
Michael Walle, Nicolin Chen, Rob Herring, Shengjiu Wang,
Stephen Boyd, Takashi Iwai, Xiubo Li, devicetree, linux-clk
Document support for setting the Bit Clock Swap bit in CR2 register
via new "fsl,sai-bit-clock-swap" DT property. This bit swaps the
bit clock used by the transmitter or receiver in asynchronous mode,
i.e. makes transmitter use RX_BCLK and TX_SYNC, and vice versa,
makes receiver use TX_BCLK and RX_SYNC.
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Michael Walle <michael@walle.cc>
Cc: Nicolin Chen <nicoleotsuka@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Shengjiu Wang <shengjiu.wang@gmail.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Xiubo Li <Xiubo.Lee@gmail.com>
Cc: devicetree@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
Documentation/devicetree/bindings/sound/fsl,sai.yaml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/fsl,sai.yaml b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
index a5d9c246cc476..7a58df1e3f87c 100644
--- a/Documentation/devicetree/bindings/sound/fsl,sai.yaml
+++ b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
@@ -132,6 +132,13 @@ properties:
of transmitter.
type: boolean
+ fsl,sai-bit-clock-swap:
+ description: |
+ Enable Bit Clock Swap, which swaps the bit clock used by the transmitter
+ or receiver in asynchronous mode, i.e. makes transmitter use RX_BCLK and
+ TX_SYNC, and vice versa, makes receiver use TX_BCLK and RX_SYNC.
+ type: boolean
+
fsl,shared-interrupt:
description: Interrupt is shared with other modules.
type: boolean
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] ASoC: fsl_sai: Add RX/TX BCLK swap support
2024-12-26 15:29 [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support Marek Vasut
@ 2024-12-26 15:29 ` Marek Vasut
2025-01-02 21:25 ` [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document " Rob Herring
1 sibling, 0 replies; 3+ messages in thread
From: Marek Vasut @ 2024-12-26 15:29 UTC (permalink / raw)
To: linux-sound
Cc: Marek Vasut, Conor Dooley, Fabio Estevam, Jaroslav Kysela,
Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Michael Turquette,
Michael Walle, Nicolin Chen, Rob Herring, Shengjiu Wang,
Stephen Boyd, Takashi Iwai, Xiubo Li, devicetree, linux-clk
Add support for setting the Bit Clock Swap bit in CR2 register
via new "fsl,sai-bit-clock-swap" DT property. This bit swaps the
bit clock used by the transmitter or receiver in asynchronous mode,
i.e. makes transmitter use RX_BCLK and TX_SYNC, and vice versa,
makes receiver use TX_BCLK and RX_SYNC.
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Michael Walle <michael@walle.cc>
Cc: Nicolin Chen <nicoleotsuka@gmail.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Shengjiu Wang <shengjiu.wang@gmail.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Xiubo Li <Xiubo.Lee@gmail.com>
Cc: devicetree@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
sound/soc/fsl/fsl_sai.c | 7 ++++++-
sound/soc/fsl/fsl_sai.h | 2 ++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index c4eb87c5d39e4..3b1b51c482d50 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -276,6 +276,9 @@ static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai,
unsigned int ofs = sai->soc_data->reg_offset;
u32 val_cr2 = 0, val_cr4 = 0;
+ if (sai->is_bit_clock_swap)
+ val_cr2 |= FSL_SAI_CR2_BCS;
+
if (!sai->is_lsb_first)
val_cr4 |= FSL_SAI_CR4_MF;
@@ -375,7 +378,8 @@ static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai,
}
regmap_update_bits(sai->regmap, FSL_SAI_xCR2(tx, ofs),
- FSL_SAI_CR2_BCP | FSL_SAI_CR2_BCD_MSTR, val_cr2);
+ FSL_SAI_CR2_BCS | FSL_SAI_CR2_BCP | FSL_SAI_CR2_BCD_MSTR,
+ val_cr2);
regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, ofs),
FSL_SAI_CR4_MF | FSL_SAI_CR4_FSE |
FSL_SAI_CR4_FSP | FSL_SAI_CR4_FSD_MSTR, val_cr4);
@@ -1395,6 +1399,7 @@ static int fsl_sai_probe(struct platform_device *pdev)
sai->soc_data = of_device_get_match_data(dev);
sai->is_lsb_first = of_property_read_bool(np, "lsb-first");
+ sai->is_bit_clock_swap = of_property_read_bool(np, "fsl,sai-bit-clock-swap");
base = devm_platform_get_and_ioremap_resource(pdev, 0, &sai->res);
if (IS_ERR(base))
diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h
index 0e25e2fc7ce0d..f58ff39497366 100644
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -118,6 +118,7 @@
/* SAI Transmit and Receive Configuration 2 Register */
#define FSL_SAI_CR2_SYNC BIT(30)
+#define FSL_SAI_CR2_BCS BIT(29)
#define FSL_SAI_CR2_BCI BIT(28)
#define FSL_SAI_CR2_MSEL_MASK (0x3 << 26)
#define FSL_SAI_CR2_MSEL_BUS 0
@@ -293,6 +294,7 @@ struct fsl_sai {
struct fsl_sai_dl_cfg *dl_cfg;
unsigned int dl_cfg_cnt;
bool mclk_direction_output;
+ bool is_bit_clock_swap;
unsigned int mclk_id[2];
unsigned int mclk_streams;
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support
2024-12-26 15:29 [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support Marek Vasut
2024-12-26 15:29 ` [PATCH 2/2] ASoC: fsl_sai: Add " Marek Vasut
@ 2025-01-02 21:25 ` Rob Herring
1 sibling, 0 replies; 3+ messages in thread
From: Rob Herring @ 2025-01-02 21:25 UTC (permalink / raw)
To: Marek Vasut
Cc: linux-sound, Conor Dooley, Fabio Estevam, Jaroslav Kysela,
Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Michael Turquette,
Michael Walle, Nicolin Chen, Shengjiu Wang, Stephen Boyd,
Takashi Iwai, Xiubo Li, devicetree, linux-clk
On Thu, Dec 26, 2024 at 04:29:45PM +0100, Marek Vasut wrote:
> Document support for setting the Bit Clock Swap bit in CR2 register
> via new "fsl,sai-bit-clock-swap" DT property. This bit swaps the
> bit clock used by the transmitter or receiver in asynchronous mode,
> i.e. makes transmitter use RX_BCLK and TX_SYNC, and vice versa,
> makes receiver use TX_BCLK and RX_SYNC.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Jaroslav Kysela <perex@perex.cz>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Liam Girdwood <lgirdwood@gmail.com>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Michael Walle <michael@walle.cc>
> Cc: Nicolin Chen <nicoleotsuka@gmail.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Shengjiu Wang <shengjiu.wang@gmail.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Takashi Iwai <tiwai@suse.com>
> Cc: Xiubo Li <Xiubo.Lee@gmail.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-clk@vger.kernel.org
> Cc: linux-sound@vger.kernel.org
> ---
> Documentation/devicetree/bindings/sound/fsl,sai.yaml | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/sound/fsl,sai.yaml b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
> index a5d9c246cc476..7a58df1e3f87c 100644
> --- a/Documentation/devicetree/bindings/sound/fsl,sai.yaml
> +++ b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
> @@ -132,6 +132,13 @@ properties:
> of transmitter.
> type: boolean
>
> + fsl,sai-bit-clock-swap:
> + description: |
Don't need '|'.
> + Enable Bit Clock Swap, which swaps the bit clock used by the transmitter
> + or receiver in asynchronous mode, i.e. makes transmitter use RX_BCLK and
> + TX_SYNC, and vice versa, makes receiver use TX_BCLK and RX_SYNC.
> + type: boolean
> +
> fsl,shared-interrupt:
> description: Interrupt is shared with other modules.
> type: boolean
> --
> 2.45.2
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-02 21:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-26 15:29 [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support Marek Vasut
2024-12-26 15:29 ` [PATCH 2/2] ASoC: fsl_sai: Add " Marek Vasut
2025-01-02 21:25 ` [PATCH 1/2] ASoC: dt-bindings: fsl-sai: Document " 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).