select ARCH_SPARSEMEM_ENABLE
        select ARCH_MTD_XIP
        select ARCH_HAS_CPUFREQ
+       select CPU_FREQ
        select GENERIC_GPIO
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
 
 config CPU_FREQ_SA1100
        bool
-       depends on CPU_FREQ && (SA1100_H3100 || SA1100_H3600 || SA1100_LART || SA1100_PLEB || SA1100_BADGE4 || SA1100_HACKKIT)
-       default y
 
 config CPU_FREQ_SA1110
        bool
-       depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
-       default y
 
 config CPU_FREQ_INTEGRATOR
        tristate "CPUfreq driver for ARM Integrator CPUs"
 
 
 config SA1100_ASSABET
        bool "Assabet"
+       select CPU_FREQ_SA1110
        help
          Say Y here if you are using the Intel(R) StrongARM(R) SA-1110
          Microprocessor Development Board (also known as the Assabet).
 
 config SA1100_CERF
        bool "CerfBoard"
+       select CPU_FREQ_SA1110
        help
          The Intrinsyc CerfBoard is based on the StrongARM 1110 (Discontinued).
          More information is available at:
 
 config SA1100_COLLIE
        bool "Sharp Zaurus SL5500"
+       # FIXME: select CPU_FREQ_SA11x0
        select SHARP_LOCOMO
        select SHARP_SCOOP
        select SHARP_PARAM
 config SA1100_H3100
        bool "Compaq iPAQ H3100"
        select HTC_EGPIO
+       select CPU_FREQ_SA1100
        help
          Say Y here if you intend to run this kernel on the Compaq iPAQ
          H3100 handheld computer.  Information about this machine and the
 config SA1100_H3600
        bool "Compaq iPAQ H3600/H3700"
        select HTC_EGPIO
+       select CPU_FREQ_SA1100
        help
          Say Y here if you intend to run this kernel on the Compaq iPAQ
          H3600 handheld computer.  Information about this machine and the
 config SA1100_BADGE4
        bool "HP Labs BadgePAD 4"
        select SA1111
+       select CPU_FREQ_SA1100
        help
          Say Y here if you want to build a kernel for the HP Laboratories
          BadgePAD 4.
 config SA1100_JORNADA720
        bool "HP Jornada 720"
        select SA1111
+       # FIXME: select CPU_FREQ_SA11x0
        help
          Say Y here if you want to build a kernel for the HP Jornada 720
          handheld computer.  See <http://www.hp.com/jornada/products/720>
 
 config SA1100_HACKKIT
        bool "HackKit Core CPU Board"
+       select CPU_FREQ_SA1100
        help
          Say Y here to support the HackKit Core CPU Board
          <http://hackkit.eletztrick.de>;
 
 config SA1100_LART
        bool "LART"
+       select CPU_FREQ_SA1100
        help
          Say Y here if you are using the Linux Advanced Radio Terminal
          (also known as the LART).  See <http://www.lartmaker.nl/> for
 
 config SA1100_PLEB
        bool "PLEB"
+       select CPU_FREQ_SA1100
        help
          Say Y here if you are using version 1 of the Portable Linux
          Embedded Board (also known as PLEB).
 
 config SA1100_SHANNON
        bool "Shannon"
+       select CPU_FREQ_SA1100
        help
          The Shannon (also known as a Tuxscreen, and also as a IS2630) was a
          limited edition webphone produced by Philips. The Shannon is a SA1100
 
 config SA1100_SIMPAD
        bool "Simpad"
+       select CPU_FREQ_SA1110
        help
          The SIEMENS webpad SIMpad is based on the StrongARM 1110. There
          are two different versions CL4 and SL4. CL4 has 32MB RAM and 16MB
 endmenu
 
 endif
+
 
        2802    /* 280.2 MHz */
 };
 
-#if defined(CONFIG_CPU_FREQ_SA1100) || defined(CONFIG_CPU_FREQ_SA1110)
 /* rounds up(!)  */
 unsigned int sa11x0_freq_to_ppcr(unsigned int khz)
 {
        return cclk_frequency_100khz[PPCR & 0xf] * 100;
 }
 
-#else
-/*
- * We still need to provide this so building without cpufreq works.
- */
-unsigned int cpufreq_get(unsigned int cpu)
-{
-       return cclk_frequency_100khz[PPCR & 0xf] * 100;
-}
-EXPORT_SYMBOL(cpufreq_get);
-#endif
-
 /*
  * This is the SA11x0 sched_clock implementation.  This has
  * a resolution of 271ns, and a maximum value of 32025597s (370 days).