2013-03-22 13:24:12 +00:00
/*
2015-01-27 16:41:55 +01:00
* Setup code for SAMA5
2013-03-22 13:24:12 +00:00
*
* Copyright ( C ) 2013 Atmel ,
* 2013 Ludovic Desroches < ludovic . desroches @ atmel . com >
*
* Licensed under GPLv2 or later .
*/
# include <linux/of.h>
# include <linux/of_platform.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
2015-03-12 15:54:30 +01:00
# include <asm/system_misc.h>
2013-03-22 13:24:12 +00:00
# include "generic.h"
2015-03-12 15:54:30 +01:00
# include "soc.h"
static const struct at91_soc sama5_socs [ ] = {
2016-03-18 08:21:20 +01:00
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D21CU_EXID_MATCH ,
" sama5d21 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D22CU_EXID_MATCH ,
" sama5d22 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D23CU_EXID_MATCH ,
" sama5d23 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D24CX_EXID_MATCH ,
" sama5d24 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D24CU_EXID_MATCH ,
" sama5d24 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D26CU_EXID_MATCH ,
" sama5d26 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D27CU_EXID_MATCH ,
2015-07-30 19:12:12 +02:00
" sama5d27 " , " sama5d2 " ) ,
2016-03-18 08:21:20 +01:00
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D27CN_EXID_MATCH ,
" sama5d27 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D28CU_EXID_MATCH ,
" sama5d28 " , " sama5d2 " ) ,
AT91_SOC ( SAMA5D2_CIDR_MATCH , SAMA5D28CN_EXID_MATCH ,
" sama5d28 " , " sama5d2 " ) ,
2015-03-12 15:54:30 +01:00
AT91_SOC ( SAMA5D3_CIDR_MATCH , SAMA5D31_EXID_MATCH ,
" sama5d31 " , " sama5d3 " ) ,
AT91_SOC ( SAMA5D3_CIDR_MATCH , SAMA5D33_EXID_MATCH ,
" sama5d33 " , " sama5d3 " ) ,
AT91_SOC ( SAMA5D3_CIDR_MATCH , SAMA5D34_EXID_MATCH ,
" sama5d34 " , " sama5d3 " ) ,
AT91_SOC ( SAMA5D3_CIDR_MATCH , SAMA5D35_EXID_MATCH ,
" sama5d35 " , " sama5d3 " ) ,
AT91_SOC ( SAMA5D3_CIDR_MATCH , SAMA5D36_EXID_MATCH ,
" sama5d36 " , " sama5d3 " ) ,
AT91_SOC ( SAMA5D4_CIDR_MATCH , SAMA5D41_EXID_MATCH ,
" sama5d41 " , " sama5d4 " ) ,
AT91_SOC ( SAMA5D4_CIDR_MATCH , SAMA5D42_EXID_MATCH ,
" sama5d42 " , " sama5d4 " ) ,
AT91_SOC ( SAMA5D4_CIDR_MATCH , SAMA5D43_EXID_MATCH ,
" sama5d43 " , " sama5d4 " ) ,
AT91_SOC ( SAMA5D4_CIDR_MATCH , SAMA5D44_EXID_MATCH ,
" sama5d44 " , " sama5d4 " ) ,
{ /* sentinel */ } ,
} ;
2013-03-22 13:24:12 +00:00
static void __init sama5_dt_device_init ( void )
{
2015-03-12 15:54:30 +01:00
struct soc_device * soc ;
struct device * soc_dev = NULL ;
soc = at91_soc_init ( sama5_socs ) ;
if ( soc ! = NULL )
soc_dev = soc_device_to_device ( soc ) ;
2016-06-01 14:53:05 +08:00
of_platform_default_populate ( NULL , NULL , soc_dev ) ;
2015-09-30 01:58:40 +02:00
sama5_pm_init ( ) ;
2013-03-22 13:24:12 +00:00
}
2015-07-27 18:27:52 -04:00
static const char * const sama5_dt_board_compat [ ] __initconst = {
2013-03-22 13:24:12 +00:00
" atmel,sama5 " ,
NULL
} ;
2015-01-27 18:41:33 +01:00
DT_MACHINE_START ( sama5_dt , " Atmel SAMA5 " )
2013-03-22 13:24:12 +00:00
/* Maintainer: Atmel */
. init_machine = sama5_dt_device_init ,
. dt_compat = sama5_dt_board_compat ,
MACHINE_END
2014-09-15 18:15:55 +02:00
2015-07-27 18:27:52 -04:00
static const char * const sama5_alt_dt_board_compat [ ] __initconst = {
2015-07-30 19:12:12 +02:00
" atmel,sama5d2 " ,
2014-09-15 18:15:55 +02:00
" atmel,sama5d4 " ,
NULL
} ;
2015-01-27 18:41:33 +01:00
DT_MACHINE_START ( sama5_alt_dt , " Atmel SAMA5 " )
2014-09-15 18:15:55 +02:00
/* Maintainer: Atmel */
. init_machine = sama5_dt_device_init ,
. dt_compat = sama5_alt_dt_board_compat ,
. l2c_aux_mask = ~ 0UL ,
MACHINE_END