Lines Matching defs:host
46 static void spdif_in_configure(struct spdif_in_dev *host)
52 writel(ctrl, host->io_base + SPDIF_IN_CTRL);
53 writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK);
58 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai);
60 host->dma_params_rx.filter_data = &host->dma_params;
61 dai->capture_dma_data = &host->dma_params_rx;
69 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai);
74 writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK);
77 static void spdif_in_format(struct spdif_in_dev *host, u32 format)
79 u32 ctrl = readl(host->io_base + SPDIF_IN_CTRL);
91 writel(ctrl, host->io_base + SPDIF_IN_CTRL);
98 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai);
105 host->saved_params.format = format;
113 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai);
124 clk_enable(host->clk);
125 spdif_in_configure(host);
126 spdif_in_format(host, host->saved_params.format);
128 ctrl = readl(host->io_base + SPDIF_IN_CTRL);
130 writel(ctrl, host->io_base + SPDIF_IN_CTRL);
131 writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK);
137 ctrl = readl(host->io_base + SPDIF_IN_CTRL);
139 writel(ctrl, host->io_base + SPDIF_IN_CTRL);
140 writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK);
142 if (host->reset_perip)
143 host->reset_perip();
144 clk_disable(host->clk);
180 struct spdif_in_dev *host = (struct spdif_in_dev *)arg;
182 u32 irq_status = readl(host->io_base + SPDIF_IN_IRQ);
188 dev_err(host->dev, "spdif in: fifo write error");
190 dev_err(host->dev, "spdif in: empty fifo read error");
192 dev_err(host->dev, "spdif in: fifo full error");
194 dev_err(host->dev, "spdif in: out of range error");
196 writel(0, host->io_base + SPDIF_IN_IRQ);
203 struct spdif_in_dev *host;
217 host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL);
218 if (!host)
221 host->io_base = io_base;
222 host->irq = platform_get_irq(pdev, 0);
223 if (host->irq < 0) {
224 dev_warn(&pdev->dev, "failed to get IRQ: %d\n", host->irq);
225 return host->irq;
228 host->clk = devm_clk_get(&pdev->dev, NULL);
229 if (IS_ERR(host->clk))
230 return PTR_ERR(host->clk);
237 host->dma_params.data = pdata->dma_params;
238 host->dma_params.addr = res_fifo->start;
239 host->dma_params.max_burst = 16;
240 host->dma_params.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
241 host->reset_perip = pdata->reset_perip;
243 host->dev = &pdev->dev;
244 dev_set_drvdata(&pdev->dev, host);
246 ret = devm_request_irq(&pdev->dev, host->irq, spdif_in_irq, 0,
247 "spdif-in", host);
258 return devm_spear_pcm_platform_register(&pdev->dev, &host->config,