root/drivers/cpufreq/speedstep-lib.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
   4  *
   5  *  Library for common functions for Intel SpeedStep v.1 and v.2 support
   6  *
   7  *  BIG FAT DISCLAIMER: Work in progress code. Possibly *dangerous*
   8  */
   9 
  10 
  11 
  12 /* processors */
  13 enum speedstep_processor {
  14         SPEEDSTEP_CPU_PIII_C_EARLY = 0x00000001,  /* Coppermine core */
  15         SPEEDSTEP_CPU_PIII_C       = 0x00000002,  /* Coppermine core */
  16         SPEEDSTEP_CPU_PIII_T       = 0x00000003,  /* Tualatin core */
  17         SPEEDSTEP_CPU_P4M          = 0x00000004,  /* P4-M  */
  18 /* the following processors are not speedstep-capable and are not auto-detected
  19  * in speedstep_detect_processor(). However, their speed can be detected using
  20  * the speedstep_get_frequency() call. */
  21         SPEEDSTEP_CPU_PM           = 0xFFFFFF03,  /* Pentium M  */
  22         SPEEDSTEP_CPU_P4D          = 0xFFFFFF04,  /* desktop P4  */
  23         SPEEDSTEP_CPU_PCORE        = 0xFFFFFF05,  /* Core */
  24 };
  25 
  26 /* speedstep states -- only two of them */
  27 
  28 #define SPEEDSTEP_HIGH  0x00000000
  29 #define SPEEDSTEP_LOW   0x00000001
  30 
  31 
  32 /* detect a speedstep-capable processor */
  33 extern enum speedstep_processor speedstep_detect_processor(void);
  34 
  35 /* detect the current speed (in khz) of the processor */
  36 extern unsigned int speedstep_get_frequency(enum speedstep_processor processor);
  37 
  38 
  39 /* detect the low and high speeds of the processor. The callback
  40  * set_state"'s first argument is either SPEEDSTEP_HIGH or
  41  * SPEEDSTEP_LOW; the second argument is zero so that no
  42  * cpufreq_notify_transition calls are initiated.
  43  */
  44 extern unsigned int speedstep_get_freqs(enum speedstep_processor processor,
  45         unsigned int *low_speed,
  46         unsigned int *high_speed,
  47         unsigned int *transition_latency,
  48         void (*set_state) (unsigned int state));

/* [<][>][^][v][top][bottom][index][help] */