Lines Matching refs:ddata
54 struct stm32_timers *ddata = dev_get_drvdata(dev); in stm32_timers_dma_burst_read() local
56 struct regmap *regmap = ddata->regmap; in stm32_timers_dma_burst_read()
57 struct stm32_timers_dma *dma = &ddata->dma; in stm32_timers_dma_burst_read()
159 static void stm32_timers_get_arr_size(struct stm32_timers *ddata) in stm32_timers_get_arr_size() argument
164 regmap_read(ddata->regmap, TIM_ARR, &arr); in stm32_timers_get_arr_size()
170 regmap_write(ddata->regmap, TIM_ARR, ~0L); in stm32_timers_get_arr_size()
171 regmap_read(ddata->regmap, TIM_ARR, &ddata->max_arr); in stm32_timers_get_arr_size()
172 regmap_write(ddata->regmap, TIM_ARR, arr); in stm32_timers_get_arr_size()
176 struct stm32_timers *ddata) in stm32_timers_dma_probe() argument
182 init_completion(&ddata->dma.completion); in stm32_timers_dma_probe()
183 mutex_init(&ddata->dma.lock); in stm32_timers_dma_probe()
188 ddata->dma.chans[i] = dma_request_chan(dev, name); in stm32_timers_dma_probe()
190 ddata->dma.chans[STM32_TIMERS_DMA_UP] = dma_request_chan(dev, "up"); in stm32_timers_dma_probe()
191 ddata->dma.chans[STM32_TIMERS_DMA_TRIG] = dma_request_chan(dev, "trig"); in stm32_timers_dma_probe()
192 ddata->dma.chans[STM32_TIMERS_DMA_COM] = dma_request_chan(dev, "com"); in stm32_timers_dma_probe()
195 if (IS_ERR(ddata->dma.chans[i])) { in stm32_timers_dma_probe()
197 if (PTR_ERR(ddata->dma.chans[i]) != -ENODEV && !ret) in stm32_timers_dma_probe()
198 ret = PTR_ERR(ddata->dma.chans[i]); in stm32_timers_dma_probe()
200 ddata->dma.chans[i] = NULL; in stm32_timers_dma_probe()
208 struct stm32_timers *ddata) in stm32_timers_dma_remove() argument
213 if (ddata->dma.chans[i]) in stm32_timers_dma_remove()
214 dma_release_channel(ddata->dma.chans[i]); in stm32_timers_dma_remove()
220 struct stm32_timers *ddata; in stm32_timers_probe() local
225 ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL); in stm32_timers_probe()
226 if (!ddata) in stm32_timers_probe()
235 ddata->dma.phys_base = res->start; in stm32_timers_probe()
237 ddata->regmap = devm_regmap_init_mmio_clk(dev, "int", mmio, in stm32_timers_probe()
239 if (IS_ERR(ddata->regmap)) in stm32_timers_probe()
240 return PTR_ERR(ddata->regmap); in stm32_timers_probe()
242 ddata->clk = devm_clk_get(dev, NULL); in stm32_timers_probe()
243 if (IS_ERR(ddata->clk)) in stm32_timers_probe()
244 return PTR_ERR(ddata->clk); in stm32_timers_probe()
246 stm32_timers_get_arr_size(ddata); in stm32_timers_probe()
248 ret = stm32_timers_dma_probe(dev, ddata); in stm32_timers_probe()
250 stm32_timers_dma_remove(dev, ddata); in stm32_timers_probe()
254 platform_set_drvdata(pdev, ddata); in stm32_timers_probe()
258 stm32_timers_dma_remove(dev, ddata); in stm32_timers_probe()
265 struct stm32_timers *ddata = platform_get_drvdata(pdev); in stm32_timers_remove() local
272 stm32_timers_dma_remove(&pdev->dev, ddata); in stm32_timers_remove()