Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
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