soc_info.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #include <linux/io.h>
  7. #include <linux/types.h>
  8. #include "sg-regs.h"
  9. #include "soc-info.h"
  10. #if UNIPHIER_MULTI_SOC
  11. enum uniphier_soc_id uniphier_get_soc_type(void)
  12. {
  13. u32 revision = readl(SG_REVISION);
  14. enum uniphier_soc_id ret;
  15. switch ((revision & SG_REVISION_TYPE_MASK) >> SG_REVISION_TYPE_SHIFT) {
  16. #ifdef CONFIG_ARCH_UNIPHIER_SLD3
  17. case 0x25:
  18. ret = SOC_UNIPHIER_SLD3;
  19. break;
  20. #endif
  21. #ifdef CONFIG_ARCH_UNIPHIER_LD4
  22. case 0x26:
  23. ret = SOC_UNIPHIER_LD4;
  24. break;
  25. #endif
  26. #ifdef CONFIG_ARCH_UNIPHIER_PRO4
  27. case 0x28:
  28. ret = SOC_UNIPHIER_PRO4;
  29. break;
  30. #endif
  31. #ifdef CONFIG_ARCH_UNIPHIER_SLD8
  32. case 0x29:
  33. ret = SOC_UNIPHIER_SLD8;
  34. break;
  35. #endif
  36. #ifdef CONFIG_ARCH_UNIPHIER_PRO5
  37. case 0x2A:
  38. ret = SOC_UNIPHIER_PRO5;
  39. break;
  40. #endif
  41. #ifdef CONFIG_ARCH_UNIPHIER_PXS2
  42. case 0x2E:
  43. ret = SOC_UNIPHIER_PXS2;
  44. break;
  45. #endif
  46. #ifdef CONFIG_ARCH_UNIPHIER_LD6B
  47. case 0x2F:
  48. ret = SOC_UNIPHIER_LD6B;
  49. break;
  50. #endif
  51. #ifdef CONFIG_ARCH_UNIPHIER_LD11
  52. case 0x31:
  53. ret = SOC_UNIPHIER_LD11;
  54. break;
  55. #endif
  56. #ifdef CONFIG_ARCH_UNIPHIER_LD20
  57. case 0x32:
  58. ret = SOC_UNIPHIER_LD20;
  59. break;
  60. #endif
  61. default:
  62. ret = SOC_UNIPHIER_UNKNOWN;
  63. break;
  64. }
  65. return ret;
  66. }
  67. #endif
  68. int uniphier_get_soc_model(void)
  69. {
  70. return (readl(SG_REVISION) & SG_REVISION_MODEL_MASK) >>
  71. SG_REVISION_MODEL_SHIFT;
  72. }
  73. int uniphier_get_soc_revision(void)
  74. {
  75. return (readl(SG_REVISION) & SG_REVISION_REV_MASK) >>
  76. SG_REVISION_REV_SHIFT;
  77. }