From 495956a04143de9f2f959631eeca7eab0601e59e Mon Sep 17 00:00:00 2001 From: Russell King Date: Tue, 31 Jul 2018 11:12:27 +0100 Subject: drm/i2c: tda998x: add bridge timing information Add bridge timing information so that bridge users can figure out the timing parameters that are necessary for TDA998x. Signed-off-by: Russell King --- drivers/gpu/drm/i2c/tda998x_drv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 77787daab6d5..4c6906d0766c 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -1710,6 +1710,18 @@ static const struct drm_bridge_funcs tda998x_bridge_funcs = { .enable = tda998x_bridge_enable, }; +static const struct drm_bridge_timings tda9989_timings = { + .input_bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE, + .setup_time_ps = 1500, + .hold_time_ps = 1000, +}; + +static const struct drm_bridge_timings tda19988_timings = { + .input_bus_flags = DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE, + .setup_time_ps = 1600, + .hold_time_ps = 1200, +}; + /* I2C driver functions */ static int tda998x_get_audio_ports(struct tda998x_priv *priv, @@ -2014,6 +2026,17 @@ static int tda998x_create(struct device *dev) priv->bridge.of_node = dev->of_node; #endif + switch (priv->rev) { + case TDA9989N2: + case TDA19989: + case TDA19989N2: + priv->bridge.timings = &tda9989_timings; + break; + case TDA19988: + priv->bridge.timings = &tda19988_timings; + break; + } + drm_bridge_add(&priv->bridge); return 0; -- cgit