Lines Matching refs:tve

179 static int rk630_tve_write_block(struct rk630_tve *tve,  in rk630_tve_write_block()  argument
185 ret = regmap_write(tve->tvemap, config[i].offset, in rk630_tve_write_block()
194 static int rk630_tve_cfg_set(struct rk630_tve *tve) in rk630_tve_cfg_set() argument
199 switch (tve->mode) { in rk630_tve_cfg_set()
201 dev_dbg(tve->dev, "rk630 PAL\n"); in rk630_tve_cfg_set()
206 dev_dbg(tve->dev, "rk630 NTSC\n"); in rk630_tve_cfg_set()
211 dev_dbg(tve->dev, "mode select err\n"); in rk630_tve_cfg_set()
215 ret = rk630_tve_write_block(tve, bt656_cfg, 8); in rk630_tve_cfg_set()
217 dev_err(tve->dev, "rk630 bt656 write err!\n"); in rk630_tve_cfg_set()
221 if (tve->mode == CVBS_PAL) in rk630_tve_cfg_set()
222 regmap_update_bits(tve->grf, PLUMAGE_GRF_SOC_CON0, in rk630_tve_cfg_set()
228 SW_DCLK_UPSAMPLE_EN(tve->is_4x) | in rk630_tve_cfg_set()
231 regmap_update_bits(tve->grf, PLUMAGE_GRF_SOC_CON0, in rk630_tve_cfg_set()
237 SW_DCLK_UPSAMPLE_EN(tve->is_4x) | in rk630_tve_cfg_set()
240 ret = rk630_tve_write_block(tve, tve_cfg, 27); in rk630_tve_cfg_set()
242 dev_err(tve->dev, "rk630 tve write err\n"); in rk630_tve_cfg_set()
249 static int rk630_tve_disable(struct rk630_tve *tve) in rk630_tve_disable() argument
251 regmap_update_bits(tve->grf, PLUMAGE_GRF_SOC_CON3, VDAC_ENDAC0_MASK, in rk630_tve_disable()
257 static int rk630_tve_enable(struct rk630_tve *tve) in rk630_tve_enable() argument
262 dev_dbg(tve->dev, "%s\n", __func__); in rk630_tve_enable()
265 regmap_write(tve->grf, PLUMAGE_GRF_GPIO0A_IOMUX, 0x55555555); in rk630_tve_enable()
267 regmap_update_bits(tve->grf, PLUMAGE_GRF_GPIO0B_IOMUX, GPIO0B0_SEL_MASK, in rk630_tve_enable()
270 regmap_update_bits(tve->grf, PLUMAGE_GRF_SOC_CON3, VDAC_ENDAC0_MASK, in rk630_tve_enable()
273 ret = rk630_tve_cfg_set(tve); in rk630_tve_enable()
278 if (!tve->is_4x) { in rk630_tve_enable()
279 regmap_update_bits(tve->cru, CRU_MODE_CON, CLK_SPLL_MODE_MASK, in rk630_tve_enable()
282 regmap_update_bits(tve->cru, CRU_SPLL_CON1, PLLPD0_MASK, in rk630_tve_enable()
285 regmap_update_bits(tve->cru, CRU_MODE_CON, CLK_SPLL_MODE_MASK, in rk630_tve_enable()
288 regmap_update_bits(tve->cru, CRU_SPLL_CON1, PLLPD0_MASK, in rk630_tve_enable()
293 regmap_read(tve->cru, CRU_SPLL_CON1, &val); in rk630_tve_enable()
295 dev_dbg(tve->dev, "rk630 pll locked\n"); in rk630_tve_enable()
300 dev_err(tve->dev, "rk630 pll unlock\n"); in rk630_tve_enable()
306 regmap_update_bits(tve->grf, PLUMAGE_GRF_SOC_CON3, in rk630_tve_enable()
325 struct rk630_tve *tve = connector_to_tve(connector); in rk630_tve_get_modes() local
333 dev_err(tve->dev, "mode duplicate failed\n"); in rk630_tve_get_modes()
356 struct rk630_tve *tve = connector_to_tve(connector); in rk630_tve_best_encoder() local
358 return tve->encoder; in rk630_tve_best_encoder()
382 struct rk630_tve *tve; in rk630_tve_bridge_mode_set() local
384 tve = bridge_to_tve(bridge); in rk630_tve_bridge_mode_set()
387 tve->mode = CVBS_PAL; in rk630_tve_bridge_mode_set()
389 tve->mode = CVBS_NTSC; in rk630_tve_bridge_mode_set()
395 struct rk630_tve *tve = bridge_to_tve(bridge); in rk630_tve_bridge_enable() local
397 dev_dbg(tve->dev, "%s\n", __func__); in rk630_tve_bridge_enable()
398 ret = rk630_tve_enable(tve); in rk630_tve_bridge_enable()
400 dev_err(tve->dev, "rk630 enable failed\n"); in rk630_tve_bridge_enable()
405 struct rk630_tve *tve = bridge_to_tve(bridge); in rk630_tve_bridge_disable() local
407 dev_dbg(tve->dev, "%s\n", __func__); in rk630_tve_bridge_disable()
408 rk630_tve_disable(tve); in rk630_tve_bridge_disable()
414 struct rk630_tve *tve = bridge_to_tve(bridge); in rk630_tve_bridge_attach() local
418 dev_err(tve->dev, "Parent encoder object not found\n"); in rk630_tve_bridge_attach()
422 tve->encoder = bridge->encoder; in rk630_tve_bridge_attach()
423 ret = drm_connector_init(bridge->dev, &tve->connector, in rk630_tve_bridge_attach()
427 dev_err(tve->dev, "Failed to initialize connector\n"); in rk630_tve_bridge_attach()
431 drm_connector_helper_add(&tve->connector, in rk630_tve_bridge_attach()
433 ret = drm_connector_attach_encoder(&tve->connector, in rk630_tve_bridge_attach()
437 dev_err(tve->dev, "rk630 attach failed ret:%d", ret); in rk630_tve_bridge_attach()
438 tve->sub_dev.connector = &tve->connector; in rk630_tve_bridge_attach()
439 tve->sub_dev.of_node = tve->dev->of_node; in rk630_tve_bridge_attach()
440 rockchip_drm_register_sub_dev(&tve->sub_dev); in rk630_tve_bridge_attach()
441 tve->connector.interlace_allowed = 1; in rk630_tve_bridge_attach()
448 struct rk630_tve *tve = bridge_to_tve(bridge); in rk1000_bridge_detach() local
450 rockchip_drm_unregister_sub_dev(&tve->sub_dev); in rk1000_bridge_detach()
464 struct rk630_tve *tve; in rk630_tve_probe() local
470 tve = devm_kzalloc(dev, sizeof(*tve), GFP_KERNEL); in rk630_tve_probe()
471 if (!tve) in rk630_tve_probe()
474 tve->dev = dev; in rk630_tve_probe()
475 tve->parent = rk630; in rk630_tve_probe()
476 platform_set_drvdata(pdev, tve); in rk630_tve_probe()
478 tve->grf = rk630->grf; in rk630_tve_probe()
479 tve->cru = rk630->cru; in rk630_tve_probe()
480 tve->tvemap = rk630->tve; in rk630_tve_probe()
481 if (!tve->grf | !tve->cru | !tve->tvemap) in rk630_tve_probe()
484 tve->mode = CVBS_PAL; in rk630_tve_probe()
486 tve->bridge.funcs = &rk630_tve_bridge_funcs; in rk630_tve_probe()
487 tve->bridge.of_node = tve->dev->of_node; in rk630_tve_probe()
489 drm_bridge_add(&tve->bridge); in rk630_tve_probe()
491 dev_dbg(tve->dev, "rk630 probe tve ok\n"); in rk630_tve_probe()
498 struct rk630_tve *tve = platform_get_drvdata(pdev); in rk630_tve_remove() local
500 drm_bridge_remove(&tve->bridge); in rk630_tve_remove()