/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Helpers for Intel SoC model detection
*
* Copyright (c) 2019, Intel Corporation.
*/
#ifndef __PLATFORM_DATA_X86_SOC_H
#define __PLATFORM_DATA_X86_SOC_H
#include <linux/types.h>
#if IS_ENABLED(CONFIG_X86)
#include <linux/mod_devicetable.h>
#include <asm /cpu_device_id.h>
#define SOC_INTEL_IS_CPU(soc, type) \
static inline bool soc_intel_is_## soc(void ) \
{ \
static const struct x86_cpu_id soc## _cpu_ids[] = { \
X86_MATCH_VFM(type, NULL), \
{} \
}; \
const struct x86_cpu_id *id; \
\
id = x86_match_cpu(soc## _cpu_ids); \
if (id) \
return true ; \
return false ; \
}
SOC_INTEL_IS_CPU(byt, INTEL_ATOM_SILVERMONT);
SOC_INTEL_IS_CPU(cht, INTEL_ATOM_AIRMONT);
SOC_INTEL_IS_CPU(apl, INTEL_ATOM_GOLDMONT);
SOC_INTEL_IS_CPU(glk, INTEL_ATOM_GOLDMONT_PLUS);
SOC_INTEL_IS_CPU(cml, INTEL_KABYLAKE_L);
#undef SOC_INTEL_IS_CPU
#else /* IS_ENABLED(CONFIG_X86) */
static inline bool soc_intel_is_byt(void )
{
return false ;
}
static inline bool soc_intel_is_cht(void )
{
return false ;
}
static inline bool soc_intel_is_apl(void )
{
return false ;
}
static inline bool soc_intel_is_glk(void )
{
return false ;
}
static inline bool soc_intel_is_cml(void )
{
return false ;
}
#endif /* IS_ENABLED(CONFIG_X86) */
#endif /* __PLATFORM_DATA_X86_SOC_H */
Messung V0.5 C=93 H=99 G=95
¤ Dauer der Verarbeitung: 0.1 Sekunden
¤
*© Formatika GbR, Deutschland