Lines Matching refs:host

46 static void spdif_in_configure(struct spdif_in_dev *host)  in spdif_in_configure()  argument
52 writel(ctrl, host->io_base + SPDIF_IN_CTRL); in spdif_in_configure()
53 writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK); in spdif_in_configure()
58 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); in spdif_in_dai_probe() local
60 host->dma_params_rx.filter_data = &host->dma_params; in spdif_in_dai_probe()
61 dai->capture_dma_data = &host->dma_params_rx; in spdif_in_dai_probe()
69 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); in spdif_in_shutdown() local
74 writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK); in spdif_in_shutdown()
77 static void spdif_in_format(struct spdif_in_dev *host, u32 format) in spdif_in_format() argument
79 u32 ctrl = readl(host->io_base + SPDIF_IN_CTRL); in spdif_in_format()
91 writel(ctrl, host->io_base + SPDIF_IN_CTRL); in spdif_in_format()
98 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); in spdif_in_hw_params() local
105 host->saved_params.format = format; in spdif_in_hw_params()
113 struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); in spdif_in_trigger() local
124 clk_enable(host->clk); in spdif_in_trigger()
125 spdif_in_configure(host); in spdif_in_trigger()
126 spdif_in_format(host, host->saved_params.format); in spdif_in_trigger()
128 ctrl = readl(host->io_base + SPDIF_IN_CTRL); in spdif_in_trigger()
130 writel(ctrl, host->io_base + SPDIF_IN_CTRL); in spdif_in_trigger()
131 writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK); in spdif_in_trigger()
137 ctrl = readl(host->io_base + SPDIF_IN_CTRL); in spdif_in_trigger()
139 writel(ctrl, host->io_base + SPDIF_IN_CTRL); in spdif_in_trigger()
140 writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK); in spdif_in_trigger()
142 if (host->reset_perip) in spdif_in_trigger()
143 host->reset_perip(); in spdif_in_trigger()
144 clk_disable(host->clk); in spdif_in_trigger()
180 struct spdif_in_dev *host = (struct spdif_in_dev *)arg; in spdif_in_irq() local
182 u32 irq_status = readl(host->io_base + SPDIF_IN_IRQ); in spdif_in_irq()
188 dev_err(host->dev, "spdif in: fifo write error"); in spdif_in_irq()
190 dev_err(host->dev, "spdif in: empty fifo read error"); in spdif_in_irq()
192 dev_err(host->dev, "spdif in: fifo full error"); in spdif_in_irq()
194 dev_err(host->dev, "spdif in: out of range error"); in spdif_in_irq()
196 writel(0, host->io_base + SPDIF_IN_IRQ); in spdif_in_irq()
203 struct spdif_in_dev *host; in spdif_in_probe() local
218 host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); in spdif_in_probe()
219 if (!host) { in spdif_in_probe()
224 host->io_base = io_base; in spdif_in_probe()
225 host->irq = platform_get_irq(pdev, 0); in spdif_in_probe()
226 if (host->irq < 0) in spdif_in_probe()
229 host->clk = devm_clk_get(&pdev->dev, NULL); in spdif_in_probe()
230 if (IS_ERR(host->clk)) in spdif_in_probe()
231 return PTR_ERR(host->clk); in spdif_in_probe()
238 host->dma_params.data = pdata->dma_params; in spdif_in_probe()
239 host->dma_params.addr = res_fifo->start; in spdif_in_probe()
240 host->dma_params.max_burst = 16; in spdif_in_probe()
241 host->dma_params.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; in spdif_in_probe()
242 host->reset_perip = pdata->reset_perip; in spdif_in_probe()
244 host->dev = &pdev->dev; in spdif_in_probe()
245 dev_set_drvdata(&pdev->dev, host); in spdif_in_probe()
247 ret = devm_request_irq(&pdev->dev, host->irq, spdif_in_irq, 0, in spdif_in_probe()
248 "spdif-in", host); in spdif_in_probe()
259 return devm_spear_pcm_platform_register(&pdev->dev, &host->config, in spdif_in_probe()