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> 15d767af5eSMaxime Ripard #include <linux/init.h> 16f91b7c62SChen-Yu Tsai #include <linux/platform_device.h> 173b52634fSMaxime Ripard 183b52634fSMaxime Ripard #include <asm/mach/arch.h> 19bc34b5f2SMaxime Ripard 20f91b7c62SChen-Yu Tsai static void __init sunxi_dt_cpufreq_init(void) 21f91b7c62SChen-Yu Tsai { 22f91b7c62SChen-Yu Tsai platform_device_register_simple("cpufreq-dt", -1, NULL, 0); 23f91b7c62SChen-Yu Tsai } 24f91b7c62SChen-Yu Tsai 253b52634fSMaxime Ripard static const char * const sunxi_board_dt_compat[] = { 2643880f70SMaxime Ripard "allwinner,sun4i-a10", 2781265dfbSMaxime Ripard "allwinner,sun5i-a10s", 2843880f70SMaxime Ripard "allwinner,sun5i-a13", 29bef6229fSMaxime Ripard "allwinner,sun5i-r8", 303b52634fSMaxime Ripard NULL, 313b52634fSMaxime Ripard }; 323b52634fSMaxime Ripard 33bef6229fSMaxime Ripard DT_MACHINE_START(SUNXI_DT, "Allwinner sun4i/sun5i Families") 343b52634fSMaxime Ripard .dt_compat = sunxi_board_dt_compat, 35f91b7c62SChen-Yu Tsai .init_late = sunxi_dt_cpufreq_init, 363b52634fSMaxime Ripard MACHINE_END 3791a31977SMaxime Ripard 3891a31977SMaxime Ripard static const char * const sun6i_board_dt_compat[] = { 3991a31977SMaxime Ripard "allwinner,sun6i-a31", 40b0f2faa5SHans de Goede "allwinner,sun6i-a31s", 4191a31977SMaxime Ripard NULL, 4291a31977SMaxime Ripard }; 4391a31977SMaxime Ripard 44751b2ac4SMaxime Ripard extern void __init sun6i_reset_init(void); 45751b2ac4SMaxime Ripard static void __init sun6i_timer_init(void) 46751b2ac4SMaxime Ripard { 47751b2ac4SMaxime Ripard of_clk_init(NULL); 48e58cf019SArnd Bergmann if (IS_ENABLED(CONFIG_RESET_CONTROLLER)) 49751b2ac4SMaxime Ripard sun6i_reset_init(); 503722ed23SMarc Zyngier clocksource_probe(); 51751b2ac4SMaxime Ripard } 52751b2ac4SMaxime Ripard 5391a31977SMaxime Ripard DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family") 54751b2ac4SMaxime Ripard .init_time = sun6i_timer_init, 5591a31977SMaxime Ripard .dt_compat = sun6i_board_dt_compat, 56f91b7c62SChen-Yu Tsai .init_late = sunxi_dt_cpufreq_init, 5791a31977SMaxime Ripard MACHINE_END 5891a31977SMaxime Ripard 5991a31977SMaxime Ripard static const char * const sun7i_board_dt_compat[] = { 6091a31977SMaxime Ripard "allwinner,sun7i-a20", 6191a31977SMaxime Ripard NULL, 6291a31977SMaxime Ripard }; 6391a31977SMaxime Ripard 6491a31977SMaxime Ripard DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") 6591a31977SMaxime Ripard .dt_compat = sun7i_board_dt_compat, 66f91b7c62SChen-Yu Tsai .init_late = sunxi_dt_cpufreq_init, 673b52634fSMaxime Ripard MACHINE_END 68ac84b79fSChen-Yu Tsai 69ac84b79fSChen-Yu Tsai static const char * const sun8i_board_dt_compat[] = { 70ac84b79fSChen-Yu Tsai "allwinner,sun8i-a23", 71159870d2SVishnu Patekar "allwinner,sun8i-a33", 721425ec0fSVishnu Patekar "allwinner,sun8i-a83t", 7314a882dfSJens Kuske "allwinner,sun8i-h3", 74ac84b79fSChen-Yu Tsai NULL, 75ac84b79fSChen-Yu Tsai }; 76ac84b79fSChen-Yu Tsai 7714a882dfSJens Kuske DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i Family") 7814a882dfSJens Kuske .init_time = sun6i_timer_init, 79ac84b79fSChen-Yu Tsai .dt_compat = sun8i_board_dt_compat, 80f91b7c62SChen-Yu Tsai .init_late = sunxi_dt_cpufreq_init, 81ac84b79fSChen-Yu Tsai MACHINE_END 823d4c2f1cSChen-Yu Tsai 833d4c2f1cSChen-Yu Tsai static const char * const sun9i_board_dt_compat[] = { 843d4c2f1cSChen-Yu Tsai "allwinner,sun9i-a80", 853d4c2f1cSChen-Yu Tsai NULL, 863d4c2f1cSChen-Yu Tsai }; 873d4c2f1cSChen-Yu Tsai 883d4c2f1cSChen-Yu Tsai DT_MACHINE_START(SUN9I_DT, "Allwinner sun9i Family") 893d4c2f1cSChen-Yu Tsai .dt_compat = sun9i_board_dt_compat, 903d4c2f1cSChen-Yu Tsai MACHINE_END 91