18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2005 Nokia Corporation 48c2ecf20Sopenharmony_ci * Author: Paul Mundt <paul.mundt@nokia.com> 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/ 78c2ecf20Sopenharmony_ci * 88c2ecf20Sopenharmony_ci * Modified from the original mach-omap/omap2/board-generic.c did by Paul 98c2ecf20Sopenharmony_ci * to support the OMAP2+ device tree boards with an unique board file. 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci#include <linux/io.h> 128c2ecf20Sopenharmony_ci#include <linux/of_irq.h> 138c2ecf20Sopenharmony_ci#include <linux/of_platform.h> 148c2ecf20Sopenharmony_ci#include <linux/irqdomain.h> 158c2ecf20Sopenharmony_ci#include <linux/clocksource.h> 168c2ecf20Sopenharmony_ci#include <linux/clockchips.h> 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#include <asm/setup.h> 198c2ecf20Sopenharmony_ci#include <asm/mach/arch.h> 208c2ecf20Sopenharmony_ci#include <asm/system_info.h> 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#include "common.h" 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic const struct of_device_id omap_dt_match_table[] __initconst = { 258c2ecf20Sopenharmony_ci { .compatible = "simple-bus", }, 268c2ecf20Sopenharmony_ci { .compatible = "ti,omap-infra", }, 278c2ecf20Sopenharmony_ci { } 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_cistatic void __init __maybe_unused omap_generic_init(void) 318c2ecf20Sopenharmony_ci{ 328c2ecf20Sopenharmony_ci pdata_quirks_init(omap_dt_match_table); 338c2ecf20Sopenharmony_ci omap_soc_device_init(); 348c2ecf20Sopenharmony_ci} 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci/* Clocks are needed early, see drivers/clocksource for the rest */ 378c2ecf20Sopenharmony_cistatic void __init __maybe_unused omap_init_time_of(void) 388c2ecf20Sopenharmony_ci{ 398c2ecf20Sopenharmony_ci omap_clk_init(); 408c2ecf20Sopenharmony_ci timer_probe(); 418c2ecf20Sopenharmony_ci} 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci/* Used by am437x for ARM timer in non-SMP configurations */ 448c2ecf20Sopenharmony_ci#if !defined(CONFIG_SMP) && defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) 458c2ecf20Sopenharmony_civoid tick_broadcast(const struct cpumask *mask) 468c2ecf20Sopenharmony_ci{ 478c2ecf20Sopenharmony_ci} 488c2ecf20Sopenharmony_ci#endif 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_OMAP2420 518c2ecf20Sopenharmony_cistatic const char *const omap242x_boards_compat[] __initconst = { 528c2ecf20Sopenharmony_ci "ti,omap2420", 538c2ecf20Sopenharmony_ci NULL, 548c2ecf20Sopenharmony_ci}; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)") 578c2ecf20Sopenharmony_ci .reserve = omap_reserve, 588c2ecf20Sopenharmony_ci .map_io = omap242x_map_io, 598c2ecf20Sopenharmony_ci .init_early = omap2420_init_early, 608c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 618c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 628c2ecf20Sopenharmony_ci .dt_compat = omap242x_boards_compat, 638c2ecf20Sopenharmony_ci .restart = omap2xxx_restart, 648c2ecf20Sopenharmony_ciMACHINE_END 658c2ecf20Sopenharmony_ci#endif 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_OMAP2430 688c2ecf20Sopenharmony_cistatic const char *const omap243x_boards_compat[] __initconst = { 698c2ecf20Sopenharmony_ci "ti,omap2430", 708c2ecf20Sopenharmony_ci NULL, 718c2ecf20Sopenharmony_ci}; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)") 748c2ecf20Sopenharmony_ci .reserve = omap_reserve, 758c2ecf20Sopenharmony_ci .map_io = omap243x_map_io, 768c2ecf20Sopenharmony_ci .init_early = omap2430_init_early, 778c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 788c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 798c2ecf20Sopenharmony_ci .dt_compat = omap243x_boards_compat, 808c2ecf20Sopenharmony_ci .restart = omap2xxx_restart, 818c2ecf20Sopenharmony_ciMACHINE_END 828c2ecf20Sopenharmony_ci#endif 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP3 858c2ecf20Sopenharmony_ci/* Some boards need board name for legacy userspace in /proc/cpuinfo */ 868c2ecf20Sopenharmony_cistatic const char *const n900_boards_compat[] __initconst = { 878c2ecf20Sopenharmony_ci "nokia,omap3-n900", 888c2ecf20Sopenharmony_ci NULL, 898c2ecf20Sopenharmony_ci}; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci/* Set system_rev from atags */ 928c2ecf20Sopenharmony_cistatic void __init rx51_set_system_rev(const struct tag *tags) 938c2ecf20Sopenharmony_ci{ 948c2ecf20Sopenharmony_ci const struct tag *tag; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci if (tags->hdr.tag != ATAG_CORE) 978c2ecf20Sopenharmony_ci return; 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci for_each_tag(tag, tags) { 1008c2ecf20Sopenharmony_ci if (tag->hdr.tag == ATAG_REVISION) { 1018c2ecf20Sopenharmony_ci system_rev = tag->u.revision.rev; 1028c2ecf20Sopenharmony_ci break; 1038c2ecf20Sopenharmony_ci } 1048c2ecf20Sopenharmony_ci } 1058c2ecf20Sopenharmony_ci} 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci/* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags, 1088c2ecf20Sopenharmony_ci * save them while the data is still not overwritten 1098c2ecf20Sopenharmony_ci */ 1108c2ecf20Sopenharmony_cistatic void __init rx51_reserve(void) 1118c2ecf20Sopenharmony_ci{ 1128c2ecf20Sopenharmony_ci const struct tag *tags = (const struct tag *)(PAGE_OFFSET + 0x100); 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci save_atags(tags); 1158c2ecf20Sopenharmony_ci rx51_set_system_rev(tags); 1168c2ecf20Sopenharmony_ci omap_reserve(); 1178c2ecf20Sopenharmony_ci} 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP3_N900_DT, "Nokia RX-51 board") 1208c2ecf20Sopenharmony_ci .reserve = rx51_reserve, 1218c2ecf20Sopenharmony_ci .map_io = omap3_map_io, 1228c2ecf20Sopenharmony_ci .init_early = omap3430_init_early, 1238c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 1248c2ecf20Sopenharmony_ci .init_late = omap3_init_late, 1258c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 1268c2ecf20Sopenharmony_ci .dt_compat = n900_boards_compat, 1278c2ecf20Sopenharmony_ci .restart = omap3xxx_restart, 1288c2ecf20Sopenharmony_ciMACHINE_END 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci/* Generic omap3 boards, most boards can use these */ 1318c2ecf20Sopenharmony_cistatic const char *const omap3_boards_compat[] __initconst = { 1328c2ecf20Sopenharmony_ci "ti,omap3430", 1338c2ecf20Sopenharmony_ci "ti,omap3", 1348c2ecf20Sopenharmony_ci NULL, 1358c2ecf20Sopenharmony_ci}; 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") 1388c2ecf20Sopenharmony_ci .reserve = omap_reserve, 1398c2ecf20Sopenharmony_ci .map_io = omap3_map_io, 1408c2ecf20Sopenharmony_ci .init_early = omap3430_init_early, 1418c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 1428c2ecf20Sopenharmony_ci .init_late = omap3_init_late, 1438c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 1448c2ecf20Sopenharmony_ci .dt_compat = omap3_boards_compat, 1458c2ecf20Sopenharmony_ci .restart = omap3xxx_restart, 1468c2ecf20Sopenharmony_ciMACHINE_END 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_cistatic const char *const omap36xx_boards_compat[] __initconst = { 1498c2ecf20Sopenharmony_ci "ti,omap3630", 1508c2ecf20Sopenharmony_ci "ti,omap36xx", 1518c2ecf20Sopenharmony_ci NULL, 1528c2ecf20Sopenharmony_ci}; 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)") 1558c2ecf20Sopenharmony_ci .reserve = omap_reserve, 1568c2ecf20Sopenharmony_ci .map_io = omap3_map_io, 1578c2ecf20Sopenharmony_ci .init_early = omap3630_init_early, 1588c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 1598c2ecf20Sopenharmony_ci .init_late = omap3_init_late, 1608c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 1618c2ecf20Sopenharmony_ci .dt_compat = omap36xx_boards_compat, 1628c2ecf20Sopenharmony_ci .restart = omap3xxx_restart, 1638c2ecf20Sopenharmony_ciMACHINE_END 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_cistatic const char *const omap3_gp_boards_compat[] __initconst = { 1668c2ecf20Sopenharmony_ci "ti,omap3-beagle", 1678c2ecf20Sopenharmony_ci "timll,omap3-devkit8000", 1688c2ecf20Sopenharmony_ci NULL, 1698c2ecf20Sopenharmony_ci}; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)") 1728c2ecf20Sopenharmony_ci .reserve = omap_reserve, 1738c2ecf20Sopenharmony_ci .map_io = omap3_map_io, 1748c2ecf20Sopenharmony_ci .init_early = omap3430_init_early, 1758c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 1768c2ecf20Sopenharmony_ci .init_late = omap3_init_late, 1778c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 1788c2ecf20Sopenharmony_ci .dt_compat = omap3_gp_boards_compat, 1798c2ecf20Sopenharmony_ci .restart = omap3xxx_restart, 1808c2ecf20Sopenharmony_ciMACHINE_END 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_cistatic const char *const am3517_boards_compat[] __initconst = { 1838c2ecf20Sopenharmony_ci "ti,am3517", 1848c2ecf20Sopenharmony_ci NULL, 1858c2ecf20Sopenharmony_ci}; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ciDT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)") 1888c2ecf20Sopenharmony_ci .reserve = omap_reserve, 1898c2ecf20Sopenharmony_ci .map_io = omap3_map_io, 1908c2ecf20Sopenharmony_ci .init_early = am35xx_init_early, 1918c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 1928c2ecf20Sopenharmony_ci .init_late = omap3_init_late, 1938c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 1948c2ecf20Sopenharmony_ci .dt_compat = am3517_boards_compat, 1958c2ecf20Sopenharmony_ci .restart = omap3xxx_restart, 1968c2ecf20Sopenharmony_ciMACHINE_END 1978c2ecf20Sopenharmony_ci#endif 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_TI81XX 2008c2ecf20Sopenharmony_cistatic const char *const ti814x_boards_compat[] __initconst = { 2018c2ecf20Sopenharmony_ci "ti,dm8148", 2028c2ecf20Sopenharmony_ci "ti,dm814", 2038c2ecf20Sopenharmony_ci NULL, 2048c2ecf20Sopenharmony_ci}; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ciDT_MACHINE_START(TI814X_DT, "Generic ti814x (Flattened Device Tree)") 2078c2ecf20Sopenharmony_ci .reserve = omap_reserve, 2088c2ecf20Sopenharmony_ci .map_io = ti81xx_map_io, 2098c2ecf20Sopenharmony_ci .init_early = ti814x_init_early, 2108c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 2118c2ecf20Sopenharmony_ci .init_late = ti81xx_init_late, 2128c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 2138c2ecf20Sopenharmony_ci .dt_compat = ti814x_boards_compat, 2148c2ecf20Sopenharmony_ci .restart = ti81xx_restart, 2158c2ecf20Sopenharmony_ciMACHINE_END 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_cistatic const char *const ti816x_boards_compat[] __initconst = { 2188c2ecf20Sopenharmony_ci "ti,dm8168", 2198c2ecf20Sopenharmony_ci "ti,dm816", 2208c2ecf20Sopenharmony_ci NULL, 2218c2ecf20Sopenharmony_ci}; 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ciDT_MACHINE_START(TI816X_DT, "Generic ti816x (Flattened Device Tree)") 2248c2ecf20Sopenharmony_ci .reserve = omap_reserve, 2258c2ecf20Sopenharmony_ci .map_io = ti81xx_map_io, 2268c2ecf20Sopenharmony_ci .init_early = ti816x_init_early, 2278c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 2288c2ecf20Sopenharmony_ci .init_late = ti81xx_init_late, 2298c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 2308c2ecf20Sopenharmony_ci .dt_compat = ti816x_boards_compat, 2318c2ecf20Sopenharmony_ci .restart = ti81xx_restart, 2328c2ecf20Sopenharmony_ciMACHINE_END 2338c2ecf20Sopenharmony_ci#endif 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_AM33XX 2368c2ecf20Sopenharmony_cistatic const char *const am33xx_boards_compat[] __initconst = { 2378c2ecf20Sopenharmony_ci "ti,am33xx", 2388c2ecf20Sopenharmony_ci NULL, 2398c2ecf20Sopenharmony_ci}; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ciDT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)") 2428c2ecf20Sopenharmony_ci .reserve = omap_reserve, 2438c2ecf20Sopenharmony_ci .map_io = am33xx_map_io, 2448c2ecf20Sopenharmony_ci .init_early = am33xx_init_early, 2458c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 2468c2ecf20Sopenharmony_ci .init_late = am33xx_init_late, 2478c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 2488c2ecf20Sopenharmony_ci .dt_compat = am33xx_boards_compat, 2498c2ecf20Sopenharmony_ci .restart = am33xx_restart, 2508c2ecf20Sopenharmony_ciMACHINE_END 2518c2ecf20Sopenharmony_ci#endif 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP4 2548c2ecf20Sopenharmony_cistatic const char *const omap4_boards_compat[] __initconst = { 2558c2ecf20Sopenharmony_ci "ti,omap4460", 2568c2ecf20Sopenharmony_ci "ti,omap4430", 2578c2ecf20Sopenharmony_ci "ti,omap4", 2588c2ecf20Sopenharmony_ci NULL, 2598c2ecf20Sopenharmony_ci}; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") 2628c2ecf20Sopenharmony_ci .l2c_aux_val = OMAP_L2C_AUX_CTRL, 2638c2ecf20Sopenharmony_ci .l2c_aux_mask = 0xcf9fffff, 2648c2ecf20Sopenharmony_ci .l2c_write_sec = omap4_l2c310_write_sec, 2658c2ecf20Sopenharmony_ci .reserve = omap_reserve, 2668c2ecf20Sopenharmony_ci .smp = smp_ops(omap4_smp_ops), 2678c2ecf20Sopenharmony_ci .map_io = omap4_map_io, 2688c2ecf20Sopenharmony_ci .init_early = omap4430_init_early, 2698c2ecf20Sopenharmony_ci .init_irq = omap_gic_of_init, 2708c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 2718c2ecf20Sopenharmony_ci .init_late = omap4430_init_late, 2728c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 2738c2ecf20Sopenharmony_ci .dt_compat = omap4_boards_compat, 2748c2ecf20Sopenharmony_ci .restart = omap44xx_restart, 2758c2ecf20Sopenharmony_ciMACHINE_END 2768c2ecf20Sopenharmony_ci#endif 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_OMAP5 2798c2ecf20Sopenharmony_cistatic const char *const omap5_boards_compat[] __initconst = { 2808c2ecf20Sopenharmony_ci "ti,omap5432", 2818c2ecf20Sopenharmony_ci "ti,omap5430", 2828c2ecf20Sopenharmony_ci "ti,omap5", 2838c2ecf20Sopenharmony_ci NULL, 2848c2ecf20Sopenharmony_ci}; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ciDT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") 2878c2ecf20Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) 2888c2ecf20Sopenharmony_ci .dma_zone_size = SZ_2G, 2898c2ecf20Sopenharmony_ci#endif 2908c2ecf20Sopenharmony_ci .reserve = omap_reserve, 2918c2ecf20Sopenharmony_ci .smp = smp_ops(omap4_smp_ops), 2928c2ecf20Sopenharmony_ci .map_io = omap5_map_io, 2938c2ecf20Sopenharmony_ci .init_early = omap5_init_early, 2948c2ecf20Sopenharmony_ci .init_irq = omap_gic_of_init, 2958c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 2968c2ecf20Sopenharmony_ci .init_late = omap5_init_late, 2978c2ecf20Sopenharmony_ci .init_time = omap5_realtime_timer_init, 2988c2ecf20Sopenharmony_ci .dt_compat = omap5_boards_compat, 2998c2ecf20Sopenharmony_ci .restart = omap44xx_restart, 3008c2ecf20Sopenharmony_ciMACHINE_END 3018c2ecf20Sopenharmony_ci#endif 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_AM43XX 3048c2ecf20Sopenharmony_cistatic const char *const am43_boards_compat[] __initconst = { 3058c2ecf20Sopenharmony_ci "ti,am4372", 3068c2ecf20Sopenharmony_ci "ti,am43", 3078c2ecf20Sopenharmony_ci NULL, 3088c2ecf20Sopenharmony_ci}; 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ciDT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") 3118c2ecf20Sopenharmony_ci .l2c_aux_val = OMAP_L2C_AUX_CTRL, 3128c2ecf20Sopenharmony_ci .l2c_aux_mask = 0xcf9fffff, 3138c2ecf20Sopenharmony_ci .l2c_write_sec = omap4_l2c310_write_sec, 3148c2ecf20Sopenharmony_ci .map_io = am33xx_map_io, 3158c2ecf20Sopenharmony_ci .init_early = am43xx_init_early, 3168c2ecf20Sopenharmony_ci .init_late = am43xx_init_late, 3178c2ecf20Sopenharmony_ci .init_irq = omap_gic_of_init, 3188c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 3198c2ecf20Sopenharmony_ci .init_time = omap_init_time_of, 3208c2ecf20Sopenharmony_ci .dt_compat = am43_boards_compat, 3218c2ecf20Sopenharmony_ci .restart = omap44xx_restart, 3228c2ecf20Sopenharmony_ciMACHINE_END 3238c2ecf20Sopenharmony_ci#endif 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci#ifdef CONFIG_SOC_DRA7XX 3268c2ecf20Sopenharmony_cistatic const char *const dra74x_boards_compat[] __initconst = { 3278c2ecf20Sopenharmony_ci "ti,dra762", 3288c2ecf20Sopenharmony_ci "ti,am5728", 3298c2ecf20Sopenharmony_ci "ti,am5726", 3308c2ecf20Sopenharmony_ci "ti,dra742", 3318c2ecf20Sopenharmony_ci "ti,dra7", 3328c2ecf20Sopenharmony_ci NULL, 3338c2ecf20Sopenharmony_ci}; 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ciDT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") 3368c2ecf20Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) 3378c2ecf20Sopenharmony_ci .dma_zone_size = SZ_2G, 3388c2ecf20Sopenharmony_ci#endif 3398c2ecf20Sopenharmony_ci .reserve = omap_reserve, 3408c2ecf20Sopenharmony_ci .smp = smp_ops(omap4_smp_ops), 3418c2ecf20Sopenharmony_ci .map_io = dra7xx_map_io, 3428c2ecf20Sopenharmony_ci .init_early = dra7xx_init_early, 3438c2ecf20Sopenharmony_ci .init_late = dra7xx_init_late, 3448c2ecf20Sopenharmony_ci .init_irq = omap_gic_of_init, 3458c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 3468c2ecf20Sopenharmony_ci .init_time = omap5_realtime_timer_init, 3478c2ecf20Sopenharmony_ci .dt_compat = dra74x_boards_compat, 3488c2ecf20Sopenharmony_ci .restart = omap44xx_restart, 3498c2ecf20Sopenharmony_ciMACHINE_END 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_cistatic const char *const dra72x_boards_compat[] __initconst = { 3528c2ecf20Sopenharmony_ci "ti,am5718", 3538c2ecf20Sopenharmony_ci "ti,am5716", 3548c2ecf20Sopenharmony_ci "ti,dra722", 3558c2ecf20Sopenharmony_ci "ti,dra718", 3568c2ecf20Sopenharmony_ci NULL, 3578c2ecf20Sopenharmony_ci}; 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ciDT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)") 3608c2ecf20Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) 3618c2ecf20Sopenharmony_ci .dma_zone_size = SZ_2G, 3628c2ecf20Sopenharmony_ci#endif 3638c2ecf20Sopenharmony_ci .reserve = omap_reserve, 3648c2ecf20Sopenharmony_ci .map_io = dra7xx_map_io, 3658c2ecf20Sopenharmony_ci .init_early = dra7xx_init_early, 3668c2ecf20Sopenharmony_ci .init_late = dra7xx_init_late, 3678c2ecf20Sopenharmony_ci .init_irq = omap_gic_of_init, 3688c2ecf20Sopenharmony_ci .init_machine = omap_generic_init, 3698c2ecf20Sopenharmony_ci .init_time = omap5_realtime_timer_init, 3708c2ecf20Sopenharmony_ci .dt_compat = dra72x_boards_compat, 3718c2ecf20Sopenharmony_ci .restart = omap44xx_restart, 3728c2ecf20Sopenharmony_ciMACHINE_END 3738c2ecf20Sopenharmony_ci#endif 374