Lines Matching refs:uni

101 int  sti_uniperiph_reset(struct uniperif *uni)  in sti_uniperiph_reset()  argument
106 SET_UNIPERIF_SOFT_RST_SOFT_RST(uni); in sti_uniperiph_reset()
108 if (uni->ver < SND_ST_UNIPERIF_VERSION_UNI_PLR_TOP_1_0) { in sti_uniperiph_reset()
109 while (GET_UNIPERIF_SOFT_RST_SOFT_RST(uni) && count) { in sti_uniperiph_reset()
116 dev_err(uni->dev, "Failed to reset uniperif\n"); in sti_uniperiph_reset()
128 struct uniperif *uni = priv->dai_data.uni; in sti_uniperiph_set_tdm_slot() local
131 if (!UNIPERIF_TYPE_IS_TDM(uni)) { in sti_uniperiph_set_tdm_slot()
132 dev_err(uni->dev, "cpu dai not in tdm mode\n"); in sti_uniperiph_set_tdm_slot()
137 uni->tdm_slot.slots = slots; in sti_uniperiph_set_tdm_slot()
138 uni->tdm_slot.slot_width = slot_width; in sti_uniperiph_set_tdm_slot()
140 uni->tdm_slot.mask = (tx_mask != 0) ? tx_mask : rx_mask; in sti_uniperiph_set_tdm_slot()
143 for (i = 0, avail_slots = 0; i < uni->tdm_slot.slots; i++) { in sti_uniperiph_set_tdm_slot()
144 if ((uni->tdm_slot.mask >> i) & 0x01) in sti_uniperiph_set_tdm_slot()
147 uni->tdm_slot.avail_slots = avail_slots; in sti_uniperiph_set_tdm_slot()
150 frame_size = uni->tdm_slot.avail_slots * uni->tdm_slot.slot_width / 8; in sti_uniperiph_set_tdm_slot()
155 dev_err(uni->dev, "frame size not allowed: %d bytes\n", in sti_uniperiph_set_tdm_slot()
166 struct uniperif *uni = rule->private; in sti_uniperiph_fix_tdm_chan() local
169 t.min = uni->tdm_slot.avail_slots; in sti_uniperiph_fix_tdm_chan()
170 t.max = uni->tdm_slot.avail_slots; in sti_uniperiph_fix_tdm_chan()
181 struct uniperif *uni = rule->private; in sti_uniperiph_fix_tdm_format() local
185 switch (uni->tdm_slot.slot_width) { in sti_uniperiph_fix_tdm_format()
193 dev_err(uni->dev, "format not supported: %d bits\n", in sti_uniperiph_fix_tdm_format()
194 uni->tdm_slot.slot_width); in sti_uniperiph_fix_tdm_format()
209 int sti_uniperiph_get_tdm_word_pos(struct uniperif *uni, in sti_uniperiph_get_tdm_word_pos() argument
212 int slot_width = uni->tdm_slot.slot_width / 8; in sti_uniperiph_get_tdm_word_pos()
213 int slots_num = uni->tdm_slot.slots; in sti_uniperiph_get_tdm_word_pos()
214 unsigned int slots_mask = uni->tdm_slot.mask; in sti_uniperiph_get_tdm_word_pos()
258 struct uniperif *uni = priv->dai_data.uni; in sti_uniperiph_dai_create_ctrl() local
262 if (!uni->num_ctrls) in sti_uniperiph_dai_create_ctrl()
265 for (i = 0; i < uni->num_ctrls; i++) { in sti_uniperiph_dai_create_ctrl()
270 ctrl = &uni->snd_ctrls[i]; in sti_uniperiph_dai_create_ctrl()
271 ctrl->index = uni->id; in sti_uniperiph_dai_create_ctrl()
272 ctrl->device = uni->id; in sti_uniperiph_dai_create_ctrl()
275 return snd_soc_add_dai_controls(dai, uni->snd_ctrls, uni->num_ctrls); in sti_uniperiph_dai_create_ctrl()
286 struct uniperif *uni = priv->dai_data.uni; in sti_uniperiph_dai_hw_params() local
290 if (uni->type == SND_ST_UNIPERIF_TYPE_TDM) in sti_uniperiph_dai_hw_params()
306 priv->dai_data.uni->daifmt = fmt; in sti_uniperiph_dai_set_fmt()
314 struct uniperif *uni = priv->dai_data.uni; in sti_uniperiph_suspend() local
318 if (uni->state != UNIPERIF_STATE_STOPPED) { in sti_uniperiph_suspend()
319 dev_err(uni->dev, "%s: invalid uni state( %d)\n", in sti_uniperiph_suspend()
320 __func__, (int)uni->state); in sti_uniperiph_suspend()
325 ret = pinctrl_pm_select_sleep_state(uni->dev); in sti_uniperiph_suspend()
327 dev_err(uni->dev, "%s: failed to select pinctrl state\n", in sti_uniperiph_suspend()
336 struct uniperif *uni = priv->dai_data.uni; in sti_uniperiph_resume() local
340 ret = uni_player_resume(uni); in sti_uniperiph_resume()
346 ret = pinctrl_pm_select_default_state(uni->dev); in sti_uniperiph_resume()
348 dev_err(uni->dev, "%s: failed to select pinctrl state\n", in sti_uniperiph_resume()
365 dai_data->dma_data.addr = dai_data->uni->fifo_phys_address; in sti_uniperiph_dai_probe()
388 struct uniperif *uni; in sti_uniperiph_cpu_dai_of() local
402 uni = devm_kzalloc(dev, sizeof(*uni), GFP_KERNEL); in sti_uniperiph_cpu_dai_of()
403 if (!uni) in sti_uniperiph_cpu_dai_of()
406 uni->id = dev_data->id; in sti_uniperiph_cpu_dai_of()
407 uni->ver = dev_data->version; in sti_uniperiph_cpu_dai_of()
413 uni->mem_region = platform_get_resource(priv->pdev, IORESOURCE_MEM, 0); in sti_uniperiph_cpu_dai_of()
415 if (!uni->mem_region) { in sti_uniperiph_cpu_dai_of()
420 uni->base = devm_ioremap_resource(dev, uni->mem_region); in sti_uniperiph_cpu_dai_of()
422 if (IS_ERR(uni->base)) in sti_uniperiph_cpu_dai_of()
423 return PTR_ERR(uni->base); in sti_uniperiph_cpu_dai_of()
425 uni->fifo_phys_address = uni->mem_region->start + in sti_uniperiph_cpu_dai_of()
426 UNIPERIF_FIFO_DATA_OFFSET(uni); in sti_uniperiph_cpu_dai_of()
428 uni->irq = platform_get_irq(priv->pdev, 0); in sti_uniperiph_cpu_dai_of()
429 if (uni->irq < 0) in sti_uniperiph_cpu_dai_of()
432 uni->type = dev_data->type; in sti_uniperiph_cpu_dai_of()
437 uni->type = SND_ST_UNIPERIF_TYPE_TDM; in sti_uniperiph_cpu_dai_of()
439 uni->type = SND_ST_UNIPERIF_TYPE_PCM; in sti_uniperiph_cpu_dai_of()
442 dai_data->uni = uni; in sti_uniperiph_cpu_dai_of()
446 ret = uni_player_init(priv->pdev, uni); in sti_uniperiph_cpu_dai_of()
449 ret = uni_reader_init(priv->pdev, uni); in sti_uniperiph_cpu_dai_of()
455 dai->ops = uni->dai_ops; in sti_uniperiph_cpu_dai_of()
458 stream->channels_min = uni->hw->channels_min; in sti_uniperiph_cpu_dai_of()
459 stream->channels_max = uni->hw->channels_max; in sti_uniperiph_cpu_dai_of()
460 stream->rates = uni->hw->rates; in sti_uniperiph_cpu_dai_of()
461 stream->formats = uni->hw->formats; in sti_uniperiph_cpu_dai_of()