1/* 2 * arch/arm/mach-at91/at91x40.c 3 * 4 * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com> 5 * Copyright (C) 2005 SAN People 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 */ 12 13#include <linux/kernel.h> 14#include <linux/init.h> 15#include <linux/irq.h> 16#include <asm/mach/arch.h> 17#include <mach/at91x40.h> 18#include <mach/at91_st.h> 19#include <mach/timex.h> 20#include "generic.h" 21 22/* 23 * Export the clock functions for the AT91X40. Some external code common 24 * to all AT91 family parts relys on this, like the gpio and serial support. 25 */ 26int clk_enable(struct clk *clk) 27{ 28 return 0; 29} 30 31void clk_disable(struct clk *clk) 32{ 33} 34 35unsigned long clk_get_rate(struct clk *clk) 36{ 37 return AT91X40_MASTER_CLOCK; 38} 39 40struct clk *clk_get(struct device *dev, const char *id) 41{ 42 return NULL; 43} 44 45void __init at91x40_initialize(unsigned long main_clock) 46{ 47 at91_extern_irq = (1 << AT91X40_ID_IRQ0) | (1 << AT91X40_ID_IRQ1) 48 | (1 << AT91X40_ID_IRQ2); 49} 50 51/* 52 * The default interrupt priority levels (0 = lowest, 7 = highest). 53 */ 54static unsigned int at91x40_default_irq_priority[NR_AIC_IRQS] __initdata = { 55 7, /* Advanced Interrupt Controller (FIQ) */ 56 0, /* System Peripherals */ 57 0, /* USART 0 */ 58 0, /* USART 1 */ 59 2, /* Timer Counter 0 */ 60 2, /* Timer Counter 1 */ 61 2, /* Timer Counter 2 */ 62 0, /* Watchdog timer */ 63 0, /* Parallel IO Controller A */ 64 0, /* Reserved */ 65 0, /* Reserved */ 66 0, /* Reserved */ 67 0, /* Reserved */ 68 0, /* Reserved */ 69 0, /* Reserved */ 70 0, /* Reserved */ 71 0, /* External IRQ0 */ 72 0, /* External IRQ1 */ 73 0, /* External IRQ2 */ 74}; 75 76void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS]) 77{ 78 if (!priority) 79 priority = at91x40_default_irq_priority; 80 81 at91_aic_init(priority); 82} 83