2 * linux/arch/arm/mach-nspire/nspire.c
4 * Copyright (C) 2013 Daniel Tang <tangrs@tangrs.id.au>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2, as
8 * published by the Free Software Foundation.
11 #include <linux/init.h>
12 #include <linux/of_irq.h>
13 #include <linux/of_address.h>
14 #include <linux/of_platform.h>
15 #include <linux/irqchip.h>
16 #include <linux/irqchip/arm-vic.h>
17 #include <linux/clkdev.h>
18 #include <linux/amba/bus.h>
19 #include <linux/amba/clcd.h>
21 #include <asm/mach/arch.h>
22 #include <asm/mach-types.h>
23 #include <asm/mach/map.h>
28 static const char *const nspire_dt_match
[] __initconst
= {
36 static void __init
nspire_map_io(void)
41 static struct clcd_board nspire_clcd_data
= {
43 .caps
= CLCD_CAP_5551
| CLCD_CAP_565
,
44 .check
= clcdfb_check
,
45 .decode
= clcdfb_decode
,
46 .setup
= nspire_clcd_setup
,
47 .mmap
= nspire_clcd_mmap
,
48 .remove
= nspire_clcd_remove
,
52 static struct of_dev_auxdata nspire_auxdata
[] __initdata
= {
53 OF_DEV_AUXDATA("arm,pl111", NSPIRE_LCD_PHYS_BASE
,
54 NULL
, &nspire_clcd_data
),
58 static void __init
nspire_init(void)
60 of_platform_populate(NULL
, of_default_bus_match_table
,
61 nspire_auxdata
, NULL
);
64 static void nspire_restart(enum reboot_mode mode
, const char *cmd
)
66 void __iomem
*base
= ioremap(NSPIRE_MISC_PHYS_BASE
, SZ_4K
);
70 writel(2, base
+ NSPIRE_MISC_HWRESET
);
73 DT_MACHINE_START(NSPIRE
, "TI-NSPIRE")
74 .dt_compat
= nspire_dt_match
,
75 .map_io
= nspire_map_io
,
76 .init_machine
= nspire_init
,
77 .restart
= nspire_restart
,