Commit 215d6cc9 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Paul Mundt

ARM: mach-shmobile: r8a7740: add INTC support

R8A7740 GIC can not get external IRQx interrupt directly
without GIC - INTC demux support.

Current AG5 is using GIC - INTCS demux with
special irq relocation. but GIC - INTCA demux
is still not supported and it needs irq number re-mapping.

OTOH, normal INTC support as before is very enough for R8A7740,
because it is not SMP CPU.
This patch adds INTCA/INTCS support instead of GIC.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 6831f3a9
...@@ -33,7 +33,6 @@ config ARCH_R8A7740 ...@@ -33,7 +33,6 @@ config ARCH_R8A7740
select CPU_V7 select CPU_V7
select SH_CLK_CPG select SH_CLK_CPG
select ARCH_WANT_OPTIONAL_GPIOLIB select ARCH_WANT_OPTIONAL_GPIOLIB
select ARM_GIC
comment "SH-Mobile Board Type" comment "SH-Mobile Board Type"
......
...@@ -31,7 +31,7 @@ obj-$(CONFIG_ARCH_SH7367) += entry-intc.o ...@@ -31,7 +31,7 @@ obj-$(CONFIG_ARCH_SH7367) += entry-intc.o
obj-$(CONFIG_ARCH_SH7377) += entry-intc.o obj-$(CONFIG_ARCH_SH7377) += entry-intc.o
obj-$(CONFIG_ARCH_SH7372) += entry-intc.o obj-$(CONFIG_ARCH_SH7372) += entry-intc.o
obj-$(CONFIG_ARCH_SH73A0) += entry-gic.o obj-$(CONFIG_ARCH_SH73A0) += entry-gic.o
obj-$(CONFIG_ARCH_R8A7740) += entry-gic.o obj-$(CONFIG_ARCH_R8A7740) += entry-intc.o
# PM objects # PM objects
obj-$(CONFIG_SUSPEND) += suspend.o obj-$(CONFIG_SUSPEND) += suspend.o
......
This diff is collapsed.
...@@ -35,7 +35,7 @@ static struct plat_sci_port scif0_platform_data = { ...@@ -35,7 +35,7 @@ static struct plat_sci_port scif0_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(100)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0c00)),
}; };
static struct platform_device scif0_device = { static struct platform_device scif0_device = {
...@@ -53,7 +53,7 @@ static struct plat_sci_port scif1_platform_data = { ...@@ -53,7 +53,7 @@ static struct plat_sci_port scif1_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(101)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0c20)),
}; };
static struct platform_device scif1_device = { static struct platform_device scif1_device = {
...@@ -71,7 +71,7 @@ static struct plat_sci_port scif2_platform_data = { ...@@ -71,7 +71,7 @@ static struct plat_sci_port scif2_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(102)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0c40)),
}; };
static struct platform_device scif2_device = { static struct platform_device scif2_device = {
...@@ -89,7 +89,7 @@ static struct plat_sci_port scif3_platform_data = { ...@@ -89,7 +89,7 @@ static struct plat_sci_port scif3_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(103)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0c60)),
}; };
static struct platform_device scif3_device = { static struct platform_device scif3_device = {
...@@ -107,7 +107,7 @@ static struct plat_sci_port scif4_platform_data = { ...@@ -107,7 +107,7 @@ static struct plat_sci_port scif4_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(104)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0d20)),
}; };
static struct platform_device scif4_device = { static struct platform_device scif4_device = {
...@@ -125,7 +125,7 @@ static struct plat_sci_port scif5_platform_data = { ...@@ -125,7 +125,7 @@ static struct plat_sci_port scif5_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(105)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0d40)),
}; };
static struct platform_device scif5_device = { static struct platform_device scif5_device = {
...@@ -143,7 +143,7 @@ static struct plat_sci_port scif6_platform_data = { ...@@ -143,7 +143,7 @@ static struct plat_sci_port scif6_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(106)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x04c0)),
}; };
static struct platform_device scif6_device = { static struct platform_device scif6_device = {
...@@ -161,7 +161,7 @@ static struct plat_sci_port scif7_platform_data = { ...@@ -161,7 +161,7 @@ static struct plat_sci_port scif7_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFA, .type = PORT_SCIFA,
.irqs = SCIx_IRQ_MUXED(gic_spi(107)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x04e0)),
}; };
static struct platform_device scif7_device = { static struct platform_device scif7_device = {
...@@ -179,7 +179,7 @@ static struct plat_sci_port scifb_platform_data = { ...@@ -179,7 +179,7 @@ static struct plat_sci_port scifb_platform_data = {
.scscr = SCSCR_RE | SCSCR_TE, .scscr = SCSCR_RE | SCSCR_TE,
.scbrr_algo_id = SCBRR_ALGO_4, .scbrr_algo_id = SCBRR_ALGO_4,
.type = PORT_SCIFB, .type = PORT_SCIFB,
.irqs = SCIx_IRQ_MUXED(gic_spi(108)), .irqs = SCIx_IRQ_MUXED(evt2irq(0x0d60)),
}; };
static struct platform_device scifb_device = { static struct platform_device scifb_device = {
...@@ -207,7 +207,7 @@ static struct resource cmt10_resources[] = { ...@@ -207,7 +207,7 @@ static struct resource cmt10_resources[] = {
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = gic_spi(58), .start = evt2irq(0x0b00),
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
...@@ -244,8 +244,8 @@ static struct resource i2c0_resources[] = { ...@@ -244,8 +244,8 @@ static struct resource i2c0_resources[] = {
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = gic_spi(201), .start = intcs_evt2irq(0xe00),
.end = gic_spi(204), .end = intcs_evt2irq(0xe60),
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
...@@ -258,8 +258,8 @@ static struct resource i2c1_resources[] = { ...@@ -258,8 +258,8 @@ static struct resource i2c1_resources[] = {
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = gic_spi(70), .start = evt2irq(0x780), /* IIC1_ALI1 */
.end = gic_spi(73), .end = evt2irq(0x7e0), /* IIC1_DTEI1 */
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment