Lines Matching full:tcon
14 #include <dt-bindings/clock/sun8i-tcon-top.h>
28 int sun8i_tcon_top_set_hdmi_src(struct device *dev, int tcon) in sun8i_tcon_top_set_hdmi_src() argument
35 dev_err(dev, "Device is not TCON TOP!\n"); in sun8i_tcon_top_set_hdmi_src()
39 if (tcon < 2 || tcon > 3) { in sun8i_tcon_top_set_hdmi_src()
40 dev_err(dev, "TCON index must be 2 or 3!\n"); in sun8i_tcon_top_set_hdmi_src()
48 val |= FIELD_PREP(TCON_TOP_HDMI_SRC_MSK, tcon - 1); in sun8i_tcon_top_set_hdmi_src()
57 int sun8i_tcon_top_de_config(struct device *dev, int mixer, int tcon) in sun8i_tcon_top_de_config() argument
64 dev_err(dev, "Device is not TCON TOP!\n"); in sun8i_tcon_top_de_config()
73 if (tcon > 3) { in sun8i_tcon_top_de_config()
74 dev_err(dev, "TCON index is too high!\n"); in sun8i_tcon_top_de_config()
83 reg |= FIELD_PREP(TCON_TOP_PORT_DE0_MSK, tcon); in sun8i_tcon_top_de_config()
86 reg |= FIELD_PREP(TCON_TOP_PORT_DE1_MSK, tcon); in sun8i_tcon_top_de_config()
186 * TCON TOP has two muxes, which select parent clock for each TCON TV in sun8i_tcon_top_bind()
187 * channel clock. Parent could be either TCON TV or TVE clock. For now in sun8i_tcon_top_bind()
188 * we leave this fixed to TCON TV, since TVE driver for R40 is not yet in sun8i_tcon_top_bind()
190 * if TVE is active on each TCON TV. If it is, mux should be switched in sun8i_tcon_top_bind()
195 sun8i_tcon_top_register_gate(dev, "tcon-tv0", regs, in sun8i_tcon_top_bind()
201 sun8i_tcon_top_register_gate(dev, "tcon-tv1", regs, in sun8i_tcon_top_bind()
281 /* sun4i_drv uses this list to check if a device node is a TCON TOP */
284 .compatible = "allwinner,sun8i-r40-tcon-top",
288 .compatible = "allwinner,sun20i-d1-tcon-top",
292 .compatible = "allwinner,sun50i-h6-tcon-top",
304 .name = "sun8i-tcon-top",
311 MODULE_DESCRIPTION("Allwinner R40 TCON TOP driver");