162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2005 Nokia Corporation
462306a36Sopenharmony_ci * Author: Paul Mundt <paul.mundt@nokia.com>
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Modified from the original mach-omap/omap2/board-generic.c did by Paul
962306a36Sopenharmony_ci * to support the OMAP2+ device tree boards with an unique board file.
1062306a36Sopenharmony_ci */
1162306a36Sopenharmony_ci#include <linux/io.h>
1262306a36Sopenharmony_ci#include <linux/irqdomain.h>
1362306a36Sopenharmony_ci#include <linux/clocksource.h>
1462306a36Sopenharmony_ci#include <linux/clockchips.h>
1562306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#include <asm/setup.h>
1862306a36Sopenharmony_ci#include <asm/mach/arch.h>
1962306a36Sopenharmony_ci#include <asm/system_info.h>
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#include "common.h"
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistatic const struct of_device_id omap_dt_match_table[] __initconst = {
2462306a36Sopenharmony_ci	{ .compatible = "simple-bus", },
2562306a36Sopenharmony_ci	{ .compatible = "ti,omap-infra", },
2662306a36Sopenharmony_ci	{ }
2762306a36Sopenharmony_ci};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic void __init __maybe_unused omap_generic_init(void)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	pdata_quirks_init(omap_dt_match_table);
3262306a36Sopenharmony_ci	omap_soc_device_init();
3362306a36Sopenharmony_ci}
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci/* Clocks are needed early, see drivers/clocksource for the rest */
3662306a36Sopenharmony_cistatic void __init __maybe_unused omap_init_time_of(void)
3762306a36Sopenharmony_ci{
3862306a36Sopenharmony_ci	omap_clk_init();
3962306a36Sopenharmony_ci	timer_probe();
4062306a36Sopenharmony_ci}
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci/* Used by am437x for ARM timer in non-SMP configurations */
4362306a36Sopenharmony_ci#if !defined(CONFIG_SMP) && defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)
4462306a36Sopenharmony_civoid tick_broadcast(const struct cpumask *mask)
4562306a36Sopenharmony_ci{
4662306a36Sopenharmony_ci}
4762306a36Sopenharmony_ci#endif
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#ifdef CONFIG_SOC_OMAP2420
5062306a36Sopenharmony_cistatic const char *const omap242x_boards_compat[] __initconst = {
5162306a36Sopenharmony_ci	"ti,omap2420",
5262306a36Sopenharmony_ci	NULL,
5362306a36Sopenharmony_ci};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciDT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
5662306a36Sopenharmony_ci	.reserve	= omap_reserve,
5762306a36Sopenharmony_ci	.map_io		= omap242x_map_io,
5862306a36Sopenharmony_ci	.init_early	= omap2420_init_early,
5962306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
6062306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
6162306a36Sopenharmony_ci	.dt_compat	= omap242x_boards_compat,
6262306a36Sopenharmony_ci	.restart	= omap2xxx_restart,
6362306a36Sopenharmony_ciMACHINE_END
6462306a36Sopenharmony_ci#endif
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci#ifdef CONFIG_SOC_OMAP2430
6762306a36Sopenharmony_cistatic const char *const omap243x_boards_compat[] __initconst = {
6862306a36Sopenharmony_ci	"ti,omap2430",
6962306a36Sopenharmony_ci	NULL,
7062306a36Sopenharmony_ci};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciDT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
7362306a36Sopenharmony_ci	.reserve	= omap_reserve,
7462306a36Sopenharmony_ci	.map_io		= omap243x_map_io,
7562306a36Sopenharmony_ci	.init_early	= omap2430_init_early,
7662306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
7762306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
7862306a36Sopenharmony_ci	.dt_compat	= omap243x_boards_compat,
7962306a36Sopenharmony_ci	.restart	= omap2xxx_restart,
8062306a36Sopenharmony_ciMACHINE_END
8162306a36Sopenharmony_ci#endif
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP3
8462306a36Sopenharmony_ci/* Some boards need board name for legacy userspace in /proc/cpuinfo */
8562306a36Sopenharmony_cistatic const char *const n900_boards_compat[] __initconst = {
8662306a36Sopenharmony_ci	"nokia,omap3-n900",
8762306a36Sopenharmony_ci	NULL,
8862306a36Sopenharmony_ci};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci/* Set system_rev from atags */
9162306a36Sopenharmony_cistatic void __init rx51_set_system_rev(const struct tag *tags)
9262306a36Sopenharmony_ci{
9362306a36Sopenharmony_ci	const struct tag *tag;
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	if (tags->hdr.tag != ATAG_CORE)
9662306a36Sopenharmony_ci		return;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci	for_each_tag(tag, tags) {
9962306a36Sopenharmony_ci		if (tag->hdr.tag == ATAG_REVISION) {
10062306a36Sopenharmony_ci			system_rev = tag->u.revision.rev;
10162306a36Sopenharmony_ci			break;
10262306a36Sopenharmony_ci		}
10362306a36Sopenharmony_ci	}
10462306a36Sopenharmony_ci}
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci/* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags,
10762306a36Sopenharmony_ci * save them while the data is still not overwritten
10862306a36Sopenharmony_ci */
10962306a36Sopenharmony_cistatic void __init rx51_reserve(void)
11062306a36Sopenharmony_ci{
11162306a36Sopenharmony_ci	const struct tag *tags = (const struct tag *)(PAGE_OFFSET + 0x100);
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci	save_atags(tags);
11462306a36Sopenharmony_ci	rx51_set_system_rev(tags);
11562306a36Sopenharmony_ci	omap_reserve();
11662306a36Sopenharmony_ci}
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciDT_MACHINE_START(OMAP3_N900_DT, "Nokia RX-51 board")
11962306a36Sopenharmony_ci	.reserve	= rx51_reserve,
12062306a36Sopenharmony_ci	.map_io		= omap3_map_io,
12162306a36Sopenharmony_ci	.init_early	= omap3430_init_early,
12262306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
12362306a36Sopenharmony_ci	.init_late	= omap3_init_late,
12462306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
12562306a36Sopenharmony_ci	.dt_compat	= n900_boards_compat,
12662306a36Sopenharmony_ci	.restart	= omap3xxx_restart,
12762306a36Sopenharmony_ciMACHINE_END
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci/* Generic omap3 boards, most boards can use these */
13062306a36Sopenharmony_cistatic const char *const omap3_boards_compat[] __initconst = {
13162306a36Sopenharmony_ci	"ti,omap3430",
13262306a36Sopenharmony_ci	"ti,omap3",
13362306a36Sopenharmony_ci	NULL,
13462306a36Sopenharmony_ci};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciDT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
13762306a36Sopenharmony_ci	.reserve	= omap_reserve,
13862306a36Sopenharmony_ci	.map_io		= omap3_map_io,
13962306a36Sopenharmony_ci	.init_early	= omap3430_init_early,
14062306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
14162306a36Sopenharmony_ci	.init_late	= omap3_init_late,
14262306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
14362306a36Sopenharmony_ci	.dt_compat	= omap3_boards_compat,
14462306a36Sopenharmony_ci	.restart	= omap3xxx_restart,
14562306a36Sopenharmony_ciMACHINE_END
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_cistatic const char *const omap36xx_boards_compat[] __initconst = {
14862306a36Sopenharmony_ci	"ti,omap3630",
14962306a36Sopenharmony_ci	"ti,omap36xx",
15062306a36Sopenharmony_ci	NULL,
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ciDT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
15462306a36Sopenharmony_ci	.reserve	= omap_reserve,
15562306a36Sopenharmony_ci	.map_io		= omap3_map_io,
15662306a36Sopenharmony_ci	.init_early	= omap3630_init_early,
15762306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
15862306a36Sopenharmony_ci	.init_late	= omap3_init_late,
15962306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
16062306a36Sopenharmony_ci	.dt_compat	= omap36xx_boards_compat,
16162306a36Sopenharmony_ci	.restart	= omap3xxx_restart,
16262306a36Sopenharmony_ciMACHINE_END
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cistatic const char *const omap3_gp_boards_compat[] __initconst = {
16562306a36Sopenharmony_ci	"ti,omap3-beagle",
16662306a36Sopenharmony_ci	"timll,omap3-devkit8000",
16762306a36Sopenharmony_ci	NULL,
16862306a36Sopenharmony_ci};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ciDT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
17162306a36Sopenharmony_ci	.reserve	= omap_reserve,
17262306a36Sopenharmony_ci	.map_io		= omap3_map_io,
17362306a36Sopenharmony_ci	.init_early	= omap3430_init_early,
17462306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
17562306a36Sopenharmony_ci	.init_late	= omap3_init_late,
17662306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
17762306a36Sopenharmony_ci	.dt_compat	= omap3_gp_boards_compat,
17862306a36Sopenharmony_ci	.restart	= omap3xxx_restart,
17962306a36Sopenharmony_ciMACHINE_END
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic const char *const am3517_boards_compat[] __initconst = {
18262306a36Sopenharmony_ci	"ti,am3517",
18362306a36Sopenharmony_ci	NULL,
18462306a36Sopenharmony_ci};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciDT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)")
18762306a36Sopenharmony_ci	.reserve	= omap_reserve,
18862306a36Sopenharmony_ci	.map_io		= omap3_map_io,
18962306a36Sopenharmony_ci	.init_early	= am35xx_init_early,
19062306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
19162306a36Sopenharmony_ci	.init_late	= omap3_init_late,
19262306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
19362306a36Sopenharmony_ci	.dt_compat	= am3517_boards_compat,
19462306a36Sopenharmony_ci	.restart	= omap3xxx_restart,
19562306a36Sopenharmony_ciMACHINE_END
19662306a36Sopenharmony_ci#endif
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci#ifdef CONFIG_SOC_TI81XX
19962306a36Sopenharmony_cistatic const char *const ti814x_boards_compat[] __initconst = {
20062306a36Sopenharmony_ci	"ti,dm8148",
20162306a36Sopenharmony_ci	"ti,dm814",
20262306a36Sopenharmony_ci	NULL,
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ciDT_MACHINE_START(TI814X_DT, "Generic ti814x (Flattened Device Tree)")
20662306a36Sopenharmony_ci	.reserve	= omap_reserve,
20762306a36Sopenharmony_ci	.map_io		= ti81xx_map_io,
20862306a36Sopenharmony_ci	.init_early	= ti814x_init_early,
20962306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
21062306a36Sopenharmony_ci	.init_late	= ti81xx_init_late,
21162306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
21262306a36Sopenharmony_ci	.dt_compat	= ti814x_boards_compat,
21362306a36Sopenharmony_ci	.restart	= ti81xx_restart,
21462306a36Sopenharmony_ciMACHINE_END
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_cistatic const char *const ti816x_boards_compat[] __initconst = {
21762306a36Sopenharmony_ci	"ti,dm8168",
21862306a36Sopenharmony_ci	"ti,dm816",
21962306a36Sopenharmony_ci	NULL,
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ciDT_MACHINE_START(TI816X_DT, "Generic ti816x (Flattened Device Tree)")
22362306a36Sopenharmony_ci	.reserve	= omap_reserve,
22462306a36Sopenharmony_ci	.map_io		= ti81xx_map_io,
22562306a36Sopenharmony_ci	.init_early	= ti816x_init_early,
22662306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
22762306a36Sopenharmony_ci	.init_late	= ti81xx_init_late,
22862306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
22962306a36Sopenharmony_ci	.dt_compat	= ti816x_boards_compat,
23062306a36Sopenharmony_ci	.restart	= ti81xx_restart,
23162306a36Sopenharmony_ciMACHINE_END
23262306a36Sopenharmony_ci#endif
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci#ifdef CONFIG_SOC_AM33XX
23562306a36Sopenharmony_cistatic const char *const am33xx_boards_compat[] __initconst = {
23662306a36Sopenharmony_ci	"ti,am33xx",
23762306a36Sopenharmony_ci	NULL,
23862306a36Sopenharmony_ci};
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ciDT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
24162306a36Sopenharmony_ci	.reserve	= omap_reserve,
24262306a36Sopenharmony_ci	.map_io		= am33xx_map_io,
24362306a36Sopenharmony_ci	.init_early	= am33xx_init_early,
24462306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
24562306a36Sopenharmony_ci	.init_late	= am33xx_init_late,
24662306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
24762306a36Sopenharmony_ci	.dt_compat	= am33xx_boards_compat,
24862306a36Sopenharmony_ci	.restart	= am33xx_restart,
24962306a36Sopenharmony_ciMACHINE_END
25062306a36Sopenharmony_ci#endif
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci#ifdef CONFIG_ARCH_OMAP4
25362306a36Sopenharmony_cistatic const char *const omap4_boards_compat[] __initconst = {
25462306a36Sopenharmony_ci	"ti,omap4460",
25562306a36Sopenharmony_ci	"ti,omap4430",
25662306a36Sopenharmony_ci	"ti,omap4",
25762306a36Sopenharmony_ci	NULL,
25862306a36Sopenharmony_ci};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ciDT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
26162306a36Sopenharmony_ci	.l2c_aux_val	= OMAP_L2C_AUX_CTRL,
26262306a36Sopenharmony_ci	.l2c_aux_mask	= 0xcf9fffff,
26362306a36Sopenharmony_ci	.l2c_write_sec	= omap4_l2c310_write_sec,
26462306a36Sopenharmony_ci	.reserve	= omap_reserve,
26562306a36Sopenharmony_ci	.smp		= smp_ops(omap4_smp_ops),
26662306a36Sopenharmony_ci	.map_io		= omap4_map_io,
26762306a36Sopenharmony_ci	.init_early	= omap4430_init_early,
26862306a36Sopenharmony_ci	.init_irq	= omap_gic_of_init,
26962306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
27062306a36Sopenharmony_ci	.init_late	= omap4430_init_late,
27162306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
27262306a36Sopenharmony_ci	.dt_compat	= omap4_boards_compat,
27362306a36Sopenharmony_ci	.restart	= omap44xx_restart,
27462306a36Sopenharmony_ciMACHINE_END
27562306a36Sopenharmony_ci#endif
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci#ifdef CONFIG_SOC_OMAP5
27862306a36Sopenharmony_cistatic const char *const omap5_boards_compat[] __initconst = {
27962306a36Sopenharmony_ci	"ti,omap5432",
28062306a36Sopenharmony_ci	"ti,omap5430",
28162306a36Sopenharmony_ci	"ti,omap5",
28262306a36Sopenharmony_ci	NULL,
28362306a36Sopenharmony_ci};
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ciDT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
28662306a36Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
28762306a36Sopenharmony_ci	.dma_zone_size	= SZ_2G,
28862306a36Sopenharmony_ci#endif
28962306a36Sopenharmony_ci	.reserve	= omap_reserve,
29062306a36Sopenharmony_ci	.smp		= smp_ops(omap4_smp_ops),
29162306a36Sopenharmony_ci	.map_io		= omap5_map_io,
29262306a36Sopenharmony_ci	.init_early	= omap5_init_early,
29362306a36Sopenharmony_ci	.init_irq	= omap_gic_of_init,
29462306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
29562306a36Sopenharmony_ci	.init_late	= omap5_init_late,
29662306a36Sopenharmony_ci	.init_time	= omap5_realtime_timer_init,
29762306a36Sopenharmony_ci	.dt_compat	= omap5_boards_compat,
29862306a36Sopenharmony_ci	.restart	= omap44xx_restart,
29962306a36Sopenharmony_ciMACHINE_END
30062306a36Sopenharmony_ci#endif
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_ci#ifdef CONFIG_SOC_AM43XX
30362306a36Sopenharmony_cistatic const char *const am43_boards_compat[] __initconst = {
30462306a36Sopenharmony_ci	"ti,am4372",
30562306a36Sopenharmony_ci	"ti,am43",
30662306a36Sopenharmony_ci	NULL,
30762306a36Sopenharmony_ci};
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ciDT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
31062306a36Sopenharmony_ci	.l2c_aux_val	= OMAP_L2C_AUX_CTRL,
31162306a36Sopenharmony_ci	.l2c_aux_mask	= 0xcf9fffff,
31262306a36Sopenharmony_ci	.l2c_write_sec	= omap4_l2c310_write_sec,
31362306a36Sopenharmony_ci	.map_io		= am33xx_map_io,
31462306a36Sopenharmony_ci	.init_early	= am43xx_init_early,
31562306a36Sopenharmony_ci	.init_late	= am43xx_init_late,
31662306a36Sopenharmony_ci	.init_irq	= omap_gic_of_init,
31762306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
31862306a36Sopenharmony_ci	.init_time	= omap_init_time_of,
31962306a36Sopenharmony_ci	.dt_compat	= am43_boards_compat,
32062306a36Sopenharmony_ci	.restart	= omap44xx_restart,
32162306a36Sopenharmony_ciMACHINE_END
32262306a36Sopenharmony_ci#endif
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ci#ifdef CONFIG_SOC_DRA7XX
32562306a36Sopenharmony_cistatic const char *const dra74x_boards_compat[] __initconst = {
32662306a36Sopenharmony_ci	"ti,dra762",
32762306a36Sopenharmony_ci	"ti,am5728",
32862306a36Sopenharmony_ci	"ti,am5726",
32962306a36Sopenharmony_ci	"ti,dra742",
33062306a36Sopenharmony_ci	"ti,dra7",
33162306a36Sopenharmony_ci	NULL,
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ciDT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
33562306a36Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
33662306a36Sopenharmony_ci	.dma_zone_size	= SZ_2G,
33762306a36Sopenharmony_ci#endif
33862306a36Sopenharmony_ci	.reserve	= omap_reserve,
33962306a36Sopenharmony_ci	.smp		= smp_ops(omap4_smp_ops),
34062306a36Sopenharmony_ci	.map_io		= dra7xx_map_io,
34162306a36Sopenharmony_ci	.init_early	= dra7xx_init_early,
34262306a36Sopenharmony_ci	.init_late	= dra7xx_init_late,
34362306a36Sopenharmony_ci	.init_irq	= omap_gic_of_init,
34462306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
34562306a36Sopenharmony_ci	.init_time	= omap5_realtime_timer_init,
34662306a36Sopenharmony_ci	.dt_compat	= dra74x_boards_compat,
34762306a36Sopenharmony_ci	.restart	= omap44xx_restart,
34862306a36Sopenharmony_ciMACHINE_END
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_cistatic const char *const dra72x_boards_compat[] __initconst = {
35162306a36Sopenharmony_ci	"ti,am5718",
35262306a36Sopenharmony_ci	"ti,am5716",
35362306a36Sopenharmony_ci	"ti,dra722",
35462306a36Sopenharmony_ci	"ti,dra718",
35562306a36Sopenharmony_ci	NULL,
35662306a36Sopenharmony_ci};
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ciDT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)")
35962306a36Sopenharmony_ci#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
36062306a36Sopenharmony_ci	.dma_zone_size	= SZ_2G,
36162306a36Sopenharmony_ci#endif
36262306a36Sopenharmony_ci	.reserve	= omap_reserve,
36362306a36Sopenharmony_ci	.map_io		= dra7xx_map_io,
36462306a36Sopenharmony_ci	.init_early	= dra7xx_init_early,
36562306a36Sopenharmony_ci	.init_late	= dra7xx_init_late,
36662306a36Sopenharmony_ci	.init_irq	= omap_gic_of_init,
36762306a36Sopenharmony_ci	.init_machine	= omap_generic_init,
36862306a36Sopenharmony_ci	.init_time	= omap5_realtime_timer_init,
36962306a36Sopenharmony_ci	.dt_compat	= dra72x_boards_compat,
37062306a36Sopenharmony_ci	.restart	= omap44xx_restart,
37162306a36Sopenharmony_ciMACHINE_END
37262306a36Sopenharmony_ci#endif
373