xref: /openbmc/linux/arch/arm/mach-sunxi/sunxi.c (revision ac84b79f)
13b52634fSMaxime Ripard /*
23b52634fSMaxime Ripard  * Device Tree support for Allwinner A1X SoCs
33b52634fSMaxime Ripard  *
43b52634fSMaxime Ripard  * Copyright (C) 2012 Maxime Ripard
53b52634fSMaxime Ripard  *
63b52634fSMaxime Ripard  * Maxime Ripard <maxime.ripard@free-electrons.com>
73b52634fSMaxime Ripard  *
83b52634fSMaxime Ripard  * This file is licensed under the terms of the GNU General Public
93b52634fSMaxime Ripard  * License version 2.  This program is licensed "as is" without any
103b52634fSMaxime Ripard  * warranty of any kind, whether express or implied.
113b52634fSMaxime Ripard  */
123b52634fSMaxime Ripard 
13751b2ac4SMaxime Ripard #include <linux/clk-provider.h>
14751b2ac4SMaxime Ripard #include <linux/clocksource.h>
153b52634fSMaxime Ripard 
163b52634fSMaxime Ripard #include <asm/mach/arch.h>
17bc34b5f2SMaxime Ripard 
183b52634fSMaxime Ripard static const char * const sunxi_board_dt_compat[] = {
1943880f70SMaxime Ripard 	"allwinner,sun4i-a10",
2081265dfbSMaxime Ripard 	"allwinner,sun5i-a10s",
2143880f70SMaxime Ripard 	"allwinner,sun5i-a13",
223b52634fSMaxime Ripard 	NULL,
233b52634fSMaxime Ripard };
243b52634fSMaxime Ripard 
253b52634fSMaxime Ripard DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
263b52634fSMaxime Ripard 	.dt_compat	= sunxi_board_dt_compat,
273b52634fSMaxime Ripard MACHINE_END
2891a31977SMaxime Ripard 
2991a31977SMaxime Ripard static const char * const sun6i_board_dt_compat[] = {
3091a31977SMaxime Ripard 	"allwinner,sun6i-a31",
3191a31977SMaxime Ripard 	NULL,
3291a31977SMaxime Ripard };
3391a31977SMaxime Ripard 
34751b2ac4SMaxime Ripard extern void __init sun6i_reset_init(void);
35751b2ac4SMaxime Ripard static void __init sun6i_timer_init(void)
36751b2ac4SMaxime Ripard {
37751b2ac4SMaxime Ripard 	of_clk_init(NULL);
38e58cf019SArnd Bergmann 	if (IS_ENABLED(CONFIG_RESET_CONTROLLER))
39751b2ac4SMaxime Ripard 		sun6i_reset_init();
40751b2ac4SMaxime Ripard 	clocksource_of_init();
41751b2ac4SMaxime Ripard }
42751b2ac4SMaxime Ripard 
4391a31977SMaxime Ripard DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
44751b2ac4SMaxime Ripard 	.init_time	= sun6i_timer_init,
4591a31977SMaxime Ripard 	.dt_compat	= sun6i_board_dt_compat,
4691a31977SMaxime Ripard MACHINE_END
4791a31977SMaxime Ripard 
4891a31977SMaxime Ripard static const char * const sun7i_board_dt_compat[] = {
4991a31977SMaxime Ripard 	"allwinner,sun7i-a20",
5091a31977SMaxime Ripard 	NULL,
5191a31977SMaxime Ripard };
5291a31977SMaxime Ripard 
5391a31977SMaxime Ripard DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family")
5491a31977SMaxime Ripard 	.dt_compat	= sun7i_board_dt_compat,
553b52634fSMaxime Ripard MACHINE_END
56ac84b79fSChen-Yu Tsai 
57ac84b79fSChen-Yu Tsai static const char * const sun8i_board_dt_compat[] = {
58ac84b79fSChen-Yu Tsai 	"allwinner,sun8i-a23",
59ac84b79fSChen-Yu Tsai 	NULL,
60ac84b79fSChen-Yu Tsai };
61ac84b79fSChen-Yu Tsai 
62ac84b79fSChen-Yu Tsai DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family")
63ac84b79fSChen-Yu Tsai 	.dt_compat	= sun8i_board_dt_compat,
64ac84b79fSChen-Yu Tsai MACHINE_END
65