forked from Minki/linux
e58cf0193c
The sunxi reset controller code is only used with sun6i (a31). After the platform has been split up into per-soc options, it's now possible to build it without the reset controller code, so the base platform init must not call into the reset driver if that is turned off at compile time. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
56 lines
1.3 KiB
C
56 lines
1.3 KiB
C
/*
|
|
* Device Tree support for Allwinner A1X SoCs
|
|
*
|
|
* Copyright (C) 2012 Maxime Ripard
|
|
*
|
|
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#include <linux/clk-provider.h>
|
|
#include <linux/clocksource.h>
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
static const char * const sunxi_board_dt_compat[] = {
|
|
"allwinner,sun4i-a10",
|
|
"allwinner,sun5i-a10s",
|
|
"allwinner,sun5i-a13",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
|
|
.dt_compat = sunxi_board_dt_compat,
|
|
MACHINE_END
|
|
|
|
static const char * const sun6i_board_dt_compat[] = {
|
|
"allwinner,sun6i-a31",
|
|
NULL,
|
|
};
|
|
|
|
extern void __init sun6i_reset_init(void);
|
|
static void __init sun6i_timer_init(void)
|
|
{
|
|
of_clk_init(NULL);
|
|
if (IS_ENABLED(CONFIG_RESET_CONTROLLER))
|
|
sun6i_reset_init();
|
|
clocksource_of_init();
|
|
}
|
|
|
|
DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family")
|
|
.init_time = sun6i_timer_init,
|
|
.dt_compat = sun6i_board_dt_compat,
|
|
MACHINE_END
|
|
|
|
static const char * const sun7i_board_dt_compat[] = {
|
|
"allwinner,sun7i-a20",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family")
|
|
.dt_compat = sun7i_board_dt_compat,
|
|
MACHINE_END
|