diff options
Diffstat (limited to 'arch/arm/mach-at91/at91sam9261.c')
| -rw-r--r-- | arch/arm/mach-at91/at91sam9261.c | 32 | 
1 files changed, 29 insertions, 3 deletions
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c index 0e0793241ab..fb164a5d04a 100644 --- a/arch/arm/mach-at91/at91sam9261.c +++ b/arch/arm/mach-at91/at91sam9261.c @@ -11,6 +11,7 @@   */  #include <linux/module.h> +#include <linux/clk/at91_pmc.h>  #include <asm/proc-fns.h>  #include <asm/irq.h> @@ -19,14 +20,17 @@  #include <asm/system_misc.h>  #include <mach/cpu.h>  #include <mach/at91sam9261.h> -#include <mach/at91_pmc.h> +#include <mach/hardware.h>  #include "at91_aic.h"  #include "at91_rstc.h"  #include "soc.h"  #include "generic.h" -#include "clock.h"  #include "sam9_smc.h" +#include "pm.h" + +#if defined(CONFIG_OLD_CLK_AT91) +#include "clock.h"  /* --------------------------------------------------------------------   *  Clocks @@ -188,6 +192,23 @@ static struct clk_lookup periph_clocks_lookups[] = {  	CLKDEV_CON_ID("pioA", &pioA_clk),  	CLKDEV_CON_ID("pioB", &pioB_clk),  	CLKDEV_CON_ID("pioC", &pioC_clk), +	/* more lookup table for DT entries */ +	CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), +	CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), +	CLKDEV_CON_DEV_ID("usart", "ffffb400.serial", &usart1_clk), +	CLKDEV_CON_DEV_ID("usart", "fff94000.serial", &usart2_clk), +	CLKDEV_CON_DEV_ID("t0_clk", "fffa0000.timer", &tc0_clk), +	CLKDEV_CON_DEV_ID("t1_clk", "fffa0000.timer", &tc1_clk), +	CLKDEV_CON_DEV_ID("t2_clk", "fffa0000.timer", &tc2_clk), +	CLKDEV_CON_DEV_ID("hclk", "500000.ohci", &hck0), +	CLKDEV_CON_DEV_ID("hclk", "600000.fb", &hck1), +	CLKDEV_CON_DEV_ID("spi_clk", "fffc8000.spi", &spi0_clk), +	CLKDEV_CON_DEV_ID("spi_clk", "fffcc000.spi", &spi1_clk), +	CLKDEV_CON_DEV_ID("mci_clk", "fffa8000.mmc", &mmc_clk), +	CLKDEV_CON_DEV_ID(NULL, "fffac000.i2c", &twi_clk), +	CLKDEV_CON_DEV_ID(NULL, "fffff400.gpio", &pioA_clk), +	CLKDEV_CON_DEV_ID(NULL, "fffff600.gpio", &pioB_clk), +	CLKDEV_CON_DEV_ID(NULL, "fffff800.gpio", &pioC_clk),  };  static struct clk_lookup usart_clocks_lookups[] = { @@ -246,7 +267,9 @@ static void __init at91sam9261_register_clocks(void)  	clk_register(&hck0);  	clk_register(&hck1);  } - +#else +#define at91sam9261_register_clocks NULL +#endif  /* --------------------------------------------------------------------   *  GPIO   * -------------------------------------------------------------------- */ @@ -284,6 +307,7 @@ static void __init at91sam9261_ioremap_registers(void)  	at91sam926x_ioremap_pit(AT91SAM9261_BASE_PIT);  	at91sam9_ioremap_smc(0, AT91SAM9261_BASE_SMC);  	at91_ioremap_matrix(AT91SAM9261_BASE_MATRIX); +	at91_pm_set_standby(at91sam9_sdram_standby);  }  static void __init at91sam9261_initialize(void) @@ -291,6 +315,8 @@ static void __init at91sam9261_initialize(void)  	arm_pm_idle = at91sam9_idle;  	arm_pm_restart = at91sam9_alt_restart; +	at91_sysirq_mask_rtt(AT91SAM9261_BASE_RTT); +  	/* Register GPIO subsystem */  	at91_gpio_init(at91sam9261_gpio, 3);  }  | 
