video: stm32: remove the compatible "synopsys, dw-mipi-dsi" support
Remove the compatible "synopsys,dw-mipi-dsi" added in U-Boot (it don't exist in Linux kernel binding); it is only used to bind the generic synopsys UCLASS_DSI_HOST "dw_mipi_dsi" to the driver "stm32-display-dsi" UCLASS_VIDEO_BRIDGE This binding is done in Linux kernel drivers without compatible (dw_mipi_dsi_bind() is called in bind of driver, for example in drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c). This patch does the same in U-Boot driver, the STM32 driver calls during its bind the function device_bind_driver_to_node to bind the generic driver "dw_mipi_dsi" at the same address. This patch reduces the device tree differences between Linux kernel and U-Boot for stm32mp1 platform. Tested with v2020.01-rc1 on STM32MP157C-EV1 and STM32MP157C-DK2. The dependency of driver is clearer and the probe order is guaranteed. STM32MP> dm tree Class Index Probed Driver Name ----------------------------------------------------------- root 0 [ + ] root_driver root_driver sysreset 0 [ ] syscon_reboot |-- reboot simple_bus 0 [ + ] generic_simple_bus |-- soc serial 0 [ + ] serial_stm32 | |-- serial@40010000 ... video_brid 0 [ + ] stm32-display-dsi | |-- dsi@5a000000 dsi_host 0 [ + ] dw_mipi_dsi | | |-- dsihost panel 0 [ + ] rm68200_panel | | `-- panel-dsi@0 ... Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
This commit is contained in:
parent
ec3dcea744
commit
754815b854
@ -5,13 +5,6 @@
|
||||
|
||||
#include "stm32mp157a-dk1-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
dsi_host: dsi_host {
|
||||
compatible = "synopsys,dw-mipi-dsi";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
hdmi-transmitter@39 {
|
||||
reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
|
||||
|
@ -14,11 +14,6 @@
|
||||
spi0 = &qspi;
|
||||
usb0 = &usbotg_hs;
|
||||
};
|
||||
|
||||
dsi_host: dsi_host {
|
||||
compatible = "synopsys,dw-mipi-dsi";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user