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/clk-provider.h>
18 #include <linux/clkdev.h>
19 #include <linux/amba/bus.h>
20 #include <linux/amba/clcd.h>
21 #include <linux/clocksource.h>
23 #include <asm/mach/arch.h>
24 #include <asm/mach-types.h>
25 #include <asm/mach/map.h>
27 #include <asm/hardware/timer-sp.h>
32 static const char *nspire_dt_match
[] __initconst
= {
40 static void __init
nspire_map_io(void)
45 static struct clcd_board nspire_clcd_data
= {
47 .caps
= CLCD_CAP_5551
| CLCD_CAP_565
,
48 .check
= clcdfb_check
,
49 .decode
= clcdfb_decode
,
50 .setup
= nspire_clcd_setup
,
51 .mmap
= nspire_clcd_mmap
,
52 .remove
= nspire_clcd_remove
,
56 static struct of_dev_auxdata nspire_auxdata
[] __initdata
= {
57 OF_DEV_AUXDATA("arm,pl111", NSPIRE_LCD_PHYS_BASE
,
58 NULL
, &nspire_clcd_data
),
62 static void __init
nspire_init(void)
64 of_platform_populate(NULL
, of_default_bus_match_table
,
65 nspire_auxdata
, NULL
);
68 static void __init
nspire_init_time(void)
71 clocksource_of_init();
74 static void nspire_restart(char mode
, const char *cmd
)
76 void __iomem
*base
= ioremap(NSPIRE_MISC_PHYS_BASE
, SZ_4K
);
80 writel(2, base
+ NSPIRE_MISC_HWRESET
);
83 DT_MACHINE_START(NSPIRE
, "TI-NSPIRE")
84 .dt_compat
= nspire_dt_match
,
85 .map_io
= nspire_map_io
,
86 .init_time
= nspire_init_time
,
87 .init_machine
= nspire_init
,
88 .restart
= nspire_restart
,