|
@@ -344,3 +344,84 @@ static struct at91_gpio_bank at91sam9g45_gpio[] __initdata = {
|
|
|
.id = AT91SAM9G45_ID_PIODE,
|
|
|
.regbase = AT91SAM9G45_BASE_PIOE,
|
|
|
}
|
|
|
+};
|
|
|
+
|
|
|
+/* --------------------------------------------------------------------
|
|
|
+ * AT91SAM9G45 processor initialization
|
|
|
+ * -------------------------------------------------------------------- */
|
|
|
+
|
|
|
+static void __init at91sam9g45_map_io(void)
|
|
|
+{
|
|
|
+ at91_init_sram(0, AT91SAM9G45_SRAM_BASE, AT91SAM9G45_SRAM_SIZE);
|
|
|
+}
|
|
|
+
|
|
|
+static void __init at91sam9g45_ioremap_registers(void)
|
|
|
+{
|
|
|
+ at91_ioremap_shdwc(AT91SAM9G45_BASE_SHDWC);
|
|
|
+ at91_ioremap_rstc(AT91SAM9G45_BASE_RSTC);
|
|
|
+ at91_ioremap_ramc(0, AT91SAM9G45_BASE_DDRSDRC1, 512);
|
|
|
+ at91_ioremap_ramc(1, AT91SAM9G45_BASE_DDRSDRC0, 512);
|
|
|
+ at91sam926x_ioremap_pit(AT91SAM9G45_BASE_PIT);
|
|
|
+ at91sam9_ioremap_smc(0, AT91SAM9G45_BASE_SMC);
|
|
|
+ at91_ioremap_matrix(AT91SAM9G45_BASE_MATRIX);
|
|
|
+}
|
|
|
+
|
|
|
+static void __init at91sam9g45_initialize(void)
|
|
|
+{
|
|
|
+ arm_pm_idle = at91sam9_idle;
|
|
|
+ arm_pm_restart = at91sam9g45_restart;
|
|
|
+ at91_extern_irq = (1 << AT91SAM9G45_ID_IRQ0);
|
|
|
+
|
|
|
+ /* Register GPIO subsystem */
|
|
|
+ at91_gpio_init(at91sam9g45_gpio, 5);
|
|
|
+}
|
|
|
+
|
|
|
+/* --------------------------------------------------------------------
|
|
|
+ * Interrupt initialization
|
|
|
+ * -------------------------------------------------------------------- */
|
|
|
+
|
|
|
+/*
|
|
|
+ * The default interrupt priority levels (0 = lowest, 7 = highest).
|
|
|
+ */
|
|
|
+static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = {
|
|
|
+ 7, /* Advanced Interrupt Controller (FIQ) */
|
|
|
+ 7, /* System Peripherals */
|
|
|
+ 1, /* Parallel IO Controller A */
|
|
|
+ 1, /* Parallel IO Controller B */
|
|
|
+ 1, /* Parallel IO Controller C */
|
|
|
+ 1, /* Parallel IO Controller D and E */
|
|
|
+ 0,
|
|
|
+ 5, /* USART 0 */
|
|
|
+ 5, /* USART 1 */
|
|
|
+ 5, /* USART 2 */
|
|
|
+ 5, /* USART 3 */
|
|
|
+ 0, /* Multimedia Card Interface 0 */
|
|
|
+ 6, /* Two-Wire Interface 0 */
|
|
|
+ 6, /* Two-Wire Interface 1 */
|
|
|
+ 5, /* Serial Peripheral Interface 0 */
|
|
|
+ 5, /* Serial Peripheral Interface 1 */
|
|
|
+ 4, /* Serial Synchronous Controller 0 */
|
|
|
+ 4, /* Serial Synchronous Controller 1 */
|
|
|
+ 0, /* Timer Counter 0, 1, 2, 3, 4 and 5 */
|
|
|
+ 0, /* Pulse Width Modulation Controller */
|
|
|
+ 0, /* Touch Screen Controller */
|
|
|
+ 0, /* DMA Controller */
|
|
|
+ 2, /* USB Host High Speed port */
|
|
|
+ 3, /* LDC Controller */
|
|
|
+ 5, /* AC97 Controller */
|
|
|
+ 3, /* Ethernet */
|
|
|
+ 0, /* Image Sensor Interface */
|
|
|
+ 2, /* USB Device High speed port */
|
|
|
+ 0, /* AESTDESSHA Crypto HW Accelerators */
|
|
|
+ 0, /* Multimedia Card Interface 1 */
|
|
|
+ 0,
|
|
|
+ 0, /* Advanced Interrupt Controller (IRQ0) */
|
|
|
+};
|
|
|
+
|
|
|
+AT91_SOC_START(sam9g45)
|
|
|
+ .map_io = at91sam9g45_map_io,
|
|
|
+ .default_irq_priority = at91sam9g45_default_irq_priority,
|
|
|
+ .ioremap_registers = at91sam9g45_ioremap_registers,
|
|
|
+ .register_clocks = at91sam9g45_register_clocks,
|
|
|
+ .init = at91sam9g45_initialize,
|
|
|
+AT91_SOC_END
|