sdhci-of-aspeed-test.c 3.6 KB

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