static void __init armadillo800eva_init(void)
{
- if (of_machine_is_compatible("renesas,armadillo800eva")) {
- board_staging_gic_setup_xlate("arm,pl390", 32);
- board_staging_register_devices(armadillo800eva_devices,
- ARRAY_SIZE(armadillo800eva_devices));
- }
+ board_staging_gic_setup_xlate("arm,pl390", 32);
+ board_staging_register_devices(armadillo800eva_devices,
+ ARRAY_SIZE(armadillo800eva_devices));
}
-device_initcall(armadillo800eva_init);
+board_staging("renesas,armadillo800eva", armadillo800eva_init);
void board_staging_register_devices(const struct board_staging_dev *devs,
unsigned int ndevs);
+#define board_staging(str, fn) \
+static int __init runtime_board_check(void) \
+{ \
+ if (of_machine_is_compatible(str)) \
+ fn(); \
+ \
+ return 0; \
+} \
+ \
+device_initcall(runtime_board_check)
+
#endif /* __BOARD_H__ */
static void __init kzm9d_init(void)
{
- if (of_machine_is_compatible("renesas,kzm9d")) {
- board_staging_gic_setup_xlate("arm,pl390", 32);
+ board_staging_gic_setup_xlate("arm,pl390", 32);
- if (!board_staging_dt_node_available(usbs1_res,
- ARRAY_SIZE(usbs1_res))) {
- board_staging_gic_fixup_resources(usbs1_res,
- ARRAY_SIZE(usbs1_res));
- platform_device_register_simple("emxx_udc", -1, usbs1_res,
- ARRAY_SIZE(usbs1_res));
- }
+ if (!board_staging_dt_node_available(usbs1_res,
+ ARRAY_SIZE(usbs1_res))) {
+ board_staging_gic_fixup_resources(usbs1_res,
+ ARRAY_SIZE(usbs1_res));
+ platform_device_register_simple("emxx_udc", -1, usbs1_res,
+ ARRAY_SIZE(usbs1_res));
}
}
-device_initcall(kzm9d_init);
+board_staging("renesas,kzm9d", kzm9d_init);