• Home
  • Raw
  • Download

Lines Matching refs:i2s

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
132 clk_disable_unprepare(i2s->clk_ref); in axi_i2s_shutdown()
137 struct axi_i2s *i2s = snd_soc_dai_get_drvdata(dai); in axi_i2s_dai_probe() local
139 snd_soc_dai_init_dma_data(dai, &i2s->playback_dma_data, in axi_i2s_dai_probe()
140 &i2s->capture_dma_data); in axi_i2s_dai_probe()
184 struct axi_i2s *i2s; in axi_i2s_probe() local
188 i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL); in axi_i2s_probe()
189 if (!i2s) in axi_i2s_probe()
192 platform_set_drvdata(pdev, i2s); in axi_i2s_probe()
199 i2s->regmap = devm_regmap_init_mmio(&pdev->dev, base, in axi_i2s_probe()
201 if (IS_ERR(i2s->regmap)) in axi_i2s_probe()
202 return PTR_ERR(i2s->regmap); in axi_i2s_probe()
204 i2s->clk = devm_clk_get(&pdev->dev, "axi"); in axi_i2s_probe()
205 if (IS_ERR(i2s->clk)) in axi_i2s_probe()
206 return PTR_ERR(i2s->clk); in axi_i2s_probe()
208 i2s->clk_ref = devm_clk_get(&pdev->dev, "ref"); in axi_i2s_probe()
209 if (IS_ERR(i2s->clk_ref)) in axi_i2s_probe()
210 return PTR_ERR(i2s->clk_ref); in axi_i2s_probe()
212 ret = clk_prepare_enable(i2s->clk); in axi_i2s_probe()
216 i2s->playback_dma_data.addr = res->start + AXI_I2S_REG_TX_FIFO; in axi_i2s_probe()
217 i2s->playback_dma_data.addr_width = 4; in axi_i2s_probe()
218 i2s->playback_dma_data.maxburst = 1; in axi_i2s_probe()
220 i2s->capture_dma_data.addr = res->start + AXI_I2S_REG_RX_FIFO; in axi_i2s_probe()
221 i2s->capture_dma_data.addr_width = 4; in axi_i2s_probe()
222 i2s->capture_dma_data.maxburst = 1; in axi_i2s_probe()
224 i2s->ratnum.num = clk_get_rate(i2s->clk_ref) / 2 / AXI_I2S_BITS_PER_FRAME; in axi_i2s_probe()
225 i2s->ratnum.den_step = 1; in axi_i2s_probe()
226 i2s->ratnum.den_min = 1; in axi_i2s_probe()
227 i2s->ratnum.den_max = 64; in axi_i2s_probe()
229 i2s->rate_constraints.rats = &i2s->ratnum; in axi_i2s_probe()
230 i2s->rate_constraints.nrats = 1; in axi_i2s_probe()
232 regmap_write(i2s->regmap, AXI_I2S_REG_RESET, AXI_I2S_RESET_GLOBAL); in axi_i2s_probe()
246 clk_disable_unprepare(i2s->clk); in axi_i2s_probe()
252 struct axi_i2s *i2s = platform_get_drvdata(pdev); in axi_i2s_dev_remove() local
254 clk_disable_unprepare(i2s->clk); in axi_i2s_dev_remove()