| /linux-6.15/sound/soc/hisilicon/ |
| H A D | hi6210-i2s.c | 246 i2s->format = fmt; in hi6210_i2s_set_fmt() 247 i2s->master = (i2s->format & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) == in hi6210_i2s_set_fmt() 314 i2s->bits = 32; in hi6210_i2s_hw_params() 318 i2s->bits = 16; in hi6210_i2s_hw_params() 324 i2s->channel_length = i2s->channels * i2s->bits; in hi6210_i2s_hw_params() 454 if (!i2s->master) in hi6210_i2s_hw_params() 552 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in hi6210_i2s_probe() 553 if (!i2s) in hi6210_i2s_probe() 556 i2s->dev = dev; in hi6210_i2s_probe() 576 i2s->clocks++; in hi6210_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/img/ |
| H A D | img-i2s-out.c | 182 img_i2s_out_enable(i2s); in img_i2s_out_reset() 204 img_i2s_out_reset(i2s); in img_i2s_out_trigger() 435 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in img_i2s_out_probe() 436 if (!i2s) in img_i2s_out_probe() 441 i2s->dev = &pdev->dev; in img_i2s_out_probe() 447 i2s->base = base; in img_i2s_out_probe() 460 if (IS_ERR(i2s->rst)) in img_i2s_out_probe() 475 i2s->max_i2s_chan, sizeof(*i2s->suspend_ch_ctl), GFP_KERNEL); in img_i2s_out_probe() 509 i2s->dai_driver.playback.channels_max = i2s->max_i2s_chan * 2; in img_i2s_out_probe() 559 i2s->suspend_ctl = img_i2s_out_readl(i2s, IMG_I2S_OUT_CTL); in img_i2s_out_suspend() [all …]
|
| H A D | img-i2s-in.c | 169 img_i2s_in_enable(i2s); in img_i2s_in_trigger() 205 dev_err(i2s->dev, in img_i2s_in_check_rate() 294 img_i2s_in_flush(i2s); in img_i2s_in_hw_params() 429 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in img_i2s_in_probe() 430 if (!i2s) in img_i2s_in_probe() 435 i2s->dev = dev; in img_i2s_in_probe() 441 i2s->base = base; in img_i2s_in_probe() 473 i2s->dai_driver.capture.channels_max = i2s->max_i2s_chan * 2; in img_i2s_in_probe() 509 i2s->max_i2s_chan, sizeof(*i2s->suspend_ch_ctl), GFP_KERNEL); in img_i2s_in_probe() 559 i2s->suspend_ctl = img_i2s_in_readl(i2s, IMG_I2S_IN_CTL); in img_i2s_in_suspend() [all …]
|
| /linux-6.15/sound/soc/rockchip/ |
| H A D | rockchip_i2s.c | 66 if (!IS_ERR(i2s->pinctrl) && !IS_ERR_OR_NULL(i2s->bclk_on)) in i2s_pinctrl_select_bclk_on() 67 ret = pinctrl_select_state(i2s->pinctrl, i2s->bclk_on); in i2s_pinctrl_select_bclk_on() 80 if (!IS_ERR(i2s->pinctrl) && !IS_ERR_OR_NULL(i2s->bclk_off)) in i2s_pinctrl_select_bclk_off() 81 ret = pinctrl_select_state(i2s->pinctrl, i2s->bclk_off); in i2s_pinctrl_select_bclk_off() 425 if (!IS_ERR(i2s->grf) && i2s->pins) { in rockchip_i2s_hw_params() 446 regmap_write(i2s->grf, i2s->pins->reg_offset, val); in rockchip_i2s_hw_params() 534 i2s->has_playback ? &i2s->playback_dma_data : NULL, in rockchip_i2s_dai_probe() 535 i2s->has_capture ? &i2s->capture_dma_data : NULL); in rockchip_i2s_dai_probe() 744 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in rockchip_i2s_probe() 745 if (!i2s) in rockchip_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/stm/ |
| H A D | stm32_i2s.c | 318 i2s->div = div; in stm32_i2s_calc_clk_div() 769 i2s->put_i2s_clk_rate(i2s); in stm32_i2s_set_sysclk() 776 ret = i2s->set_i2s_clk_rate(i2s, freq); in stm32_i2s_set_sysclk() 804 ret = i2s->set_i2s_clk_rate(i2s, rate); in stm32_i2s_configure_clock() 990 if (STM32_I2S_IS_MASTER(i2s) && i2s->refcount == 1) in stm32_i2s_trigger() 1057 if (!i2s->i2smclk && i2s->put_i2s_clk_rate) in stm32_i2s_shutdown() 1058 i2s->put_i2s_clk_rate(i2s); in stm32_i2s_shutdown() 1227 ret = i2s->conf->get_i2s_clk_parent(i2s); in stm32_i2s_parse_dt() 1277 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in stm32_i2s_probe() 1278 if (!i2s) in stm32_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/adi/ |
| H A D | axi-i2s.c | 143 i2s->has_playback ? &i2s->playback_dma_data : NULL, in axi_i2s_dai_probe() 144 i2s->has_capture ? &i2s->capture_dma_data : NULL); in axi_i2s_dai_probe() 190 struct axi_i2s *i2s; in axi_i2s_probe() local 194 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in axi_i2s_probe() 195 if (!i2s) in axi_i2s_probe() 208 if (IS_ERR(i2s->regmap)) in axi_i2s_probe() 212 if (IS_ERR(i2s->clk)) in axi_i2s_probe() 223 if (i2s->has_playback) { in axi_i2s_probe() 235 if (i2s->has_capture) { in axi_i2s_probe() 247 i2s->ratnum.num = clk_get_rate(i2s->clk_ref) / 2 / AXI_I2S_BITS_PER_FRAME; in axi_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/tegra/ |
| H A D | tegra30_i2s.c | 199 i2s->soc_data->set_audio_cif(i2s->regmap, reg, &cif_conf); in tegra30_i2s_hw_params() 300 &i2s->capture_dma_data); in tegra30_i2s_probe() 408 struct tegra30_i2s *i2s; in tegra30_i2s_platform_probe() local 415 if (!i2s) { in tegra30_i2s_platform_probe() 427 i2s->soc_data = soc_data; in tegra30_i2s_platform_probe() 442 if (IS_ERR(i2s->clk_i2s)) { in tegra30_i2s_platform_probe() 456 if (IS_ERR(i2s->regmap)) { in tegra30_i2s_platform_probe() 458 ret = PTR_ERR(i2s->regmap); in tegra30_i2s_platform_probe() 500 &i2s->dai, 1); in tegra30_i2s_platform_probe() 508 &i2s->dma_config, i2s->playback_dma_chan, in tegra30_i2s_platform_probe() [all …]
|
| H A D | tegra210_i2s.c | 328 i2s->loopback = value; in tegra210_i2s_put_loopback() 357 i2s->fsync_width = value; in tegra210_i2s_put_fsync_width() 499 i2s->rx_fifo_th = value; in tegra210_i2s_pput_fifo_th() 525 i2s->bclk_ratio = value; in tegra210_i2s_put_bclk_ratio() 535 i2s->bclk_ratio = ratio; in tegra210_i2s_set_dai_bclk_ratio() 549 if (i2s->bclk_ratio) in tegra210_i2s_set_timing_params() 582 i2s->tx_mask, i2s->rx_mask); in tegra210_i2s_set_timing_params() 621 if (i2s->client_channels) in tegra210_i2s_hw_params() 952 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in tegra210_i2s_probe() 953 if (!i2s) in tegra210_i2s_probe() [all …]
|
| H A D | tegra20_i2s.c | 70 regcache_mark_dirty(i2s->regmap); in tegra20_i2s_runtime_resume() 260 &i2s->capture_dma_data); in tegra20_i2s_probe() 401 struct tegra20_i2s *i2s; in tegra20_i2s_platform_probe() local 407 if (!i2s) { in tegra20_i2s_platform_probe() 417 if (IS_ERR(i2s->reset)) { in tegra20_i2s_platform_probe() 419 return PTR_ERR(i2s->reset); in tegra20_i2s_platform_probe() 423 if (IS_ERR(i2s->clk_i2s)) { in tegra20_i2s_platform_probe() 425 ret = PTR_ERR(i2s->clk_i2s); in tegra20_i2s_platform_probe() 437 if (IS_ERR(i2s->regmap)) { in tegra20_i2s_platform_probe() 439 ret = PTR_ERR(i2s->regmap); in tegra20_i2s_platform_probe() [all …]
|
| /linux-6.15/sound/soc/xtensa/ |
| H A D | xtfpga-i2s.c | 137 for (; i2s->tx_fifo_level < i2s->tx_fifo_high; \ 166 unsigned new_tx_ptr = i2s->tx_fn(i2s, tx_substream->runtime, in xtfpga_pcm_push_tx() 201 i2s->tx_fifo_level = i2s->tx_fifo_low; in xtfpga_pcm_refill_fifo() 248 i2s->tx_fifo_level = i2s->tx_fifo_low; in xtfpga_i2s_threaded_irq_handler() 322 i2s->tx_fifo_high = 2 * i2s->tx_fifo_low; in xtfpga_i2s_hw_params() 328 dev_dbg(i2s->dev, in xtfpga_i2s_hw_params() 535 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in xtfpga_i2s_probe() 536 if (!i2s) { in xtfpga_i2s_probe() 550 i2s->regmap = devm_regmap_init_mmio(&pdev->dev, i2s->regs, in xtfpga_i2s_probe() 578 pdev->name, i2s); in xtfpga_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/jz4740/ |
| H A D | jz4740-i2s.c | 325 &i2s->capture_dma_data); in jz4740_i2s_dai_probe() 502 struct jz4740_i2s *i2s) in jz4740_i2s_init_regmap_fields() argument 504 i2s->field_rx_fifo_thresh = in jz4740_i2s_init_regmap_fields() 510 i2s->field_tx_fifo_thresh = in jz4740_i2s_init_regmap_fields() 516 i2s->field_i2sdiv_capture = in jz4740_i2s_init_regmap_fields() 541 struct jz4740_i2s *i2s; in jz4740_i2s_dev_probe() local 546 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in jz4740_i2s_dev_probe() 547 if (!i2s) in jz4740_i2s_dev_probe() 563 if (IS_ERR(i2s->clk_aic)) in jz4740_i2s_dev_probe() 567 if (IS_ERR(i2s->clk_i2s)) in jz4740_i2s_dev_probe() [all …]
|
| /linux-6.15/sound/soc/sunxi/ |
| H A D | sun4i-i2s.c | 386 bclk_parent_rate = i2s->variant->get_bclk_parent_rate(i2s); in sun4i_i2s_set_clk_rate() 394 mclk_div = sun4i_i2s_get_mclk_div(i2s, clk_rate, i2s->mclk_freq); in sun4i_i2s_set_clk_rate() 607 if (i2s->slots) in sun4i_i2s_hw_params() 608 slots = i2s->slots; in sun4i_i2s_hw_params() 610 if (i2s->slot_width) in sun4i_i2s_hw_params() 613 ret = i2s->variant->set_chan_cfg(i2s, channels, slots, slot_width); in sun4i_i2s_hw_params() 951 ret = i2s->variant->set_fmt(i2s, fmt); in sun4i_i2s_set_fmt() 957 i2s->format = fmt; in sun4i_i2s_set_fmt() 1083 i2s->slots = slots; in sun4i_i2s_set_tdm_slot() 1533 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in sun4i_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/google/ |
| H A D | chv3-i2s.c | 146 i2s->rx_substream = substream; in chv3_dma_open() 221 chv3_i2s_wr(i2s, I2S_TX_IRQ, ((period_bytes / i2s->tx_bytes_to_fetch) << 8) | 1); in chv3_dma_prepare() 283 struct chv3_i2s_dev *i2s; in chv3_i2s_probe() local 287 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in chv3_i2s_probe() 288 if (!i2s) in chv3_i2s_probe() 292 if (IS_ERR(i2s->iobase)) in chv3_i2s_probe() 293 return PTR_ERR(i2s->iobase); in chv3_i2s_probe() 296 if (IS_ERR(i2s->iobase_irq)) in chv3_i2s_probe() 299 i2s->tx_bytes_to_fetch = (chv3_i2s_rd(i2s, I2S_TX_IRQ_CONST) >> 8) & 0xffff; in chv3_i2s_probe() 301 i2s->dev = &pdev->dev; in chv3_i2s_probe() [all …]
|
| /linux-6.15/sound/soc/loongson/ |
| H A D | loongson_i2s.c | 64 u32 clk_rate = i2s->clk_rate; in loongson_i2s_hw_params() 65 u32 sysclk = i2s->sysclk; in loongson_i2s_hw_params() 73 switch (i2s->rev_id) { in loongson_i2s_hw_params() 120 i2s->sysclk = freq; in loongson_i2s_set_dai_sysclk() 129 if (i2s->rev_id == 0) in loongson_i2s_enable_mclk() 146 if (i2s->rev_id == 0) in loongson_i2s_enable_bclk() 180 ret = loongson_i2s_enable_bclk(i2s); in loongson_i2s_set_fmt() 186 ret = loongson_i2s_enable_mclk(i2s); in loongson_i2s_set_fmt() 216 &i2s->capture_dma_data); in loongson_i2s_dai_probe() 265 regcache_mark_dirty(i2s->regmap); in i2s_resume() [all …]
|
| H A D | loongson_i2s_pci.c | 79 struct loongson_i2s *i2s; in loongson_i2s_pci_probe() local 87 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in loongson_i2s_pci_probe() 88 if (!i2s) in loongson_i2s_pci_probe() 91 i2s->rev_id = pdev->revision; in loongson_i2s_pci_probe() 92 i2s->dev = dev; in loongson_i2s_pci_probe() 93 pci_set_drvdata(pdev, i2s); in loongson_i2s_pci_probe() 102 i2s->regmap = devm_regmap_init_mmio(dev, i2s->reg_base, in loongson_i2s_pci_probe() 104 if (IS_ERR(i2s->regmap)) in loongson_i2s_pci_probe() 107 tx_data = &i2s->tx_dma_data; in loongson_i2s_pci_probe() 108 rx_data = &i2s->rx_dma_data; in loongson_i2s_pci_probe() [all …]
|
| H A D | loongson_i2s_plat.c | 116 struct loongson_i2s *i2s; in loongson_i2s_plat_probe() local 121 i2s = devm_kzalloc(dev, sizeof(*i2s), GFP_KERNEL); in loongson_i2s_plat_probe() 122 if (!i2s) in loongson_i2s_plat_probe() 131 if (IS_ERR(i2s->reg_base)) in loongson_i2s_plat_probe() 135 i2s->regmap = devm_regmap_init_mmio(dev, i2s->reg_base, in loongson_i2s_plat_probe() 137 if (IS_ERR(i2s->regmap)) in loongson_i2s_plat_probe() 138 return dev_err_probe(dev, PTR_ERR(i2s->regmap), in loongson_i2s_plat_probe() 143 i2s->playback_dma_data.maxburst = 4; in loongson_i2s_plat_probe() 147 i2s->capture_dma_data.maxburst = 4; in loongson_i2s_plat_probe() 152 i2s->clk_rate = clk_get_rate(i2s_clk); in loongson_i2s_plat_probe() [all …]
|
| H A D | Makefile | 3 snd-soc-loongson-i2s-pci-y := loongson_i2s_pci.o loongson_dma.o 4 obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PCI) += snd-soc-loongson-i2s-pci.o snd-soc-loongson-i2s.o 6 snd-soc-loongson-i2s-plat-y := loongson_i2s_plat.o 7 obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM) += snd-soc-loongson-i2s-plat.o snd-soc-loongson-i2s.o 9 snd-soc-loongson-i2s-y := loongson_i2s.o
|
| /linux-6.15/sound/soc/samsung/ |
| H A D | i2s.c | 147 if (!i2s) in tx_active() 163 return i2s->pri_dai ? : i2s->sec_dai; in get_other_dai() 177 return tx_active(i2s) || other_tx_active(i2s); in any_tx_active() 185 if (!i2s) in rx_active() 204 return rx_active(i2s) || other_rx_active(i2s); in any_rx_active() 216 return tx_active(i2s) || rx_active(i2s); in this_active() 222 return this_active(i2s) || other_active(i2s); in any_active() 234 if (i2s && (i2s->mode & DAI_OPENED)) in is_opened() 242 if (is_opened(i2s) && (i2s->mode & DAI_MANAGER)) in is_manager() 484 if (!i2s) in i2s_fifo() [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/sound/ |
| H A D | allwinner,sun4i-a10-i2s.yaml | 19 - const: allwinner,sun4i-a10-i2s 20 - const: allwinner,sun6i-a31-i2s 21 - const: allwinner,sun8i-a83t-i2s 22 - const: allwinner,sun8i-h3-i2s 25 - const: allwinner,sun8i-h3-i2s 27 - const: allwinner,sun8i-v3-i2s 33 - const: allwinner,sun50i-h6-i2s 34 - const: allwinner,sun50i-r329-i2s 72 - allwinner,sun8i-h3-i2s 87 - allwinner,sun8i-h3-i2s [all …]
|
| H A D | rockchip-i2s.yaml | 22 - const: rockchip,rk3066-i2s 25 - rockchip,px30-i2s 26 - rockchip,rk1808-i2s 27 - rockchip,rk3036-i2s 28 - rockchip,rk3128-i2s 29 - rockchip,rk3188-i2s 30 - rockchip,rk3228-i2s 31 - rockchip,rk3288-i2s 32 - rockchip,rk3308-i2s 129 i2s@ff890000 { [all …]
|
| H A D | nvidia,tegra30-i2s.yaml | 4 $id: http://devicetree.org/schemas/sound/nvidia,tegra30-i2s.yaml# 17 - nvidia,tegra124-i2s 18 - nvidia,tegra30-i2s 20 - const: nvidia,tegra114-i2s 21 - const: nvidia,tegra30-i2s 30 const: i2s 36 const: i2s 59 i2s@70080300 { 60 compatible = "nvidia,tegra30-i2s"; 65 reset-names = "i2s";
|
| H A D | hisilicon,hi6210-i2s.txt | 1 * Hisilicon 6210 i2s controller 6 - "hisilicon,hi6210-i2s" 7 - reg: physical base address of the i2s controller unit and length of 9 - interrupts: should contain the i2s interrupt. 14 - "i2s-base" 25 Example for the hi6210 i2s controller: 27 i2s0: i2s@f7118000{ 28 compatible = "hisilicon,hi6210-i2s"; 29 reg = <0x0 0xf7118000 0x0 0x8000>; /* i2s unit */ 33 clock-names = "dacodec", "i2s-base"; [all …]
|
| H A D | ingenic,aic.yaml | 22 - ingenic,jz4740-i2s 23 - ingenic,jz4760-i2s 24 - ingenic,jz4770-i2s 25 - ingenic,jz4780-i2s 26 - ingenic,x1000-i2s 28 - const: ingenic,jz4725b-i2s 29 - const: ingenic,jz4740-i2s 48 - const: i2s 76 compatible = "ingenic,jz4740-i2s"; 86 clock-names = "aic", "i2s";
|
| H A D | samsung-i2s.yaml | 4 $id: http://devicetree.org/schemas/sound/samsung-i2s.yaml# 19 samsung,s3c6410-i2s: for 8/16/24bit stereo I2S. 49 - samsung,s3c6410-i2s 50 - samsung,s5pv210-i2s 51 - samsung,exynos5420-i2s 52 - samsung,exynos7-i2s 54 - tesla,fsd-i2s 57 - samsung,exynos5433-i2s 58 - const: samsung,exynos7-i2s 146 i2s0: i2s@3830000 { [all …]
|
| H A D | nvidia,tegra210-i2s.yaml | 4 $id: http://devicetree.org/schemas/sound/nvidia,tegra210-i2s.yaml# 24 pattern: "^i2s@[0-9a-f]*$" 28 - const: nvidia,tegra210-i2s 31 - nvidia,tegra234-i2s 32 - nvidia,tegra194-i2s 33 - nvidia,tegra186-i2s 34 - const: nvidia,tegra210-i2s 55 - const: i2s 104 i2s@702d1000 { 105 compatible = "nvidia,tegra210-i2s"; [all …]
|