Lines Matching +full:0 +full:- +full:576

2  * vpif - Video Port Interface driver
3 * VPIF is a receiver and transmitter for video data. It has two channels(0, 1)
8 * Copyright (C) 2009 Texas Instruments Incorporated - https://www.ti.com/
30 #include <linux/v4l2-dv-timings.h>
69 .ycmux_mode = 0,
70 .eav2sav = 138-8,
76 .capture_format = 0,
77 .vbi_supported = 0,
82 .name = "576p50",
84 .height = 576,
86 .ycmux_mode = 0,
87 .eav2sav = 144-8,
93 .capture_format = 0,
94 .vbi_supported = 0,
103 .ycmux_mode = 0,
104 .eav2sav = 700-8,
110 .capture_format = 0,
111 .vbi_supported = 0,
120 .ycmux_mode = 0,
121 .eav2sav = 370 - 8,
127 .capture_format = 0,
128 .vbi_supported = 0,
136 .frm_fmt = 0,
137 .ycmux_mode = 0,
138 .eav2sav = 720 - 8,
147 .capture_format = 0,
148 .vbi_supported = 0,
156 .frm_fmt = 0,
157 .ycmux_mode = 0,
158 .eav2sav = 280 - 8,
167 .capture_format = 0,
168 .vbi_supported = 0,
177 .ycmux_mode = 0,
178 .eav2sav = 280 - 8,
184 .capture_format = 0,
185 .vbi_supported = 0,
195 .frm_fmt = 0,
206 .capture_format = 0,
208 .hd_sd = 0,
214 .height = 576,
215 .frm_fmt = 0,
226 .capture_format = 0,
228 .hd_sd = 0,
258 VPIF_CH0_IMG_ADD_OFST, 0, 0, 0, 0, 0x1FFF, 0xFFF,
265 VPIF_CH1_IMG_ADD_OFST, 0, 0, 0, 0, 0x1FFF, 0xFFF,
273 VPIF_CH2_VANC1_STRT, VPIF_CH2_VANC1_SIZE, 0x7FF, 0x7FF,
281 VPIF_CH3_VANC1_STRT, VPIF_CH3_VANC1_SIZE, 0x7FF, 0x7FF,
296 value = (config->eav2sav & vpifregs[config_channel_id].width_mask); in vpif_set_mode_info()
298 value |= (config->sav2eav & vpifregs[config_channel_id].width_mask); in vpif_set_mode_info()
301 value = (config->l1 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
303 value |= (config->l3 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
306 value = (config->l5 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
308 value |= (config->l7 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
311 value = (config->l9 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
313 value |= (config->l11 & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
316 value = (config->vsize & vpifregs[config_channel_id].len_mask); in vpif_set_mode_info()
328 const struct vpif_channel_config_params *config = &vpifparams->std_info; in config_vpif_params()
343 vpif_wr_bit(reg, ch_nip, config->frm_fmt); in config_vpif_params()
344 vpif_wr_bit(reg, VPIF_CH_YC_MUX_BIT, config->ycmux_mode); in config_vpif_params()
346 vpifparams->video_params.storage_mode); in config_vpif_params()
350 vpif_wr_bit(reg, VPIF_CH_DATA_MODE_BIT, config->capture_format); in config_vpif_params()
354 else if (config->capture_format) { in config_vpif_params()
357 vpifparams->iface.fid_pol); in config_vpif_params()
359 vpifparams->iface.vd_pol); in config_vpif_params()
361 vpifparams->iface.hd_pol); in config_vpif_params()
365 value &= ~(0x3u << in config_vpif_params()
367 value |= ((vpifparams->params.data_sz) << in config_vpif_params()
373 regw((vpifparams->video_params.hpitch), in config_vpif_params()
383 const struct vpif_channel_config_params *config = &vpifparams->std_info; in vpif_set_video_params()
387 if (!config->ycmux_mode) { in vpif_set_video_params()
395 regw(0x80, VPIF_REQ_SIZE); in vpif_set_video_params()
396 regw(0x01, VPIF_EMULATION_CTRL); in vpif_set_video_params()
407 value = 0x3F8 & (vbiparams->hstart0); in vpif_set_vbi_display_params()
408 value |= 0x3FFFFFF & ((vbiparams->vstart0) << 16); in vpif_set_vbi_display_params()
411 value = 0x3F8 & (vbiparams->hstart1); in vpif_set_vbi_display_params()
412 value |= 0x3FFFFFF & ((vbiparams->vstart1) << 16); in vpif_set_vbi_display_params()
415 value = 0x3F8 & (vbiparams->hsize0); in vpif_set_vbi_display_params()
416 value |= 0x3FFFFFF & ((vbiparams->vsize0) << 16); in vpif_set_vbi_display_params()
419 value = 0x3F8 & (vbiparams->hsize1); in vpif_set_vbi_display_params()
420 value |= 0x3FFFFFF & ((vbiparams->vsize1) << 16); in vpif_set_vbi_display_params()
449 vpif_base = devm_platform_ioremap_resource(pdev, 0); in vpif_probe()
455 return -ENOMEM; in vpif_probe()
459 pm_runtime_enable(&pdev->dev); in vpif_probe()
460 pm_runtime_get(&pdev->dev); in vpif_probe()
468 endpoint = of_graph_get_endpoint_by_regs(pdev->dev.of_node, 0, -1); in vpif_probe()
470 return 0; in vpif_probe()
477 irq = platform_get_irq(pdev, 0); in vpif_probe()
478 if (irq < 0) { in vpif_probe()
482 res_irq = DEFINE_RES_IRQ_NAMED(irq, of_node_full_name(pdev->dev.of_node)); in vpif_probe()
487 ret = -ENOMEM; in vpif_probe()
491 pdev_capture->name = "vpif_capture"; in vpif_probe()
492 pdev_capture->id = -1; in vpif_probe()
493 pdev_capture->resource = &res_irq; in vpif_probe()
494 pdev_capture->num_resources = 1; in vpif_probe()
495 pdev_capture->dev.dma_mask = pdev->dev.dma_mask; in vpif_probe()
496 pdev_capture->dev.coherent_dma_mask = pdev->dev.coherent_dma_mask; in vpif_probe()
497 pdev_capture->dev.parent = &pdev->dev; in vpif_probe()
498 pdev_capture->dev.release = vpif_pdev_release; in vpif_probe()
506 ret = -ENOMEM; in vpif_probe()
510 pdev_display->name = "vpif_display"; in vpif_probe()
511 pdev_display->id = -1; in vpif_probe()
512 pdev_display->resource = &res_irq; in vpif_probe()
513 pdev_display->num_resources = 1; in vpif_probe()
514 pdev_display->dev.dma_mask = pdev->dev.dma_mask; in vpif_probe()
515 pdev_display->dev.coherent_dma_mask = pdev->dev.coherent_dma_mask; in vpif_probe()
516 pdev_display->dev.parent = &pdev->dev; in vpif_probe()
517 pdev_display->dev.release = vpif_pdev_release; in vpif_probe()
523 data->capture = pdev_capture; in vpif_probe()
524 data->display = pdev_display; in vpif_probe()
526 return 0; in vpif_probe()
533 pm_runtime_put(&pdev->dev); in vpif_probe()
534 pm_runtime_disable(&pdev->dev); in vpif_probe()
544 if (data->capture) in vpif_remove()
545 platform_device_unregister(data->capture); in vpif_remove()
546 if (data->display) in vpif_remove()
547 platform_device_unregister(data->display); in vpif_remove()
549 pm_runtime_put(&pdev->dev); in vpif_remove()
550 pm_runtime_disable(&pdev->dev); in vpif_remove()
559 return 0; in vpif_suspend()
565 return 0; in vpif_resume()
580 { .compatible = "ti,da850-vpif", },