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
Kirill Smelkov
linux
Commits
18bc8131
Commit
18bc8131
authored
Nov 21, 2007
by
Paul Mundt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sh: Get the mach-cayman IRQ support building.
Signed-off-by:
Paul Mundt
<
lethal@linux-sh.org
>
parent
caead5ef
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
42 additions
and
243 deletions
+42
-243
arch/sh/kernel/cpu/irq/Makefile
arch/sh/kernel/cpu/irq/Makefile
+1
-0
arch/sh/kernel/cpu/irq/intc-sh5.c
arch/sh/kernel/cpu/irq/intc-sh5.c
+4
-19
arch/sh/kernel/cpu/sh5/Makefile
arch/sh/kernel/cpu/sh5/Makefile
+0
-4
arch/sh/kernel/cpu/sh5/setup-sh5-101.c
arch/sh/kernel/cpu/sh5/setup-sh5-101.c
+0
-15
arch/sh/mach-cayman/Makefile
arch/sh/mach-cayman/Makefile
+1
-7
arch/sh/mach-cayman/iomap.c
arch/sh/mach-cayman/iomap.c
+0
-22
arch/sh/mach-cayman/irq.c
arch/sh/mach-cayman/irq.c
+14
-12
arch/sh/mach-cayman/setup.c
arch/sh/mach-cayman/setup.c
+21
-73
include/asm-sh/cpu-sh5/irq.h
include/asm-sh/cpu-sh5/irq.h
+1
-27
include/asm-sh/platform.h
include/asm-sh/platform.h
+0
-64
No files found.
arch/sh/kernel/cpu/irq/Makefile
View file @
18bc8131
...
@@ -4,5 +4,6 @@
...
@@ -4,5 +4,6 @@
obj-y
+=
intc.o
obj-y
+=
intc.o
obj-$(CONFIG_SUPERH32)
+=
imask.o
obj-$(CONFIG_SUPERH32)
+=
imask.o
obj-$(CONFIG_CPU_SH5)
+=
intc-sh5.o
obj-$(CONFIG_CPU_HAS_IPR_IRQ)
+=
ipr.o
obj-$(CONFIG_CPU_HAS_IPR_IRQ)
+=
ipr.o
obj-$(CONFIG_CPU_HAS_MASKREG_IRQ)
+=
maskreg.o
obj-$(CONFIG_CPU_HAS_MASKREG_IRQ)
+=
maskreg.o
arch/sh
64/kernel/irq_intc
.c
→
arch/sh
/kernel/cpu/irq/intc-sh5
.c
View file @
18bc8131
...
@@ -14,21 +14,14 @@
...
@@ -14,21 +14,14 @@
* controller.
* controller.
*
*
*/
*/
#include <linux/init.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/stddef.h>
#include <linux/bitops.h>
#include <linux/bitops.h>
/* this includes also <asm/registers.h */
#include <asm/cpu/irq.h>
/* which is required to remap register */
/* names used into __asm__ blocks... */
#include <asm/hardware.h>
#include <asm/platform.h>
#include <asm/page.h>
#include <asm/page.h>
#include <asm/io.h>
#include <asm/irq.h>
/*
/*
* Maybe the generic Peripheral block could move to a more
* Maybe the generic Peripheral block could move to a more
...
@@ -192,7 +185,7 @@ int intc_irq_describe(char* p, int irq)
...
@@ -192,7 +185,7 @@ int intc_irq_describe(char* p, int irq)
}
}
#endif
#endif
void
__init
init_IRQ
(
void
)
void
__init
plat_irq_setup
(
void
)
{
{
unsigned
long
long
__dummy0
,
__dummy1
=~
0x00000000100000f0
;
unsigned
long
long
__dummy0
,
__dummy1
=~
0x00000000100000f0
;
unsigned
long
reg
;
unsigned
long
reg
;
...
@@ -251,14 +244,6 @@ void __init init_IRQ(void)
...
@@ -251,14 +244,6 @@ void __init init_IRQ(void)
}
}
}
}
#ifdef CONFIG_SH_CAYMAN
{
extern
void
init_cayman_irq
(
void
);
init_cayman_irq
();
}
#endif
/*
/*
* And now let interrupts come in.
* And now let interrupts come in.
* sti() is not enough, we need to
* sti() is not enough, we need to
...
...
arch/sh/kernel/cpu/sh5/Makefile
View file @
18bc8131
...
@@ -5,7 +5,3 @@ obj-y := entry.o probe.o switchto.o
...
@@ -5,7 +5,3 @@ obj-y := entry.o probe.o switchto.o
obj-$(CONFIG_SH_FPU)
+=
fpu.o
obj-$(CONFIG_SH_FPU)
+=
fpu.o
obj-$(CONFIG_KALLSYMS)
+=
unwind.o
obj-$(CONFIG_KALLSYMS)
+=
unwind.o
# CPU subtype setup
obj-$(CONFIG_CPU_SUBTYPE_SH5_101)
+=
setup-sh5-101.o
obj-$(CONFIG_CPU_SUBTYPE_SH5_103)
+=
setup-sh5-101.o
arch/sh/kernel/cpu/sh5/setup-sh5-101.c
deleted
100644 → 0
View file @
caead5ef
/*
* SH5-101 Setup
*
* Copyright (C) 2007 Paul Mundt
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#include <linux/init.h>
void
__init
plat_irq_setup
(
void
)
{
/* do nothing - all IRL interrupts are handled by the board code */
}
arch/sh/mach-cayman/Makefile
View file @
18bc8131
#
#
# Makefile for the Hitachi Cayman specific parts of the kernel
# Makefile for the Hitachi Cayman specific parts of the kernel
#
#
# Note! Dependencies are done automagically by 'make dep', which also
obj-y
:=
setup.o irq.o
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
#
obj-y
:=
setup.o irq.o iomap.o
obj-$(CONFIG_HEARTBEAT)
+=
led.o
obj-$(CONFIG_HEARTBEAT)
+=
led.o
arch/sh/mach-cayman/iomap.c
deleted
100644 → 0
View file @
caead5ef
/*
* arch/sh64/mach-cayman/iomap.c
*
* Cayman iomap interface
*
* Copyright (C) 2004 Paul Mundt
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
#include <asm/io.h>
#include <asm/cayman.h>
void
__iomem
*
ioport_map
(
unsigned
long
port
,
unsigned
int
len
)
{
if
(
port
<
0x400
)
return
(
void
__iomem
*
)((
port
<<
2
)
|
smsc_superio_virt
);
return
(
void
__iomem
*
)
port
;
}
arch/sh/mach-cayman/irq.c
View file @
18bc8131
/*
/*
* This file is subject to the terms and conditions of the GNU General Public
* arch/sh/mach-cayman/irq.c - SH-5 Cayman Interrupt Support
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* arch/sh64/kernel/irq_cayman.c
*
* SH-5 Cayman Interrupt Support
*
*
* This file handles the board specific parts of the Cayman interrupt system
* This file handles the board specific parts of the Cayman interrupt system
*
*
* Copyright (C) 2002 Stuart Menefy
* Copyright (C) 2002 Stuart Menefy
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/
*/
#include <linux/io.h>
#include <asm/irq.h>
#include <asm/page.h>
#include <asm/io.h>
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <linux/signal.h>
#include <linux/signal.h>
#include <asm/cayman.h>
#include <asm/cpu/irq.h>
#include <asm/page.h>
/* Setup for the SMSC FDC37C935 / LAN91C100FD */
#define SMSC_IRQ IRQ_IRL1
/* Setup for PCI Bus 2, which transmits interrupts via the EPLD */
#define PCI2_IRQ IRQ_IRL3
unsigned
long
epld_virt
;
unsigned
long
epld_virt
;
...
...
arch/sh/mach-cayman/setup.c
View file @
18bc8131
/*
/*
* This file is subject to the terms and conditions of the GNU General Public
* arch/sh/mach-cayman/setup.c
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* arch/sh64/mach-cayman/setup.c
*
*
* SH5 Cayman support
* SH5 Cayman support
*
*
* This file handles the architecture-dependent parts of initialization
* Copyright (C) 2002 David J. Mckay & Benedict Gaster
* Copyright (C) 2003 - 2007 Paul Mundt
*
*
* Copyright David J. Mckay.
* This file is subject to the terms and conditions of the GNU General Public
* Needs major work!
* License. See the file "COPYING" in the main directory of this archive
*
* for more details.
* benedict.gaster@superh.com: 3rd May 2002
* Added support for ramdisk, removing statically linked romfs at the same time.
*
* lethal@linux-sh.org: 15th May 2003
* Use the generic procfs cpuinfo interface, just return a valid board name.
*/
*/
#include <linux/init.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <asm/platform.h>
#include <asm/cpu/irq.h>
#include <asm/irq.h>
#include <asm/io.h>
/*
/*
* Platform Dependent Interrupt Priorities.
* Platform Dependent Interrupt Priorities.
...
@@ -96,42 +87,6 @@
...
@@ -96,42 +87,6 @@
unsigned
long
smsc_superio_virt
;
unsigned
long
smsc_superio_virt
;
/*
* Platform dependent structures: maps and parms block.
*/
struct
resource
io_resources
[]
=
{
/* To be updated with external devices */
};
struct
resource
kram_resources
[]
=
{
/* These must be last in the array */
{
.
name
=
"Kernel code"
,
.
start
=
0
,
.
end
=
0
},
/* These must be last in the array */
{
.
name
=
"Kernel data"
,
.
start
=
0
,
.
end
=
0
}
};
struct
resource
xram_resources
[]
=
{
/* To be updated with external devices */
};
struct
resource
rom_resources
[]
=
{
/* To be updated with external devices */
};
struct
sh64_platform
platform_parms
=
{
.
readonly_rootfs
=
1
,
.
initial_root_dev
=
0x0100
,
.
loader_type
=
1
,
.
io_res_p
=
io_resources
,
.
io_res_count
=
ARRAY_SIZE
(
io_resources
),
.
kram_res_p
=
kram_resources
,
.
kram_res_count
=
ARRAY_SIZE
(
kram_resources
),
.
xram_res_p
=
xram_resources
,
.
xram_res_count
=
ARRAY_SIZE
(
xram_resources
),
.
rom_res_p
=
rom_resources
,
.
rom_res_count
=
ARRAY_SIZE
(
rom_resources
),
};
int
platform_int_priority
[
NR_INTC_IRQS
]
=
{
int
platform_int_priority
[
NR_INTC_IRQS
]
=
{
IR0
,
IR1
,
IR2
,
IR3
,
PCA
,
PCB
,
PCC
,
PCD
,
/* IRQ 0- 7 */
IR0
,
IR1
,
IR2
,
IR3
,
PCA
,
PCB
,
PCC
,
PCD
,
/* IRQ 0- 7 */
RES
,
RES
,
RES
,
RES
,
SER
,
ERR
,
PW3
,
PW2
,
/* IRQ 8-15 */
RES
,
RES
,
RES
,
RES
,
SER
,
ERR
,
PW3
,
PW2
,
/* IRQ 8-15 */
...
@@ -210,30 +165,23 @@ static int __init smsc_superio_setup(void)
...
@@ -210,30 +165,23 @@ static int __init smsc_superio_setup(void)
return
0
;
return
0
;
}
}
/* This is grotty, but, because kernel is always referenced on the link line
* before any devices, this is safe.
*/
__initcall
(
smsc_superio_setup
);
__initcall
(
smsc_superio_setup
);
void
__init
platform_setup
(
void
)
static
void
__iomem
*
cayman_ioport_map
(
unsigned
long
port
,
unsigned
int
len
)
{
/* Cayman platform leaves the decision to head.S, for now */
platform_parms
.
fpu_flags
=
fpu_in_use
;
}
void
__init
platform_monitor
(
void
)
{
{
/* Nothing yet .. */
if
(
port
<
0x400
)
{
}
extern
unsigned
long
smsc_superio_virt
;
return
(
void
__iomem
*
)((
port
<<
2
)
|
smsc_superio_virt
);
}
void
__init
platform_reserve
(
void
)
return
(
void
__iomem
*
)
port
;
{
/* Nothing yet .. */
}
}
const
char
*
get_system_type
(
void
)
extern
void
init_cayman_irq
(
void
);
{
return
"Hitachi Cayman"
;
}
static
struct
sh_machine_vector
mv_cayman
__initmv
=
{
.
mv_name
=
"Hitachi Cayman"
,
.
mv_nr_irqs
=
64
,
.
mv_ioport_map
=
cayman_ioport_map
,
.
mv_init_irq
=
init_cayman_irq
,
};
include/asm-sh/cpu-sh5/irq.h
View file @
18bc8131
...
@@ -92,9 +92,6 @@
...
@@ -92,9 +92,6 @@
#define NR_EXT_IRQS 0
#define NR_EXT_IRQS 0
#endif
#endif
#define NR_IRQS (NR_INTC_IRQS+NR_EXT_IRQS)
/* Default IRQs, fixed */
/* Default IRQs, fixed */
#define TIMER_IRQ IRQ_TUNI0
#define TIMER_IRQ IRQ_TUNI0
#define RTC_IRQ IRQ_CUI
#define RTC_IRQ IRQ_CUI
...
@@ -116,29 +113,6 @@
...
@@ -116,29 +113,6 @@
extern
int
intc_evt_to_irq
[(
0xE20
/
0x20
)
+
1
];
extern
int
intc_evt_to_irq
[(
0xE20
/
0x20
)
+
1
];
int
intc_irq_describe
(
char
*
p
,
int
irq
);
int
intc_irq_describe
(
char
*
p
,
int
irq
);
extern
int
platform_int_priority
[
NR_INTC_IRQS
];
#define irq_canonicalize(irq) (irq)
#ifdef CONFIG_SH_CAYMAN
int
cayman_irq_demux
(
int
evt
);
int
cayman_irq_describe
(
char
*
p
,
int
irq
);
#define irq_demux(x) cayman_irq_demux(x)
#define irq_describe(p, x) cayman_irq_describe(p, x)
#else
#define irq_demux(x) (intc_evt_to_irq[x])
#define irq_describe(p, x) intc_irq_describe(p, x)
#endif
/*
* Function for "on chip support modules".
*/
/*
* SH-5 supports Priority based interrupts only.
* Interrupt priorities are defined at platform level.
*/
#define set_ipr_data(a, b, c, d)
#define make_ipr_irq(a)
#define make_imask_irq(a)
#endif
/* __ASM_SH64_IRQ_H */
#endif
/* __ASM_SH64_IRQ_H */
include/asm-sh/platform.h
deleted
100644 → 0
View file @
caead5ef
#ifndef __ASM_SH64_PLATFORM_H
#define __ASM_SH64_PLATFORM_H
/*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* include/asm-sh64/platform.h
*
* Copyright (C) 2000, 2001 Paolo Alberelli
*
* benedict.gaster@superh.com: 3rd May 2002
* Added support for ramdisk, removing statically linked romfs at the same time.
*/
#include <linux/ioport.h>
#include <asm/irq.h>
/*
* Platform definition structure.
*/
struct
sh64_platform
{
unsigned
int
readonly_rootfs
;
unsigned
int
ramdisk_flags
;
unsigned
int
initial_root_dev
;
unsigned
int
loader_type
;
unsigned
int
initrd_start
;
unsigned
int
initrd_size
;
unsigned
int
fpu_flags
;
unsigned
int
io_res_count
;
unsigned
int
kram_res_count
;
unsigned
int
xram_res_count
;
unsigned
int
rom_res_count
;
struct
resource
*
io_res_p
;
struct
resource
*
kram_res_p
;
struct
resource
*
xram_res_p
;
struct
resource
*
rom_res_p
;
};
extern
struct
sh64_platform
platform_parms
;
extern
unsigned
long
long
memory_start
,
memory_end
;
extern
unsigned
long
long
fpu_in_use
;
extern
int
platform_int_priority
[
NR_INTC_IRQS
];
#define FPU_FLAGS (platform_parms.fpu_flags)
#define STANDARD_IO_RESOURCES (platform_parms.io_res_count)
#define STANDARD_KRAM_RESOURCES (platform_parms.kram_res_count)
#define STANDARD_XRAM_RESOURCES (platform_parms.xram_res_count)
#define STANDARD_ROM_RESOURCES (platform_parms.rom_res_count)
/*
* Kernel Memory description, Respectively:
* code = last but one memory descriptor
* data = last memory descriptor
*/
#define code_resource (platform_parms.kram_res_p[STANDARD_KRAM_RESOURCES - 2])
#define data_resource (platform_parms.kram_res_p[STANDARD_KRAM_RESOURCES - 1])
#endif
/* __ASM_SH64_PLATFORM_H */
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