aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mmp/common.c
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-06-27 00:10:25 +0200
committerLubomir Rintel <lkundrak@v3.sk>2019-10-17 16:36:10 +0200
commite69fd5090dbd640a12b61feef78eb07a17cec209 (patch)
tree20af2a8013a91e058639c1bb4f286f9418f90236 /arch/arm/mach-mmp/common.c
parentARM: mmp: don't select CACHE_TAUROS2 on all ARCH_MMP (diff)
downloadlinux-dev-e69fd5090dbd640a12b61feef78eb07a17cec209.tar.xz
linux-dev-e69fd5090dbd640a12b61feef78eb07a17cec209.zip
ARM: mmp: map the PGU as well
The MMP2 and later includes a system control unit in this area. We'll need that to initialize the secondary core on MMP3. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Diffstat (limited to 'arch/arm/mach-mmp/common.c')
-rw-r--r--arch/arm/mach-mmp/common.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/common.c b/arch/arm/mach-mmp/common.c
index 6684abc7708b..2ee08c78e8bc 100644
--- a/arch/arm/mach-mmp/common.c
+++ b/arch/arm/mach-mmp/common.c
@@ -36,6 +36,15 @@ static struct map_desc standard_io_desc[] __initdata = {
},
};
+static struct map_desc mmp2_io_desc[] __initdata = {
+ {
+ .pfn = __phys_to_pfn(PGU_PHYS_BASE),
+ .virtual = (unsigned long)PGU_VIRT_BASE,
+ .length = PGU_PHYS_SIZE,
+ .type = MT_DEVICE,
+ },
+};
+
void __init mmp_map_io(void)
{
iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc));
@@ -44,6 +53,12 @@ void __init mmp_map_io(void)
mmp_chip_id = __raw_readl(MMP_CHIPID);
}
+void __init mmp2_map_io(void)
+{
+ mmp_map_io();
+ iotable_init(mmp2_io_desc, ARRAY_SIZE(mmp2_io_desc));
+}
+
void mmp_restart(enum reboot_mode mode, const char *cmd)
{
soft_restart(0);