2005-11-10 17:26:51 +03:00
/*
* linux / arch / arm / mach - omap2 / io . c
*
* OMAP2 I / O mapping code
*
* Copyright ( C ) 2005 Nokia Corporation
* Author : Juha Yrj <EFBFBD> l <EFBFBD> < juha . yrjola @ nokia . com >
*
* 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/config.h>
# include <linux/module.h>
# include <linux/kernel.h>
# include <linux/init.h>
2006-04-02 20:46:27 +04:00
# include <asm/tlb.h>
2005-11-10 17:26:51 +03:00
# include <asm/io.h>
2006-04-02 20:46:27 +04:00
# include <asm/mach/map.h>
2005-11-10 17:26:51 +03:00
# include <asm/arch/mux.h>
2006-04-02 20:46:27 +04:00
# include <asm/arch/omapfb.h>
2005-11-10 17:26:51 +03:00
extern void omap_sram_init ( void ) ;
extern int omap2_clk_init ( void ) ;
extern void omap2_check_revision ( void ) ;
/*
* The machine specific code may provide the extra mapping besides the
* default mapping provided here .
*/
static struct map_desc omap2_io_desc [ ] __initdata = {
{
. virtual = L3_24XX_VIRT ,
. pfn = __phys_to_pfn ( L3_24XX_PHYS ) ,
. length = L3_24XX_SIZE ,
. type = MT_DEVICE
} ,
{
. virtual = L4_24XX_VIRT ,
. pfn = __phys_to_pfn ( L4_24XX_PHYS ) ,
. length = L4_24XX_SIZE ,
. type = MT_DEVICE
}
} ;
2006-04-02 20:46:27 +04:00
void __init omap2_map_common_io ( void )
2005-11-10 17:26:51 +03:00
{
iotable_init ( omap2_io_desc , ARRAY_SIZE ( omap2_io_desc ) ) ;
2006-04-02 20:46:27 +04:00
/* Normally devicemaps_init() would flush caches and tlb after
* mdesc - > map_io ( ) , but we must also do it here because of the CPU
* revision check below .
*/
local_flush_tlb_all ( ) ;
flush_cache_all ( ) ;
2005-11-10 17:26:51 +03:00
omap2_check_revision ( ) ;
omap_sram_init ( ) ;
2006-04-02 20:46:27 +04:00
omapfb_reserve_mem ( ) ;
}
void __init omap2_init_common_hw ( void )
{
2005-11-10 17:26:51 +03:00
omap2_mux_init ( ) ;
omap2_clk_init ( ) ;
}