18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *	linux/arch/arm/mach-nspire/nspire.c
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *	Copyright (C) 2013 Daniel Tang <tangrs@tangrs.id.au>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci#include <linux/init.h>
88c2ecf20Sopenharmony_ci#include <linux/of_irq.h>
98c2ecf20Sopenharmony_ci#include <linux/of_address.h>
108c2ecf20Sopenharmony_ci#include <linux/of_platform.h>
118c2ecf20Sopenharmony_ci#include <linux/irqchip.h>
128c2ecf20Sopenharmony_ci#include <linux/irqchip/arm-vic.h>
138c2ecf20Sopenharmony_ci#include <linux/clkdev.h>
148c2ecf20Sopenharmony_ci#include <linux/amba/bus.h>
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci#include <asm/mach/arch.h>
178c2ecf20Sopenharmony_ci#include <asm/mach-types.h>
188c2ecf20Sopenharmony_ci#include <asm/mach/map.h>
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#include "mmio.h"
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cistatic const char *const nspire_dt_match[] __initconst = {
238c2ecf20Sopenharmony_ci	"ti,nspire",
248c2ecf20Sopenharmony_ci	"ti,nspire-cx",
258c2ecf20Sopenharmony_ci	"ti,nspire-tp",
268c2ecf20Sopenharmony_ci	"ti,nspire-clp",
278c2ecf20Sopenharmony_ci	NULL,
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_cistatic void nspire_restart(enum reboot_mode mode, const char *cmd)
318c2ecf20Sopenharmony_ci{
328c2ecf20Sopenharmony_ci	void __iomem *base = ioremap(NSPIRE_MISC_PHYS_BASE, SZ_4K);
338c2ecf20Sopenharmony_ci	if (!base)
348c2ecf20Sopenharmony_ci		return;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci	writel(2, base + NSPIRE_MISC_HWRESET);
378c2ecf20Sopenharmony_ci}
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciDT_MACHINE_START(NSPIRE, "TI-NSPIRE")
408c2ecf20Sopenharmony_ci	.dt_compat	= nspire_dt_match,
418c2ecf20Sopenharmony_ci	.restart	= nspire_restart,
428c2ecf20Sopenharmony_ciMACHINE_END
43