|
@@ -0,0 +1,132 @@
|
|
|
|
+/*
|
|
|
|
+ * arch/arm/mach-at91/at91sam9263.c
|
|
|
|
+ *
|
|
|
|
+ * Copyright (C) 2007 Atmel Corporation.
|
|
|
|
+ *
|
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
|
|
+ * (at your option) any later version.
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+#include <linux/module.h>
|
|
|
|
+
|
|
|
|
+#include <asm/proc-fns.h>
|
|
|
|
+#include <asm/irq.h>
|
|
|
|
+#include <asm/mach/arch.h>
|
|
|
|
+#include <asm/mach/map.h>
|
|
|
|
+#include <asm/system_misc.h>
|
|
|
|
+#include <mach/at91sam9263.h>
|
|
|
|
+#include <mach/at91_pmc.h>
|
|
|
|
+
|
|
|
|
+#include "at91_aic.h"
|
|
|
|
+#include "at91_rstc.h"
|
|
|
|
+#include "soc.h"
|
|
|
|
+#include "generic.h"
|
|
|
|
+#include "clock.h"
|
|
|
|
+#include "sam9_smc.h"
|
|
|
|
+
|
|
|
|
+/* --------------------------------------------------------------------
|
|
|
|
+ * Clocks
|
|
|
|
+ * -------------------------------------------------------------------- */
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * The peripheral clocks.
|
|
|
|
+ */
|
|
|
|
+static struct clk pioA_clk = {
|
|
|
|
+ .name = "pioA_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_PIOA,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk pioB_clk = {
|
|
|
|
+ .name = "pioB_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_PIOB,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk pioCDE_clk = {
|
|
|
|
+ .name = "pioCDE_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_PIOCDE,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk usart0_clk = {
|
|
|
|
+ .name = "usart0_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_US0,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk usart1_clk = {
|
|
|
|
+ .name = "usart1_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_US1,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk usart2_clk = {
|
|
|
|
+ .name = "usart2_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_US2,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk mmc0_clk = {
|
|
|
|
+ .name = "mci0_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_MCI0,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk mmc1_clk = {
|
|
|
|
+ .name = "mci1_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_MCI1,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk can_clk = {
|
|
|
|
+ .name = "can_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_CAN,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk twi_clk = {
|
|
|
|
+ .name = "twi_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_TWI,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk spi0_clk = {
|
|
|
|
+ .name = "spi0_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_SPI0,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk spi1_clk = {
|
|
|
|
+ .name = "spi1_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_SPI1,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk ssc0_clk = {
|
|
|
|
+ .name = "ssc0_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_SSC0,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk ssc1_clk = {
|
|
|
|
+ .name = "ssc1_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_SSC1,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk ac97_clk = {
|
|
|
|
+ .name = "ac97_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_AC97C,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk tcb_clk = {
|
|
|
|
+ .name = "tcb_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_TCB,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk pwm_clk = {
|
|
|
|
+ .name = "pwm_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_PWMC,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk macb_clk = {
|
|
|
|
+ .name = "pclk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_EMAC,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk dma_clk = {
|
|
|
|
+ .name = "dma_clk",
|
|
|
|
+ .pmc_mask = 1 << AT91SAM9263_ID_DMA,
|
|
|
|
+ .type = CLK_TYPE_PERIPHERAL,
|
|
|
|
+};
|
|
|
|
+static struct clk twodge_clk = {
|