100 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/* Copyright (C) 2020 IBM Corp. */3 4#include <kunit/test.h>5 6static void aspeed_sdhci_phase_ddr52(struct kunit *test)7{8 int rate = 52000000;9 10 KUNIT_EXPECT_EQ(test, 0,11 aspeed_sdhci_phase_to_tap(NULL, rate, 0));12 KUNIT_EXPECT_EQ(test, 0,13 aspeed_sdhci_phase_to_tap(NULL, rate, 1));14 KUNIT_EXPECT_EQ(test, 1,15 aspeed_sdhci_phase_to_tap(NULL, rate, 2));16 KUNIT_EXPECT_EQ(test, 1,17 aspeed_sdhci_phase_to_tap(NULL, rate, 3));18 KUNIT_EXPECT_EQ(test, 2,19 aspeed_sdhci_phase_to_tap(NULL, rate, 4));20 KUNIT_EXPECT_EQ(test, 3,21 aspeed_sdhci_phase_to_tap(NULL, rate, 5));22 KUNIT_EXPECT_EQ(test, 14,23 aspeed_sdhci_phase_to_tap(NULL, rate, 23));24 KUNIT_EXPECT_EQ(test, 15,25 aspeed_sdhci_phase_to_tap(NULL, rate, 24));26 KUNIT_EXPECT_EQ(test, 15,27 aspeed_sdhci_phase_to_tap(NULL, rate, 25));28 29 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,30 aspeed_sdhci_phase_to_tap(NULL, rate, 180));31 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,32 aspeed_sdhci_phase_to_tap(NULL, rate, 181));33 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,34 aspeed_sdhci_phase_to_tap(NULL, rate, 182));35 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,36 aspeed_sdhci_phase_to_tap(NULL, rate, 183));37 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 2,38 aspeed_sdhci_phase_to_tap(NULL, rate, 184));39 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 3,40 aspeed_sdhci_phase_to_tap(NULL, rate, 185));41 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,42 aspeed_sdhci_phase_to_tap(NULL, rate, 203));43 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,44 aspeed_sdhci_phase_to_tap(NULL, rate, 204));45 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,46 aspeed_sdhci_phase_to_tap(NULL, rate, 205));47}48 49static void aspeed_sdhci_phase_hs200(struct kunit *test)50{51 int rate = 200000000;52 53 KUNIT_EXPECT_EQ(test, 0,54 aspeed_sdhci_phase_to_tap(NULL, rate, 0));55 KUNIT_EXPECT_EQ(test, 0,56 aspeed_sdhci_phase_to_tap(NULL, rate, 5));57 KUNIT_EXPECT_EQ(test, 1,58 aspeed_sdhci_phase_to_tap(NULL, rate, 6));59 KUNIT_EXPECT_EQ(test, 1,60 aspeed_sdhci_phase_to_tap(NULL, rate, 7));61 KUNIT_EXPECT_EQ(test, 14,62 aspeed_sdhci_phase_to_tap(NULL, rate, 89));63 KUNIT_EXPECT_EQ(test, 15,64 aspeed_sdhci_phase_to_tap(NULL, rate, 90));65 KUNIT_EXPECT_EQ(test, 15,66 aspeed_sdhci_phase_to_tap(NULL, rate, 91));67 KUNIT_EXPECT_EQ(test, 15,68 aspeed_sdhci_phase_to_tap(NULL, rate, 96));69 70 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,71 aspeed_sdhci_phase_to_tap(NULL, rate, 180));72 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,73 aspeed_sdhci_phase_to_tap(NULL, rate, 185));74 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,75 aspeed_sdhci_phase_to_tap(NULL, rate, 186));76 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,77 aspeed_sdhci_phase_to_tap(NULL, rate, 187));78 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,79 aspeed_sdhci_phase_to_tap(NULL, rate, 269));80 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,81 aspeed_sdhci_phase_to_tap(NULL, rate, 270));82 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,83 aspeed_sdhci_phase_to_tap(NULL, rate, 271));84 KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,85 aspeed_sdhci_phase_to_tap(NULL, rate, 276));86}87 88static struct kunit_case aspeed_sdhci_test_cases[] = {89 KUNIT_CASE(aspeed_sdhci_phase_ddr52),90 KUNIT_CASE(aspeed_sdhci_phase_hs200),91 {}92};93 94static struct kunit_suite aspeed_sdhci_test_suite = {95 .name = "sdhci-of-aspeed",96 .test_cases = aspeed_sdhci_test_cases,97};98 99kunit_test_suite(aspeed_sdhci_test_suite);100