Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /* Copyright (C) 2020 IBM Corp. */
0003 
0004 #include <kunit/test.h>
0005 
0006 static void aspeed_sdhci_phase_ddr52(struct kunit *test)
0007 {
0008     int rate = 52000000;
0009 
0010     KUNIT_EXPECT_EQ(test, 0,
0011             aspeed_sdhci_phase_to_tap(NULL, rate, 0));
0012     KUNIT_EXPECT_EQ(test, 0,
0013             aspeed_sdhci_phase_to_tap(NULL, rate, 1));
0014     KUNIT_EXPECT_EQ(test, 1,
0015             aspeed_sdhci_phase_to_tap(NULL, rate, 2));
0016     KUNIT_EXPECT_EQ(test, 1,
0017             aspeed_sdhci_phase_to_tap(NULL, rate, 3));
0018     KUNIT_EXPECT_EQ(test, 2,
0019             aspeed_sdhci_phase_to_tap(NULL, rate, 4));
0020     KUNIT_EXPECT_EQ(test, 3,
0021             aspeed_sdhci_phase_to_tap(NULL, rate, 5));
0022     KUNIT_EXPECT_EQ(test, 14,
0023             aspeed_sdhci_phase_to_tap(NULL, rate, 23));
0024     KUNIT_EXPECT_EQ(test, 15,
0025             aspeed_sdhci_phase_to_tap(NULL, rate, 24));
0026     KUNIT_EXPECT_EQ(test, 15,
0027             aspeed_sdhci_phase_to_tap(NULL, rate, 25));
0028 
0029     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,
0030             aspeed_sdhci_phase_to_tap(NULL, rate, 180));
0031     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,
0032             aspeed_sdhci_phase_to_tap(NULL, rate, 181));
0033     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
0034             aspeed_sdhci_phase_to_tap(NULL, rate, 182));
0035     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
0036             aspeed_sdhci_phase_to_tap(NULL, rate, 183));
0037     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 2,
0038             aspeed_sdhci_phase_to_tap(NULL, rate, 184));
0039     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 3,
0040             aspeed_sdhci_phase_to_tap(NULL, rate, 185));
0041     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,
0042             aspeed_sdhci_phase_to_tap(NULL, rate, 203));
0043     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
0044             aspeed_sdhci_phase_to_tap(NULL, rate, 204));
0045     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
0046             aspeed_sdhci_phase_to_tap(NULL, rate, 205));
0047 }
0048 
0049 static void aspeed_sdhci_phase_hs200(struct kunit *test)
0050 {
0051     int rate = 200000000;
0052 
0053     KUNIT_EXPECT_EQ(test, 0,
0054             aspeed_sdhci_phase_to_tap(NULL, rate, 0));
0055     KUNIT_EXPECT_EQ(test, 0,
0056             aspeed_sdhci_phase_to_tap(NULL, rate, 5));
0057     KUNIT_EXPECT_EQ(test, 1,
0058             aspeed_sdhci_phase_to_tap(NULL, rate, 6));
0059     KUNIT_EXPECT_EQ(test, 1,
0060             aspeed_sdhci_phase_to_tap(NULL, rate, 7));
0061     KUNIT_EXPECT_EQ(test, 14,
0062             aspeed_sdhci_phase_to_tap(NULL, rate, 89));
0063     KUNIT_EXPECT_EQ(test, 15,
0064             aspeed_sdhci_phase_to_tap(NULL, rate, 90));
0065     KUNIT_EXPECT_EQ(test, 15,
0066             aspeed_sdhci_phase_to_tap(NULL, rate, 91));
0067     KUNIT_EXPECT_EQ(test, 15,
0068             aspeed_sdhci_phase_to_tap(NULL, rate, 96));
0069 
0070     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,
0071             aspeed_sdhci_phase_to_tap(NULL, rate, 180));
0072     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,
0073             aspeed_sdhci_phase_to_tap(NULL, rate, 185));
0074     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
0075             aspeed_sdhci_phase_to_tap(NULL, rate, 186));
0076     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
0077             aspeed_sdhci_phase_to_tap(NULL, rate, 187));
0078     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,
0079             aspeed_sdhci_phase_to_tap(NULL, rate, 269));
0080     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
0081             aspeed_sdhci_phase_to_tap(NULL, rate, 270));
0082     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
0083             aspeed_sdhci_phase_to_tap(NULL, rate, 271));
0084     KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
0085             aspeed_sdhci_phase_to_tap(NULL, rate, 276));
0086 }
0087 
0088 static struct kunit_case aspeed_sdhci_test_cases[] = {
0089     KUNIT_CASE(aspeed_sdhci_phase_ddr52),
0090     KUNIT_CASE(aspeed_sdhci_phase_hs200),
0091     {}
0092 };
0093 
0094 static struct kunit_suite aspeed_sdhci_test_suite = {
0095     .name = "sdhci-of-aspeed",
0096     .test_cases = aspeed_sdhci_test_cases,
0097 };
0098 
0099 kunit_test_suite(aspeed_sdhci_test_suite);