blob: 3cfd1e9d6e0a5330c415cdd30078f1e831f86aa9 [file] [log] [blame]
Masahiro Yamada75f16f82015-09-22 00:27:39 +09001/*
2 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#ifndef __MACH_SOC_INFO_H__
8#define __MACH_SOC_INFO_H__
9
10enum uniphier_soc_id {
11 SOC_UNIPHIER_PH1_SLD3,
12 SOC_UNIPHIER_PH1_LD4,
13 SOC_UNIPHIER_PH1_PRO4,
14 SOC_UNIPHIER_PH1_SLD8,
15 SOC_UNIPHIER_PH1_PRO5,
16 SOC_UNIPHIER_PROXSTREAM2,
17 SOC_UNIPHIER_PH1_LD6B,
Masahiro Yamada46a9de32015-12-17 17:47:45 +090018 SOC_UNIPHIER_PH1_SLD11,
19 SOC_UNIPHIER_PH1_LD10,
Masahiro Yamada75f16f82015-09-22 00:27:39 +090020 SOC_UNIPHIER_UNKNOWN,
21};
22
23#define UNIPHIER_NR_ENABLED_SOCS \
24 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_SLD3) + \
25 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_LD4) + \
26 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_PRO4) + \
27 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_SLD8) + \
28 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_PRO5) + \
29 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PROXSTREAM2) + \
Masahiro Yamada46a9de32015-12-17 17:47:45 +090030 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_LD6B) + \
31 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_SLD11) + \
32 IS_ENABLED(CONFIG_ARCH_UNIPHIER_PH1_LD10)
Masahiro Yamada75f16f82015-09-22 00:27:39 +090033
34#define UNIPHIER_MULTI_SOC ((UNIPHIER_NR_ENABLED_SOCS) > 1)
35
36#if UNIPHIER_MULTI_SOC
37enum uniphier_soc_id uniphier_get_soc_type(void);
38#else
39static inline enum uniphier_soc_id uniphier_get_soc_type(void)
40{
41#if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD3)
42 return SOC_UNIPHIER_PH1_SLD3;
43#endif
44#if defined(CONFIG_ARCH_UNIPHIER_PH1_LD4)
45 return SOC_UNIPHIER_PH1_LD4;
46#endif
47#if defined(CONFIG_ARCH_UNIPHIER_PH1_PRO4)
48 return SOC_UNIPHIER_PH1_PRO4;
49#endif
50#if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD8)
51 return SOC_UNIPHIER_PH1_SLD8;
52#endif
53#if defined(CONFIG_ARCH_UNIPHIER_PH1_PRO5)
54 return SOC_UNIPHIER_PH1_PRO5;
55#endif
56#if defined(CONFIG_ARCH_UNIPHIER_PROXSTREAM2)
57 return SOC_UNIPHIER_PROXSTREAM2;
58#endif
59#if defined(CONFIG_ARCH_UNIPHIER_PH1_LD6B)
60 return SOC_UNIPHIER_PH1_LD6B;
61#endif
Masahiro Yamada46a9de32015-12-17 17:47:45 +090062#if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD11)
63 return SOC_UNIPHIER_PH1_SLD11;
64#endif
65#if defined(CONFIG_ARCH_UNIPHIER_PH1_LD10)
66 return SOC_UNIPHIER_PH1_LD10;
67#endif
Masahiro Yamada75f16f82015-09-22 00:27:39 +090068
69 return SOC_UNIPHIER_UNKNOWN;
70}
71#endif
72
Masahiro Yamadaf637bdf2015-12-17 17:47:41 +090073int uniphier_get_soc_model(void);
74int uniphier_get_soc_revision(void);
75
Masahiro Yamada75f16f82015-09-22 00:27:39 +090076#endif /* __MACH_SOC_INFO_H__ */