/Linux-v4.19/sound/soc/samsung/ |
D | i2s.c | 108 static inline bool is_secondary(struct i2s_dai *i2s) in is_secondary() argument 110 return i2s->pri_dai ? true : false; in is_secondary() 114 static inline bool is_slave(struct i2s_dai *i2s) in is_slave() argument 116 u32 mod = readl(i2s->addr + I2SMOD); in is_slave() 117 return (mod & (1 << i2s->variant_regs->mss_off)) ? true : false; in is_slave() 121 static inline bool tx_active(struct i2s_dai *i2s) in tx_active() argument 125 if (!i2s) in tx_active() 128 active = readl(i2s->addr + I2SCON); in tx_active() 130 if (is_secondary(i2s)) in tx_active() 139 static inline struct i2s_dai *get_other_dai(struct i2s_dai *i2s) in get_other_dai() argument [all …]
|
D | s3c-i2s-v2.c | 76 static void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_txctrl() argument 78 void __iomem *regs = i2s->regs; in s3c2412_snd_txctrl() 106 dev_err(i2s->dev, "TXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl() 135 dev_err(i2s->dev, "TXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl() 149 static void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_rxctrl() argument 151 void __iomem *regs = i2s->regs; in s3c2412_snd_rxctrl() 179 dev_err(i2s->dev, "RXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl() 204 dev_err(i2s->dev, "RXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl() 222 static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s) in s3c2412_snd_lrsync() argument 230 iiscon = readl(i2s->regs + S3C2412_IISCON); in s3c2412_snd_lrsync() [all …]
|
D | Makefile | 5 snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o 6 snd-soc-s3c2412-i2s-objs := s3c2412-i2s.o 7 snd-soc-s3c-i2s-v2-objs := s3c-i2s-v2.o 10 snd-soc-i2s-objs := i2s.o 13 obj-$(CONFIG_SND_S3C24XX_I2S) += snd-soc-s3c24xx-i2s.o 14 obj-$(CONFIG_SND_S3C2412_SOC_I2S) += snd-soc-s3c2412-i2s.o 15 obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o 18 obj-$(CONFIG_SND_SAMSUNG_I2S) += snd-soc-i2s.o
|
/Linux-v4.19/sound/soc/hisilicon/ |
D | hi6210-i2s.c | 89 static inline void hi6210_write_reg(struct hi6210_i2s *i2s, int reg, u32 val) in hi6210_write_reg() argument 91 writel(val, i2s->base + reg); in hi6210_write_reg() 94 static inline u32 hi6210_read_reg(struct hi6210_i2s *i2s, int reg) in hi6210_read_reg() argument 96 return readl(i2s->base + reg); in hi6210_read_reg() 102 struct hi6210_i2s *i2s = dev_get_drvdata(cpu_dai->dev); in hi6210_i2s_startup() local 107 regmap_read(i2s->sysctrl, SC_PERIPH_RSTSTAT2, &val); in hi6210_i2s_startup() 109 regmap_write(i2s->sysctrl, SC_PERIPH_RSTDIS2, BIT(4)); in hi6210_i2s_startup() 111 for (n = 0; n < i2s->clocks; n++) { in hi6210_i2s_startup() 112 ret = clk_prepare_enable(i2s->clk[n]); in hi6210_i2s_startup() 115 clk_disable_unprepare(i2s->clk[n]); in hi6210_i2s_startup() [all …]
|
/Linux-v4.19/sound/soc/img/ |
D | img-i2s-out.c | 72 struct img_i2s_out *i2s = dev_get_drvdata(dev); in img_i2s_out_runtime_suspend() local 74 clk_disable_unprepare(i2s->clk_ref); in img_i2s_out_runtime_suspend() 75 clk_disable_unprepare(i2s->clk_sys); in img_i2s_out_runtime_suspend() 82 struct img_i2s_out *i2s = dev_get_drvdata(dev); in img_i2s_out_runtime_resume() local 85 ret = clk_prepare_enable(i2s->clk_sys); in img_i2s_out_runtime_resume() 91 ret = clk_prepare_enable(i2s->clk_ref); in img_i2s_out_runtime_resume() 94 clk_disable_unprepare(i2s->clk_sys); in img_i2s_out_runtime_resume() 101 static inline void img_i2s_out_writel(struct img_i2s_out *i2s, u32 val, in img_i2s_out_writel() argument 104 writel(val, i2s->base + reg); in img_i2s_out_writel() 107 static inline u32 img_i2s_out_readl(struct img_i2s_out *i2s, u32 reg) in img_i2s_out_readl() argument [all …]
|
D | img-i2s-in.c | 70 struct img_i2s_in *i2s = dev_get_drvdata(dev); in img_i2s_in_runtime_suspend() local 72 clk_disable_unprepare(i2s->clk_sys); in img_i2s_in_runtime_suspend() 79 struct img_i2s_in *i2s = dev_get_drvdata(dev); in img_i2s_in_runtime_resume() local 82 ret = clk_prepare_enable(i2s->clk_sys); in img_i2s_in_runtime_resume() 91 static inline void img_i2s_in_writel(struct img_i2s_in *i2s, u32 val, u32 reg) in img_i2s_in_writel() argument 93 writel(val, i2s->base + reg); in img_i2s_in_writel() 96 static inline u32 img_i2s_in_readl(struct img_i2s_in *i2s, u32 reg) in img_i2s_in_readl() argument 98 return readl(i2s->base + reg); in img_i2s_in_readl() 101 static inline void img_i2s_in_ch_writel(struct img_i2s_in *i2s, u32 chan, in img_i2s_in_ch_writel() argument 104 writel(val, i2s->channel_base + (chan * IMG_I2S_IN_CH_STRIDE) + reg); in img_i2s_in_ch_writel() [all …]
|
/Linux-v4.19/sound/soc/sunxi/ |
D | sun4i-i2s.c | 225 static int sun4i_i2s_get_bclk_div(struct sun4i_i2s *i2s, in sun4i_i2s_get_bclk_div() argument 242 static int sun4i_i2s_get_mclk_div(struct sun4i_i2s *i2s, in sun4i_i2s_get_mclk_div() argument 276 struct sun4i_i2s *i2s = snd_soc_dai_get_drvdata(dai); in sun4i_i2s_set_clk_rate() local 308 ret = clk_set_rate(i2s->mod_clk, clk_rate); in sun4i_i2s_set_clk_rate() 312 oversample_rate = i2s->mclk_freq / rate; in sun4i_i2s_set_clk_rate() 319 bclk_div = sun4i_i2s_get_bclk_div(i2s, oversample_rate, in sun4i_i2s_set_clk_rate() 326 mclk_div = sun4i_i2s_get_mclk_div(i2s, oversample_rate, in sun4i_i2s_set_clk_rate() 334 bclk_div += i2s->variant->bclk_offset; in sun4i_i2s_set_clk_rate() 335 mclk_div += i2s->variant->mclk_offset; in sun4i_i2s_set_clk_rate() 337 regmap_write(i2s->regmap, SUN4I_I2S_CLK_DIV_REG, in sun4i_i2s_set_clk_rate() [all …]
|
/Linux-v4.19/sound/soc/rockchip/ |
D | rockchip_i2s.c | 59 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_suspend() local 61 regcache_cache_only(i2s->regmap, true); in i2s_runtime_suspend() 62 clk_disable_unprepare(i2s->mclk); in i2s_runtime_suspend() 69 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_resume() local 72 ret = clk_prepare_enable(i2s->mclk); in i2s_runtime_resume() 74 dev_err(i2s->dev, "clock enable failed %d\n", ret); in i2s_runtime_resume() 78 regcache_cache_only(i2s->regmap, false); in i2s_runtime_resume() 79 regcache_mark_dirty(i2s->regmap); in i2s_runtime_resume() 81 ret = regcache_sync(i2s->regmap); in i2s_runtime_resume() 83 clk_disable_unprepare(i2s->mclk); in i2s_runtime_resume() [all …]
|
/Linux-v4.19/sound/soc/tegra/ |
D | tegra30_i2s.c | 51 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_suspend() local 53 regcache_cache_only(i2s->regmap, true); in tegra30_i2s_runtime_suspend() 55 clk_disable_unprepare(i2s->clk_i2s); in tegra30_i2s_runtime_suspend() 62 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_resume() local 65 ret = clk_prepare_enable(i2s->clk_i2s); in tegra30_i2s_runtime_resume() 71 regcache_cache_only(i2s->regmap, false); in tegra30_i2s_runtime_resume() 79 struct tegra30_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra30_i2s_set_fmt() local 128 regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL, mask, val); in tegra30_i2s_set_fmt() 139 struct tegra30_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra30_i2s_hw_params() local 157 regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL, mask, val); in tegra30_i2s_hw_params() [all …]
|
D | tegra20_i2s.c | 52 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_suspend() local 54 clk_disable_unprepare(i2s->clk_i2s); in tegra20_i2s_runtime_suspend() 61 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_resume() local 64 ret = clk_prepare_enable(i2s->clk_i2s); in tegra20_i2s_runtime_resume() 76 struct tegra20_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra20_i2s_set_fmt() local 124 regmap_update_bits(i2s->regmap, TEGRA20_I2S_CTRL, mask, val); in tegra20_i2s_set_fmt() 134 struct tegra20_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra20_i2s_hw_params() local 159 regmap_update_bits(i2s->regmap, TEGRA20_I2S_CTRL, mask, val); in tegra20_i2s_hw_params() 166 ret = clk_set_rate(i2s->clk_i2s, i2sclock); in tegra20_i2s_hw_params() 180 regmap_write(i2s->regmap, TEGRA20_I2S_TIMING, val); in tegra20_i2s_hw_params() [all …]
|
/Linux-v4.19/sound/soc/xtensa/ |
D | xtfpga-i2s.c | 79 unsigned (*tx_fn)(struct xtfpga_i2s *i2s, 134 struct xtfpga_i2s *i2s, struct snd_pcm_runtime *runtime, \ 140 for (; i2s->tx_fifo_level < i2s->tx_fifo_high; \ 141 i2s->tx_fifo_level += 2) { \ 143 i2s->regs + XTFPGA_I2S_CHAN0_DATA); \ 145 i2s->regs + XTFPGA_I2S_CHAN0_DATA); \ 159 static bool xtfpga_pcm_push_tx(struct xtfpga_i2s *i2s) in xtfpga_pcm_push_tx() argument 165 tx_substream = rcu_dereference(i2s->tx_substream); in xtfpga_pcm_push_tx() 168 unsigned tx_ptr = READ_ONCE(i2s->tx_ptr); in xtfpga_pcm_push_tx() 169 unsigned new_tx_ptr = i2s->tx_fn(i2s, tx_substream->runtime, in xtfpga_pcm_push_tx() [all …]
|
D | Makefile | 1 snd-soc-xtfpga-i2s-objs := xtfpga-i2s.o 3 obj-$(CONFIG_SND_SOC_XTFPGA_I2S) += snd-soc-xtfpga-i2s.o
|
/Linux-v4.19/sound/soc/adi/ |
D | axi-i2s.c | 58 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_trigger() local 81 regmap_update_bits(i2s->regmap, AXI_I2S_REG_CTRL, mask, val); in axi_i2s_trigger() 89 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_hw_params() local 96 bclk_div = DIV_ROUND_UP(clk_get_rate(i2s->clk_ref), bclk_rate) / 2 - 1; in axi_i2s_hw_params() 98 regmap_write(i2s->regmap, AXI_I2S_REG_CLK_CTRL, (word_size << 16) | in axi_i2s_hw_params() 107 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_startup() local 116 regmap_write(i2s->regmap, AXI_I2S_REG_RESET, mask); in axi_i2s_startup() 120 &i2s->rate_constraints); in axi_i2s_startup() 124 return clk_prepare_enable(i2s->clk_ref); in axi_i2s_startup() 130 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_shutdown() local [all …]
|
/Linux-v4.19/sound/soc/jz4740/ |
D | jz4740-i2s.c | 119 static inline uint32_t jz4740_i2s_read(const struct jz4740_i2s *i2s, in jz4740_i2s_read() argument 122 return readl(i2s->base + reg); in jz4740_i2s_read() 125 static inline void jz4740_i2s_write(const struct jz4740_i2s *i2s, in jz4740_i2s_write() argument 128 writel(value, i2s->base + reg); in jz4740_i2s_write() 134 struct jz4740_i2s *i2s = snd_soc_dai_get_drvdata(dai); in jz4740_i2s_startup() local 141 ctrl = jz4740_i2s_read(i2s, JZ_REG_AIC_CTRL); in jz4740_i2s_startup() 143 jz4740_i2s_write(i2s, JZ_REG_AIC_CTRL, ctrl); in jz4740_i2s_startup() 145 ret = clk_prepare_enable(i2s->clk_i2s); in jz4740_i2s_startup() 149 conf = jz4740_i2s_read(i2s, JZ_REG_AIC_CONF); in jz4740_i2s_startup() 151 jz4740_i2s_write(i2s, JZ_REG_AIC_CONF, conf); in jz4740_i2s_startup() [all …]
|
D | Makefile | 4 snd-soc-jz4740-i2s-objs := jz4740-i2s.o 6 obj-$(CONFIG_SND_JZ4740_SOC_I2S) += snd-soc-jz4740-i2s.o
|
/Linux-v4.19/sound/soc/stm/ |
D | stm32_i2s.c | 233 struct stm32_i2s_data *i2s = (struct stm32_i2s_data *)devid; in stm32_i2s_isr() local 234 struct platform_device *pdev = i2s->pdev; in stm32_i2s_isr() 239 regmap_read(i2s->regmap, STM32_I2S_SR_REG, &sr); in stm32_i2s_isr() 240 regmap_read(i2s->regmap, STM32_I2S_IER_REG, &ier); in stm32_i2s_isr() 249 regmap_update_bits(i2s->regmap, STM32_I2S_IFCR_REG, in stm32_i2s_isr() 266 snd_pcm_stop_xrun(i2s->substream); in stm32_i2s_isr() 318 struct stm32_i2s_data *i2s = snd_soc_dai_get_drvdata(cpu_dai); in stm32_i2s_set_dai_fmt() local 372 i2s->ms_flg = I2S_MS_SLAVE; in stm32_i2s_set_dai_fmt() 375 i2s->ms_flg = I2S_MS_MASTER; in stm32_i2s_set_dai_fmt() 383 i2s->fmt = fmt; in stm32_i2s_set_dai_fmt() [all …]
|
/Linux-v4.19/Documentation/devicetree/bindings/sound/ |
D | rockchip-i2s.txt | 9 - "rockchip,rk3066-i2s": for rk3066 10 - "rockchip,px30-i2s", "rockchip,rk3066-i2s": for px30 11 - "rockchip,rk3036-i2s", "rockchip,rk3066-i2s": for rk3036 12 - "rockchip,rk3188-i2s", "rockchip,rk3066-i2s": for rk3188 13 - "rockchip,rk3228-i2s", "rockchip,rk3066-i2s": for rk3228 14 - "rockchip,rk3288-i2s", "rockchip,rk3066-i2s": for rk3288 15 - "rockchip,rk3328-i2s", "rockchip,rk3066-i2s": for rk3328 16 - "rockchip,rk3366-i2s", "rockchip,rk3066-i2s": for rk3366 17 - "rockchip,rk3368-i2s", "rockchip,rk3066-i2s": for rk3368 18 - "rockchip,rk3399-i2s", "rockchip,rk3066-i2s": for rk3399 [all …]
|
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 …]
|
D | ingenic,jz4740-i2s.txt | 4 - compatible : "ingenic,jz4740-i2s" or "ingenic,jz4780-i2s" 7 - clock-names: "aic" and "i2s" 13 i2s: i2s@10020000 { 14 compatible = "ingenic,jz4740-i2s"; 18 clock-names = "aic", "i2s";
|
D | sun4i-i2s.txt | 9 - "allwinner,sun4i-a10-i2s" 10 - "allwinner,sun6i-a31-i2s" 11 - "allwinner,sun8i-a83t-i2s" 12 - "allwinner,sun8i-h3-i2s" 26 - "allwinner,sun6i-a31-i2s" 27 - "allwinner,sun8i-a83t-i2s" 28 - "allwinner,sun8i-h3-i2s" 33 i2s0: i2s@1c22400 { 35 compatible = "allwinner,sun4i-a10-i2s";
|
D | nvidia,tegra30-i2s.txt | 4 - compatible : For Tegra30, must contain "nvidia,tegra30-i2s". For Tegra124, 5 must contain "nvidia,tegra124-i2s". Otherwise, must contain 6 "nvidia,<chip>-i2s" plus at least one of the above, where <chip> is 14 - i2s 20 i2s@70080300 { 21 compatible = "nvidia,tegra30-i2s"; 26 reset-names = "i2s";
|
D | nvidia,tegra20-i2s.txt | 4 - compatible : "nvidia,tegra20-i2s" 10 - i2s 21 i2s@70002800 { 22 compatible = "nvidia,tegra20-i2s"; 27 reset-names = "i2s";
|
D | zte,zx-i2s.txt | 5 "zte,zx296718-i2s", "zte,zx296702-i2s" 6 "zte,zx296702-i2s" 21 i2s0: i2s@b005000 { 23 compatible = "zte,zx296718-i2s", "zte,zx296702-i2s";
|
D | img,i2s-in.txt | 5 - compatible : Compatible list, must contain "img,i2s-in" 21 - img,i2s-channels : Number of I2S channels instantiated in the I2S in block 37 i2s_in: i2s-in@18100800 { 38 compatible = "img,i2s-in"; 45 img,i2s-channels = <6>;
|
/Linux-v4.19/drivers/macintosh/ |
D | rack-meter.c | 63 struct device_node *i2s; member 108 pmac_call_feature(PMAC_FTR_SOUND_CHIP_ENABLE, rm->i2s, 0, 1); in rackmeter_setup_i2s() 371 struct device_node *i2s = NULL, *np = NULL; in rackmeter_probe() local 379 while ((i2s = of_get_next_child(mdev->ofdev.dev.of_node, i2s)) != NULL) in rackmeter_probe() 380 if (strcmp(i2s->name, "i2s-a") == 0) in rackmeter_probe() 382 if (i2s == NULL) { in rackmeter_probe() 387 while ((np = of_get_next_child(i2s, np)) != NULL) { in rackmeter_probe() 407 rm->i2s = i2s; in rackmeter_probe() 429 rm->irq = irq_of_parse_and_map(i2s, 1); in rackmeter_probe() 431 of_address_to_resource(i2s, 0, &ri2s) || in rackmeter_probe() [all …]
|