wiki:spread_spectrum_oscillator

Version 1 (modified by trac, 3 months ago) (diff)

--

Spread Spectrum Oscillator

Most of the Gateworks Avila and Cambria family products support a 'spread spectrum' oscillator for the main CPU clock as a means of reducing Electro-Magnetic interference (EMI).

When using this option the linux kernel needs to be re-compiled with a configuration option to adjust the clocks that depend on this oscillator:

  • IXP4XX_TIMER_FREQ defined in arch/arm/mach-ixp4xx/include/mach/timex.h
  • IXP4XX_UART_XTAL defined in arch/arm/mach-ixp4xx/include/mach/platform.h

The frequencies defined should be reduced by 1% for the 2% down spread-spectrum oscillator used.

An kernel patch is attached to this page which allows you to select a kernel configuration to adjust the frequencies for a board with the spread-spectrum oscillator loaded. Note that this is a compile-time change, there is no support for run-time detection and/or adjustment based on a kernel parameter. Once this patch is applied you can select the option via:

make kernel_menuconfig # select 'System Type' -> 'Intel IXP4xx Implementation Options' -> 'Adjust clocks for 2% Down Spread Spectrum source' (CONFIG_IXP4XX_SPREAD_SPECTRUM_CLK=y)

A patch for adjusting the system clock and UART clock can be found here but needs to be merged into the kernel of your choice manually.