aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-at91/board-dt-sam9.c20
-rw-r--r--arch/arm/mach-at91/board-dt-sama5.c2
-rw-r--r--arch/arm/mach-at91/generic.h2
-rw-r--r--arch/arm/mach-at91/pm.c7
4 files changed, 30 insertions, 1 deletions
diff --git a/arch/arm/mach-at91/board-dt-sam9.c b/arch/arm/mach-at91/board-dt-sam9.c
index 0fe1ced608c5..c8252ddac6f0 100644
--- a/arch/arm/mach-at91/board-dt-sam9.c
+++ b/arch/arm/mach-at91/board-dt-sam9.c
@@ -61,3 +61,23 @@ DT_MACHINE_START(at91sam9g45_dt, "Atmel AT91SAM9G45")
61 .init_machine = sam9g45_dt_device_init, 61 .init_machine = sam9g45_dt_device_init,
62 .dt_compat = at91_9g45_board_compat, 62 .dt_compat = at91_9g45_board_compat,
63MACHINE_END 63MACHINE_END
64
65static void __init sam9x5_dt_device_init(void)
66{
67 at91_sam9x5_pm_init();
68 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
69}
70
71static const char *at91_9x5_board_compat[] __initconst = {
72 "atmel,at91sam9x5",
73 "atmel,at91sam9n12",
74 NULL
75};
76
77DT_MACHINE_START(at91sam9x5_dt, "Atmel AT91SAM9")
78 /* Maintainer: Atmel */
79 .map_io = at91_map_io,
80 .init_early = at91_dt_initialize,
81 .init_machine = sam9x5_dt_device_init,
82 .dt_compat = at91_9x5_board_compat,
83MACHINE_END
diff --git a/arch/arm/mach-at91/board-dt-sama5.c b/arch/arm/mach-at91/board-dt-sama5.c
index 44d372a22a29..b7338966c8ab 100644
--- a/arch/arm/mach-at91/board-dt-sama5.c
+++ b/arch/arm/mach-at91/board-dt-sama5.c
@@ -28,7 +28,7 @@
28 28
29static void __init sama5_dt_device_init(void) 29static void __init sama5_dt_device_init(void)
30{ 30{
31 at91_sam9260_pm_init(); 31 at91_sam9x5_pm_init();
32 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 32 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
33} 33}
34 34
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 44fc725edcf1..a8ee83ef6cd4 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -36,10 +36,12 @@ extern void at91_ioremap_matrix(u32 base_addr);
36extern void __init at91_rm9200_pm_init(void); 36extern void __init at91_rm9200_pm_init(void);
37extern void __init at91_sam9260_pm_init(void); 37extern void __init at91_sam9260_pm_init(void);
38extern void __init at91_sam9g45_pm_init(void); 38extern void __init at91_sam9g45_pm_init(void);
39extern void __init at91_sam9x5_pm_init(void);
39#else 40#else
40void __init at91_rm9200_pm_init(void) { } 41void __init at91_rm9200_pm_init(void) { }
41void __init at91_sam9260_pm_init(void) { } 42void __init at91_sam9260_pm_init(void) { }
42void __init at91_sam9g45_pm_init(void) { } 43void __init at91_sam9g45_pm_init(void) { }
44void __init at91_sam9x5_pm_init(void) { }
43#endif 45#endif
44 46
45#endif /* _AT91_GENERIC_H */ 47#endif /* _AT91_GENERIC_H */
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 81f2f12d3cc1..87c1fd8aa1b6 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -306,3 +306,10 @@ void __init at91_sam9g45_pm_init(void)
306 at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR; 306 at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
307 return at91_pm_init(); 307 return at91_pm_init();
308} 308}
309
310void __init at91_sam9x5_pm_init(void)
311{
312 at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
313 at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
314 return at91_pm_init();
315}