]> Git Repo - linux.git/blob - include/linux/platform_data/x86/soc.h
Linux 6.14-rc3
[linux.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_VFM(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, INTEL_ATOM_SILVERMONT);
35 SOC_INTEL_IS_CPU(cht, INTEL_ATOM_AIRMONT);
36 SOC_INTEL_IS_CPU(apl, INTEL_ATOM_GOLDMONT);
37 SOC_INTEL_IS_CPU(glk, INTEL_ATOM_GOLDMONT_PLUS);
38 SOC_INTEL_IS_CPU(cml, INTEL_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 */
This page took 0.038687 seconds and 4 git commands to generate.