162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * arch/arm/mach-spear13xx/spear1310.c
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * SPEAr1310 machine source file
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (C) 2012 ST Microelectronics
862306a36Sopenharmony_ci * Viresh Kumar <vireshk@kernel.org>
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define pr_fmt(fmt) "SPEAr1310: " fmt
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/amba/pl022.h>
1462306a36Sopenharmony_ci#include <linux/pata_arasan_cf_data.h>
1562306a36Sopenharmony_ci#include <asm/mach/arch.h>
1662306a36Sopenharmony_ci#include <asm/mach/map.h>
1762306a36Sopenharmony_ci#include "generic.h"
1862306a36Sopenharmony_ci#include "spear.h"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/* Base addresses */
2162306a36Sopenharmony_ci#define SPEAR1310_RAS_GRP1_BASE			UL(0xD8000000)
2262306a36Sopenharmony_ci#define VA_SPEAR1310_RAS_GRP1_BASE		UL(0xFA000000)
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistatic void __init spear1310_dt_init(void)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	platform_device_register_simple("spear-cpufreq", -1, NULL, 0);
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic const char * const spear1310_dt_board_compat[] = {
3062306a36Sopenharmony_ci	"st,spear1310",
3162306a36Sopenharmony_ci	"st,spear1310-evb",
3262306a36Sopenharmony_ci	NULL,
3362306a36Sopenharmony_ci};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci/*
3662306a36Sopenharmony_ci * Following will create 16MB static virtual/physical mappings
3762306a36Sopenharmony_ci * PHYSICAL		VIRTUAL
3862306a36Sopenharmony_ci * 0xD8000000		0xFA000000
3962306a36Sopenharmony_ci */
4062306a36Sopenharmony_cistatic struct map_desc spear1310_io_desc[] __initdata = {
4162306a36Sopenharmony_ci	{
4262306a36Sopenharmony_ci		.virtual	= VA_SPEAR1310_RAS_GRP1_BASE,
4362306a36Sopenharmony_ci		.pfn		= __phys_to_pfn(SPEAR1310_RAS_GRP1_BASE),
4462306a36Sopenharmony_ci		.length		= SZ_16M,
4562306a36Sopenharmony_ci		.type		= MT_DEVICE
4662306a36Sopenharmony_ci	},
4762306a36Sopenharmony_ci};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_cistatic void __init spear1310_map_io(void)
5062306a36Sopenharmony_ci{
5162306a36Sopenharmony_ci	iotable_init(spear1310_io_desc, ARRAY_SIZE(spear1310_io_desc));
5262306a36Sopenharmony_ci	spear13xx_map_io();
5362306a36Sopenharmony_ci}
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciDT_MACHINE_START(SPEAR1310_DT, "ST SPEAr1310 SoC with Flattened Device Tree")
5662306a36Sopenharmony_ci	.smp		=	smp_ops(spear13xx_smp_ops),
5762306a36Sopenharmony_ci	.map_io		=	spear1310_map_io,
5862306a36Sopenharmony_ci	.init_time	=	spear13xx_timer_init,
5962306a36Sopenharmony_ci	.init_machine	=	spear1310_dt_init,
6062306a36Sopenharmony_ci	.restart	=	spear_restart,
6162306a36Sopenharmony_ci	.dt_compat	=	spear1310_dt_board_compat,
6262306a36Sopenharmony_ciMACHINE_END
63