mirror of https://gitee.com/openkylin/linux.git
avr32: Allow board to define oscillator rates
On our custom board we have other oscillator rates than on atngw100 and atstk100x. Currently these rates are hardcoded in arch/avr32/mach-at32ap/at32ap700x.c. This patch moves them into board specific code. Signed-off-by: Alex Raimondi <raimondi@miromico.ch> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
This commit is contained in:
parent
8bd8974fcd
commit
60ed7951d0
|
@ -25,6 +25,13 @@
|
|||
#include <asm/arch/init.h>
|
||||
#include <asm/arch/portmux.h>
|
||||
|
||||
/* Oscillator frequencies. These are board-specific */
|
||||
unsigned long at32_board_osc_rates[3] = {
|
||||
[0] = 32768, /* 32.768 kHz on RTC osc */
|
||||
[1] = 20000000, /* 20 MHz on osc0 */
|
||||
[2] = 12000000, /* 12 MHz on osc1 */
|
||||
};
|
||||
|
||||
/* Initialized by bootloader-specific startup code. */
|
||||
struct tag *bootloader_tags __initdata;
|
||||
|
||||
|
|
|
@ -28,6 +28,12 @@
|
|||
|
||||
#include "atstk1000.h"
|
||||
|
||||
/* Oscillator frequencies. These are board specific */
|
||||
unsigned long at32_board_osc_rates[3] = {
|
||||
[0] = 32768, /* 32.768 kHz on RTC osc */
|
||||
[1] = 20000000, /* 20 MHz on osc0 */
|
||||
[2] = 12000000, /* 12 MHz on osc1 */
|
||||
};
|
||||
|
||||
struct eth_addr {
|
||||
u8 addr[6];
|
||||
|
|
|
@ -27,6 +27,13 @@
|
|||
|
||||
#include "atstk1000.h"
|
||||
|
||||
/* Oscillator frequencies. These are board specific */
|
||||
unsigned long at32_board_osc_rates[3] = {
|
||||
[0] = 32768, /* 32.768 kHz on RTC osc */
|
||||
[1] = 20000000, /* 20 MHz on osc0 */
|
||||
[2] = 12000000, /* 12 MHz on osc1 */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
|
||||
static struct at73c213_board_info at73c213_data = {
|
||||
.ssc_id = 0,
|
||||
|
|
|
@ -29,6 +29,13 @@
|
|||
|
||||
#include "atstk1000.h"
|
||||
|
||||
/* Oscillator frequencies. These are board specific */
|
||||
unsigned long at32_board_osc_rates[3] = {
|
||||
[0] = 32768, /* 32.768 kHz on RTC osc */
|
||||
[1] = 20000000, /* 20 MHz on osc0 */
|
||||
[2] = 12000000, /* 12 MHz on osc1 */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
|
||||
static struct at73c213_board_info at73c213_data = {
|
||||
.ssc_id = 0,
|
||||
|
|
|
@ -93,19 +93,12 @@ static struct clk devname##_##_name = { \
|
|||
|
||||
static DEFINE_SPINLOCK(pm_lock);
|
||||
|
||||
unsigned long at32ap7000_osc_rates[3] = {
|
||||
[0] = 32768,
|
||||
/* FIXME: these are ATSTK1002-specific */
|
||||
[1] = 20000000,
|
||||
[2] = 12000000,
|
||||
};
|
||||
|
||||
static struct clk osc0;
|
||||
static struct clk osc1;
|
||||
|
||||
static unsigned long osc_get_rate(struct clk *clk)
|
||||
{
|
||||
return at32ap7000_osc_rates[clk->index];
|
||||
return at32_board_osc_rates[clk->index];
|
||||
}
|
||||
|
||||
static unsigned long pll_get_rate(struct clk *clk, unsigned long control)
|
||||
|
|
|
@ -8,6 +8,12 @@
|
|||
|
||||
#define GPIO_PIN_NONE (-1)
|
||||
|
||||
/*
|
||||
* Clock rates for various on-board oscillators. The number of entries
|
||||
* in this array is chip-dependent.
|
||||
*/
|
||||
extern unsigned long at32_board_osc_rates[];
|
||||
|
||||
/* Add basic devices: system manager, interrupt controller, portmuxes, etc. */
|
||||
void at32_add_system_devices(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue