1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Helpers for Intel SoC model detection
5 * Copyright (c) 2019, Intel Corporation.
8 #ifndef __PLATFORM_DATA_X86_SOC_H
9 #define __PLATFORM_DATA_X86_SOC_H
11 #include <linux/types.h>
13 #if IS_ENABLED(CONFIG_X86)
15 #include <linux/mod_devicetable.h>
17 #include <asm/cpu_device_id.h>
19 #define SOC_INTEL_IS_CPU(soc, type) \
20 static inline bool soc_intel_is_##soc(void) \
22 static const struct x86_cpu_id soc##_cpu_ids[] = { \
23 X86_MATCH_VFM(type, NULL), \
26 const struct x86_cpu_id *id; \
28 id = x86_match_cpu(soc##_cpu_ids); \
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
);
40 #undef SOC_INTEL_IS_CPU
42 #else /* IS_ENABLED(CONFIG_X86) */
44 static inline bool soc_intel_is_byt(void)
49 static inline bool soc_intel_is_cht(void)
54 static inline bool soc_intel_is_apl(void)
59 static inline bool soc_intel_is_glk(void)
64 static inline bool soc_intel_is_cml(void)
68 #endif /* IS_ENABLED(CONFIG_X86) */
70 #endif /* __PLATFORM_DATA_X86_SOC_H */