simple_panel: add support for get_display_timing

Some cases may require passing display timings from
panel driver. To handle such cases support parsing
device tree panel node for timing subnode.

Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 T20
Tested-by: Nicolas Chauvet <kwizart@gmail.com> # Paz00
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Google Nexus 7 2012
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
This commit is contained in:
Svyatoslav Ryhel 2023-03-27 11:11:49 +03:00 committed by Anatolij Gustschin
parent acbb871af5
commit 86cb1bdc45

View file

@ -48,6 +48,15 @@ static int simple_panel_set_backlight(struct udevice *dev, int percent)
return 0;
}
static int simple_panel_get_display_timing(struct udevice *dev,
struct display_timing *timings)
{
const void *blob = gd->fdt_blob;
return fdtdec_decode_display_timing(blob, dev_of_offset(dev),
0, timings);
}
static int simple_panel_of_to_plat(struct udevice *dev)
{
struct simple_panel_priv *priv = dev_get_priv(dev);
@ -102,6 +111,7 @@ static int simple_panel_probe(struct udevice *dev)
static const struct panel_ops simple_panel_ops = {
.enable_backlight = simple_panel_enable_backlight,
.set_backlight = simple_panel_set_backlight,
.get_display_timing = simple_panel_get_display_timing,
};
static const struct udevice_id simple_panel_ids[] = {