2005-09-02 10:42:52 +10:00
/***************************************************************************/
/*
* linux / arch / m68knommu / platform / 523 x / config . c
*
2011-03-30 22:57:33 -03:00
* Sub - architcture dependent initialization code for the Freescale
2005-09-02 10:42:52 +10:00
* 523 x CPUs .
*
* Copyright ( C ) 1999 - 2005 , Greg Ungerer ( gerg @ snapgear . com )
* Copyright ( C ) 2001 - 2003 , SnapGear Inc . ( www . snapgear . com )
*/
/***************************************************************************/
# include <linux/kernel.h>
# include <linux/param.h>
# include <linux/init.h>
2008-02-01 17:34:15 +10:00
# include <linux/io.h>
2005-09-02 10:42:52 +10:00
# include <asm/machdep.h>
# include <asm/coldfire.h>
# include <asm/mcfsim.h>
2012-07-13 15:57:38 +10:00
# include <asm/mcfclk.h>
/***************************************************************************/
DEFINE_CLK ( pll , " pll.0 " , MCF_CLK ) ;
DEFINE_CLK ( sys , " sys.0 " , MCF_BUSCLK ) ;
DEFINE_CLK ( mcfpit0 , " mcfpit.0 " , MCF_CLK ) ;
DEFINE_CLK ( mcfpit1 , " mcfpit.1 " , MCF_CLK ) ;
DEFINE_CLK ( mcfpit2 , " mcfpit.2 " , MCF_CLK ) ;
DEFINE_CLK ( mcfpit3 , " mcfpit.3 " , MCF_CLK ) ;
DEFINE_CLK ( mcfuart0 , " mcfuart.0 " , MCF_BUSCLK ) ;
DEFINE_CLK ( mcfuart1 , " mcfuart.1 " , MCF_BUSCLK ) ;
DEFINE_CLK ( mcfuart2 , " mcfuart.2 " , MCF_BUSCLK ) ;
2014-05-14 10:06:29 -07:00
DEFINE_CLK ( mcfqspi0 , " mcfqspi.0 " , MCF_BUSCLK ) ;
2012-07-13 15:57:38 +10:00
DEFINE_CLK ( fec0 , " fec.0 " , MCF_BUSCLK ) ;
struct clk * mcf_clks [ ] = {
& clk_pll ,
& clk_sys ,
& clk_mcfpit0 ,
& clk_mcfpit1 ,
& clk_mcfpit2 ,
& clk_mcfpit3 ,
& clk_mcfuart0 ,
& clk_mcfuart1 ,
& clk_mcfuart2 ,
2014-05-14 10:06:29 -07:00
& clk_mcfqspi0 ,
2012-07-13 15:57:38 +10:00
& clk_fec0 ,
NULL
} ;
2005-09-02 10:42:52 +10:00
/***************************************************************************/
2012-05-06 12:22:53 -07:00
# if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
2010-01-22 12:43:03 -08:00
static void __init m523x_qspi_init ( void )
{
u16 par ;
/* setup QSPS pins for QSPI with gpio CS control */
writeb ( 0x1f , MCFGPIO_PAR_QSPI ) ;
/* and CS2 & CS3 as gpio */
par = readw ( MCFGPIO_PAR_TIMER ) ;
par & = 0x3f3f ;
writew ( par , MCFGPIO_PAR_TIMER ) ;
}
2012-05-06 12:22:53 -07:00
# endif /* IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI) */
2005-09-02 10:42:52 +10:00
2008-02-01 17:34:15 +10:00
/***************************************************************************/
2009-08-12 16:14:43 +10:00
static void __init m523x_fec_init ( void )
{
/* Set multi-function pins to ethernet use */
2012-09-18 12:14:18 +10:00
writeb ( readb ( MCFGPIO_PAR_FECI2C ) | 0xf0 , MCFGPIO_PAR_FECI2C ) ;
2009-08-12 16:14:43 +10:00
}
/***************************************************************************/
2008-02-01 17:34:15 +10:00
void __init config_BSP ( char * commandp , int size )
2005-09-02 10:42:52 +10:00
{
2012-01-23 15:34:58 +10:00
mach_sched_init = hw_timer_init ;
2011-12-24 13:00:02 +10:00
m523x_fec_init ( ) ;
2012-05-06 12:22:53 -07:00
# if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
2010-01-22 12:43:03 -08:00
m523x_qspi_init ( ) ;
# endif
2008-02-01 17:34:15 +10:00
}
/***************************************************************************/