Lines Matching refs:hdmi
25 struct hdmi *hdmi; member
30 static int gpio_config(struct hdmi *hdmi, bool on) in gpio_config() argument
32 struct drm_device *dev = hdmi->dev; in gpio_config()
33 const struct hdmi_platform_config *config = hdmi->config; in gpio_config()
137 struct hdmi *hdmi = hdmi_connector->hdmi; in hpd_enable() local
138 const struct hdmi_platform_config *config = hdmi->config; in hpd_enable()
140 struct hdmi_phy *phy = hdmi->phy; in hpd_enable()
145 ret = regulator_enable(hdmi->hpd_regs[i]); in hpd_enable()
153 ret = gpio_config(hdmi, true); in hpd_enable()
161 ret = clk_set_rate(hdmi->hpd_clks[i], in hpd_enable()
168 ret = clk_prepare_enable(hdmi->hpd_clks[i]); in hpd_enable()
176 hdmi_set_mode(hdmi, false); in hpd_enable()
178 hdmi_set_mode(hdmi, true); in hpd_enable()
180 hdmi_write(hdmi, REG_HDMI_USEC_REFTIMER, 0x0001001b); in hpd_enable()
183 hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, in hpd_enable()
188 hpd_ctrl = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); in hpd_enable()
192 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, in hpd_enable()
194 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, in hpd_enable()
205 struct hdmi *hdmi = hdmi_connector->hdmi; in hdp_disable() local
206 const struct hdmi_platform_config *config = hdmi->config; in hdp_disable()
211 hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, 0); in hdp_disable()
213 hdmi_set_mode(hdmi, false); in hdp_disable()
216 clk_disable_unprepare(hdmi->hpd_clks[i]); in hdp_disable()
218 ret = gpio_config(hdmi, false); in hdp_disable()
223 ret = regulator_disable(hdmi->hpd_regs[i]); in hdp_disable()
243 struct hdmi *hdmi = hdmi_connector->hdmi; in hdmi_connector_irq() local
247 hpd_int_status = hdmi_read(hdmi, REG_HDMI_HPD_INT_STATUS); in hdmi_connector_irq()
248 hpd_int_ctrl = hdmi_read(hdmi, REG_HDMI_HPD_INT_CTRL); in hdmi_connector_irq()
255 hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, in hdmi_connector_irq()
264 hdmi_write(hdmi, REG_HDMI_HPD_INT_CTRL, hpd_int_ctrl); in hdmi_connector_irq()
270 static enum drm_connector_status detect_reg(struct hdmi *hdmi) in detect_reg() argument
272 uint32_t hpd_int_status = hdmi_read(hdmi, REG_HDMI_HPD_INT_STATUS); in detect_reg()
277 static enum drm_connector_status detect_gpio(struct hdmi *hdmi) in detect_gpio() argument
279 const struct hdmi_platform_config *config = hdmi->config; in detect_gpio()
289 struct hdmi *hdmi = hdmi_connector->hdmi; in hdmi_connector_detect() local
294 stat_gpio = detect_gpio(hdmi); in hdmi_connector_detect()
295 stat_reg = detect_reg(hdmi); in hdmi_connector_detect()
330 struct hdmi *hdmi = hdmi_connector->hdmi; in hdmi_connector_get_modes() local
335 hdmi_ctrl = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_connector_get_modes()
336 hdmi_write(hdmi, REG_HDMI_CTRL, hdmi_ctrl | HDMI_CTRL_ENABLE); in hdmi_connector_get_modes()
338 edid = drm_get_edid(connector, hdmi->i2c); in hdmi_connector_get_modes()
340 hdmi_write(hdmi, REG_HDMI_CTRL, hdmi_ctrl); in hdmi_connector_get_modes()
356 struct hdmi *hdmi = hdmi_connector->hdmi; in hdmi_connector_mode_valid() local
357 const struct hdmi_platform_config *config = hdmi->config; in hdmi_connector_mode_valid()
364 requested, hdmi_connector->hdmi->encoder); in hdmi_connector_mode_valid()
371 actual = clk_round_rate(hdmi->pwr_clks[0], actual); in hdmi_connector_mode_valid()
385 return hdmi_connector->hdmi->encoder; in hdmi_connector_best_encoder()
405 struct drm_connector *hdmi_connector_init(struct hdmi *hdmi) in hdmi_connector_init() argument
417 hdmi_connector->hdmi = hdmi; in hdmi_connector_init()
422 drm_connector_init(hdmi->dev, connector, &hdmi_connector_funcs, in hdmi_connector_init()
436 dev_err(hdmi->dev->dev, "failed to enable HPD: %d\n", ret); in hdmi_connector_init()
440 drm_mode_connector_attach_encoder(connector, hdmi->encoder); in hdmi_connector_init()