diff options
author | Nikhil M Jain <n-jain1@ti.com> | 2023-01-31 13:05:15 +0300 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2023-02-04 20:15:14 +0300 |
commit | 2f3d6a42300616630b3c9c1e52cb6e58da390393 (patch) | |
tree | 0c90068db0ac29427d88edf74296688485b69431 /test | |
parent | 0347cc7732703bdf94bba5ce8a157c2174f01067 (diff) | |
download | u-boot-2f3d6a42300616630b3c9c1e52cb6e58da390393.tar.xz |
test: dm: test-fdt: Add decode_panel_timing test
To test decode_panel_timing add a panel-timings node
and a DM test for decode panel timingd by matching
the panel timing node parameters.
Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/dm/test-fdt.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index 7cd2d04612..1d2af94f56 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -12,6 +12,7 @@ #include <asm/global_data.h> #include <asm/io.h> #include <dm/test.h> +#include <dm/read.h> #include <dm/root.h> #include <dm/device-internal.h> #include <dm/devres.h> @@ -1157,6 +1158,41 @@ static int dm_test_decode_display_timing(struct unit_test_state *uts) } DM_TEST(dm_test_decode_display_timing, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); +/* Test dev_decode_panel_timing() */ +static int dm_test_decode_panel_timing(struct unit_test_state *uts) +{ + struct udevice *dev; + struct display_timing timing; + + ut_assertok(uclass_first_device_err(UCLASS_TEST_FDT, &dev)); + ut_asserteq_str("a-test", dev->name); + + ut_assertok(dev_decode_panel_timing(dev, &timing)); + ut_assert(timing.hactive.typ == 240); + ut_assert(timing.hback_porch.typ == 7); + ut_assert(timing.hfront_porch.typ == 6); + ut_assert(timing.hsync_len.typ == 1); + ut_assert(timing.vactive.typ == 320); + ut_assert(timing.vback_porch.typ == 5); + ut_assert(timing.vfront_porch.typ == 8); + ut_assert(timing.vsync_len.typ == 2); + ut_assert(timing.pixelclock.typ == 6500000); + ut_assert(timing.flags & DISPLAY_FLAGS_HSYNC_HIGH); + ut_assert(!(timing.flags & DISPLAY_FLAGS_HSYNC_LOW)); + ut_assert(!(timing.flags & DISPLAY_FLAGS_VSYNC_HIGH)); + ut_assert(timing.flags & DISPLAY_FLAGS_VSYNC_LOW); + ut_assert(timing.flags & DISPLAY_FLAGS_DE_HIGH); + ut_assert(!(timing.flags & DISPLAY_FLAGS_DE_LOW)); + ut_assert(timing.flags & DISPLAY_FLAGS_PIXDATA_POSEDGE); + ut_assert(!(timing.flags & DISPLAY_FLAGS_PIXDATA_NEGEDGE)); + ut_assert(timing.flags & DISPLAY_FLAGS_INTERLACED); + ut_assert(timing.flags & DISPLAY_FLAGS_DOUBLESCAN); + ut_assert(timing.flags & DISPLAY_FLAGS_DOUBLECLK); + + return 0; +} +DM_TEST(dm_test_decode_panel_timing, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + /* Test read_resourcee() */ static int dm_test_read_resource(struct unit_test_state *uts) { |