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 56*ac84b79fSChen-Yu Tsai 57*ac84b79fSChen-Yu Tsai static const char * const sun8i_board_dt_compat[] = { 58*ac84b79fSChen-Yu Tsai "allwinner,sun8i-a23", 59*ac84b79fSChen-Yu Tsai NULL, 60*ac84b79fSChen-Yu Tsai }; 61*ac84b79fSChen-Yu Tsai 62*ac84b79fSChen-Yu Tsai DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family") 63*ac84b79fSChen-Yu Tsai .dt_compat = sun8i_board_dt_compat, 64*ac84b79fSChen-Yu Tsai MACHINE_END 65