Home
last modified time | relevance | path

Searched refs:i2s (Results 1 – 25 of 356) sorted by relevance

12345678910>>...15

/kernel/linux/linux-5.10/sound/soc/hisilicon/
Dhi6210-i2s.c81 static inline void hi6210_write_reg(struct hi6210_i2s *i2s, int reg, u32 val) in hi6210_write_reg() argument
83 writel(val, i2s->base + reg); in hi6210_write_reg()
86 static inline u32 hi6210_read_reg(struct hi6210_i2s *i2s, int reg) in hi6210_read_reg() argument
88 return readl(i2s->base + reg); in hi6210_read_reg()
94 struct hi6210_i2s *i2s = dev_get_drvdata(cpu_dai->dev); in hi6210_i2s_startup() local
99 regmap_read(i2s->sysctrl, SC_PERIPH_RSTSTAT2, &val); in hi6210_i2s_startup()
101 regmap_write(i2s->sysctrl, SC_PERIPH_RSTDIS2, BIT(4)); in hi6210_i2s_startup()
103 for (n = 0; n < i2s->clocks; n++) { in hi6210_i2s_startup()
104 ret = clk_prepare_enable(i2s->clk[n]); in hi6210_i2s_startup()
109 ret = clk_set_rate(i2s->clk[CLK_I2S_BASE], 49152000); in hi6210_i2s_startup()
[all …]
/kernel/linux/linux-5.10/sound/soc/img/
Dimg-i2s-out.c69 struct img_i2s_out *i2s = dev_get_drvdata(dev); in img_i2s_out_runtime_suspend() local
71 clk_disable_unprepare(i2s->clk_ref); in img_i2s_out_runtime_suspend()
72 clk_disable_unprepare(i2s->clk_sys); in img_i2s_out_runtime_suspend()
79 struct img_i2s_out *i2s = dev_get_drvdata(dev); in img_i2s_out_runtime_resume() local
82 ret = clk_prepare_enable(i2s->clk_sys); in img_i2s_out_runtime_resume()
88 ret = clk_prepare_enable(i2s->clk_ref); in img_i2s_out_runtime_resume()
91 clk_disable_unprepare(i2s->clk_sys); in img_i2s_out_runtime_resume()
98 static inline void img_i2s_out_writel(struct img_i2s_out *i2s, u32 val, in img_i2s_out_writel() argument
101 writel(val, i2s->base + reg); in img_i2s_out_writel()
104 static inline u32 img_i2s_out_readl(struct img_i2s_out *i2s, u32 reg) in img_i2s_out_readl() argument
[all …]
Dimg-i2s-in.c67 struct img_i2s_in *i2s = dev_get_drvdata(dev); in img_i2s_in_runtime_suspend() local
69 clk_disable_unprepare(i2s->clk_sys); in img_i2s_in_runtime_suspend()
76 struct img_i2s_in *i2s = dev_get_drvdata(dev); in img_i2s_in_runtime_resume() local
79 ret = clk_prepare_enable(i2s->clk_sys); in img_i2s_in_runtime_resume()
88 static inline void img_i2s_in_writel(struct img_i2s_in *i2s, u32 val, u32 reg) in img_i2s_in_writel() argument
90 writel(val, i2s->base + reg); in img_i2s_in_writel()
93 static inline u32 img_i2s_in_readl(struct img_i2s_in *i2s, u32 reg) in img_i2s_in_readl() argument
95 return readl(i2s->base + reg); in img_i2s_in_readl()
98 static inline void img_i2s_in_ch_writel(struct img_i2s_in *i2s, u32 chan, in img_i2s_in_ch_writel() argument
101 writel(val, i2s->channel_base + (chan * IMG_I2S_IN_CH_STRIDE) + reg); in img_i2s_in_ch_writel()
[all …]
/kernel/linux/linux-5.10/sound/soc/tegra/
Dtegra30_i2s.c40 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_suspend() local
42 regcache_cache_only(i2s->regmap, true); in tegra30_i2s_runtime_suspend()
44 clk_disable_unprepare(i2s->clk_i2s); in tegra30_i2s_runtime_suspend()
51 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_resume() local
54 ret = clk_prepare_enable(i2s->clk_i2s); in tegra30_i2s_runtime_resume()
60 regcache_cache_only(i2s->regmap, false); in tegra30_i2s_runtime_resume()
68 struct tegra30_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra30_i2s_set_fmt() local
117 regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL, mask, val); in tegra30_i2s_set_fmt()
128 struct tegra30_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra30_i2s_hw_params() local
146 regmap_update_bits(i2s->regmap, TEGRA30_I2S_CTRL, mask, val); in tegra30_i2s_hw_params()
[all …]
Dtegra210_i2s.c50 struct tegra210_i2s *i2s = dev_get_drvdata(dev); in tegra210_i2s_set_clock_rate() local
54 regmap_read(i2s->regmap, TEGRA210_I2S_CTRL, &val); in tegra210_i2s_set_clock_rate()
60 err = clk_set_rate(i2s->clk_i2s, clock_rate); in tegra210_i2s_set_clock_rate()
67 if (!IS_ERR(i2s->clk_sync_input)) { in tegra210_i2s_set_clock_rate()
73 err = clk_set_rate(i2s->clk_sync_input, clock_rate); in tegra210_i2s_set_clock_rate()
89 struct tegra210_i2s *i2s = dev_get_drvdata(dev); in tegra210_i2s_sw_reset() local
107 regmap_read(i2s->regmap, cif_reg, &cif_ctrl); in tegra210_i2s_sw_reset()
108 regmap_read(i2s->regmap, stream_reg, &stream_ctrl); in tegra210_i2s_sw_reset()
109 regmap_read(i2s->regmap, TEGRA210_I2S_CTRL, &i2s_ctrl); in tegra210_i2s_sw_reset()
112 regmap_update_bits(i2s->regmap, reset_reg, reset_mask, reset_en); in tegra210_i2s_sw_reset()
[all …]
Dtegra20_i2s.c38 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_suspend() local
40 clk_disable_unprepare(i2s->clk_i2s); in tegra20_i2s_runtime_suspend()
47 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_resume() local
50 ret = clk_prepare_enable(i2s->clk_i2s); in tegra20_i2s_runtime_resume()
62 struct tegra20_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra20_i2s_set_fmt() local
110 regmap_update_bits(i2s->regmap, TEGRA20_I2S_CTRL, mask, val); in tegra20_i2s_set_fmt()
120 struct tegra20_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra20_i2s_hw_params() local
145 regmap_update_bits(i2s->regmap, TEGRA20_I2S_CTRL, mask, val); in tegra20_i2s_hw_params()
152 ret = clk_set_rate(i2s->clk_i2s, i2sclock); in tegra20_i2s_hw_params()
166 regmap_write(i2s->regmap, TEGRA20_I2S_TIMING, val); in tegra20_i2s_hw_params()
[all …]
/kernel/linux/linux-5.10/sound/soc/adi/
Daxi-i2s.c60 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_trigger() local
83 regmap_update_bits(i2s->regmap, AXI_I2S_REG_CTRL, mask, val); in axi_i2s_trigger()
91 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_hw_params() local
98 bclk_div = DIV_ROUND_UP(clk_get_rate(i2s->clk_ref), bclk_rate) / 2 - 1; in axi_i2s_hw_params()
100 regmap_write(i2s->regmap, AXI_I2S_REG_CLK_CTRL, (word_size << 16) | in axi_i2s_hw_params()
109 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_startup() local
118 regmap_write(i2s->regmap, AXI_I2S_REG_RESET, mask); in axi_i2s_startup()
122 &i2s->rate_constraints); in axi_i2s_startup()
126 return clk_prepare_enable(i2s->clk_ref); in axi_i2s_startup()
132 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_shutdown() local
[all …]
/kernel/linux/linux-5.10/sound/soc/sunxi/
Dsun4i-i2s.c237 static unsigned long sun4i_i2s_get_bclk_parent_rate(const struct sun4i_i2s *i2s) in sun4i_i2s_get_bclk_parent_rate() argument
239 return i2s->mclk_freq; in sun4i_i2s_get_bclk_parent_rate()
242 static unsigned long sun8i_i2s_get_bclk_parent_rate(const struct sun4i_i2s *i2s) in sun8i_i2s_get_bclk_parent_rate() argument
244 return clk_get_rate(i2s->mod_clk); in sun8i_i2s_get_bclk_parent_rate()
247 static int sun4i_i2s_get_bclk_div(struct sun4i_i2s *i2s, in sun4i_i2s_get_bclk_div() argument
253 const struct sun4i_i2s_clk_div *dividers = i2s->variant->bclk_dividers; in sun4i_i2s_get_bclk_div()
257 for (i = 0; i < i2s->variant->num_bclk_dividers; i++) { in sun4i_i2s_get_bclk_div()
267 static int sun4i_i2s_get_mclk_div(struct sun4i_i2s *i2s, in sun4i_i2s_get_mclk_div() argument
271 const struct sun4i_i2s_clk_div *dividers = i2s->variant->mclk_dividers; in sun4i_i2s_get_mclk_div()
275 for (i = 0; i < i2s->variant->num_mclk_dividers; i++) { in sun4i_i2s_get_mclk_div()
[all …]
/kernel/linux/linux-5.10/sound/soc/xtensa/
Dxtfpga-i2s.c76 unsigned (*tx_fn)(struct xtfpga_i2s *i2s,
131 struct xtfpga_i2s *i2s, struct snd_pcm_runtime *runtime, \
137 for (; i2s->tx_fifo_level < i2s->tx_fifo_high; \
138 i2s->tx_fifo_level += 2) { \
140 i2s->regs + XTFPGA_I2S_CHAN0_DATA); \
142 i2s->regs + XTFPGA_I2S_CHAN0_DATA); \
156 static bool xtfpga_pcm_push_tx(struct xtfpga_i2s *i2s) in xtfpga_pcm_push_tx() argument
162 tx_substream = rcu_dereference(i2s->tx_substream); in xtfpga_pcm_push_tx()
165 unsigned tx_ptr = READ_ONCE(i2s->tx_ptr); in xtfpga_pcm_push_tx()
166 unsigned new_tx_ptr = i2s->tx_fn(i2s, tx_substream->runtime, in xtfpga_pcm_push_tx()
[all …]
/kernel/linux/linux-5.10/sound/soc/rockchip/
Drockchip_i2s.c56 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_suspend() local
58 regcache_cache_only(i2s->regmap, true); in i2s_runtime_suspend()
59 clk_disable_unprepare(i2s->mclk); in i2s_runtime_suspend()
66 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_resume() local
69 ret = clk_prepare_enable(i2s->mclk); in i2s_runtime_resume()
71 dev_err(i2s->dev, "clock enable failed %d\n", ret); in i2s_runtime_resume()
75 regcache_cache_only(i2s->regmap, false); in i2s_runtime_resume()
76 regcache_mark_dirty(i2s->regmap); in i2s_runtime_resume()
78 ret = regcache_sync(i2s->regmap); in i2s_runtime_resume()
80 clk_disable_unprepare(i2s->mclk); in i2s_runtime_resume()
[all …]
/kernel/linux/linux-5.10/sound/soc/stm/
Dstm32_i2s.c245 struct stm32_i2s_data *i2s = (struct stm32_i2s_data *)devid; in stm32_i2s_isr() local
246 struct platform_device *pdev = i2s->pdev; in stm32_i2s_isr()
251 regmap_read(i2s->regmap, STM32_I2S_SR_REG, &sr); in stm32_i2s_isr()
252 regmap_read(i2s->regmap, STM32_I2S_IER_REG, &ier); in stm32_i2s_isr()
261 regmap_write_bits(i2s->regmap, STM32_I2S_IFCR_REG, in stm32_i2s_isr()
277 spin_lock(&i2s->irq_lock); in stm32_i2s_isr()
278 if (err && i2s->substream) in stm32_i2s_isr()
279 snd_pcm_stop_xrun(i2s->substream); in stm32_i2s_isr()
280 spin_unlock(&i2s->irq_lock); in stm32_i2s_isr()
334 struct stm32_i2s_data *i2s = snd_soc_dai_get_drvdata(cpu_dai); in stm32_i2s_set_dai_fmt() local
[all …]
/kernel/linux/linux-5.10/sound/soc/jz4740/
Djz4740-i2s.c116 static inline uint32_t jz4740_i2s_read(const struct jz4740_i2s *i2s, in jz4740_i2s_read() argument
119 return readl(i2s->base + reg); in jz4740_i2s_read()
122 static inline void jz4740_i2s_write(const struct jz4740_i2s *i2s, in jz4740_i2s_write() argument
125 writel(value, i2s->base + reg); in jz4740_i2s_write()
128 static inline void jz4740_i2s_set_bits(const struct jz4740_i2s *i2s, in jz4740_i2s_set_bits() argument
131 uint32_t value = jz4740_i2s_read(i2s, reg); in jz4740_i2s_set_bits()
133 jz4740_i2s_write(i2s, reg, value); in jz4740_i2s_set_bits()
139 struct jz4740_i2s *i2s = snd_soc_dai_get_drvdata(dai); in jz4740_i2s_startup() local
148 if (!i2s->soc_info->shared_fifo_flush) { in jz4740_i2s_startup()
150 jz4740_i2s_set_bits(i2s, JZ_REG_AIC_CTRL, JZ_AIC_CTRL_TFLUSH); in jz4740_i2s_startup()
[all …]
/kernel/linux/linux-5.10/sound/soc/samsung/
Ds3c-i2s-v2.c72 static void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_txctrl() argument
74 void __iomem *regs = i2s->regs; in s3c2412_snd_txctrl()
102 dev_err(i2s->dev, "TXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl()
131 dev_err(i2s->dev, "TXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl()
145 static void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_rxctrl() argument
147 void __iomem *regs = i2s->regs; in s3c2412_snd_rxctrl()
175 dev_err(i2s->dev, "RXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl()
200 dev_err(i2s->dev, "RXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl()
218 static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s) in s3c2412_snd_lrsync() argument
226 iiscon = readl(i2s->regs + S3C2412_IISCON); in s3c2412_snd_lrsync()
[all …]
Di2s.c131 static inline bool is_secondary(struct i2s_dai *i2s) in is_secondary() argument
133 return i2s->drv->id == SAMSUNG_I2S_ID_SECONDARY; in is_secondary()
137 static inline bool tx_active(struct i2s_dai *i2s) in tx_active() argument
141 if (!i2s) in tx_active()
144 active = readl(i2s->priv->addr + I2SCON); in tx_active()
146 if (is_secondary(i2s)) in tx_active()
155 static inline struct i2s_dai *get_other_dai(struct i2s_dai *i2s) in get_other_dai() argument
157 return i2s->pri_dai ? : i2s->sec_dai; in get_other_dai()
161 static inline bool other_tx_active(struct i2s_dai *i2s) in other_tx_active() argument
163 struct i2s_dai *other = get_other_dai(i2s); in other_tx_active()
[all …]
Ds3c2412-i2s.c90 struct s3c_i2sv2_info *i2s = snd_soc_dai_get_drvdata(cpu_dai); in s3c2412_i2s_hw_params() local
95 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_hw_params()
107 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_hw_params()
116 struct s3c_i2sv2_info *i2s = snd_soc_component_get_drvdata(component); in s3c2412_i2s_suspend() local
120 i2s->suspend_iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_suspend()
121 i2s->suspend_iiscon = readl(i2s->regs + S3C2412_IISCON); in s3c2412_i2s_suspend()
122 i2s->suspend_iispsr = readl(i2s->regs + S3C2412_IISPSR); in s3c2412_i2s_suspend()
126 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_suspend()
143 struct s3c_i2sv2_info *i2s = snd_soc_component_get_drvdata(component); in s3c2412_i2s_resume() local
146 component->active, i2s->suspend_iismod, i2s->suspend_iiscon); in s3c2412_i2s_resume()
[all …]
DMakefile5 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
/kernel/linux/patches/linux-5.10/yangfan_patch/
Dsound.patch266 -obj-$(CONFIG_SND_SOC_ROCKCHIP_I2S) += snd-soc-rockchip-i2s.o snd-soc-rockchip-pcm.o
268 +obj-$(CONFIG_SND_SOC_ROCKCHIP_I2S) += snd-soc-rockchip-i2s.o
287 #define DRV_NAME "rockchip-i2s"
308 @@ -92,6 +97,7 @@ static void rockchip_snd_txctrl(struct rk_i2s_dev *i2s, int on)
312 + spin_lock(&i2s->lock);
314 regmap_update_bits(i2s->regmap, I2S_DMACR,
316 @@ -132,6 +138,7 @@ static void rockchip_snd_txctrl(struct rk_i2s_dev *i2s, int on)
320 + spin_unlock(&i2s->lock);
323 static void rockchip_snd_rxctrl(struct rk_i2s_dev *i2s, int on)
324 @@ -139,6 +146,7 @@ static void rockchip_snd_rxctrl(struct rk_i2s_dev *i2s, int on)
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/sound/
Dhisilicon,hi6210-i2s.txt1 * 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 …]
Dnvidia,tegra30-i2s.txt4 - 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";
Drockchip-max98090.txt6 - rockchip,i2s-controller: The phandle of the Rockchip I2S controller that's
21 rockchip,i2s-controller = <&i2s>;
30 rockchip,i2s-controller = <&i2s>;
38 rockchip,i2s-controller = <&i2s>;
Dnvidia,tegra20-i2s.txt4 - compatible : "nvidia,tegra20-i2s"
10 - i2s
21 i2s@70002800 {
22 compatible = "nvidia,tegra20-i2s";
27 reset-names = "i2s";
Dzte,zx-i2s.txt5 "zte,zx296718-i2s", "zte,zx296702-i2s"
6 "zte,zx296702-i2s"
21 i2s0: i2s@b005000 {
23 compatible = "zte,zx296718-i2s", "zte,zx296702-i2s";
/kernel/linux/linux-5.10/sound/soc/bcm/
DMakefile3 snd-soc-bcm2835-i2s-objs := bcm2835-i2s.o
5 obj-$(CONFIG_SND_BCM2835_SOC_I2S) += snd-soc-bcm2835-i2s.o
13 snd-soc-63xx-objs := bcm63xx-i2s-whistler.o bcm63xx-pcm-whistler.o
/kernel/linux/linux-5.10/sound/soc/atmel/
DMakefile6 snd-soc-atmel-i2s-objs := atmel-i2s.o
7 snd-soc-mchp-i2s-mcc-objs := mchp-i2s-mcc.o
20 obj-$(CONFIG_SND_ATMEL_SOC_I2S) += snd-soc-atmel-i2s.o
21 obj-$(CONFIG_SND_MCHP_SOC_I2S_MCC) += snd-soc-mchp-i2s-mcc.o
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/display/bridge/
Dsii902x.txt15 - #sound-dai-cells: <0> or <1>. <0> if only i2s or spdif pin
18 - sil,i2s-data-lanes: Array of up to 4 integers with values of 0-3
19 Each integer indicates which i2s pin is connected to which
20 audio fifo. The first integer selects i2s audio pin for the
22 (HDMI channels 3&4), and so on. There is 4 fifos and 4 i2s
23 pins (SD0 - SD3). Any i2s pin can be connected to any fifo,
24 but there can be no gaps. E.g. an i2s pin must be mapped to
63 sil,i2s-data-lanes = < 0 1 2 >;

12345678910>>...15