root/arch/arm/mach-gemini/board-dt.c

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

DEFINITIONS

This source file includes following definitions.
  1. gemini_map_io
  2. gemini_idle
  3. gemini_init_machine

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * Gemini Device Tree boot support
   4  */
   5 #include <linux/kernel.h>
   6 #include <linux/init.h>
   7 #include <linux/io.h>
   8 
   9 #include <asm/mach/arch.h>
  10 #include <asm/mach/map.h>
  11 #include <asm/system_misc.h>
  12 #include <asm/proc-fns.h>
  13 
  14 #ifdef CONFIG_DEBUG_GEMINI
  15 /* This is needed for LL-debug/earlyprintk/debug-macro.S */
  16 static struct map_desc gemini_io_desc[] __initdata = {
  17         {
  18                 .virtual = CONFIG_DEBUG_UART_VIRT,
  19                 .pfn = __phys_to_pfn(CONFIG_DEBUG_UART_PHYS),
  20                 .length = SZ_4K,
  21                 .type = MT_DEVICE,
  22         },
  23 };
  24 
  25 static void __init gemini_map_io(void)
  26 {
  27         iotable_init(gemini_io_desc, ARRAY_SIZE(gemini_io_desc));
  28 }
  29 #else
  30 #define gemini_map_io NULL
  31 #endif
  32 
  33 static void gemini_idle(void)
  34 {
  35         /*
  36          * Because of broken hardware we have to enable interrupts or the CPU
  37          * will never wakeup... Acctualy it is not very good to enable
  38          * interrupts first since scheduler can miss a tick, but there is
  39          * no other way around this. Platforms that needs it for power saving
  40          * should enable it in init code, since by default it is
  41          * disabled.
  42          */
  43 
  44         /* FIXME: Enabling interrupts here is racy! */
  45         local_irq_enable();
  46         cpu_do_idle();
  47 }
  48 
  49 static void __init gemini_init_machine(void)
  50 {
  51         arm_pm_idle = gemini_idle;
  52 }
  53 
  54 static const char *gemini_board_compat[] = {
  55         "cortina,gemini",
  56         NULL,
  57 };
  58 
  59 DT_MACHINE_START(GEMINI_DT, "Gemini (Device Tree)")
  60         .map_io         = gemini_map_io,
  61         .init_machine   = gemini_init_machine,
  62         .dt_compat      = gemini_board_compat,
  63 MACHINE_END

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