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);
181 struct spdif_in_dev *host = (struct spdif_in_dev *)arg;
183 u32 irq_status = readl(host->io_base + SPDIF_IN_IRQ);
189 dev_err(host->dev, "spdif in: fifo write error");
191 dev_err(host->dev, "spdif in: empty fifo read error");
193 dev_err(host->dev, "spdif in: fifo full error");
195 dev_err(host->dev, "spdif in: out of range error");
197 writel(0, host->io_base + SPDIF_IN_IRQ);
204 struct spdif_in_dev *host;
218 host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL);
219 if (!host)
222 host->io_base = io_base;
223 host->irq = platform_get_irq(pdev, 0);
224 if (host->irq < 0) {
225 dev_warn(&pdev->dev, "failed to get IRQ: %d\n", host->irq);
226 return host->irq;
229 host->clk = devm_clk_get(&pdev->dev, NULL);
230 if (IS_ERR(host->clk))
231 return PTR_ERR(host->clk);
238 host->dma_params.data = pdata->dma_params;
239 host->dma_params.addr = res_fifo->start;
240 host->dma_params.max_burst = 16;
241 host->dma_params.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
242 host->reset_perip = pdata->reset_perip;
244 host->dev = &pdev->dev;
245 dev_set_drvdata(&pdev->dev, host);
247 ret = devm_request_irq(&pdev->dev, host->irq, spdif_in_irq, 0,
248 "spdif-in", host);
259 return devm_spear_pcm_platform_register(&pdev->dev, &host->config,