Lines Matching defs:adc
23 #include <linux/mfd/pcf50633/adc.h>
69 struct pcf50633_adc *adc = __to_adc(pcf);
72 head = adc->queue_head;
74 if (!adc->queue[head])
77 adc_setup(pcf, adc->queue[head]->mux, adc->queue[head]->avg);
83 struct pcf50633_adc *adc = __to_adc(pcf);
86 mutex_lock(&adc->queue_mutex);
88 head = adc->queue_head;
89 tail = adc->queue_tail;
91 if (adc->queue[tail]) {
92 mutex_unlock(&adc->queue_mutex);
97 adc->queue[tail] = req;
100 adc->queue_tail = (tail + 1) & (PCF50633_MAX_ADC_FIFO_DEPTH - 1);
102 mutex_unlock(&adc->queue_mutex);
168 dev_dbg(pcf->dev, "adc result = %d\n", result);
175 struct pcf50633_adc *adc = data;
176 struct pcf50633 *pcf = adc->pcf;
180 mutex_lock(&adc->queue_mutex);
181 head = adc->queue_head;
183 req = adc->queue[head];
185 dev_err(pcf->dev, "pcf50633-adc irq: ADC queue empty!\n");
186 mutex_unlock(&adc->queue_mutex);
189 adc->queue[head] = NULL;
190 adc->queue_head = (head + 1) &
196 mutex_unlock(&adc->queue_mutex);
204 struct pcf50633_adc *adc;
206 adc = devm_kzalloc(&pdev->dev, sizeof(*adc), GFP_KERNEL);
207 if (!adc)
210 adc->pcf = dev_to_pcf50633(pdev->dev.parent);
211 platform_set_drvdata(pdev, adc);
213 pcf50633_register_irq(adc->pcf, PCF50633_IRQ_ADCRDY,
214 pcf50633_adc_irq, adc);
216 mutex_init(&adc->queue_mutex);
223 struct pcf50633_adc *adc = platform_get_drvdata(pdev);
226 pcf50633_free_irq(adc->pcf, PCF50633_IRQ_ADCRDY);
228 mutex_lock(&adc->queue_mutex);
229 head = adc->queue_head;
231 if (WARN_ON(adc->queue[head]))
232 dev_err(adc->pcf->dev,
233 "adc driver removed with request pending\n");
236 kfree(adc->queue[i]);
238 mutex_unlock(&adc->queue_mutex);
245 .name = "pcf50633-adc",
254 MODULE_DESCRIPTION("PCF50633 adc driver");
256 MODULE_ALIAS("platform:pcf50633-adc");