aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-socfpga/socfpga.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-socfpga/socfpga.c')
-rw-r--r--arch/arm/mach-socfpga/socfpga.c41
1 files changed, 5 insertions, 36 deletions
diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c
index f5e597c207b9..19643a756c48 100644
--- a/arch/arm/mach-socfpga/socfpga.c
+++ b/arch/arm/mach-socfpga/socfpga.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2012 Altera Corporation 2 * Copyright (C) 2012-2015 Altera Corporation
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
@@ -27,43 +27,11 @@
27 27
28#include "core.h" 28#include "core.h"
29 29
30void __iomem *socfpga_scu_base_addr = ((void __iomem *)(SOCFPGA_SCU_VIRT_BASE));
31void __iomem *sys_manager_base_addr; 30void __iomem *sys_manager_base_addr;
32void __iomem *rst_manager_base_addr; 31void __iomem *rst_manager_base_addr;
32void __iomem *sdr_ctl_base_addr;
33unsigned long socfpga_cpu1start_addr; 33unsigned long socfpga_cpu1start_addr;
34 34
35static struct map_desc scu_io_desc __initdata = {
36 .virtual = SOCFPGA_SCU_VIRT_BASE,
37 .pfn = 0, /* run-time */
38 .length = SZ_8K,
39 .type = MT_DEVICE,
40};
41
42static struct map_desc uart_io_desc __initdata = {
43 .virtual = 0xfec02000,
44 .pfn = __phys_to_pfn(0xffc02000),
45 .length = SZ_8K,
46 .type = MT_DEVICE,
47};
48
49static void __init socfpga_scu_map_io(void)
50{
51 unsigned long base;
52
53 /* Get SCU base */
54 asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (base));
55
56 scu_io_desc.pfn = __phys_to_pfn(base);
57 iotable_init(&scu_io_desc, 1);
58}
59
60static void __init socfpga_map_io(void)
61{
62 socfpga_scu_map_io();
63 iotable_init(&uart_io_desc, 1);
64 early_printk("Early printk initialized\n");
65}
66
67void __init socfpga_sysmgr_init(void) 35void __init socfpga_sysmgr_init(void)
68{ 36{
69 struct device_node *np; 37 struct device_node *np;
@@ -82,6 +50,9 @@ void __init socfpga_sysmgr_init(void)
82 50
83 np = of_find_compatible_node(NULL, NULL, "altr,rst-mgr"); 51 np = of_find_compatible_node(NULL, NULL, "altr,rst-mgr");
84 rst_manager_base_addr = of_iomap(np, 0); 52 rst_manager_base_addr = of_iomap(np, 0);
53
54 np = of_find_compatible_node(NULL, NULL, "altr,sdr-ctl");
55 sdr_ctl_base_addr = of_iomap(np, 0);
85} 56}
86 57
87static void __init socfpga_init_irq(void) 58static void __init socfpga_init_irq(void)
@@ -111,8 +82,6 @@ static const char *altera_dt_match[] = {
111DT_MACHINE_START(SOCFPGA, "Altera SOCFPGA") 82DT_MACHINE_START(SOCFPGA, "Altera SOCFPGA")
112 .l2c_aux_val = 0, 83 .l2c_aux_val = 0,
113 .l2c_aux_mask = ~0, 84 .l2c_aux_mask = ~0,
114 .smp = smp_ops(socfpga_smp_ops),
115 .map_io = socfpga_map_io,
116 .init_irq = socfpga_init_irq, 85 .init_irq = socfpga_init_irq,
117 .restart = socfpga_cyclone5_restart, 86 .restart = socfpga_cyclone5_restart,
118 .dt_compat = altera_dt_match, 87 .dt_compat = altera_dt_match,