![Marc Zyngier](/assets/img/avatar_default.png)
OMAP4/5 has been (ab)using the gic_arch_extn to provide wakeup from suspend, and it makes a lot of sense to convert this code to use stacked domains instead. This patch does just this, updating the DT files to actually reflect what the HW provides. BIG FAT WARNING: because the DTs were so far lying by not exposing the WUGEN HW block, kernels with this patch applied won't have any suspend-resume facility when booted with old DTs, and old kernels with updated DTs won't even boot. On a platform with this patch applied, the system looks like this: root@bacon-fat:~# cat /proc/interrupts CPU0 CPU1 16: 0 0 WUGEN 37 gp_timer 19: 233799 155916 GIC 27 arch_timer 23: 0 0 WUGEN 9 l3-dbg-irq 24: 1 0 WUGEN 10 l3-app-irq 27: 282 0 WUGEN 13 omap-dma-engine 44: 0 0 4ae10000.gpio 13 DMA 294: 0 0 WUGEN 20 gpmc 297: 506 0 WUGEN 56 48070000.i2c 298: 0 0 WUGEN 57 48072000.i2c 299: 0 0 WUGEN 61 48060000.i2c 300: 0 0 WUGEN 62 4807a000.i2c 301: 8 0 WUGEN 60 4807c000.i2c 308: 2439 0 WUGEN 74 OMAP UART2 312: 362 0 WUGEN 83 mmc2 313: 502 0 WUGEN 86 mmc0 314: 13 0 WUGEN 94 mmc1 350: 0 0 PRCM pinctrl, pinctrl 406: 35155709 0 GIC 109 ehci_hcd:usb1 407: 0 0 WUGEN 7 palmas 409: 0 0 WUGEN 119 twl6040 410: 0 0 twl6040 5 twl6040_irq_ready 411: 0 0 twl6040 0 twl6040_irq_th IPI0: 0 1 CPU wakeup interrupts IPI1: 0 0 Timer broadcast interrupts IPI2: 95334 902334 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 479 648 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 0 0 IRQ work interrupts IPI7: 0 0 completion interrupts Err: 0 Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Link: https://lkml.kernel.org/r/1426088629-15377-8-git-send-email-marc.zyngier@arm.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
/*
|
|
* OMAP WakeupGen header file
|
|
*
|
|
* Copyright (C) 2011 Texas Instruments, Inc.
|
|
* Santosh Shilimkar <santosh.shilimkar@ti.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
#ifndef OMAP_ARCH_WAKEUPGEN_H
|
|
#define OMAP_ARCH_WAKEUPGEN_H
|
|
|
|
/* OMAP4 and OMAP5 has same base address */
|
|
#define OMAP_WKUPGEN_BASE 0x48281000
|
|
|
|
#define OMAP_WKG_CONTROL_0 0x00
|
|
#define OMAP_WKG_ENB_A_0 0x10
|
|
#define OMAP_WKG_ENB_B_0 0x14
|
|
#define OMAP_WKG_ENB_C_0 0x18
|
|
#define OMAP_WKG_ENB_D_0 0x1c
|
|
#define OMAP_WKG_ENB_E_0 0x20
|
|
#define OMAP_WKG_ENB_A_1 0x410
|
|
#define OMAP_WKG_ENB_B_1 0x414
|
|
#define OMAP_WKG_ENB_C_1 0x418
|
|
#define OMAP_WKG_ENB_D_1 0x41c
|
|
#define OMAP_WKG_ENB_E_1 0x420
|
|
#define OMAP_AUX_CORE_BOOT_0 0x800
|
|
#define OMAP_AUX_CORE_BOOT_1 0x804
|
|
#define OMAP_AMBA_IF_MODE 0x80c
|
|
#define OMAP_PTMSYNCREQ_MASK 0xc00
|
|
#define OMAP_PTMSYNCREQ_EN 0xc04
|
|
#define OMAP_TIMESTAMPCYCLELO 0xc08
|
|
#define OMAP_TIMESTAMPCYCLEHI 0xc0c
|
|
|
|
extern void __iomem *omap_get_wakeupgen_base(void);
|
|
extern int omap_secure_apis_support(void);
|
|
#endif
|