aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-11-18 10:48:29 -0500
committerTom Rini <trini@konsulko.com>2019-11-18 10:48:29 -0500
commitfffb826ea05e9ae41e75fab756fa405824cad5e2 (patch)
treef86899905dd3670fe7fac3411bc073de11749701 /drivers
parentd64efd920e429f1c5dc085e2e8614c5d139ec37d (diff)
parent754815b854258abf08f50e757599e8d15c9a85bd (diff)
downloadu-boot-fffb826ea05e9ae41e75fab756fa405824cad5e2.zip
u-boot-fffb826ea05e9ae41e75fab756fa405824cad5e2.tar.gz
u-boot-fffb826ea05e9ae41e75fab756fa405824cad5e2.tar.bz2
Merge tag 'video-for-v2020.01-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-video
- fix i.MX6ULL evk black screen observed while reboot stress tests - remove "synopsys,dw-mipi-dsi" compatible to reduce the device tree differences between Linux and U-Boot for stm32mp1 platform
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/dw_mipi_dsi.c6
-rw-r--r--drivers/video/mxsfb.c6
-rw-r--r--drivers/video/stm32/stm32_dsi.c15
3 files changed, 17 insertions, 10 deletions
diff --git a/drivers/video/dw_mipi_dsi.c b/drivers/video/dw_mipi_dsi.c
index 04b07e3..83d7c7b 100644
--- a/drivers/video/dw_mipi_dsi.c
+++ b/drivers/video/dw_mipi_dsi.c
@@ -816,15 +816,9 @@ static int dw_mipi_dsi_probe(struct udevice *dev)
return 0;
}
-static const struct udevice_id dw_mipi_dsi_ids[] = {
- { .compatible = "synopsys,dw-mipi-dsi" },
- { }
-};
-
U_BOOT_DRIVER(dw_mipi_dsi) = {
.name = "dw_mipi_dsi",
.id = UCLASS_DSI_HOST,
- .of_match = dw_mipi_dsi_ids,
.probe = dw_mipi_dsi_probe,
.ops = &dw_mipi_dsi_ops,
.priv_auto_alloc_size = sizeof(struct dw_mipi_dsi),
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index c529810..d73a8ba 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -57,9 +57,6 @@ static void mxs_lcd_init(u32 fb_addr, struct ctfb_res_modes *mode, int bpp)
uint32_t word_len = 0, bus_width = 0;
uint8_t valid_data = 0;
- /* Kick in the LCDIF clock */
- mxs_set_lcdclk(MXS_LCDIF_BASE, PS2KHZ(mode->pixclock));
-
/* Restart the LCDIF block */
mxs_reset_block(&regs->hw_lcdif_ctrl_reg);
@@ -130,6 +127,9 @@ static void mxs_lcd_init(u32 fb_addr, struct ctfb_res_modes *mode, int bpp)
/* FIFO cleared */
writel(LCDIF_CTRL1_FIFO_CLEAR, &regs->hw_lcdif_ctrl1_clr);
+ /* Kick in the LCDIF clock */
+ mxs_set_lcdclk(MXS_LCDIF_BASE, PS2KHZ(mode->pixclock));
+
/* RUN! */
writel(LCDIF_CTRL_RUN, &regs->hw_lcdif_ctrl_set);
}
diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c
index cb89576..12895a8 100644
--- a/drivers/video/stm32/stm32_dsi.c
+++ b/drivers/video/stm32/stm32_dsi.c
@@ -20,6 +20,7 @@
#include <asm/io.h>
#include <asm/arch/gpio.h>
#include <dm/device-internal.h>
+#include <dm/lists.h>
#include <linux/iopoll.h>
#include <power/regulator.h>
@@ -399,6 +400,18 @@ static int stm32_dsi_set_backlight(struct udevice *dev, int percent)
return 0;
}
+static int stm32_dsi_bind(struct udevice *dev)
+{
+ int ret;
+
+ ret = device_bind_driver_to_node(dev, "dw_mipi_dsi", "dsihost",
+ dev_ofnode(dev), NULL);
+ if (ret)
+ return ret;
+
+ return dm_scan_fdt_dev(dev);
+}
+
static int stm32_dsi_probe(struct udevice *dev)
{
struct stm32_dsi_priv *priv = dev_get_priv(dev);
@@ -483,7 +496,7 @@ U_BOOT_DRIVER(stm32_dsi) = {
.name = "stm32-display-dsi",
.id = UCLASS_VIDEO_BRIDGE,
.of_match = stm32_dsi_ids,
- .bind = dm_scan_fdt_dev,
+ .bind = stm32_dsi_bind,
.probe = stm32_dsi_probe,
.ops = &stm32_dsi_ops,
.priv_auto_alloc_size = sizeof(struct stm32_dsi_priv),