• Home
  • Raw
  • Download

Lines Matching full:isc

3  * Microchip Image Sensor Controller (ISC) driver
13 * ISC video pipeline integrates the following submodules:
49 #include "atmel-isc-regs.h"
50 #include "atmel-isc.h"
57 static int isc_parse_dt(struct device *dev, struct isc_device *isc) in isc_parse_dt() argument
65 INIT_LIST_HEAD(&isc->subdev_entities); in isc_parse_dt()
126 list_add_tail(&subdev_entity->list, &isc->subdev_entities); in isc_parse_dt()
136 struct isc_device *isc; in atmel_isc_probe() local
143 isc = devm_kzalloc(dev, sizeof(*isc), GFP_KERNEL); in atmel_isc_probe()
144 if (!isc) in atmel_isc_probe()
147 platform_set_drvdata(pdev, isc); in atmel_isc_probe()
148 isc->dev = dev; in atmel_isc_probe()
155 isc->regmap = devm_regmap_init_mmio(dev, io_base, &isc_regmap_config); in atmel_isc_probe()
156 if (IS_ERR(isc->regmap)) { in atmel_isc_probe()
157 ret = PTR_ERR(isc->regmap); in atmel_isc_probe()
167 ATMEL_ISC_NAME, isc); in atmel_isc_probe()
174 ret = isc_pipeline_init(isc); in atmel_isc_probe()
178 isc->hclock = devm_clk_get(dev, "hclock"); in atmel_isc_probe()
179 if (IS_ERR(isc->hclock)) { in atmel_isc_probe()
180 ret = PTR_ERR(isc->hclock); in atmel_isc_probe()
185 ret = clk_prepare_enable(isc->hclock); in atmel_isc_probe()
191 ret = isc_clk_init(isc); in atmel_isc_probe()
193 dev_err(dev, "failed to init isc clock: %d\n", ret); in atmel_isc_probe()
197 isc->ispck = isc->isc_clks[ISC_ISPCK].clk; in atmel_isc_probe()
199 ret = clk_prepare_enable(isc->ispck); in atmel_isc_probe()
206 ret = clk_set_rate(isc->ispck, clk_get_rate(isc->hclock)); in atmel_isc_probe()
212 ret = v4l2_device_register(dev, &isc->v4l2_dev); in atmel_isc_probe()
218 ret = isc_parse_dt(dev, isc); in atmel_isc_probe()
224 if (list_empty(&isc->subdev_entities)) { in atmel_isc_probe()
230 list_for_each_entry(subdev_entity, &isc->subdev_entities, list) { in atmel_isc_probe()
243 ret = v4l2_async_notifier_register(&isc->v4l2_dev, in atmel_isc_probe()
250 if (video_is_registered(&isc->video_dev)) in atmel_isc_probe()
261 isc_subdev_cleanup(isc); in atmel_isc_probe()
264 v4l2_device_unregister(&isc->v4l2_dev); in atmel_isc_probe()
267 clk_disable_unprepare(isc->ispck); in atmel_isc_probe()
269 clk_disable_unprepare(isc->hclock); in atmel_isc_probe()
271 isc_clk_cleanup(isc); in atmel_isc_probe()
278 struct isc_device *isc = platform_get_drvdata(pdev); in atmel_isc_remove() local
282 isc_subdev_cleanup(isc); in atmel_isc_remove()
284 v4l2_device_unregister(&isc->v4l2_dev); in atmel_isc_remove()
286 clk_disable_unprepare(isc->ispck); in atmel_isc_remove()
287 clk_disable_unprepare(isc->hclock); in atmel_isc_remove()
289 isc_clk_cleanup(isc); in atmel_isc_remove()
296 struct isc_device *isc = dev_get_drvdata(dev); in isc_runtime_suspend() local
298 clk_disable_unprepare(isc->ispck); in isc_runtime_suspend()
299 clk_disable_unprepare(isc->hclock); in isc_runtime_suspend()
306 struct isc_device *isc = dev_get_drvdata(dev); in isc_runtime_resume() local
309 ret = clk_prepare_enable(isc->hclock); in isc_runtime_resume()
313 ret = clk_prepare_enable(isc->ispck); in isc_runtime_resume()
315 clk_disable_unprepare(isc->hclock); in isc_runtime_resume()
326 { .compatible = "atmel,sama5d2-isc" },
345 MODULE_DESCRIPTION("The V4L2 driver for Atmel-ISC");