2013-06-11 18:40:17 +10:00
/*
* linux / arch / arm / mach - nspire / nspire . c
*
* Copyright ( C ) 2013 Daniel Tang < tangrs @ tangrs . id . au >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 , as
* published by the Free Software Foundation .
*
*/
# include <linux/init.h>
# include <linux/of_irq.h>
# include <linux/of_address.h>
# include <linux/of_platform.h>
# include <linux/irqchip.h>
# include <linux/irqchip/arm-vic.h>
# include <linux/clkdev.h>
# include <linux/amba/bus.h>
# include <linux/amba/clcd.h>
# include <asm/mach/arch.h>
# include <asm/mach-types.h>
# include <asm/mach/map.h>
# include "mmio.h"
# include "clcd.h"
2015-02-18 21:01:45 +01:00
static const char * const nspire_dt_match [ ] __initconst = {
2013-06-11 18:40:17 +10:00
" ti,nspire " ,
" ti,nspire-cx " ,
" ti,nspire-tp " ,
" ti,nspire-clp " ,
NULL ,
} ;
static struct clcd_board nspire_clcd_data = {
. name = " LCD " ,
. caps = CLCD_CAP_5551 | CLCD_CAP_565 ,
. check = clcdfb_check ,
. decode = clcdfb_decode ,
. setup = nspire_clcd_setup ,
. mmap = nspire_clcd_mmap ,
. remove = nspire_clcd_remove ,
} ;
static struct of_dev_auxdata nspire_auxdata [ ] __initdata = {
OF_DEV_AUXDATA ( " arm,pl111 " , NSPIRE_LCD_PHYS_BASE ,
NULL , & nspire_clcd_data ) ,
{ }
} ;
static void __init nspire_init ( void )
{
2016-06-01 14:53:05 +08:00
of_platform_default_populate ( NULL , nspire_auxdata , NULL ) ;
2013-06-11 18:40:17 +10:00
}
2014-03-20 22:25:11 +04:00
static void nspire_restart ( enum reboot_mode mode , const char * cmd )
2013-06-11 18:40:17 +10:00
{
void __iomem * base = ioremap ( NSPIRE_MISC_PHYS_BASE , SZ_4K ) ;
if ( ! base )
return ;
writel ( 2 , base + NSPIRE_MISC_HWRESET ) ;
}
DT_MACHINE_START ( NSPIRE , " TI-NSPIRE " )
. dt_compat = nspire_dt_match ,
. init_machine = nspire_init ,
. restart = nspire_restart ,
MACHINE_END