Linux 6.7-rc7
[linux-modified.git] / include / linux / platform_data / x86 / soc.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Helpers for Intel SoC model detection
4  *
5  * Copyright (c) 2019, Intel Corporation.
6  */
7
8 #ifndef __PLATFORM_DATA_X86_SOC_H
9 #define __PLATFORM_DATA_X86_SOC_H
10
11 #include <linux/types.h>
12
13 #if IS_ENABLED(CONFIG_X86)
14
15 #include <linux/mod_devicetable.h>
16
17 #include <asm/cpu_device_id.h>
18
19 #define SOC_INTEL_IS_CPU(soc, type)                             \
20 static inline bool soc_intel_is_##soc(void)                     \
21 {                                                               \
22         static const struct x86_cpu_id soc##_cpu_ids[] = {      \
23                 X86_MATCH_INTEL_FAM6_MODEL(type, NULL),         \
24                 {}                                              \
25         };                                                      \
26         const struct x86_cpu_id *id;                            \
27                                                                 \
28         id = x86_match_cpu(soc##_cpu_ids);                      \
29         if (id)                                                 \
30                 return true;                                    \
31         return false;                                           \
32 }
33
34 SOC_INTEL_IS_CPU(byt, ATOM_SILVERMONT);
35 SOC_INTEL_IS_CPU(cht, ATOM_AIRMONT);
36 SOC_INTEL_IS_CPU(apl, ATOM_GOLDMONT);
37 SOC_INTEL_IS_CPU(glk, ATOM_GOLDMONT_PLUS);
38 SOC_INTEL_IS_CPU(cml, KABYLAKE_L);
39
40 #undef SOC_INTEL_IS_CPU
41
42 #else /* IS_ENABLED(CONFIG_X86) */
43
44 static inline bool soc_intel_is_byt(void)
45 {
46         return false;
47 }
48
49 static inline bool soc_intel_is_cht(void)
50 {
51         return false;
52 }
53
54 static inline bool soc_intel_is_apl(void)
55 {
56         return false;
57 }
58
59 static inline bool soc_intel_is_glk(void)
60 {
61         return false;
62 }
63
64 static inline bool soc_intel_is_cml(void)
65 {
66         return false;
67 }
68 #endif /* IS_ENABLED(CONFIG_X86) */
69
70 #endif /* __PLATFORM_DATA_X86_SOC_H */