blob: 43a225f9e71334757a3a4a1817ca60f804404fd1 [file] [log] [blame]
Jean-Christophe PLAGNIOL-VILLARD21d08b92011-04-23 15:28:34 +08001/*
2 * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
3 *
4 * Under GPLv2
5 */
6
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +08007struct at91_init_soc {
Jean-Christophe PLAGNIOL-VILLARD8d39e0fd02012-08-16 17:36:55 +08008 int builtin;
Jean-Christophe PLAGNIOL-VILLARD92100c12011-04-23 15:28:34 +08009 unsigned int *default_irq_priority;
Jean-Christophe PLAGNIOL-VILLARD21d08b92011-04-23 15:28:34 +080010 void (*map_io)(void);
Jean-Christophe PLAGNIOL-VILLARDcfa5a1f2011-10-14 01:17:18 +080011 void (*ioremap_registers)(void);
Jean-Christophe PLAGNIOL-VILLARD51ddec72011-04-24 18:15:34 +080012 void (*register_clocks)(void);
Jean-Christophe PLAGNIOL-VILLARD46539372011-04-24 18:20:28 +080013 void (*init)(void);
Jean-Christophe PLAGNIOL-VILLARD21d08b92011-04-23 15:28:34 +080014};
15
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080016extern struct at91_init_soc at91_boot_soc;
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080017extern struct at91_init_soc at91rm9200_soc;
18extern struct at91_init_soc at91sam9260_soc;
19extern struct at91_init_soc at91sam9261_soc;
20extern struct at91_init_soc at91sam9263_soc;
21extern struct at91_init_soc at91sam9g45_soc;
22extern struct at91_init_soc at91sam9rl_soc;
23extern struct at91_init_soc at91sam9x5_soc;
Hong Xu02059682012-04-17 14:26:30 +080024extern struct at91_init_soc at91sam9n12_soc;
Ludovic Desroches8f4b4792013-03-22 13:24:12 +000025extern struct at91_init_soc sama5d3_soc;
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080026
Jean-Christophe PLAGNIOL-VILLARD8d39e0fd02012-08-16 17:36:55 +080027#define AT91_SOC_START(_name) \
Ludovic Desroches84ddb082013-03-22 13:24:09 +000028struct at91_init_soc __initdata _name##_soc \
Jean-Christophe PLAGNIOL-VILLARD8d39e0fd02012-08-16 17:36:55 +080029 __used \
30 = { \
31 .builtin = 1, \
32
33#define AT91_SOC_END \
34};
35
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080036static inline int at91_soc_is_enabled(void)
37{
Jean-Christophe PLAGNIOL-VILLARD8d39e0fd02012-08-16 17:36:55 +080038 return at91_boot_soc.builtin;
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080039}
40
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080041#if !defined(CONFIG_SOC_AT91RM9200)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080042#define at91rm9200_soc at91_boot_soc
43#endif
44
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080045#if !defined(CONFIG_SOC_AT91SAM9260)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080046#define at91sam9260_soc at91_boot_soc
47#endif
48
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080049#if !defined(CONFIG_SOC_AT91SAM9261)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080050#define at91sam9261_soc at91_boot_soc
51#endif
52
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080053#if !defined(CONFIG_SOC_AT91SAM9263)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080054#define at91sam9263_soc at91_boot_soc
55#endif
56
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080057#if !defined(CONFIG_SOC_AT91SAM9G45)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080058#define at91sam9g45_soc at91_boot_soc
59#endif
60
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080061#if !defined(CONFIG_SOC_AT91SAM9RL)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080062#define at91sam9rl_soc at91_boot_soc
63#endif
64
Jean-Christophe PLAGNIOL-VILLARD1e3ce2b2012-04-06 11:51:50 +080065#if !defined(CONFIG_SOC_AT91SAM9X5)
Jean-Christophe PLAGNIOL-VILLARD8c3583b2011-04-23 22:12:57 +080066#define at91sam9x5_soc at91_boot_soc
67#endif
Hong Xu02059682012-04-17 14:26:30 +080068
69#if !defined(CONFIG_SOC_AT91SAM9N12)
70#define at91sam9n12_soc at91_boot_soc
71#endif
Ludovic Desroches8f4b4792013-03-22 13:24:12 +000072
73#if !defined(CONFIG_SOC_SAMA5D3)
74#define sama5d3_soc at91_boot_soc
75#endif