Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * arch/arm/mach-spear13xx/spear1310.c
0004  *
0005  * SPEAr1310 machine source file
0006  *
0007  * Copyright (C) 2012 ST Microelectronics
0008  * Viresh Kumar <vireshk@kernel.org>
0009  */
0010 
0011 #define pr_fmt(fmt) "SPEAr1310: " fmt
0012 
0013 #include <linux/amba/pl022.h>
0014 #include <linux/pata_arasan_cf_data.h>
0015 #include <asm/mach/arch.h>
0016 #include <asm/mach/map.h>
0017 #include "generic.h"
0018 #include "spear.h"
0019 
0020 /* Base addresses */
0021 #define SPEAR1310_RAS_GRP1_BASE         UL(0xD8000000)
0022 #define VA_SPEAR1310_RAS_GRP1_BASE      UL(0xFA000000)
0023 
0024 static void __init spear1310_dt_init(void)
0025 {
0026     platform_device_register_simple("spear-cpufreq", -1, NULL, 0);
0027 }
0028 
0029 static const char * const spear1310_dt_board_compat[] = {
0030     "st,spear1310",
0031     "st,spear1310-evb",
0032     NULL,
0033 };
0034 
0035 /*
0036  * Following will create 16MB static virtual/physical mappings
0037  * PHYSICAL     VIRTUAL
0038  * 0xD8000000       0xFA000000
0039  */
0040 static struct map_desc spear1310_io_desc[] __initdata = {
0041     {
0042         .virtual    = VA_SPEAR1310_RAS_GRP1_BASE,
0043         .pfn        = __phys_to_pfn(SPEAR1310_RAS_GRP1_BASE),
0044         .length     = SZ_16M,
0045         .type       = MT_DEVICE
0046     },
0047 };
0048 
0049 static void __init spear1310_map_io(void)
0050 {
0051     iotable_init(spear1310_io_desc, ARRAY_SIZE(spear1310_io_desc));
0052     spear13xx_map_io();
0053 }
0054 
0055 DT_MACHINE_START(SPEAR1310_DT, "ST SPEAr1310 SoC with Flattened Device Tree")
0056     .smp        =   smp_ops(spear13xx_smp_ops),
0057     .map_io     =   spear1310_map_io,
0058     .init_time  =   spear13xx_timer_init,
0059     .init_machine   =   spear1310_dt_init,
0060     .restart    =   spear_restart,
0061     .dt_compat  =   spear1310_dt_board_compat,
0062 MACHINE_END