Searched refs:nuc900_audio (Results 1 - 3 of 3) sorted by relevance

/linux-4.4.14/sound/soc/nuc900/
H A Dnuc900-ac97.c30 struct nuc900_audio *nuc900_ac97_data;
35 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_checkready() local
37 if (!(AUDIO_READ(nuc900_audio->mmio + ACTL_ACIS0) & CODEC_READY)) nuc900_checkready()
47 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_read() local
54 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); nuc900_ac97_read()
59 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS1, R_WB | reg); nuc900_ac97_read()
62 val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); nuc900_ac97_read()
64 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, val); nuc900_ac97_read()
69 while (!(AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON) & AC_R_FINISH) nuc900_ac97_read()
74 dev_err(nuc900_audio->dev, "AC97 read register time out !\n"); nuc900_ac97_read()
79 val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0) ; nuc900_ac97_read()
81 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, val); nuc900_ac97_read()
83 if (AUDIO_READ(nuc900_audio->mmio + ACTL_ACIS1) >> 2 != reg) { nuc900_ac97_read()
84 dev_err(nuc900_audio->dev, nuc900_ac97_read()
89 val = (AUDIO_READ(nuc900_audio->mmio + ACTL_ACIS2) & 0xFFFF); nuc900_ac97_read()
100 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_write() local
107 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); nuc900_ac97_write()
110 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS1, reg); nuc900_ac97_write()
113 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS2, val); nuc900_ac97_write()
116 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); nuc900_ac97_write()
118 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); nuc900_ac97_write()
123 while ((AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON) & AC_W_FINISH) nuc900_ac97_write()
128 dev_err(nuc900_audio->dev, "AC97 write register time out !\n"); nuc900_ac97_write()
130 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); nuc900_ac97_write()
132 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); nuc900_ac97_write()
140 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_warm_reset() local
146 val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON); nuc900_ac97_warm_reset()
148 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val); nuc900_ac97_warm_reset()
154 dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); nuc900_ac97_warm_reset()
161 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_cold_reset() local
167 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_cold_reset()
169 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_cold_reset()
171 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_cold_reset()
173 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_cold_reset()
177 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_cold_reset()
179 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_cold_reset()
181 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_cold_reset()
183 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_cold_reset()
186 val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON); nuc900_ac97_cold_reset()
188 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val); nuc900_ac97_cold_reset()
190 val = AUDIO_READ(nuc900_audio->mmio + ACTL_ACCON); nuc900_ac97_cold_reset()
192 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACCON, val); nuc900_ac97_cold_reset()
211 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_trigger() local
220 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_trigger()
222 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); nuc900_ac97_trigger()
224 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); nuc900_ac97_trigger()
226 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_PSR); nuc900_ac97_trigger()
228 AUDIO_WRITE(nuc900_audio->mmio + ACTL_PSR, tmp); nuc900_ac97_trigger()
231 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_RSR); nuc900_ac97_trigger()
234 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RSR, tmp); nuc900_ac97_trigger()
238 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_trigger()
243 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_ac97_trigger()
245 tmp = AUDIO_READ(nuc900_audio->mmio + ACTL_ACOS0); nuc900_ac97_trigger()
247 AUDIO_WRITE(nuc900_audio->mmio + ACTL_ACOS0, tmp); nuc900_ac97_trigger()
249 AUDIO_WRITE(nuc900_audio->mmio + ACTL_PSR, RESET_PRSR); nuc900_ac97_trigger()
252 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RSR, RESET_PRSR); nuc900_ac97_trigger()
256 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_ac97_trigger()
268 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_probe() local
274 clk_enable(nuc900_audio->clk); nuc900_ac97_probe()
277 val = AUDIO_READ(nuc900_audio->mmio + ACTL_CON); nuc900_ac97_probe()
279 AUDIO_WRITE(nuc900_audio->mmio + ACTL_CON, val); nuc900_ac97_probe()
288 struct nuc900_audio *nuc900_audio = nuc900_ac97_data; nuc900_ac97_remove() local
290 clk_disable(nuc900_audio->clk); nuc900_ac97_remove()
323 struct nuc900_audio *nuc900_audio; nuc900_ac97_drvprobe() local
329 nuc900_audio = devm_kzalloc(&pdev->dev, sizeof(struct nuc900_audio), nuc900_ac97_drvprobe()
331 if (!nuc900_audio) nuc900_ac97_drvprobe()
334 spin_lock_init(&nuc900_audio->lock); nuc900_ac97_drvprobe()
336 nuc900_audio->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); nuc900_ac97_drvprobe()
337 nuc900_audio->mmio = devm_ioremap_resource(&pdev->dev, nuc900_ac97_drvprobe()
338 nuc900_audio->res); nuc900_ac97_drvprobe()
339 if (IS_ERR(nuc900_audio->mmio)) nuc900_ac97_drvprobe()
340 return PTR_ERR(nuc900_audio->mmio); nuc900_ac97_drvprobe()
342 nuc900_audio->clk = devm_clk_get(&pdev->dev, NULL); nuc900_ac97_drvprobe()
343 if (IS_ERR(nuc900_audio->clk)) { nuc900_ac97_drvprobe()
344 ret = PTR_ERR(nuc900_audio->clk); nuc900_ac97_drvprobe()
348 nuc900_audio->irq_num = platform_get_irq(pdev, 0); nuc900_ac97_drvprobe()
349 if (!nuc900_audio->irq_num) { nuc900_ac97_drvprobe()
354 nuc900_ac97_data = nuc900_audio; nuc900_ac97_drvprobe()
366 mfp_set_groupg(nuc900_audio->dev, NULL); nuc900_ac97_drvprobe()
H A Dnuc900-pcm.c51 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_update_dma_register() local
55 mmio_addr = nuc900_audio->mmio + ACTL_PDSTB; nuc900_update_dma_register()
56 mmio_len = nuc900_audio->mmio + ACTL_PDST_LENGTH; nuc900_update_dma_register()
58 mmio_addr = nuc900_audio->mmio + ACTL_RDSTB; nuc900_update_dma_register()
59 mmio_len = nuc900_audio->mmio + ACTL_RDST_LENGTH; nuc900_update_dma_register()
69 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_dma_start() local
72 val = AUDIO_READ(nuc900_audio->mmio + ACTL_CON); nuc900_dma_start()
74 AUDIO_WRITE(nuc900_audio->mmio + ACTL_CON, val); nuc900_dma_start()
80 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_dma_stop() local
83 val = AUDIO_READ(nuc900_audio->mmio + ACTL_CON); nuc900_dma_stop()
85 AUDIO_WRITE(nuc900_audio->mmio + ACTL_CON, val); nuc900_dma_stop()
91 struct nuc900_audio *nuc900_audio = substream->runtime->private_data; nuc900_dma_interrupt() local
94 spin_lock(&nuc900_audio->lock); nuc900_dma_interrupt()
96 val = AUDIO_READ(nuc900_audio->mmio + ACTL_CON); nuc900_dma_interrupt()
99 AUDIO_WRITE(nuc900_audio->mmio + ACTL_CON, val | R_DMA_IRQ); nuc900_dma_interrupt()
101 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RSR); nuc900_dma_interrupt()
105 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RSR, val); nuc900_dma_interrupt()
110 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RSR, val); nuc900_dma_interrupt()
113 AUDIO_WRITE(nuc900_audio->mmio + ACTL_CON, val | T_DMA_IRQ); nuc900_dma_interrupt()
115 val = AUDIO_READ(nuc900_audio->mmio + ACTL_PSR); nuc900_dma_interrupt()
119 AUDIO_WRITE(nuc900_audio->mmio + ACTL_PSR, val); nuc900_dma_interrupt()
124 AUDIO_WRITE(nuc900_audio->mmio + ACTL_PSR, val); nuc900_dma_interrupt()
127 dev_err(nuc900_audio->dev, "Wrong DMA interrupt status!\n"); nuc900_dma_interrupt()
128 spin_unlock(&nuc900_audio->lock); nuc900_dma_interrupt()
132 spin_unlock(&nuc900_audio->lock); nuc900_dma_interrupt()
148 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_dma_prepare() local
152 spin_lock_irqsave(&nuc900_audio->lock, flags); nuc900_dma_prepare()
156 val = AUDIO_READ(nuc900_audio->mmio + ACTL_RESET); nuc900_dma_prepare()
167 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_dma_prepare()
174 AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); nuc900_dma_prepare()
179 spin_unlock_irqrestore(&nuc900_audio->lock, flags); nuc900_dma_prepare()
210 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_dma_getposition() local
213 *src = AUDIO_READ(nuc900_audio->mmio + ACTL_PDSTC); nuc900_dma_getposition()
216 *dst = AUDIO_READ(nuc900_audio->mmio + ACTL_RDSTC); nuc900_dma_getposition()
240 struct nuc900_audio *nuc900_audio; nuc900_dma_open() local
244 nuc900_audio = nuc900_ac97_data; nuc900_dma_open()
246 if (request_irq(nuc900_audio->irq_num, nuc900_dma_interrupt, nuc900_dma_open()
250 runtime->private_data = nuc900_audio; nuc900_dma_open()
258 struct nuc900_audio *nuc900_audio = runtime->private_data; nuc900_dma_close() local
260 free_irq(nuc900_audio->irq_num, substream); nuc900_dma_close()
H A Dnuc900-audio.h100 struct nuc900_audio { struct
110 extern struct nuc900_audio *nuc900_ac97_data;

Completed in 72 milliseconds