Home
last modified time | relevance | path

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

1234

/linux/sound/soc/stm/
H A Dstm32_sai_sub.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
68 * struct stm32_sai_sub_data - private data of SAI sub block (block A or B)
70 * @regmap: SAI register map pointer
71 * @regmap_config: SAI sub block register map configuration pointer
76 * @pdata: SAI block parent data pointer
78 * @sai_ck: kernel clock feeding the SAI clock generator
79 * @sai_mclk: master clock from SAI mclk provider
80 * @phys_addr: SAI registers physical base address
81 * @mclk_rate: SAI block master clock frequency (Hz). set at init
82 * @id: SAI su
195 stm32_sai_sub_reg_up(struct stm32_sai_sub_data * sai,unsigned int reg,unsigned int mask,unsigned int val) stm32_sai_sub_reg_up() argument
212 stm32_sai_sub_reg_wr(struct stm32_sai_sub_data * sai,unsigned int reg,unsigned int mask,unsigned int val) stm32_sai_sub_reg_wr() argument
229 stm32_sai_sub_reg_rd(struct stm32_sai_sub_data * sai,unsigned int reg,unsigned int * val) stm32_sai_sub_reg_rd() argument
281 struct stm32_sai_sub_data *sai = snd_kcontrol_chip(kcontrol); snd_pcm_iec958_get() local
293 struct stm32_sai_sub_data *sai = snd_kcontrol_chip(kcontrol); snd_pcm_iec958_put() local
321 stm32_sai_get_clk_div(struct stm32_sai_sub_data * sai,unsigned long input_rate,unsigned long output_rate) stm32_sai_get_clk_div() argument
343 stm32_sai_set_clk_div(struct stm32_sai_sub_data * sai,unsigned int div) stm32_sai_set_clk_div() argument
381 stm32_sai_set_parent_clk(struct stm32_sai_sub_data * sai,unsigned int rate) stm32_sai_set_parent_clk() argument
400 stm32_sai_put_parent_rate(struct stm32_sai_sub_data * sai) stm32_sai_put_parent_rate() argument
408 stm32_sai_set_parent_rate(struct stm32_sai_sub_data * sai,unsigned int rate) stm32_sai_set_parent_rate() argument
496 struct stm32_sai_sub_data *sai = mclk->sai_data; stm32_sai_mclk_determine_rate() local
522 struct stm32_sai_sub_data *sai = mclk->sai_data; stm32_sai_mclk_set_rate() local
541 struct stm32_sai_sub_data *sai = mclk->sai_data; stm32_sai_mclk_enable() local
552 struct stm32_sai_sub_data *sai = mclk->sai_data; stm32_sai_mclk_disable() local
567 stm32_sai_add_mclk_provider(struct stm32_sai_sub_data * sai) stm32_sai_add_mclk_provider() argument
614 struct stm32_sai_sub_data *sai = (struct stm32_sai_sub_data *)devid; stm32_sai_isr() local
672 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_sysclk() local
720 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_dai_tdm_slot() local
770 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_dai_fmt() local
884 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_startup() local
932 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_config() local
983 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_slots() local
1028 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_set_frame() local
1058 stm32_sai_init_iec958_status(struct stm32_sai_sub_data * sai) stm32_sai_init_iec958_status() argument
1068 stm32_sai_set_iec958_status(struct stm32_sai_sub_data * sai,struct snd_pcm_runtime * runtime) stm32_sai_set_iec958_status() argument
1114 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_configure_clock() local
1197 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_hw_params() local
1226 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_trigger() local
1275 struct stm32_sai_sub_data *sai = snd_soc_dai_get_drvdata(cpu_dai); stm32_sai_shutdown() local
1298 struct stm32_sai_sub_data *sai = dev_get_drvdata(cpu_dai->dev); stm32_sai_pcm_new() local
1312 struct stm32_sai_sub_data *sai = dev_get_drvdata(cpu_dai->dev); stm32_sai_dai_probe() local
1387 struct stm32_sai_sub_data *sai = dev_get_drvdata(cpu_dai->dev); stm32_sai_pcm_process_spdif() local
1495 stm32_sai_sub_parse_of(struct platform_device * pdev,struct stm32_sai_sub_data * sai) stm32_sai_sub_parse_of() argument
1641 struct stm32_sai_sub_data *sai; stm32_sai_sub_probe() local
1707 struct stm32_sai_sub_data *sai = dev_get_drvdata(&pdev->dev); stm32_sai_sub_remove() local
1717 struct stm32_sai_sub_data *sai = dev_get_drvdata(dev); stm32_sai_sub_suspend() local
1734 struct stm32_sai_sub_data *sai = dev_get_drvdata(dev); stm32_sai_sub_resume() local
[all...]
H A Dstm32_sai.c3 * STM32 ALSA SoC Digital Audio Interface (SAI) driver.
22 static int stm32_sai_get_parent_clk(struct stm32_sai_data *sai);
47 * - do not use SAI parent clock source selection
55 { .compatible = "st,stm32f4-sai", .data = (void *)&stm32_sai_conf_f4 },
56 { .compatible = "st,stm32h7-sai", .data = (void *)&stm32_sai_conf_h7 },
57 { .compatible = "st,stm32mp25-sai", .data = (void *)&stm32_sai_conf_mp25 },
63 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_disable() local
65 clk_disable_unprepare(sai->pclk); in stm32_sai_pclk_disable()
72 struct stm32_sai_data *sai = dev_get_drvdata(dev); in stm32_sai_pclk_enable() local
75 ret = clk_prepare_enable(sai->pclk); in stm32_sai_pclk_enable()
[all …]
H A DMakefile2 # SAI
3 snd-soc-stm32-sai-sub-y := stm32_sai_sub.o
4 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai-sub.o
6 snd-soc-stm32-sai-y := stm32_sai.o
7 obj-$(CONFIG_SND_SOC_STM32_SAI) += snd-soc-stm32-sai.o
H A DKconfig5 tristate "STM32 SAI interface (Serial Audio Interface) support"
13 Say Y if you want to enable SAI for STM32
/linux/sound/soc/rockchip/
H A Drockchip_sai.c3 * ALSA SoC Audio Layer - Rockchip SAI Controller driver
24 #define DRV_NAME "rockchip-sai"
73 struct rk_sai_dev *sai = snd_soc_dai_get_drvdata(dai); in rockchip_sai_stream_valid() local
79 sai->has_playback) in rockchip_sai_stream_valid()
83 sai->has_capture) in rockchip_sai_stream_valid()
89 static int rockchip_sai_fsync_lost_detect(struct rk_sai_dev *sai, bool en) in rockchip_sai_fsync_lost_detect() argument
93 if (sai->is_master_mode || sai->version < SAI_VER_2311) in rockchip_sai_fsync_lost_detect()
96 regmap_read(sai->regmap, SAI_FSCR, &fw); in rockchip_sai_fsync_lost_detect()
99 regmap_update_bits(sai->regmap, SAI_INTCR, in rockchip_sai_fsync_lost_detect()
101 regmap_update_bits(sai->regmap, SAI_INTCR, in rockchip_sai_fsync_lost_detect()
[all …]
H A DMakefile6 snd-soc-rockchip-sai-y := rockchip_sai.o
11 obj-$(CONFIG_SND_SOC_ROCKCHIP_SAI) += snd-soc-rockchip-sai.o
/linux/sound/soc/fsl/
H A Dfsl_sai.c3 // Freescale ALSA SoC Digital Audio Interface (SAI) driver.
46 * SAI supports synchronous mode using bit/frame clocks of either Transmitter's
50 * @sai: SAI context
53 static inline bool fsl_sai_dir_is_synced(struct fsl_sai *sai, int dir) in fsl_sai_dir_is_synced() argument
58 return !sai->synchronous[dir] && sai->synchronous[adir]; in fsl_sai_dir_is_synced()
61 static struct pinctrl_state *fsl_sai_get_pins_state(struct fsl_sai *sai, u32 bclk) in fsl_sai_get_pins_state() argument
65 if (sai->is_pdm_mode) { in fsl_sai_get_pins_state()
68 state = pinctrl_lookup_state(sai in fsl_sai_get_pins_state()
88 struct fsl_sai *sai = (struct fsl_sai *)devid; fsl_sai_isr() local
169 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_set_dai_tdm_slot_tx() local
181 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_set_dai_tdm_slot_rx() local
212 struct fsl_sai *sai = snd_soc_dai_get_drvdata(dai); fsl_sai_set_dai_bclk_ratio() local
222 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_set_dai_sysclk_tr() local
251 struct fsl_sai *sai = snd_soc_dai_get_drvdata(dai); fsl_sai_set_mclk_rate() local
267 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_set_dai_sysclk() local
307 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_set_dai_fmt_tr() local
447 struct fsl_sai *sai = snd_soc_dai_get_drvdata(dai); fsl_sai_set_bclk() local
558 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_hw_params() local
758 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_hw_free() local
777 fsl_sai_config_disable(struct fsl_sai * sai,int dir) fsl_sai_config_disable() argument
820 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_trigger() local
907 struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); fsl_sai_startup() local
929 struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev); fsl_sai_dai_probe() local
992 struct fsl_sai *sai = snd_soc_component_get_drvdata(component); fsl_sai_dai_resume() local
1114 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_readable_reg() local
1170 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_volatile_reg() local
1213 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_writeable_reg() local
1260 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_check_version() local
1326 fsl_sai_read_dlcfg(struct fsl_sai * sai) fsl_sai_read_dlcfg() argument
1418 struct fsl_sai *sai; fsl_sai_probe() local
1780 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_runtime_suspend() local
1800 struct fsl_sai *sai = dev_get_drvdata(dev); fsl_sai_runtime_resume() local
[all...]
H A Dfsl_sai.h21 /* SAI Register Map Register */
22 #define FSL_SAI_VERID 0x00 /* SAI Version ID Register */
23 #define FSL_SAI_PARAM 0x04 /* SAI Parameter Register */
24 #define FSL_SAI_TCSR(ofs) (0x00 + ofs) /* SAI Transmit Control */
25 #define FSL_SAI_TCR1(ofs) (0x04 + ofs) /* SAI Transmit Configuration 1 */
26 #define FSL_SAI_TCR2(ofs) (0x08 + ofs) /* SAI Transmit Configuration 2 */
27 #define FSL_SAI_TCR3(ofs) (0x0c + ofs) /* SAI Transmit Configuration 3 */
28 #define FSL_SAI_TCR4(ofs) (0x10 + ofs) /* SAI Transmit Configuration 4 */
29 #define FSL_SAI_TCR5(ofs) (0x14 + ofs) /* SAI Transmit Configuration 5 */
30 #define FSL_SAI_TDR0 0x20 /* SAI Transmit Data 0 */
[all …]
H A Dimx-audmix.c121 {"sai-tx", "sai-tx", "sai-rx"},
122 {"AUDMIX-Playback-0", "AUDMIX-Playback-1", "SAI-Capture"},
123 {"SAI-Playback", "SAI-Playback", "AUDMIX-Capture-0"},
211 dev_err(&pdev->dev, "failed to find SAI platform device\n"); in imx_audmix_probe()
297 dev_err(&pdev->dev, "failed to find SAI platform device\n"); in imx_audmix_probe()
H A Dfsl_rpmsg.h22 * @ipg: ipg clock for cpu dai (SAI)
23 * @mclk: master clock for cpu dai (SAI)
H A DKconfig21 tristate "Synchronous Audio Interface (SAI) module support"
27 Say Y if you want to add Synchronous Audio Interface (SAI)
327 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
347 SAI/AUD2HTX and connect with internal HDMI IP or external module
/linux/Documentation/devicetree/bindings/sound/
H A Drockchip,rk3576-sai.yaml4 $id: http://devicetree.org/schemas/sound/rockchip,rk3576-sai.yaml#
10 The Rockchip Serial Audio Interface (SAI) controller is a flexible audio
21 const: rockchip,rk3576-sai
71 rockchip,sai-rx-route:
76 rockchip,sai-rx-route = <3> would mean sdi3 is receiving from data0, and
85 rockchip,sai-tx-route:
90 rockchip,sai-tx-route = <3> would mean sdo3 is sending to data0, and
122 sai1: sai@2a610000 {
123 compatible = "rockchip,rk3576-sai";
141 rockchip,sai-tx-route = <3 1 2 0>;
/linux/Documentation/devicetree/bindings/clock/
H A 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";
/linux/fs/xfs/scrub/
H A Dagheader.c726 struct xchk_agfl_info *sai = priv; in xchk_agfl_block() local
727 struct xfs_scrub *sc = sai->sc; in xchk_agfl_block()
730 sai->nr_entries < sai->agflcount) in xchk_agfl_block()
731 sai->entries[sai->nr_entries++] = agbno; in xchk_agfl_block()
733 xchk_block_set_corrupt(sc, sai->agfl_bp); in xchk_agfl_block()
786 struct xchk_agfl_info sai = { in xchk_agfl() local
802 error = xfs_alloc_read_agfl(sc->sa.pag, sc->tp, &sai.agfl_bp); in xchk_agfl()
805 xchk_buffer_recheck(sc, sai.agfl_bp); in xchk_agfl()
814 sai.agflcount = be32_to_cpu(agf->agf_flcount); in xchk_agfl()
815 if (sai.agflcount > xfs_agfl_size(sc->mp)) { in xchk_agfl()
[all …]
/linux/drivers/clk/
H A 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");
/linux/arch/arm64/boot/dts/freescale/
H A Dimx8qm-ss-audio.dtsi78 sai4: sai@59080000 {
79 compatible = "fsl,imx8qm-sai";
95 sai5: sai@59090000 {
96 compatible = "fsl,imx8qm-sai";
151 sai6: sai@59820000 {
152 compatible = "fsl,imx8qm-sai";
167 sai7: sai@59830000 {
168 compatible = "fsl,imx8qm-sai";
H A Dimx8-ss-audio.dtsi206 sai0: sai@59040000 {
207 compatible = "fsl,imx8qm-sai";
222 sai1: sai@59050000 {
223 compatible = "fsl,imx8qm-sai";
238 sai2: sai@59060000 {
239 compatible = "fsl,imx8qm-sai";
254 sai3: sai@59070000 {
255 compatible = "fsl,imx8qm-sai";
494 sai4: sai@59820000 {
495 compatible = "fsl,imx8qm-sai";
[all …]
H A Dimx8mn.dtsi292 sai2: sai@30020000 {
293 compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
307 sai3: sai@30030000 {
308 compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
322 sai5: sai@30050000 {
323 compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
339 sai6: sai@30060000 {
340 compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
398 sai7: sai@300b0000 {
399 compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai";
H A Dimx8ulp.dtsi511 sai4: sai@29880000 {
512 compatible = "fsl,imx8ulp-sai";
526 sai5: sai@29890000 {
527 compatible = "fsl,imx8ulp-sai";
792 sai6: sai@2da90000 {
793 compatible = "fsl,imx8ulp-sai";
807 sai7: sai@2daa0000 {
808 compatible = "fsl,imx8ulp-sai";
/linux/Documentation/devicetree/bindings/memory-controllers/
H A Dxlnx,zynqmp-ocmc-1.0.yaml11 - Sai Krishna Potthuri <sai.krishna.potthuri@amd.com>
H A Dxlnx,versal-ddrmc-edac.yaml11 - Sai Krishna Potthuri <sai.krishna.potthuri@amd.com>
/linux/tools/testing/selftests/resctrl/
H A DREADME5 Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>,
/linux/sound/soc/sof/
H A Dipc3-topology.c227 /* SAI */
344 [SOF_SAI_TOKENS] = {"SAI tokens", sai_tokens, ARRAY_SIZE(sai_tokens)},
1078 memset(&config->sai, 0, sizeof(config->sai)); in sof_link_sai_load()
1081 /* parse one set of SAI tokens */ in sof_link_sai_load()
1082 ret = sof_update_ipc_object(scomp, &config->sai, SOF_SAI_TOKENS, slink->tuples, in sof_link_sai_load()
1087 config->sai.mclk_rate = le32_to_cpu(hw_config->mclk_rate); in sof_link_sai_load()
1088 config->sai.bclk_rate = le32_to_cpu(hw_config->bclk_rate); in sof_link_sai_load()
1089 config->sai.fsync_rate = le32_to_cpu(hw_config->fsync_rate); in sof_link_sai_load()
1090 config->sai.mclk_direction = hw_config->mclk_direction; in sof_link_sai_load()
1092 config->sai.tdm_slots = le32_to_cpu(hw_config->tdm_slots); in sof_link_sai_load()
[all …]
/linux/drivers/dma/
H A Dtxx9dmac.h289 u32 sai, u32 dai, u32 ccr) in txx9dmac_desc_set_nosimple() argument
292 desc->hwdesc.SAIR = sai; in txx9dmac_desc_set_nosimple()
296 desc->hwdesc32.SAIR = sai; in txx9dmac_desc_set_nosimple()
/linux/Documentation/ABI/testing/
H A Dsysfs-kernel-iommu_groups36 Contact: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>

1234