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>
25 #include <asm/hardware/timer-sp.h>
30 static const char *nspire_dt_match
[] __initconst
= {
38 static void __init
nspire_map_io(void)
43 static struct clcd_board nspire_clcd_data
= {
45 .caps
= CLCD_CAP_5551
| CLCD_CAP_565
,
46 .check
= clcdfb_check
,
47 .decode
= clcdfb_decode
,
48 .setup
= nspire_clcd_setup
,
49 .mmap
= nspire_clcd_mmap
,
50 .remove
= nspire_clcd_remove
,
54 static struct of_dev_auxdata nspire_auxdata
[] __initdata
= {
55 OF_DEV_AUXDATA("arm,pl111", NSPIRE_LCD_PHYS_BASE
,
56 NULL
, &nspire_clcd_data
),
60 static void __init
nspire_init(void)
62 of_platform_populate(NULL
, of_default_bus_match_table
,
63 nspire_auxdata
, NULL
);
66 static void nspire_restart(char mode
, const char *cmd
)
68 void __iomem
*base
= ioremap(NSPIRE_MISC_PHYS_BASE
, SZ_4K
);
72 writel(2, base
+ NSPIRE_MISC_HWRESET
);
75 DT_MACHINE_START(NSPIRE
, "TI-NSPIRE")
76 .dt_compat
= nspire_dt_match
,
77 .map_io
= nspire_map_io
,
78 .init_machine
= nspire_init
,
79 .restart
= nspire_restart
,