Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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#if IS_ENABLED(CONFIG_X86)
12
13#include <asm/cpu_device_id.h>
14#include <asm/intel-family.h>
15
16#define SOC_INTEL_IS_CPU(soc, type) \
17static inline bool soc_intel_is_##soc(void) \
18{ \
19 static const struct x86_cpu_id soc##_cpu_ids[] = { \
20 X86_MATCH_INTEL_FAM6_MODEL(type, NULL), \
21 {} \
22 }; \
23 const struct x86_cpu_id *id; \
24 \
25 id = x86_match_cpu(soc##_cpu_ids); \
26 if (id) \
27 return true; \
28 return false; \
29}
30
31SOC_INTEL_IS_CPU(byt, ATOM_SILVERMONT);
32SOC_INTEL_IS_CPU(cht, ATOM_AIRMONT);
33SOC_INTEL_IS_CPU(apl, ATOM_GOLDMONT);
34SOC_INTEL_IS_CPU(glk, ATOM_GOLDMONT_PLUS);
35SOC_INTEL_IS_CPU(cml, KABYLAKE_L);
36
37#else /* IS_ENABLED(CONFIG_X86) */
38
39static inline bool soc_intel_is_byt(void)
40{
41 return false;
42}
43
44static inline bool soc_intel_is_cht(void)
45{
46 return false;
47}
48
49static inline bool soc_intel_is_apl(void)
50{
51 return false;
52}
53
54static inline bool soc_intel_is_glk(void)
55{
56 return false;
57}
58
59static inline bool soc_intel_is_cml(void)
60{
61 return false;
62}
63#endif /* IS_ENABLED(CONFIG_X86) */
64
65#endif /* __PLATFORM_DATA_X86_SOC_H */