Merge tag 'samsung-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene...
[sfrench/cifs-2.6.git] / arch / arm / mach-at91 / sama5d4.c
1 /*
2  *  Chip-specific setup code for the SAMA5D4 family
3  *
4  *  Copyright (C) 2013 Atmel Corporation,
5  *                     Nicolas Ferre <nicolas.ferre@atmel.com>
6  *
7  * Licensed under GPLv2 or later.
8  */
9
10 #include <linux/module.h>
11 #include <linux/dma-mapping.h>
12 #include <linux/clk/at91_pmc.h>
13
14 #include <asm/irq.h>
15 #include <asm/mach/arch.h>
16 #include <asm/mach/map.h>
17 #include <mach/sama5d4.h>
18 #include <mach/cpu.h>
19 #include <mach/hardware.h>
20
21 #include "soc.h"
22 #include "generic.h"
23 #include "sam9_smc.h"
24
25 /* --------------------------------------------------------------------
26  *  Processor initialization
27  * -------------------------------------------------------------------- */
28 static struct map_desc at91_io_desc[] __initdata = {
29         {
30         .virtual        = (unsigned long)AT91_ALT_IO_P2V(SAMA5D4_BASE_MPDDRC),
31         .pfn            = __phys_to_pfn(SAMA5D4_BASE_MPDDRC),
32         .length         = SZ_512,
33         .type           = MT_DEVICE,
34         },
35         {
36         .virtual        = (unsigned long)AT91_ALT_IO_P2V(SAMA5D4_BASE_PMC),
37         .pfn            = __phys_to_pfn(SAMA5D4_BASE_PMC),
38         .length         = SZ_512,
39         .type           = MT_DEVICE,
40         },
41         { /* On sama5d4, we use USART3 as serial console */
42         .virtual        = (unsigned long)AT91_ALT_IO_P2V(SAMA5D4_BASE_USART3),
43         .pfn            = __phys_to_pfn(SAMA5D4_BASE_USART3),
44         .length         = SZ_256,
45         .type           = MT_DEVICE,
46         },
47         { /* A bunch of peripheral with fine grained IO space */
48         .virtual        = (unsigned long)AT91_ALT_IO_P2V(SAMA5D4_BASE_SYS2),
49         .pfn            = __phys_to_pfn(SAMA5D4_BASE_SYS2),
50         .length         = SZ_2K,
51         .type           = MT_DEVICE,
52         },
53 };
54
55
56 static void __init sama5d4_map_io(void)
57 {
58         iotable_init(at91_io_desc, ARRAY_SIZE(at91_io_desc));
59         at91_init_sram(0, SAMA5D4_NS_SRAM_BASE, SAMA5D4_NS_SRAM_SIZE);
60 }
61
62 AT91_SOC_START(sama5d4)
63         .map_io = sama5d4_map_io,
64 AT91_SOC_END