Lines Matching defs:ddata

55 	struct stm32_timers *ddata = dev_get_drvdata(dev);
57 struct regmap *regmap = ddata->regmap;
58 struct stm32_timers_dma *dma = &ddata->dma;
160 static void stm32_timers_get_arr_size(struct stm32_timers *ddata)
165 regmap_read(ddata->regmap, TIM_ARR, &arr);
171 regmap_write(ddata->regmap, TIM_ARR, ~0L);
172 regmap_read(ddata->regmap, TIM_ARR, &ddata->max_arr);
173 regmap_write(ddata->regmap, TIM_ARR, arr);
177 struct stm32_timers *ddata)
183 init_completion(&ddata->dma.completion);
184 mutex_init(&ddata->dma.lock);
189 ddata->dma.chans[i] = dma_request_chan(dev, name);
191 ddata->dma.chans[STM32_TIMERS_DMA_UP] = dma_request_chan(dev, "up");
192 ddata->dma.chans[STM32_TIMERS_DMA_TRIG] = dma_request_chan(dev, "trig");
193 ddata->dma.chans[STM32_TIMERS_DMA_COM] = dma_request_chan(dev, "com");
196 if (IS_ERR(ddata->dma.chans[i])) {
198 if (PTR_ERR(ddata->dma.chans[i]) != -ENODEV && !ret)
199 ret = PTR_ERR(ddata->dma.chans[i]);
201 ddata->dma.chans[i] = NULL;
209 struct stm32_timers *ddata)
214 if (ddata->dma.chans[i])
215 dma_release_channel(ddata->dma.chans[i]);
223 struct stm32_timers *ddata)
237 ddata->irq[STM32_TIMERS_IRQ_GLOBAL_BRK] = ret;
238 ddata->nr_irqs = 1;
247 ddata->irq[i] = ret;
248 ddata->nr_irqs++;
252 if (ddata->nr_irqs && ddata->nr_irqs != STM32_TIMERS_MAX_IRQS) {
253 dev_err(&pdev->dev, "Invalid number of IRQs %d\n", ddata->nr_irqs);
263 struct stm32_timers *ddata;
268 ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
269 if (!ddata)
277 ddata->dma.phys_base = res->start;
279 ddata->regmap = devm_regmap_init_mmio_clk(dev, "int", mmio,
281 if (IS_ERR(ddata->regmap))
282 return PTR_ERR(ddata->regmap);
284 ddata->clk = devm_clk_get(dev, NULL);
285 if (IS_ERR(ddata->clk))
286 return PTR_ERR(ddata->clk);
288 stm32_timers_get_arr_size(ddata);
290 ret = stm32_timers_irq_probe(pdev, ddata);
294 ret = stm32_timers_dma_probe(dev, ddata);
296 stm32_timers_dma_remove(dev, ddata);
300 platform_set_drvdata(pdev, ddata);
304 stm32_timers_dma_remove(dev, ddata);
311 struct stm32_timers *ddata = platform_get_drvdata(pdev);
318 stm32_timers_dma_remove(&pdev->dev, ddata);