Lines Matching refs:adc
73 struct pcf50633_adc *adc = __to_adc(pcf); in trigger_next_adc_job_if_any() local
76 head = adc->queue_head; in trigger_next_adc_job_if_any()
78 if (!adc->queue[head]) in trigger_next_adc_job_if_any()
81 adc_setup(pcf, adc->queue[head]->mux, adc->queue[head]->avg); in trigger_next_adc_job_if_any()
87 struct pcf50633_adc *adc = __to_adc(pcf); in adc_enqueue_request() local
90 mutex_lock(&adc->queue_mutex); in adc_enqueue_request()
92 head = adc->queue_head; in adc_enqueue_request()
93 tail = adc->queue_tail; in adc_enqueue_request()
95 if (adc->queue[tail]) { in adc_enqueue_request()
96 mutex_unlock(&adc->queue_mutex); in adc_enqueue_request()
101 adc->queue[tail] = req; in adc_enqueue_request()
104 adc->queue_tail = (tail + 1) & (PCF50633_MAX_ADC_FIFO_DEPTH - 1); in adc_enqueue_request()
106 mutex_unlock(&adc->queue_mutex); in adc_enqueue_request()
174 struct pcf50633_adc *adc = data; in pcf50633_adc_irq() local
175 struct pcf50633 *pcf = adc->pcf; in pcf50633_adc_irq()
179 mutex_lock(&adc->queue_mutex); in pcf50633_adc_irq()
180 head = adc->queue_head; in pcf50633_adc_irq()
182 req = adc->queue[head]; in pcf50633_adc_irq()
185 mutex_unlock(&adc->queue_mutex); in pcf50633_adc_irq()
188 adc->queue[head] = NULL; in pcf50633_adc_irq()
189 adc->queue_head = (head + 1) & in pcf50633_adc_irq()
195 mutex_unlock(&adc->queue_mutex); in pcf50633_adc_irq()
203 struct pcf50633_adc *adc; in pcf50633_adc_probe() local
205 adc = devm_kzalloc(&pdev->dev, sizeof(*adc), GFP_KERNEL); in pcf50633_adc_probe()
206 if (!adc) in pcf50633_adc_probe()
209 adc->pcf = dev_to_pcf50633(pdev->dev.parent); in pcf50633_adc_probe()
210 platform_set_drvdata(pdev, adc); in pcf50633_adc_probe()
212 pcf50633_register_irq(adc->pcf, PCF50633_IRQ_ADCRDY, in pcf50633_adc_probe()
213 pcf50633_adc_irq, adc); in pcf50633_adc_probe()
215 mutex_init(&adc->queue_mutex); in pcf50633_adc_probe()
222 struct pcf50633_adc *adc = platform_get_drvdata(pdev); in pcf50633_adc_remove() local
225 pcf50633_free_irq(adc->pcf, PCF50633_IRQ_ADCRDY); in pcf50633_adc_remove()
227 mutex_lock(&adc->queue_mutex); in pcf50633_adc_remove()
228 head = adc->queue_head; in pcf50633_adc_remove()
230 if (WARN_ON(adc->queue[head])) in pcf50633_adc_remove()
231 dev_err(adc->pcf->dev, in pcf50633_adc_remove()
235 kfree(adc->queue[i]); in pcf50633_adc_remove()
237 mutex_unlock(&adc->queue_mutex); in pcf50633_adc_remove()