diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2018-07-31 11:12:27 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2020-08-04 17:42:05 +0100 |
commit | 495956a04143de9f2f959631eeca7eab0601e59e (patch) | |
tree | 0cdda6ae4d0211d7341cea40aac27c1d4700b49d /drivers/gpu/drm/i2c | |
parent | e02e7813df718e01d51de6e6cc8a760e786457bd (diff) |
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 <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/i2c')
-rw-r--r-- | drivers/gpu/drm/i2c/tda998x_drv.c | 23 |
1 files changed, 23 insertions, 0 deletions
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; |