Home
last modified time | relevance | path

Searched full:sai (Results 1 – 25 of 177) sorted by relevance

12345678

/kernel/linux/linux-5.10/sound/soc/stm/
Dstm32_sai_sub.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
58 #define STM_SAI_HAS_EXT_SYNC(x) (!STM_SAI_IS_F4(sai->pdata))
67 * struct stm32_sai_sub_data - private data of SAI sub block (block A or B)
69 * @regmap: SAI register map pointer
70 * @regmap_config: SAI sub block register map configuration pointer
75 * @pdata: SAI block parent data pointer
77 * @sai_ck: kernel clock feeding the SAI clock generator
78 * @sai_mclk: master clock from SAI mclk provider
79 * @phys_addr: SAI registers physical base address
80 * @mclk_rate: SAI block master clock frequency (Hz). set at init
[all …]
Dstm32_sai.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
40 { .compatible = "st,stm32f4-sai", .data = (void *)&stm32_sai_conf_f4 },
41 { .compatible = "st,stm32h7-sai", .data = (void *)&stm32_sai_conf_h7 },
47 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_disable() local
49 clk_disable_unprepare(sai->pclk); in stm32_sai_pclk_disable()
56 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_enable() local
59 ret = clk_prepare_enable(sai->pclk); in stm32_sai_pclk_enable()
61 dev_err(&sai->pdev->dev, "failed to enable clock: %d\n", ret); in stm32_sai_pclk_enable()
68 static int stm32_sai_sync_conf_client(struct stm32_sai_data *sai, int synci) in stm32_sai_sync_conf_client() argument
73 ret = stm32_sai_pclk_enable(&sai->pdev->dev); in stm32_sai_sync_conf_client()
[all …]
Dstm32_sai.h3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
11 /******************** SAI Register Map **************************************/
233 /* Registers below apply to SAI version 2.1 and more */
252 /* SAI version numbers are 1.x for F4. Major version number set to 1 for F4 */
268 * struct stm32_sai_conf - SAI configuration
269 * @version: SAI version
270 * @fifo_size: SAI fifo size as words number
271 * @has_spdif_pdm: SAI S/PDIF and PDM features support flag
280 * struct stm32_sai_data - private data of SAI instance driver
283 * @pclk: SAI bus clock
[all …]
DMakefile2 # SAI
3 snd-soc-stm32-sai-sub-objs := stm32_sai_sub.o
4 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai-sub.o
6 snd-soc-stm32-sai-objs := stm32_sai.o
7 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai.o
/kernel/linux/linux-6.6/sound/soc/stm/
Dstm32_sai_sub.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
56 #define STM_SAI_HAS_EXT_SYNC(x) (!STM_SAI_IS_F4(sai->pdata))
65 * struct stm32_sai_sub_data - private data of SAI sub block (block A or B)
67 * @regmap: SAI register map pointer
68 * @regmap_config: SAI sub block register map configuration pointer
73 * @pdata: SAI block parent data pointer
75 * @sai_ck: kernel clock feeding the SAI clock generator
76 * @sai_mclk: master clock from SAI mclk provider
77 * @phys_addr: SAI registers physical base address
78 * @mclk_rate: SAI block master clock frequency (Hz). set at init
[all …]
Dstm32_sai.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
40 { .compatible = "st,stm32f4-sai", .data = (void *)&stm32_sai_conf_f4 },
41 { .compatible = "st,stm32h7-sai", .data = (void *)&stm32_sai_conf_h7 },
47 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_disable() local
49 clk_disable_unprepare(sai->pclk); in stm32_sai_pclk_disable()
56 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_enable() local
59 ret = clk_prepare_enable(sai->pclk); in stm32_sai_pclk_enable()
61 dev_err(&sai->pdev->dev, "failed to enable clock: %d\n", ret); in stm32_sai_pclk_enable()
68 static int stm32_sai_sync_conf_client(struct stm32_sai_data *sai, int synci) in stm32_sai_sync_conf_client() argument
73 ret = stm32_sai_pclk_enable(&sai->pdev->dev); in stm32_sai_sync_conf_client()
[all …]
Dstm32_sai.h3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
11 /******************** SAI Register Map **************************************/
233 /* Registers below apply to SAI version 2.1 and more */
252 /* SAI version numbers are 1.x for F4. Major version number set to 1 for F4 */
268 * struct stm32_sai_conf - SAI configuration
269 * @version: SAI version
270 * @fifo_size: SAI fifo size as words number
271 * @has_spdif_pdm: SAI S/PDIF and PDM features support flag
280 * struct stm32_sai_data - private data of SAI instance driver
283 * @pclk: SAI bus clock
[all …]
DMakefile2 # SAI
3 snd-soc-stm32-sai-sub-objs := stm32_sai_sub.o
4 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai-sub.o
6 snd-soc-stm32-sai-objs := stm32_sai.o
7 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai.o
/kernel/linux/linux-6.6/sound/soc/fsl/
Dfsl_sai.c3 // Freescale ALSA SoC Digital Audio Interface (SAI) driver.
47 * SAI supports synchronous mode using bit/frame clocks of either Transmitter's
51 * @sai: SAI context
54 static inline bool fsl_sai_dir_is_synced(struct fsl_sai *sai, int dir) in fsl_sai_dir_is_synced() argument
59 return !sai->synchronous[dir] && sai->synchronous[adir]; in fsl_sai_dir_is_synced()
62 static struct pinctrl_state *fsl_sai_get_pins_state(struct fsl_sai *sai, u32 bclk) in fsl_sai_get_pins_state() argument
66 if (sai->is_pdm_mode) { in fsl_sai_get_pins_state()
69 state = pinctrl_lookup_state(sai->pinctrl, "dsd512"); in fsl_sai_get_pins_state()
73 state = pinctrl_lookup_state(sai->pinctrl, "dsd"); in fsl_sai_get_pins_state()
77 state = pinctrl_lookup_state(sai->pinctrl, "pcm_b2m"); in fsl_sai_get_pins_state()
[all …]
Dfsl_sai.h20 /* SAI Register Map Register */
21 #define FSL_SAI_VERID 0x00 /* SAI Version ID Register */
22 #define FSL_SAI_PARAM 0x04 /* SAI Parameter Register */
23 #define FSL_SAI_TCSR(ofs) (0x00 + ofs) /* SAI Transmit Control */
24 #define FSL_SAI_TCR1(ofs) (0x04 + ofs) /* SAI Transmit Configuration 1 */
25 #define FSL_SAI_TCR2(ofs) (0x08 + ofs) /* SAI Transmit Configuration 2 */
26 #define FSL_SAI_TCR3(ofs) (0x0c + ofs) /* SAI Transmit Configuration 3 */
27 #define FSL_SAI_TCR4(ofs) (0x10 + ofs) /* SAI Transmit Configuration 4 */
28 #define FSL_SAI_TCR5(ofs) (0x14 + ofs) /* SAI Transmit Configuration 5 */
29 #define FSL_SAI_TDR0 0x20 /* SAI Transmit Data 0 */
[all …]
/kernel/linux/linux-5.10/sound/soc/fsl/
Dfsl_sai.c3 // Freescale ALSA SoC Digital Audio Interface (SAI) driver.
43 * SAI supports synchronous mode using bit/frame clocks of either Transmitter's
47 * @sai: SAI context
50 static inline bool fsl_sai_dir_is_synced(struct fsl_sai *sai, int dir) in fsl_sai_dir_is_synced() argument
55 return !sai->synchronous[dir] && sai->synchronous[adir]; in fsl_sai_dir_is_synced()
60 struct fsl_sai *sai = (struct fsl_sai *)devid; in fsl_sai_isr() local
61 unsigned int ofs = sai->soc_data->reg_offset; in fsl_sai_isr()
62 struct device *dev = &sai->pdev->dev; in fsl_sai_isr()
74 regmap_read(sai->regmap, FSL_SAI_TCSR(ofs), &xcsr); in fsl_sai_isr()
104 regmap_write(sai->regmap, FSL_SAI_TCSR(ofs), flags | xcsr); in fsl_sai_isr()
[all …]
Dfsl_sai.h16 /* SAI Register Map Register */
17 #define FSL_SAI_VERID 0x00 /* SAI Version ID Register */
18 #define FSL_SAI_PARAM 0x04 /* SAI Parameter Register */
19 #define FSL_SAI_TCSR(ofs) (0x00 + ofs) /* SAI Transmit Control */
20 #define FSL_SAI_TCR1(ofs) (0x04 + ofs) /* SAI Transmit Configuration 1 */
21 #define FSL_SAI_TCR2(ofs) (0x08 + ofs) /* SAI Transmit Configuration 2 */
22 #define FSL_SAI_TCR3(ofs) (0x0c + ofs) /* SAI Transmit Configuration 3 */
23 #define FSL_SAI_TCR4(ofs) (0x10 + ofs) /* SAI Transmit Configuration 4 */
24 #define FSL_SAI_TCR5(ofs) (0x14 + ofs) /* SAI Transmit Configuration 5 */
25 #define FSL_SAI_TDR0 0x20 /* SAI Transmit Data 0 */
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/sound/
Dst,stm32-sai.txt1 STMicroelectronics STM32 Serial Audio Interface (SAI).
3 The SAI interface (Serial Audio Interface) offers a wide set of audio protocols
5 The SAI contains two independent audio sub-blocks. Each sub-block has
9 - compatible: Should be "st,stm32f4-sai" or "st,stm32h7-sai"
10 - reg: Base address and size of SAI common register set.
15 Mandatory for "st,stm32h7-sai" compatible.
16 Not used for "st,stm32f4-sai" compatible.
17 "x8k": SAI parent clock for sampling rates multiple of 8kHz.
18 "x11k": SAI parent clock for sampling rates multiple of 11.025kHz.
19 - interrupts: cpu DAI interrupt line shared by SAI sub-blocks
[all …]
Dfsl-sai.txt1 Freescale Synchronous Audio Interface (SAI).
3 The SAI is based on I2S module that used communicating with audio codecs,
10 - compatible : Compatible list, contains "fsl,vf610-sai",
11 "fsl,imx6sx-sai", "fsl,imx6ul-sai",
12 "fsl,imx7ulp-sai", "fsl,imx8mq-sai" or
13 "fsl,imx8qm-sai".
38 - fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
39 that SAI will work in the synchronous mode (sync Tx
44 - fsl,sai-asynchronous: This is a boolean property. If present, indicating
45 that SAI will work in the asynchronous mode, which
[all …]
Dfsl,audmix.txt6 modules (SAI). Each input serial interface carries 8 audio channels in its
13 receive path of normal audio SAI module for readback by the CPU.
38 to SAI interfaces to be provided, the first SAI in the
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/sound/
Dfsl,sai.yaml4 $id: http://devicetree.org/schemas/sound/fsl,sai.yaml#
7 title: Freescale Synchronous Audio Interface (SAI).
13 The SAI is based on I2S module that used communicating with audio codecs,
23 - fsl,imx6ul-sai
24 - fsl,imx7d-sai
25 - const: fsl,imx6sx-sai
29 - fsl,imx8mm-sai
30 - fsl,imx8mn-sai
31 - fsl,imx8mp-sai
32 - const: fsl,imx8mq-sai
[all …]
Dst,stm32-sai.yaml4 $id: http://devicetree.org/schemas/sound/st,stm32-sai.yaml#
7 title: STMicroelectronics STM32 Serial Audio Interface (SAI)
13 The SAI interface (Serial Audio Interface) offers a wide set of audio
15 The SAI contains two independent audio sub-blocks. Each sub-block has
21 - st,stm32f4-sai
22 - st,stm32h7-sai
26 - description: Base address and size of SAI common register set.
27 - description: Base address and size of SAI identification register set.
65 Two subnodes corresponding to SAI sub-block instances A et B
70 description: Compatible for SAI sub-block A or B.
[all …]
Dfsl,audmix.txt6 modules (SAI). Each input serial interface carries 8 audio channels in its
13 receive path of normal audio SAI module for readback by the CPU.
38 to SAI interfaces to be provided, the first SAI in the
/kernel/linux/linux-6.6/drivers/clk/imx/
Dclk-imx8mp-audiomix.c34 .fw_name = "sai"__stringify(n), \
35 .name = "sai"__stringify(n) \
37 .fw_name = "sai"__stringify(n)"_mclk", \
38 .name = "sai"__stringify(n)"_mclk" \
99 "sai"__stringify(n)"_mclk1_sel", \
103 SAI##n##_MCLK_SEL, 1, 0 \
105 "sai"__stringify(n)"_mclk2_sel", \
109 SAI##n##_MCLK_SEL, 4, 1 \
111 "sai"__stringify(n)"_ipg_cg", \
116 "sai"__stringify(n)"_mclk1_cg", \
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/clock/
Dfsl,sai-clock.yaml4 $id: http://devicetree.org/schemas/clock/fsl,sai-clock.yaml#
7 title: Freescale SAI bitclock-as-a-clock binding
13 It is possible to use the BCLK pin of a SAI module as a generic clock
16 LS1028A SoC you can only enable SAIs in pairs. If you use only one SAI,
18 clock of the second SAI as a MCLK clock for an audio codec, for example.
24 const: fsl,vf610-sai-clock
50 compatible = "fsl,vf610-sai-clock";
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/clock/
Dfsl,sai-clock.yaml4 $id: http://devicetree.org/schemas/clock/fsl,sai-clock.yaml#
7 title: Freescale SAI bitclock-as-a-clock
13 It is possible to use the BCLK pin of a SAI module as a generic clock
16 LS1028A SoC you can only enable SAIs in pairs. If you use only one SAI,
18 clock of the second SAI as a MCLK clock for an audio codec, for example.
24 const: fsl,vf610-sai-clock
50 compatible = "fsl,vf610-sai-clock";
/kernel/linux/linux-6.6/fs/xfs/scrub/
Dagheader.c659 struct xchk_agfl_info *sai = priv; in xchk_agfl_block() local
660 struct xfs_scrub *sc = sai->sc; in xchk_agfl_block()
663 sai->nr_entries < sai->agflcount) in xchk_agfl_block()
664 sai->entries[sai->nr_entries++] = agbno; in xchk_agfl_block()
666 xchk_block_set_corrupt(sc, sai->agfl_bp); in xchk_agfl_block()
719 struct xchk_agfl_info sai = { in xchk_agfl() local
735 error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &sai.agfl_bp); in xchk_agfl()
738 xchk_buffer_recheck(sc, sai.agfl_bp); in xchk_agfl()
747 sai.agflcount = be32_to_cpu(agf->agf_flcount); in xchk_agfl()
748 if (sai.agflcount > xfs_agfl_size(sc->mp)) { in xchk_agfl()
[all …]
/kernel/linux/linux-6.6/drivers/clk/
Dclk-fsl-sai.c3 * Freescale SAI BCLK as a generic clock driver
73 { .compatible = "fsl,vf610-sai-clock" },
81 .name = "fsl-sai-clk",
87 MODULE_DESCRIPTION("Freescale SAI bitclock-as-a-clock driver");
89 MODULE_ALIAS("platform:fsl-sai-clk");
/kernel/linux/linux-5.10/drivers/clk/
Dclk-fsl-sai.c3 * Freescale SAI BCLK as a generic clock driver
86 { .compatible = "fsl,vf610-sai-clock" },
95 .name = "fsl-sai-clk",
101 MODULE_DESCRIPTION("Freescale SAI bitclock-as-a-clock driver");
104 MODULE_ALIAS("platform:fsl-sai-clk");
/kernel/linux/linux-5.10/fs/xfs/scrub/
Dagheader.c629 struct xchk_agfl_info *sai = priv; in xchk_agfl_block() local
630 struct xfs_scrub *sc = sai->sc; in xchk_agfl_block()
634 sai->nr_entries < sai->sz_entries) in xchk_agfl_block()
635 sai->entries[sai->nr_entries++] = agbno; in xchk_agfl_block()
692 struct xchk_agfl_info sai; in xchk_agfl() local
720 memset(&sai, 0, sizeof(sai)); in xchk_agfl()
721 sai.sc = sc; in xchk_agfl()
722 sai.sz_entries = agflcount; in xchk_agfl()
723 sai.entries = kmem_zalloc(sizeof(xfs_agblock_t) * agflcount, in xchk_agfl()
725 if (!sai.entries) { in xchk_agfl()
[all …]

12345678