soc-info.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2017 Socionext Inc.
  4. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  5. */
  6. #ifndef __UNIPHIER_SOC_INFO_H__
  7. #define __UNIPHIER_SOC_INFO_H__
  8. #include <linux/kernel.h>
  9. #include <linux/stddef.h>
  10. #define UNIPHIER_LD4_ID 0x26
  11. #define UNIPHIER_PRO4_ID 0x28
  12. #define UNIPHIER_SLD8_ID 0x29
  13. #define UNIPHIER_PRO5_ID 0x2a
  14. #define UNIPHIER_PXS2_ID 0x2e
  15. #define UNIPHIER_LD6B_ID 0x2f
  16. #define UNIPHIER_LD11_ID 0x31
  17. #define UNIPHIER_LD20_ID 0x32
  18. #define UNIPHIER_PXS3_ID 0x35
  19. unsigned int uniphier_get_soc_id(void);
  20. unsigned int uniphier_get_soc_model(void);
  21. unsigned int uniphier_get_soc_revision(void);
  22. #define UNIPHIER_DEFINE_SOCDATA_FUNC(__func_name, __table) \
  23. static typeof(&__table[0]) __func_name(void) \
  24. { \
  25. unsigned int soc_id; \
  26. int i; \
  27. \
  28. soc_id = uniphier_get_soc_id(); \
  29. for (i = 0; i < ARRAY_SIZE(__table); i++) { \
  30. if (__table[i].soc_id == soc_id) \
  31. return &__table[i]; \
  32. } \
  33. \
  34. return NULL; \
  35. }
  36. #endif /* __UNIPHIER_SOC_INFO_H__ */