arm: at91: use macro to declare soc boot data

Instead of check the pointer of the init function, check the new builtin bool
to known if the soc is enabled.

This is needed as with the switch to the pinctrl the init will be NULL on pure
DT SoC.
Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
parent 4d7127da
...@@ -361,10 +361,10 @@ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -361,10 +361,10 @@ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = {
0 /* Advanced Interrupt Controller (IRQ6) */ 0 /* Advanced Interrupt Controller (IRQ6) */
}; };
struct at91_init_soc __initdata at91rm9200_soc = { AT91_SOC_START(rm9200)
.map_io = at91rm9200_map_io, .map_io = at91rm9200_map_io,
.default_irq_priority = at91rm9200_default_irq_priority, .default_irq_priority = at91rm9200_default_irq_priority,
.ioremap_registers = at91rm9200_ioremap_registers, .ioremap_registers = at91rm9200_ioremap_registers,
.register_clocks = at91rm9200_register_clocks, .register_clocks = at91rm9200_register_clocks,
.init = at91rm9200_initialize, .init = at91rm9200_initialize,
}; AT91_SOC_END
...@@ -390,10 +390,10 @@ static unsigned int at91sam9260_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -390,10 +390,10 @@ static unsigned int at91sam9260_default_irq_priority[NR_AIC_IRQS] __initdata = {
0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */
}; };
struct at91_init_soc __initdata at91sam9260_soc = { AT91_SOC_START(sam9260)
.map_io = at91sam9260_map_io, .map_io = at91sam9260_map_io,
.default_irq_priority = at91sam9260_default_irq_priority, .default_irq_priority = at91sam9260_default_irq_priority,
.ioremap_registers = at91sam9260_ioremap_registers, .ioremap_registers = at91sam9260_ioremap_registers,
.register_clocks = at91sam9260_register_clocks, .register_clocks = at91sam9260_register_clocks,
.init = at91sam9260_initialize, .init = at91sam9260_initialize,
}; AT91_SOC_END
...@@ -334,10 +334,10 @@ static unsigned int at91sam9261_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -334,10 +334,10 @@ static unsigned int at91sam9261_default_irq_priority[NR_AIC_IRQS] __initdata = {
0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */
}; };
struct at91_init_soc __initdata at91sam9261_soc = { AT91_SOC_START(sam9261)
.map_io = at91sam9261_map_io, .map_io = at91sam9261_map_io,
.default_irq_priority = at91sam9261_default_irq_priority, .default_irq_priority = at91sam9261_default_irq_priority,
.ioremap_registers = at91sam9261_ioremap_registers, .ioremap_registers = at91sam9261_ioremap_registers,
.register_clocks = at91sam9261_register_clocks, .register_clocks = at91sam9261_register_clocks,
.init = at91sam9261_initialize, .init = at91sam9261_initialize,
}; AT91_SOC_END
...@@ -365,10 +365,10 @@ static unsigned int at91sam9263_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -365,10 +365,10 @@ static unsigned int at91sam9263_default_irq_priority[NR_AIC_IRQS] __initdata = {
0, /* Advanced Interrupt Controller (IRQ1) */ 0, /* Advanced Interrupt Controller (IRQ1) */
}; };
struct at91_init_soc __initdata at91sam9263_soc = { AT91_SOC_START(sam9263)
.map_io = at91sam9263_map_io, .map_io = at91sam9263_map_io,
.default_irq_priority = at91sam9263_default_irq_priority, .default_irq_priority = at91sam9263_default_irq_priority,
.ioremap_registers = at91sam9263_ioremap_registers, .ioremap_registers = at91sam9263_ioremap_registers,
.register_clocks = at91sam9263_register_clocks, .register_clocks = at91sam9263_register_clocks,
.init = at91sam9263_initialize, .init = at91sam9263_initialize,
}; AT91_SOC_END
...@@ -409,10 +409,10 @@ static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -409,10 +409,10 @@ static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = {
0, /* Advanced Interrupt Controller (IRQ0) */ 0, /* Advanced Interrupt Controller (IRQ0) */
}; };
struct at91_init_soc __initdata at91sam9g45_soc = { AT91_SOC_START(sam9g45)
.map_io = at91sam9g45_map_io, .map_io = at91sam9g45_map_io,
.default_irq_priority = at91sam9g45_default_irq_priority, .default_irq_priority = at91sam9g45_default_irq_priority,
.ioremap_registers = at91sam9g45_ioremap_registers, .ioremap_registers = at91sam9g45_ioremap_registers,
.register_clocks = at91sam9g45_register_clocks, .register_clocks = at91sam9g45_register_clocks,
.init = at91sam9g45_initialize, .init = at91sam9g45_initialize,
}; AT91_SOC_END
...@@ -228,8 +228,8 @@ void __init at91sam9n12_initialize(void) ...@@ -228,8 +228,8 @@ void __init at91sam9n12_initialize(void)
at91_gpio_init(NULL, 0); at91_gpio_init(NULL, 0);
} }
struct at91_init_soc __initdata at91sam9n12_soc = { AT91_SOC_START(sam9n12)
.map_io = at91sam9n12_map_io, .map_io = at91sam9n12_map_io,
.register_clocks = at91sam9n12_register_clocks, .register_clocks = at91sam9n12_register_clocks,
.init = at91sam9n12_initialize, .init = at91sam9n12_initialize,
}; AT91_SOC_END
...@@ -338,10 +338,10 @@ static unsigned int at91sam9rl_default_irq_priority[NR_AIC_IRQS] __initdata = { ...@@ -338,10 +338,10 @@ static unsigned int at91sam9rl_default_irq_priority[NR_AIC_IRQS] __initdata = {
0, /* Advanced Interrupt Controller */ 0, /* Advanced Interrupt Controller */
}; };
struct at91_init_soc __initdata at91sam9rl_soc = { AT91_SOC_START(sam9rl)
.map_io = at91sam9rl_map_io, .map_io = at91sam9rl_map_io,
.default_irq_priority = at91sam9rl_default_irq_priority, .default_irq_priority = at91sam9rl_default_irq_priority,
.ioremap_registers = at91sam9rl_ioremap_registers, .ioremap_registers = at91sam9rl_ioremap_registers,
.register_clocks = at91sam9rl_register_clocks, .register_clocks = at91sam9rl_register_clocks,
.init = at91sam9rl_initialize, .init = at91sam9rl_initialize,
}; AT91_SOC_END
...@@ -323,8 +323,8 @@ void __init at91sam9x5_initialize(void) ...@@ -323,8 +323,8 @@ void __init at91sam9x5_initialize(void)
* Interrupt initialization * Interrupt initialization
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
struct at91_init_soc __initdata at91sam9x5_soc = { AT91_SOC_START(sam9x5)
.map_io = at91sam9x5_map_io, .map_io = at91sam9x5_map_io,
.register_clocks = at91sam9x5_register_clocks, .register_clocks = at91sam9x5_register_clocks,
.init = at91sam9x5_initialize, .init = at91sam9x5_initialize,
}; AT91_SOC_END
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
*/ */
struct at91_init_soc { struct at91_init_soc {
int builtin;
unsigned int *default_irq_priority; unsigned int *default_irq_priority;
void (*map_io)(void); void (*map_io)(void);
void (*ioremap_registers)(void); void (*ioremap_registers)(void);
...@@ -22,9 +23,18 @@ extern struct at91_init_soc at91sam9rl_soc; ...@@ -22,9 +23,18 @@ extern struct at91_init_soc at91sam9rl_soc;
extern struct at91_init_soc at91sam9x5_soc; extern struct at91_init_soc at91sam9x5_soc;
extern struct at91_init_soc at91sam9n12_soc; extern struct at91_init_soc at91sam9n12_soc;
#define AT91_SOC_START(_name) \
struct at91_init_soc __initdata at91##_name##_soc \
__used \
= { \
.builtin = 1, \
#define AT91_SOC_END \
};
static inline int at91_soc_is_enabled(void) static inline int at91_soc_is_enabled(void)
{ {
return at91_boot_soc.init != NULL; return at91_boot_soc.builtin;
} }
#if !defined(CONFIG_SOC_AT91RM9200) #if !defined(CONFIG_SOC_AT91RM9200)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment