blob: 15190875d507c80032ef61ed50a322354b357ce7 [file] [log] [blame]
keita kobayashi5f6108b2014-05-30 14:18:48 +09001/*
2 * r8a7791 Power management support
3 *
4 * Copyright (C) 2014 Renesas Electronics Corporation
5 * Copyright (C) 2011 Renesas Solutions Corp.
6 * Copyright (C) 2011 Magnus Damm
7 *
8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive
10 * for more details.
11 */
12
13#include <asm/io.h>
14#include <linux/kernel.h>
15#include <mach/r8a7791.h>
16#include "pm-rcar.h"
17
18/* SYSC */
19#define SYSCIER 0x0c
20#define SYSCIMR 0x10
21
22#if defined(CONFIG_SMP)
23
24static void __init r8a7791_sysc_init(void)
25{
26 void __iomem *base = rcar_sysc_init(0xe6180000);
27
28 /* enable all interrupt sources, but do not use interrupt handler */
29 iowrite32(0x0131000e, base + SYSCIER);
30 iowrite32(0, base + SYSCIMR);
31}
32
33#else /* CONFIG_SMP */
34
35static inline void r8a7791_sysc_init(void) {}
36
37#endif /* CONFIG_SMP */
38
39void __init r8a7791_pm_init(void)
40{
41 static int once;
42
43 if (once++)
44 return;
45
46 r8a7791_sysc_init();
47}