2019-06-04 10:11:33 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2009-01-20 14:15:18 +08:00
/*
* linux / arch / arm / mach - mmp / common . c
*
* Code common to PXA168 processor lines
*/
# include <linux/init.h>
# include <linux/kernel.h>
2010-09-21 16:43:57 +08:00
# include <linux/module.h>
2009-01-20 14:15:18 +08:00
# include <asm/page.h>
# include <asm/mach/map.h>
2012-03-28 18:30:01 +01:00
# include <asm/system_misc.h>
2014-04-15 20:38:32 +02:00
# include "addr-map.h"
2019-08-08 15:47:24 +02:00
# include <linux/soc/mmp/cputype.h>
2009-01-20 14:15:18 +08:00
# include "common.h"
2019-06-27 01:14:21 +02:00
# define MMP_CHIPID CIU_REG(0x00)
2010-09-21 16:43:57 +08:00
unsigned int mmp_chip_id ;
EXPORT_SYMBOL ( mmp_chip_id ) ;
2009-01-20 14:15:18 +08:00
static struct map_desc standard_io_desc [ ] __initdata = {
{
. pfn = __phys_to_pfn ( APB_PHYS_BASE ) ,
2011-10-01 22:03:45 +02:00
. virtual = ( unsigned long ) APB_VIRT_BASE ,
2009-01-20 14:15:18 +08:00
. length = APB_PHYS_SIZE ,
. type = MT_DEVICE ,
} , {
. pfn = __phys_to_pfn ( AXI_PHYS_BASE ) ,
2011-10-01 22:03:45 +02:00
. virtual = ( unsigned long ) AXI_VIRT_BASE ,
2009-01-20 14:15:18 +08:00
. length = AXI_PHYS_SIZE ,
. type = MT_DEVICE ,
} ,
} ;
2019-06-27 00:10:25 +02:00
static struct map_desc mmp2_io_desc [ ] __initdata = {
{
. pfn = __phys_to_pfn ( PGU_PHYS_BASE ) ,
. virtual = ( unsigned long ) PGU_VIRT_BASE ,
. length = PGU_PHYS_SIZE ,
. type = MT_DEVICE ,
} ,
} ;
2010-07-15 17:50:13 +08:00
void __init mmp_map_io ( void )
2009-01-20 14:15:18 +08:00
{
iotable_init ( standard_io_desc , ARRAY_SIZE ( standard_io_desc ) ) ;
2010-09-21 16:43:57 +08:00
/* this is early, initialize mmp_chip_id here */
mmp_chip_id = __raw_readl ( MMP_CHIPID ) ;
2009-01-20 14:15:18 +08:00
}
2011-11-05 15:40:09 +00:00
2019-06-27 00:10:25 +02:00
void __init mmp2_map_io ( void )
{
mmp_map_io ( ) ;
iotable_init ( mmp2_io_desc , ARRAY_SIZE ( mmp2_io_desc ) ) ;
}
2013-07-08 16:01:40 -07:00
void mmp_restart ( enum reboot_mode mode , const char * cmd )
2011-11-05 15:40:09 +00:00
{
soft_restart ( 0 ) ;
}