blob: 90add2a2aab1da0576068bf3533d5f4fe8d8a48d [file] [log] [blame] [edit]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/graphics/display/drivers/amlogic-display/clock.h"
#include <lib/device-protocol/display-panel.h>
#include <gtest/gtest.h>
#include "src/graphics/display/drivers/amlogic-display/dsi.h"
#include "src/lib/testing/predicates/status.h"
namespace amlogic_display {
namespace {
const display_setting_t kDisplaySettingsWithoutClockFactor = {
.lane_num = 4,
.bit_rate_max = 400,
.clock_factor = 0, // auto
.lcd_clock = 49434000,
.h_active = 600,
.v_active = 1024,
.h_period = 770,
.v_period = 1070,
.hsync_width = 10,
.hsync_bp = 80,
.hsync_pol = 0,
.vsync_width = 6,
.vsync_bp = 20,
.vsync_pol = 0,
};
static display_setting_t display_types[] = {
kDisplaySettingTV070WSM_FT,
kDisplaySettingP070ACB_FT,
kDisplaySettingG101B158_FT,
kDisplaySettingTV101WXM_FT,
/*kDisplaySettingIli9881c,*/ /*kDisplaySettingSt7701s,*/
kDisplaySettingTV080WXM_FT,
kDisplaySettingKD070D82_FT,
kDisplaySettingTV070WSM_ST7703I,
kDisplaySettingsWithoutClockFactor,
};
// For now, simply test that timing calculations don't segfault.
TEST(AmlogicDisplayClock, PanelTiming) {
for (const auto t : display_types) {
Clock::CalculateLcdTiming(t);
}
}
TEST(AmlogicDisplayClock, PllTiming_ValidMode) {
for (const auto t : display_types) {
zx::result<PllConfig> pll_r = Clock::GenerateHPLL(t);
EXPECT_OK(pll_r.status_value());
}
}
} // namespace
} // namespace amlogic_display