1ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean/* Copyright (c) 2008-2009, Code Aurora Forum. All rights reserved.
2ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean *
33162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * This program is free software; you can redistribute it and/or modify
43162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * it under the terms of the GNU General Public License version 2 and
53162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * only version 2 as published by the Free Software Foundation.
6ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean *
73162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * This program is distributed in the hope that it will be useful,
83162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * but WITHOUT ANY WARRANTY; without even the implied warranty of
93162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
103162aa2f1b55849651a05052d3e5f5e640ea44faDavid Brown * GNU General Public License for more details.
11ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean */
12ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
13ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#ifndef __ASM_ARCH_MSM_SIRC_H
14ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define __ASM_ARCH_MSM_SIRC_H
15ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
16ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Beanstruct sirc_regs_t {
17ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_enable;
18ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_enable_clear;
19ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_enable_set;
20ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_type;
21ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_polarity;
22ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_clear;
23ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean};
24ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
25ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Beanstruct sirc_cascade_regs {
26ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	void    *int_status;
27ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean	unsigned int    cascade_irq;
28ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean};
29ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
30ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Beanvoid msm_init_sirc(void);
31ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Beanvoid msm_sirc_enter_sleep(void);
32ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Beanvoid msm_sirc_exit_sleep(void);
33ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
34ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#if defined(CONFIG_ARCH_MSM_SCORPION)
35ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
36ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#include <mach/msm_iomap.h>
37ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
38ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean/*
39ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean * Secondary interrupt controller interrupts
40ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean */
41ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
42ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define FIRST_SIRC_IRQ (NR_MSM_IRQS + NR_GPIO_IRQS)
43ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
44ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART1                     (FIRST_SIRC_IRQ + 0)
45ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART2                     (FIRST_SIRC_IRQ + 1)
46ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART3                     (FIRST_SIRC_IRQ + 2)
47ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART1_RX                  (FIRST_SIRC_IRQ + 3)
48ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART2_RX                  (FIRST_SIRC_IRQ + 4)
49ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_UART3_RX                  (FIRST_SIRC_IRQ + 5)
50ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_SPI_INPUT                 (FIRST_SIRC_IRQ + 6)
51ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_SPI_OUTPUT                (FIRST_SIRC_IRQ + 7)
52ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_SPI_ERROR                 (FIRST_SIRC_IRQ + 8)
53ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GPIO_GROUP1               (FIRST_SIRC_IRQ + 9)
54ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GPIO_GROUP2               (FIRST_SIRC_IRQ + 10)
55ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GPIO_GROUP1_SECURE        (FIRST_SIRC_IRQ + 11)
56ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GPIO_GROUP2_SECURE        (FIRST_SIRC_IRQ + 12)
57ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_AVS_SVIC                  (FIRST_SIRC_IRQ + 13)
58ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_AVS_REQ_UP                (FIRST_SIRC_IRQ + 14)
59ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_AVS_REQ_DOWN              (FIRST_SIRC_IRQ + 15)
60ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_PBUS_ERR                  (FIRST_SIRC_IRQ + 16)
61ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_AXI_ERR                   (FIRST_SIRC_IRQ + 17)
62ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_SMI_ERR                   (FIRST_SIRC_IRQ + 18)
63ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_EBI1_ERR                  (FIRST_SIRC_IRQ + 19)
64ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_IMEM_ERR                  (FIRST_SIRC_IRQ + 20)
65ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_TEMP_SENSOR               (FIRST_SIRC_IRQ + 21)
66ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_TV_ENC                    (FIRST_SIRC_IRQ + 22)
67ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GRP2D                     (FIRST_SIRC_IRQ + 23)
68ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_GSBI_QUP                  (FIRST_SIRC_IRQ + 24)
69ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_SC_ACG                    (FIRST_SIRC_IRQ + 25)
70ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_WDT0                      (FIRST_SIRC_IRQ + 26)
71ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define INT_WDT1                      (FIRST_SIRC_IRQ + 27)
72ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
73ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#if defined(CONFIG_MSM_SOC_REV_A)
74ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define NR_SIRC_IRQS                  28
75ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SIRC_MASK                     0x0FFFFFFF
76ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#else
77ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define NR_SIRC_IRQS                  23
78ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SIRC_MASK                     0x007FFFFF
79ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#endif
80ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
81ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define LAST_SIRC_IRQ                 (FIRST_SIRC_IRQ + NR_SIRC_IRQS - 1)
82ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
83ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_SELECT          (MSM_SIRC_BASE + 0x00)
84ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_ENABLE          (MSM_SIRC_BASE + 0x04)
85ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_ENABLE_CLEAR    (MSM_SIRC_BASE + 0x08)
86ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_ENABLE_SET      (MSM_SIRC_BASE + 0x0C)
87ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_TYPE            (MSM_SIRC_BASE + 0x10)
88ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_POLARITY        (MSM_SIRC_BASE + 0x14)
89ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_SECURITY            (MSM_SIRC_BASE + 0x18)
90ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_IRQ_STATUS          (MSM_SIRC_BASE + 0x1C)
91ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_IRQ1_STATUS         (MSM_SIRC_BASE + 0x20)
92ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_RAW_STATUS          (MSM_SIRC_BASE + 0x24)
93ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_INT_CLEAR           (MSM_SIRC_BASE + 0x28)
94ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#define SPSS_SIRC_SOFT_INT            (MSM_SIRC_BASE + 0x2C)
95ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
96ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#endif
97ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean
98ec4d79255c684a74ade2f2394b9f9a669cee0036Gregory Bean#endif
99