mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support
Marek Vasut <marex@nabladev.com> says: ASoC: dt-bindings: fsl-sai: Document RX/TX BCLK swap support Link: https://patch.msgid.link/20260404183547.46509-1-marex@nabladev.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
commit
82bc8bcfc4
|
|
@ -162,6 +162,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
|
||||
|
|
|
|||
|
|
@ -355,6 +355,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;
|
||||
|
||||
|
|
@ -453,7 +456,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);
|
||||
|
|
@ -1507,6 +1511,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))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -301,6 +302,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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user