diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2018-07-31 11:12:27 +0100 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2023-10-30 13:32:17 +0000 |
commit | 3cf6f544f7144075c0dd52fc4ad0ec8fdecda5db (patch) | |
tree | bbc49de701b68fa7630011350e51fa470dcc3d89 | |
parent | 1ec6262504919571c07a8ec2a95885f944f8f1e8 (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>
-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 15ea7b5f1f17..3f6dfc08469a 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -1715,6 +1715,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, @@ -2019,6 +2031,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; |