Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
b7a5b7ac
Commit
b7a5b7ac
authored
May 26, 2010
by
Ben Dooks
Browse files
Options
Browse Files
Download
Plain Diff
ARM: Merge next-samsung
Merge branch 'next-samsung' into for-linus/2634-git-updates
parents
f7b4dc7a
459f2a32
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
42 additions
and
33 deletions
+42
-33
arch/arm/mach-s5p6440/include/mach/irqs.h
arch/arm/mach-s5p6440/include/mach/irqs.h
+8
-1
arch/arm/mach-s5p6442/include/mach/irqs.h
arch/arm/mach-s5p6442/include/mach/irqs.h
+3
-2
arch/arm/mach-s5pc100/include/mach/irqs.h
arch/arm/mach-s5pc100/include/mach/irqs.h
+0
-3
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
+2
-5
arch/arm/mach-s5pv210/include/mach/irqs.h
arch/arm/mach-s5pv210/include/mach/irqs.h
+2
-12
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
+9
-5
arch/arm/plat-s5p/Kconfig
arch/arm/plat-s5p/Kconfig
+1
-0
arch/arm/plat-s5p/include/plat/irqs.h
arch/arm/plat-s5p/include/plat/irqs.h
+7
-0
arch/arm/plat-s5p/irq-eint.c
arch/arm/plat-s5p/irq-eint.c
+10
-5
No files found.
arch/arm/mach-s5p6440/include/mach/irqs.h
View file @
b7a5b7ac
...
@@ -72,7 +72,14 @@
...
@@ -72,7 +72,14 @@
#define S5P_IRQ_EINT_BASE (S5P_IRQ_VIC1(31) + 6)
#define S5P_IRQ_EINT_BASE (S5P_IRQ_VIC1(31) + 6)
#define S5P_EINT(x) ((x) + S5P_IRQ_EINT_BASE)
#define S5P_EINT(x) ((x) + S5P_IRQ_EINT_BASE)
#define IRQ_EINT(x) S5P_EINT(x)
#define S5P_EINT_BASE1 (S5P_IRQ_EINT_BASE)
/*
* S5P6440 has 0-15 external interrupts in group 0. Only these can be used
* to wake up from sleep. If request is beyond this range, by mistake, a large
* return value for an irq number should be indication of something amiss.
*/
#define S5P_EINT_BASE2 (0xf0000000)
/*
/*
* Next the external interrupt groups. These are similar to the IRQ_EINT(x)
* Next the external interrupt groups. These are similar to the IRQ_EINT(x)
...
...
arch/arm/mach-s5p6442/include/mach/irqs.h
View file @
b7a5b7ac
...
@@ -77,8 +77,9 @@
...
@@ -77,8 +77,9 @@
#define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1)
#define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1)
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
(S5P_IRQ_EINT_BASE + (x)-16))
#define S5P_EINT_BASE2 (S5P_IRQ_EINT_BASE)
/* Set the default NR_IRQS */
/* Set the default NR_IRQS */
#define NR_IRQS (IRQ_EINT(31) + 1)
#define NR_IRQS (IRQ_EINT(31) + 1)
...
...
arch/arm/mach-s5pc100/include/mach/irqs.h
View file @
b7a5b7ac
...
@@ -100,9 +100,6 @@
...
@@ -100,9 +100,6 @@
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
(S5P_EINT_BASE2 + (x) - 16))
#define S3C_IRQ_GPIO_BASE (IRQ_EINT(31) + 1)
#define S3C_IRQ_GPIO_BASE (IRQ_EINT(31) + 1)
#define S3C_IRQ_GPIO(x) (S3C_IRQ_GPIO_BASE + (x))
#define S3C_IRQ_GPIO(x) (S3C_IRQ_GPIO_BASE + (x))
...
...
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
View file @
b7a5b7ac
...
@@ -60,12 +60,9 @@
...
@@ -60,12 +60,9 @@
#define S5PC100EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5PC100EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5P_EINT_PEND(x) (S5PC100EINT30PEND + ((x) * 0x4))
#define S5P_EINT_PEND(x) (S5PC100EINT30PEND + ((x) * 0x4))
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) : \
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
(((irq) - S5P_EINT_BASE2)))
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
/* values for S5P_EXTINT0 */
/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
#define S5P_EXTINT_LOWLEV (0x00)
...
...
arch/arm/mach-s5pv210/include/mach/irqs.h
View file @
b7a5b7ac
...
@@ -118,22 +118,12 @@
...
@@ -118,22 +118,12 @@
#define IRQ_MDNIE3 S5P_IRQ_VIC3(8)
#define IRQ_MDNIE3 S5P_IRQ_VIC3(8)
#define IRQ_VIC_END S5P_IRQ_VIC3(31)
#define IRQ_VIC_END S5P_IRQ_VIC3(31)
#define S5P_EINT_16_31_BASE (IRQ_VIC_END + 1)
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
#define EINT_MODE S3C_GPIO_SFN(0xf)
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_IRQ_VIC0(0)) \
: ((x) + S5P_EINT_16_31_BASE))
/* Set the default NR_IRQS */
/* Set the default NR_IRQS */
#define NR_IRQS (IRQ_EINT(31) + 1)
#define NR_IRQS (IRQ_EINT(31) + 1)
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
/* Compatibility */
/* Compatibility */
#define IRQ_LCD_FIFO IRQ_LCD0
#define IRQ_LCD_FIFO IRQ_LCD0
#define IRQ_LCD_VSYNC IRQ_LCD1
#define IRQ_LCD_VSYNC IRQ_LCD1
...
...
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
View file @
b7a5b7ac
...
@@ -27,12 +27,9 @@
...
@@ -27,12 +27,9 @@
#define S5PV210_EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5PV210_EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5P_EINT_PEND(x) (S5PV210_EINT30PEND + ((x) * 0x4))
#define S5P_EINT_PEND(x) (S5PV210_EINT30PEND + ((x) * 0x4))
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) \
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
: ((irq) - S5P_EINT_16_31_BASE))
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
/* values for S5P_EXTINT0 */
/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
#define S5P_EXTINT_LOWLEV (0x00)
...
@@ -41,4 +38,11 @@
...
@@ -41,4 +38,11 @@
#define S5P_EXTINT_RISEEDGE (0x03)
#define S5P_EXTINT_RISEEDGE (0x03)
#define S5P_EXTINT_BOTHEDGE (0x04)
#define S5P_EXTINT_BOTHEDGE (0x04)
#define EINT_MODE S3C_GPIO_SFN(0xf)
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
#endif
/* __ASM_ARCH_REGS_GPIO_H */
#endif
/* __ASM_ARCH_REGS_GPIO_H */
arch/arm/plat-s5p/Kconfig
View file @
b7a5b7ac
...
@@ -29,3 +29,4 @@ config S5P_EXT_INT
...
@@ -29,3 +29,4 @@ config S5P_EXT_INT
bool
bool
help
help
Use the external interrupts (other than GPIO interrupts.)
Use the external interrupts (other than GPIO interrupts.)
Note: Do not choose this for S5P6440.
arch/arm/plat-s5p/include/plat/irqs.h
View file @
b7a5b7ac
...
@@ -87,4 +87,11 @@
...
@@ -87,4 +87,11 @@
#define IRQ_TIMER3 S5P_TIMER_IRQ(3)
#define IRQ_TIMER3 S5P_TIMER_IRQ(3)
#define IRQ_TIMER4 S5P_TIMER_IRQ(4)
#define IRQ_TIMER4 S5P_TIMER_IRQ(4)
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_EINT_BASE1) \
: ((x) - 16 + S5P_EINT_BASE2))
#define EINT_OFFSET(irq) ((irq) < S5P_EINT_BASE2 ? \
((irq) - S5P_EINT_BASE1) : \
((irq) + 16 - S5P_EINT_BASE2))
#endif
/* __ASM_PLAT_S5P_IRQS_H */
#endif
/* __ASM_PLAT_S5P_IRQS_H */
arch/arm/plat-s5p/irq-eint.c
View file @
b7a5b7ac
...
@@ -60,7 +60,7 @@ static void s5p_irq_eint_maskack(unsigned int irq)
...
@@ -60,7 +60,7 @@ static void s5p_irq_eint_maskack(unsigned int irq)
static
int
s5p_irq_eint_set_type
(
unsigned
int
irq
,
unsigned
int
type
)
static
int
s5p_irq_eint_set_type
(
unsigned
int
irq
,
unsigned
int
type
)
{
{
int
offs
=
eint_offset
(
irq
);
int
offs
=
EINT_OFFSET
(
irq
);
int
shift
;
int
shift
;
u32
ctrl
,
mask
;
u32
ctrl
,
mask
;
u32
newvalue
=
0
;
u32
newvalue
=
0
;
...
@@ -139,17 +139,16 @@ static struct irq_chip s5p_irq_eint = {
...
@@ -139,17 +139,16 @@ static struct irq_chip s5p_irq_eint = {
*/
*/
static
inline
void
s5p_irq_demux_eint
(
unsigned
int
start
)
static
inline
void
s5p_irq_demux_eint
(
unsigned
int
start
)
{
{
u32
status
;
u32
status
=
__raw_readl
(
S5P_EINT_PEND
(
EINT_REG_NR
(
start
)))
;
u32
mask
=
__raw_readl
(
S5P_EINT_MASK
(
EINT_REG_NR
(
start
)));
u32
mask
=
__raw_readl
(
S5P_EINT_MASK
(
EINT_REG_NR
(
start
)));
unsigned
int
irq
;
unsigned
int
irq
;
status
=
__raw_readl
(
S5P_EINT_PEND
(
EINT_REG_NR
(
start
)));
status
&=
~
mask
;
status
&=
~
mask
;
status
&=
0xff
;
status
&=
0xff
;
while
(
status
)
{
while
(
status
)
{
irq
=
fls
(
status
);
irq
=
fls
(
status
)
-
1
;
generic_handle_irq
(
irq
-
1
+
start
);
generic_handle_irq
(
irq
+
start
);
status
&=
~
(
1
<<
irq
);
status
&=
~
(
1
<<
irq
);
}
}
}
}
...
@@ -162,12 +161,18 @@ static void s5p_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
...
@@ -162,12 +161,18 @@ static void s5p_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
static
inline
void
s5p_irq_vic_eint_mask
(
unsigned
int
irq
)
static
inline
void
s5p_irq_vic_eint_mask
(
unsigned
int
irq
)
{
{
void
__iomem
*
base
=
get_irq_chip_data
(
irq
);
s5p_irq_eint_mask
(
irq
);
s5p_irq_eint_mask
(
irq
);
writel
(
1
<<
EINT_OFFSET
(
irq
),
base
+
VIC_INT_ENABLE_CLEAR
);
}
}
static
void
s5p_irq_vic_eint_unmask
(
unsigned
int
irq
)
static
void
s5p_irq_vic_eint_unmask
(
unsigned
int
irq
)
{
{
void
__iomem
*
base
=
get_irq_chip_data
(
irq
);
s5p_irq_eint_unmask
(
irq
);
s5p_irq_eint_unmask
(
irq
);
writel
(
1
<<
EINT_OFFSET
(
irq
),
base
+
VIC_INT_ENABLE
);
}
}
static
inline
void
s5p_irq_vic_eint_ack
(
unsigned
int
irq
)
static
inline
void
s5p_irq_vic_eint_ack
(
unsigned
int
irq
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment