2012-02-29 00:57:50 +04:00
/*
* Copyright 2012 Sascha Hauer , Pengutronix
*
* The code contained herein is licensed under the GNU General Public
* License . You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations :
*
* http : //www.opensource.org/licenses/gpl-license.html
* http : //www.gnu.org/copyleft/gpl.html
*/
# include <linux/irq.h>
# include <linux/of_irq.h>
# include <linux/of_platform.h>
# include <asm/mach/arch.h>
# include <asm/mach/time.h>
2012-09-13 17:01:00 +04:00
# include "common.h"
2012-09-14 10:14:45 +04:00
# include "mx27.h"
2012-09-13 17:01:00 +04:00
2012-02-29 00:57:50 +04:00
static const struct of_dev_auxdata imx27_auxdata_lookup [ ] __initconst = {
OF_DEV_AUXDATA ( " fsl,imx27-uart " , MX27_UART1_BASE_ADDR , " imx21-uart.0 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-uart " , MX27_UART2_BASE_ADDR , " imx21-uart.1 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-uart " , MX27_UART3_BASE_ADDR , " imx21-uart.2 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-fec " , MX27_FEC_BASE_ADDR , " imx27-fec.0 " , NULL ) ,
2012-09-14 11:19:00 +04:00
OF_DEV_AUXDATA ( " fsl,imx27-i2c " , MX27_I2C1_BASE_ADDR , " imx21-i2c.0 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-i2c " , MX27_I2C2_BASE_ADDR , " imx21-i2c.1 " , NULL ) ,
2012-02-29 00:57:50 +04:00
OF_DEV_AUXDATA ( " fsl,imx27-cspi " , MX27_CSPI1_BASE_ADDR , " imx27-cspi.0 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-cspi " , MX27_CSPI2_BASE_ADDR , " imx27-cspi.1 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-cspi " , MX27_CSPI3_BASE_ADDR , " imx27-cspi.2 " , NULL ) ,
OF_DEV_AUXDATA ( " fsl,imx27-wdt " , MX27_WDOG_BASE_ADDR , " imx2-wdt.0 " , NULL ) ,
2012-09-15 09:34:09 +04:00
OF_DEV_AUXDATA ( " fsl,imx27-nand " , MX27_NFC_BASE_ADDR , " imx27-nand.0 " , NULL ) ,
2012-02-29 00:57:50 +04:00
{ /* sentinel */ }
} ;
static void __init imx27_dt_init ( void )
{
of_platform_populate ( NULL , of_default_bus_match_table ,
imx27_auxdata_lookup , NULL ) ;
}
2012-06-08 14:04:50 +04:00
static const char * const imx27_dt_board_compat [ ] __initconst = {
2012-02-29 00:57:50 +04:00
" fsl,imx27 " ,
NULL
} ;
2012-11-08 23:40:59 +04:00
static void __init imx27_timer_init ( void )
{
mx27_clocks_init_dt ( ) ;
}
2012-02-29 00:57:50 +04:00
DT_MACHINE_START ( IMX27_DT , " Freescale i.MX27 (Device Tree Support) " )
. map_io = mx27_map_io ,
. init_early = imx27_init_early ,
. init_irq = mx27_init_irq ,
. handle_irq = imx27_handle_irq ,
2012-11-08 23:40:59 +04:00
. init_time = imx27_timer_init ,
2012-02-29 00:57:50 +04:00
. init_machine = imx27_dt_init ,
. dt_compat = imx27_dt_board_compat ,
. restart = mxc_restart ,
MACHINE_END