#include <backlight.h>
#include <dm.h>
#include <log.h>
+#include <mipi_dsi.h>
#include <panel.h>
#include <asm/gpio.h>
#include <power/regulator.h>
struct gpio_desc enable;
};
+/* List of supported DSI panels */
+enum {
+ PANEL_NON_DSI,
+ PANASONIC_VVX10F004B00,
+};
+
+static const struct mipi_dsi_panel_plat panasonic_vvx10f004b00 = {
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
+ MIPI_DSI_CLOCK_NON_CONTINUOUS,
+ .format = MIPI_DSI_FMT_RGB888,
+ .lanes = 4,
+};
+
static int simple_panel_enable_backlight(struct udevice *dev)
{
struct simple_panel_priv *priv = dev_get_priv(dev);
static int simple_panel_probe(struct udevice *dev)
{
struct simple_panel_priv *priv = dev_get_priv(dev);
+ struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
+ const u32 dsi_data = dev_get_driver_data(dev);
int ret;
if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
return ret;
}
+ switch (dsi_data) {
+ case PANASONIC_VVX10F004B00:
+ memcpy(plat, &panasonic_vvx10f004b00,
+ sizeof(panasonic_vvx10f004b00));
+ break;
+ case PANEL_NON_DSI:
+ default:
+ break;
+ }
+
return 0;
}
{ .compatible = "lg,lb070wv8" },
{ .compatible = "sharp,lq123p1jx31" },
{ .compatible = "boe,nv101wxmn51" },
+ { .compatible = "panasonic,vvx10f004b00",
+ .data = PANASONIC_VVX10F004B00 },
{ }
};
U_BOOT_DRIVER(simple_panel) = {
- .name = "simple_panel",
- .id = UCLASS_PANEL,
- .of_match = simple_panel_ids,
- .ops = &simple_panel_ops,
+ .name = "simple_panel",
+ .id = UCLASS_PANEL,
+ .of_match = simple_panel_ids,
+ .ops = &simple_panel_ops,
.of_to_plat = simple_panel_of_to_plat,
.probe = simple_panel_probe,
.priv_auto = sizeof(struct simple_panel_priv),
+ .plat_auto = sizeof(struct mipi_dsi_panel_plat),
};