Lines Matching defs:vga
50 struct zx_vga *vga = to_zx_vga(encoder);
51 struct zx_vga_pwrctrl *pwrctrl = &vga->pwrctrl;
62 struct zx_vga *vga = to_zx_vga(encoder);
63 struct zx_vga_pwrctrl *pwrctrl = &vga->pwrctrl;
78 struct zx_vga *vga = to_zx_vga(connector);
86 zx_writel(vga->mmio + VGA_AUTO_DETECT_SEL, 0);
88 edid = drm_get_edid(connector, &vga->ddc->adap);
96 zx_writel(vga->mmio + VGA_AUTO_DETECT_SEL,
98 vga->connected = false;
106 zx_writel(vga->mmio + VGA_AUTO_DETECT_SEL, VGA_DETECT_SEL_HAS_DEVICE);
130 struct zx_vga *vga = to_zx_vga(connector);
132 return vga->connected ? connector_status_connected :
145 static int zx_vga_register(struct drm_device *drm, struct zx_vga *vga)
147 struct drm_encoder *encoder = &vga->encoder;
148 struct drm_connector *connector = &vga->connector;
149 struct device *dev = vga->dev;
162 vga->connector.polled = DRM_CONNECTOR_POLL_HPD;
167 &vga->ddc->adap);
190 static int zx_vga_pwrctrl_init(struct zx_vga *vga)
192 struct zx_vga_pwrctrl *pwrctrl = &vga->pwrctrl;
193 struct device *dev = vga->dev;
199 "zte,vga-power-control", 2, 0, &out_args);
218 static int zx_vga_i2c_read(struct zx_vga *vga, struct i2c_msg *msg)
225 reinit_completion(&vga->complete);
228 zx_writel_mask(vga->mmio + VGA_CMD_CFG, VGA_CMD_COMBO, VGA_CMD_COMBO);
229 zx_writel_mask(vga->mmio + VGA_CMD_CFG, VGA_CMD_RW, 0);
235 zx_writel_mask(vga->mmio + VGA_RXF_CTRL, VGA_RX_FIFO_CLEAR,
239 zx_writel(vga->mmio + VGA_SUB_ADDR, offset);
242 zx_writel_mask(vga->mmio + VGA_CMD_CFG, VGA_CMD_TRANS,
245 if (!wait_for_completion_timeout(&vga->complete,
247 DRM_DEV_ERROR(vga->dev, "transfer timeout\n");
251 cnt = zx_readl(vga->mmio + VGA_RXF_STATUS);
257 *buf++ = zx_readl(vga->mmio + VGA_DATA);
266 static int zx_vga_i2c_write(struct zx_vga *vga, struct i2c_msg *msg)
276 zx_writel(vga->mmio + VGA_DEVICE_ADDR, msg->addr);
284 struct zx_vga *vga = i2c_get_adapdata(adap);
285 struct zx_vga_i2c *ddc = vga->ddc;
293 ret = zx_vga_i2c_read(vga, &msgs[i]);
295 ret = zx_vga_i2c_write(vga, &msgs[i]);
319 static int zx_vga_ddc_register(struct zx_vga *vga)
321 struct device *dev = vga->dev;
330 vga->ddc = ddc;
338 snprintf(adap->name, sizeof(adap->name), "zx vga i2c");
346 i2c_set_adapdata(adap, vga);
353 struct zx_vga *vga = dev_id;
355 drm_helper_hpd_irq_event(vga->connector.dev);
362 struct zx_vga *vga = dev_id;
365 status = zx_readl(vga->mmio + VGA_I2C_STATUS);
368 zx_writel_mask(vga->mmio + VGA_I2C_STATUS, VGA_CLEAR_IRQ,
378 vga->connected = true;
383 zx_writel(vga->mmio + VGA_AUTO_DETECT_SEL,
385 vga->connected = false;
390 complete(&vga->complete);
397 static void zx_vga_hw_init(struct zx_vga *vga)
399 unsigned long ref = clk_get_rate(vga->i2c_wclk);
407 zx_writel(vga->mmio + VGA_CLK_DIV_FS, div);
410 zx_writel(vga->mmio + VGA_AUTO_DETECT_PARA, 0x80);
411 zx_writel(vga->mmio + VGA_AUTO_DETECT_SEL, VGA_DETECT_SEL_NO_DEVICE);
417 zx_writel(vga->mmio + VGA_DEVICE_ADDR, DDC_ADDR);
418 zx_writel_mask(vga->mmio + VGA_CMD_CFG, VGA_CMD_TRANS, VGA_CMD_TRANS);
426 struct zx_vga *vga;
430 vga = devm_kzalloc(dev, sizeof(*vga), GFP_KERNEL);
431 if (!vga)
434 vga->dev = dev;
435 dev_set_drvdata(dev, vga);
438 vga->mmio = devm_ioremap_resource(dev, res);
439 if (IS_ERR(vga->mmio))
440 return PTR_ERR(vga->mmio);
446 vga->i2c_wclk = devm_clk_get(dev, "i2c_wclk");
447 if (IS_ERR(vga->i2c_wclk)) {
448 ret = PTR_ERR(vga->i2c_wclk);
453 ret = zx_vga_pwrctrl_init(vga);
459 ret = zx_vga_ddc_register(vga);
465 ret = zx_vga_register(drm, vga);
467 DRM_DEV_ERROR(dev, "failed to register vga: %d\n", ret);
471 init_completion(&vga->complete);
475 dev_name(dev), vga);
481 ret = clk_prepare_enable(vga->i2c_wclk);
485 zx_vga_hw_init(vga);
493 struct zx_vga *vga = dev_get_drvdata(dev);
495 clk_disable_unprepare(vga->i2c_wclk);
515 { .compatible = "zte,zx296718-vga", },
524 .name = "zx-vga",