root/arch/arm/mach-omap2/board-generic.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. omap_generic_init
  2. rx51_set_system_rev
  3. rx51_reserve

   1 // SPDX-License-Identifier: GPL-2.0-only
   2 /*
   3  * Copyright (C) 2005 Nokia Corporation
   4  * Author: Paul Mundt <paul.mundt@nokia.com>
   5  *
   6  * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
   7  *
   8  * Modified from the original mach-omap/omap2/board-generic.c did by Paul
   9  * to support the OMAP2+ device tree boards with an unique board file.
  10  */
  11 #include <linux/io.h>
  12 #include <linux/of_irq.h>
  13 #include <linux/of_platform.h>
  14 #include <linux/irqdomain.h>
  15 
  16 #include <asm/setup.h>
  17 #include <asm/mach/arch.h>
  18 #include <asm/system_info.h>
  19 
  20 #include "common.h"
  21 
  22 static const struct of_device_id omap_dt_match_table[] __initconst = {
  23         { .compatible = "simple-bus", },
  24         { .compatible = "ti,omap-infra", },
  25         { }
  26 };
  27 
  28 static void __init __maybe_unused omap_generic_init(void)
  29 {
  30         pdata_quirks_init(omap_dt_match_table);
  31         omap_soc_device_init();
  32 }
  33 
  34 #ifdef CONFIG_SOC_OMAP2420
  35 static const char *const omap242x_boards_compat[] __initconst = {
  36         "ti,omap2420",
  37         NULL,
  38 };
  39 
  40 DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
  41         .reserve        = omap_reserve,
  42         .map_io         = omap242x_map_io,
  43         .init_early     = omap2420_init_early,
  44         .init_machine   = omap_generic_init,
  45         .init_time      = omap_init_time,
  46         .dt_compat      = omap242x_boards_compat,
  47         .restart        = omap2xxx_restart,
  48 MACHINE_END
  49 #endif
  50 
  51 #ifdef CONFIG_SOC_OMAP2430
  52 static const char *const omap243x_boards_compat[] __initconst = {
  53         "ti,omap2430",
  54         NULL,
  55 };
  56 
  57 DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
  58         .reserve        = omap_reserve,
  59         .map_io         = omap243x_map_io,
  60         .init_early     = omap2430_init_early,
  61         .init_machine   = omap_generic_init,
  62         .init_time      = omap_init_time,
  63         .dt_compat      = omap243x_boards_compat,
  64         .restart        = omap2xxx_restart,
  65 MACHINE_END
  66 #endif
  67 
  68 #ifdef CONFIG_ARCH_OMAP3
  69 /* Some boards need board name for legacy userspace in /proc/cpuinfo */
  70 static const char *const n900_boards_compat[] __initconst = {
  71         "nokia,omap3-n900",
  72         NULL,
  73 };
  74 
  75 /* Set system_rev from atags */
  76 static void __init rx51_set_system_rev(const struct tag *tags)
  77 {
  78         const struct tag *tag;
  79 
  80         if (tags->hdr.tag != ATAG_CORE)
  81                 return;
  82 
  83         for_each_tag(tag, tags) {
  84                 if (tag->hdr.tag == ATAG_REVISION) {
  85                         system_rev = tag->u.revision.rev;
  86                         break;
  87                 }
  88         }
  89 }
  90 
  91 /* Legacy userspace on Nokia N900 needs ATAGS exported in /proc/atags,
  92  * save them while the data is still not overwritten
  93  */
  94 static void __init rx51_reserve(void)
  95 {
  96         const struct tag *tags = (const struct tag *)(PAGE_OFFSET + 0x100);
  97 
  98         save_atags(tags);
  99         rx51_set_system_rev(tags);
 100         omap_reserve();
 101 }
 102 
 103 DT_MACHINE_START(OMAP3_N900_DT, "Nokia RX-51 board")
 104         .reserve        = rx51_reserve,
 105         .map_io         = omap3_map_io,
 106         .init_early     = omap3430_init_early,
 107         .init_machine   = omap_generic_init,
 108         .init_late      = omap3_init_late,
 109         .init_time      = omap_init_time,
 110         .dt_compat      = n900_boards_compat,
 111         .restart        = omap3xxx_restart,
 112 MACHINE_END
 113 
 114 /* Generic omap3 boards, most boards can use these */
 115 static const char *const omap3_boards_compat[] __initconst = {
 116         "ti,omap3430",
 117         "ti,omap3",
 118         NULL,
 119 };
 120 
 121 DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
 122         .reserve        = omap_reserve,
 123         .map_io         = omap3_map_io,
 124         .init_early     = omap3430_init_early,
 125         .init_machine   = omap_generic_init,
 126         .init_late      = omap3_init_late,
 127         .init_time      = omap_init_time,
 128         .dt_compat      = omap3_boards_compat,
 129         .restart        = omap3xxx_restart,
 130 MACHINE_END
 131 
 132 static const char *const omap36xx_boards_compat[] __initconst = {
 133         "ti,omap3630",
 134         "ti,omap36xx",
 135         NULL,
 136 };
 137 
 138 DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
 139         .reserve        = omap_reserve,
 140         .map_io         = omap3_map_io,
 141         .init_early     = omap3630_init_early,
 142         .init_machine   = omap_generic_init,
 143         .init_late      = omap3_init_late,
 144         .init_time      = omap_init_time,
 145         .dt_compat      = omap36xx_boards_compat,
 146         .restart        = omap3xxx_restart,
 147 MACHINE_END
 148 
 149 static const char *const omap3_gp_boards_compat[] __initconst = {
 150         "ti,omap3-beagle",
 151         "timll,omap3-devkit8000",
 152         NULL,
 153 };
 154 
 155 DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
 156         .reserve        = omap_reserve,
 157         .map_io         = omap3_map_io,
 158         .init_early     = omap3430_init_early,
 159         .init_machine   = omap_generic_init,
 160         .init_late      = omap3_init_late,
 161         .init_time      = omap3_secure_sync32k_timer_init,
 162         .dt_compat      = omap3_gp_boards_compat,
 163         .restart        = omap3xxx_restart,
 164 MACHINE_END
 165 
 166 static const char *const am3517_boards_compat[] __initconst = {
 167         "ti,am3517",
 168         NULL,
 169 };
 170 
 171 DT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)")
 172         .reserve        = omap_reserve,
 173         .map_io         = omap3_map_io,
 174         .init_early     = am35xx_init_early,
 175         .init_machine   = omap_generic_init,
 176         .init_late      = omap3_init_late,
 177         .init_time      = omap3_gptimer_timer_init,
 178         .dt_compat      = am3517_boards_compat,
 179         .restart        = omap3xxx_restart,
 180 MACHINE_END
 181 #endif
 182 
 183 #ifdef CONFIG_SOC_TI81XX
 184 static const char *const ti814x_boards_compat[] __initconst = {
 185         "ti,dm8148",
 186         "ti,dm814",
 187         NULL,
 188 };
 189 
 190 DT_MACHINE_START(TI814X_DT, "Generic ti814x (Flattened Device Tree)")
 191         .reserve        = omap_reserve,
 192         .map_io         = ti81xx_map_io,
 193         .init_early     = ti814x_init_early,
 194         .init_machine   = omap_generic_init,
 195         .init_late      = ti81xx_init_late,
 196         .init_time      = omap3_gptimer_timer_init,
 197         .dt_compat      = ti814x_boards_compat,
 198         .restart        = ti81xx_restart,
 199 MACHINE_END
 200 
 201 static const char *const ti816x_boards_compat[] __initconst = {
 202         "ti,dm8168",
 203         "ti,dm816",
 204         NULL,
 205 };
 206 
 207 DT_MACHINE_START(TI816X_DT, "Generic ti816x (Flattened Device Tree)")
 208         .reserve        = omap_reserve,
 209         .map_io         = ti81xx_map_io,
 210         .init_early     = ti816x_init_early,
 211         .init_machine   = omap_generic_init,
 212         .init_late      = ti81xx_init_late,
 213         .init_time      = omap3_gptimer_timer_init,
 214         .dt_compat      = ti816x_boards_compat,
 215         .restart        = ti81xx_restart,
 216 MACHINE_END
 217 #endif
 218 
 219 #ifdef CONFIG_SOC_AM33XX
 220 static const char *const am33xx_boards_compat[] __initconst = {
 221         "ti,am33xx",
 222         NULL,
 223 };
 224 
 225 DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
 226         .reserve        = omap_reserve,
 227         .map_io         = am33xx_map_io,
 228         .init_early     = am33xx_init_early,
 229         .init_machine   = omap_generic_init,
 230         .init_late      = am33xx_init_late,
 231         .init_time      = omap3_gptimer_timer_init,
 232         .dt_compat      = am33xx_boards_compat,
 233         .restart        = am33xx_restart,
 234 MACHINE_END
 235 #endif
 236 
 237 #ifdef CONFIG_ARCH_OMAP4
 238 static const char *const omap4_boards_compat[] __initconst = {
 239         "ti,omap4460",
 240         "ti,omap4430",
 241         "ti,omap4",
 242         NULL,
 243 };
 244 
 245 DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
 246         .l2c_aux_val    = OMAP_L2C_AUX_CTRL,
 247         .l2c_aux_mask   = 0xcf9fffff,
 248         .l2c_write_sec  = omap4_l2c310_write_sec,
 249         .reserve        = omap_reserve,
 250         .smp            = smp_ops(omap4_smp_ops),
 251         .map_io         = omap4_map_io,
 252         .init_early     = omap4430_init_early,
 253         .init_irq       = omap_gic_of_init,
 254         .init_machine   = omap_generic_init,
 255         .init_late      = omap4430_init_late,
 256         .init_time      = omap4_local_timer_init,
 257         .dt_compat      = omap4_boards_compat,
 258         .restart        = omap44xx_restart,
 259 MACHINE_END
 260 #endif
 261 
 262 #ifdef CONFIG_SOC_OMAP5
 263 static const char *const omap5_boards_compat[] __initconst = {
 264         "ti,omap5432",
 265         "ti,omap5430",
 266         "ti,omap5",
 267         NULL,
 268 };
 269 
 270 DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
 271 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 272         .dma_zone_size  = SZ_2G,
 273 #endif
 274         .reserve        = omap_reserve,
 275         .smp            = smp_ops(omap4_smp_ops),
 276         .map_io         = omap5_map_io,
 277         .init_early     = omap5_init_early,
 278         .init_irq       = omap_gic_of_init,
 279         .init_machine   = omap_generic_init,
 280         .init_late      = omap5_init_late,
 281         .init_time      = omap5_realtime_timer_init,
 282         .dt_compat      = omap5_boards_compat,
 283         .restart        = omap44xx_restart,
 284 MACHINE_END
 285 #endif
 286 
 287 #ifdef CONFIG_SOC_AM43XX
 288 static const char *const am43_boards_compat[] __initconst = {
 289         "ti,am4372",
 290         "ti,am43",
 291         NULL,
 292 };
 293 
 294 DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
 295         .l2c_aux_val    = OMAP_L2C_AUX_CTRL,
 296         .l2c_aux_mask   = 0xcf9fffff,
 297         .l2c_write_sec  = omap4_l2c310_write_sec,
 298         .map_io         = am33xx_map_io,
 299         .init_early     = am43xx_init_early,
 300         .init_late      = am43xx_init_late,
 301         .init_irq       = omap_gic_of_init,
 302         .init_machine   = omap_generic_init,
 303         .init_time      = omap3_gptimer_timer_init,
 304         .dt_compat      = am43_boards_compat,
 305         .restart        = omap44xx_restart,
 306 MACHINE_END
 307 #endif
 308 
 309 #ifdef CONFIG_SOC_DRA7XX
 310 static const char *const dra74x_boards_compat[] __initconst = {
 311         "ti,dra762",
 312         "ti,am5728",
 313         "ti,am5726",
 314         "ti,dra742",
 315         "ti,dra7",
 316         NULL,
 317 };
 318 
 319 DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)")
 320 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 321         .dma_zone_size  = SZ_2G,
 322 #endif
 323         .reserve        = omap_reserve,
 324         .smp            = smp_ops(omap4_smp_ops),
 325         .map_io         = dra7xx_map_io,
 326         .init_early     = dra7xx_init_early,
 327         .init_late      = dra7xx_init_late,
 328         .init_irq       = omap_gic_of_init,
 329         .init_machine   = omap_generic_init,
 330         .init_time      = omap5_realtime_timer_init,
 331         .dt_compat      = dra74x_boards_compat,
 332         .restart        = omap44xx_restart,
 333 MACHINE_END
 334 
 335 static const char *const dra72x_boards_compat[] __initconst = {
 336         "ti,am5718",
 337         "ti,am5716",
 338         "ti,dra722",
 339         "ti,dra718",
 340         NULL,
 341 };
 342 
 343 DT_MACHINE_START(DRA72X_DT, "Generic DRA72X (Flattened Device Tree)")
 344 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
 345         .dma_zone_size  = SZ_2G,
 346 #endif
 347         .reserve        = omap_reserve,
 348         .map_io         = dra7xx_map_io,
 349         .init_early     = dra7xx_init_early,
 350         .init_late      = dra7xx_init_late,
 351         .init_irq       = omap_gic_of_init,
 352         .init_machine   = omap_generic_init,
 353         .init_time      = omap5_realtime_timer_init,
 354         .dt_compat      = dra72x_boards_compat,
 355         .restart        = omap44xx_restart,
 356 MACHINE_END
 357 #endif

/* [<][>][^][v][top][bottom][index][help] */