diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2015-07-12 02:22:50 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2017-01-11 21:27:15 +0100 |
commit | ad017768243a76cfedb4803e5690e1c3b1b0d15a (patch) | |
tree | a79cf618b32683763f06155feba3e022fc6197df /drivers | |
parent | 7f2cdfa871755e0380cfb9ae454ac7d921b73366 (diff) |
tegra: lcd: video: integrate display driver for t30
On popular request make the display driver from T20 work on T30 as
well. Turned out to be quite straight forward. However a few notes
about some things encountered during porting: Of course the T30 device
tree was completely missing host1x as well as PWM support but it turns
out this can simply be copied from T20. The only trouble compiling the
Tegra video driver for T30 had to do with some hard-coded PWM pin
muxing for T20 which is quite ugly anyway. On T30 this gets handled by
a board specific complete pin muxing table. The older Chromium U-Boot
2011.06 which to my knowledge was the only prior attempt at enabling a
display driver for T30 for whatever reason got some clocking stuff
mixed up. Turns out at least for a single display controller T20 and
T30 can be clocked quite similar. Enjoy.
(cherry picked from commit 5a472ddd7a2a017747d6c05c65eba2cd3804c02f)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/tegra.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/tegra.c b/drivers/video/tegra.c index 92214d61b27..dfd751fb089 100644 --- a/drivers/video/tegra.c +++ b/drivers/video/tegra.c @@ -303,14 +303,18 @@ static int tegra_lcd_probe(struct udevice *dev) int ret; /* Initialize the Tegra display controller */ +#ifdef CONFIG_TEGRA20 funcmux_select(PERIPH_ID_DISP1, FUNCMUX_DEFAULT); +#endif if (tegra_display_probe(blob, priv, (void *)plat->base)) { printf("%s: Failed to probe display driver\n", __func__); return -1; } +#ifdef CONFIG_TEGRA20 pinmux_set_func(PMUX_PINGRP_GPU, PMUX_FUNC_PWM); pinmux_tristate_disable(PMUX_PINGRP_GPU); +#endif ret = panel_enable_backlight(priv->panel); if (ret) { |