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
bbad8b17
Commit
bbad8b17
authored
Nov 05, 2004
by
Catalin Marinas
Committed by
Russell King
Nov 05, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] Versatile: patch-2.6.9-common
Patch from Catalin Marinas Common changes for Versatile PB and AB
parent
d57cdf16
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
232 additions
and
97 deletions
+232
-97
arch/arm/Kconfig
arch/arm/Kconfig
+15
-8
arch/arm/Makefile
arch/arm/Makefile
+1
-1
arch/arm/kernel/debug.S
arch/arm/kernel/debug.S
+1
-1
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-armv.S
+1
-1
arch/arm/mach-versatile/Kconfig
arch/arm/mach-versatile/Kconfig
+16
-0
arch/arm/mach-versatile/Makefile
arch/arm/mach-versatile/Makefile
+2
-0
arch/arm/mach-versatile/core.c
arch/arm/mach-versatile/core.c
+116
-78
arch/arm/mach-versatile/core.h
arch/arm/mach-versatile/core.h
+50
-0
arch/arm/mm/Kconfig
arch/arm/mm/Kconfig
+2
-2
include/asm-arm/arch-versatile/hardware.h
include/asm-arm/arch-versatile/hardware.h
+1
-1
include/asm-arm/arch-versatile/platform.h
include/asm-arm/arch-versatile/platform.h
+25
-3
include/asm-arm/arch-versatile/timex.h
include/asm-arm/arch-versatile/timex.h
+1
-1
include/asm-arm/hardware/amba_clcd.h
include/asm-arm/hardware/amba_clcd.h
+1
-1
No files found.
arch/arm/Kconfig
View file @
bbad8b17
...
...
@@ -162,10 +162,10 @@ config ARCH_LH7A40X
config ARCH_OMAP
bool "TI OMAP"
config ARCH_VERSATILE
_PB
bool "Versatile
PB
"
config ARCH_VERSATILE
bool "Versatile"
help
This enables support for ARM Ltd Versatile
PB
board.
This enables support for ARM Ltd Versatile board.
config ARCH_IMX
bool "IMX"
...
...
@@ -205,6 +205,8 @@ source "arch/arm/mach-imx/Kconfig"
source "arch/arm/mach-h720x/Kconfig"
source "arch/arm/mach-versatile/Kconfig"
# Definitions to make life easier
config ARCH_ACORN
bool
...
...
@@ -287,9 +289,14 @@ config ICST525
depends on ARCH_INTEGRATOR
default y
config ICST307
bool
depends on ARCH_VERSATILE
default y
config ARM_AMBA
bool
depends on ARCH_INTEGRATOR || ARCH_VERSATILE
_PB
depends on ARCH_INTEGRATOR || ARCH_VERSATILE
default y
config ISA
...
...
@@ -547,7 +554,7 @@ config CMDLINE
config LEDS
bool "Timer and CPU usage LEDs"
depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE
_PB
|| ARCH_IMX
depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE || ARCH_IMX
help
If you say Y here, the LEDs on your machine will be used
to provide useful information about your current system status.
...
...
@@ -560,8 +567,8 @@ config LEDS
system, but the driver will do nothing.
config LEDS_TIMER
bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || MACH_MAINSTONE || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE
_PB
|| ARCH_IMX)
depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE
_PB
|| ARCH_IMX
bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || MACH_MAINSTONE || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX)
depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE || ARCH_IMX
default y if ARCH_EBSA110
help
If you say Y here, one of the system LEDs (the green one on the
...
...
@@ -576,7 +583,7 @@ config LEDS_TIMER
config LEDS_CPU
bool "CPU usage LED"
depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE
_PB
|| ARCH_IMX)
depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX)
help
If you say Y here, the red LED will be used to give a good real
time indication of CPU usage, by lighting whenever the idle task
...
...
arch/arm/Makefile
View file @
bbad8b17
...
...
@@ -93,7 +93,7 @@ textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000
machine-$(CONFIG_ARCH_OMAP)
:=
omap
machine-$(CONFIG_ARCH_S3C2410)
:=
s3c2410
machine-$(CONFIG_ARCH_LH7A40X)
:=
lh7a40x
machine-$(CONFIG_ARCH_VERSATILE
_PB)
:=
versatile
machine-$(CONFIG_ARCH_VERSATILE
)
:=
versatile
machine-$(CONFIG_ARCH_IMX)
:=
imx
machine-$(CONFIG_ARCH_H720X)
:=
h720x
...
...
arch/arm/kernel/debug.S
View file @
bbad8b17
...
...
@@ -647,7 +647,7 @@
.
endm
#elif defined(CONFIG_ARCH_VERSATILE
_PB
)
#elif defined(CONFIG_ARCH_VERSATILE)
#include <asm/hardware/amba_serial.h>
...
...
arch/arm/kernel/entry-armv.S
View file @
bbad8b17
...
...
@@ -464,7 +464,7 @@ ENTRY(soft_irq_mask)
.
macro
irq_prio_table
.
endm
#elif defined(CONFIG_ARCH_VERSATILE
_PB
)
#elif defined(CONFIG_ARCH_VERSATILE)
.
macro
disable_fiq
.
endm
...
...
arch/arm/mach-versatile/Kconfig
0 → 100644
View file @
bbad8b17
menu "Versatile platform type"
depends on ARCH_VERSATILE
config ARCH_VERSATILE_PB
bool "Support Versatile/PB platform"
default y
help
Include support for the ARM(R) Versatile/PB platform.
config ARCH_VERSATILE_AB
bool "Support Versatile/AB platform"
default n
help
Include support for the ARM(R) Versatile/AP platform.
endmenu
arch/arm/mach-versatile/Makefile
View file @
bbad8b17
...
...
@@ -3,3 +3,5 @@
#
obj-y
:=
core.o clock.o
obj-$(CONFIG_ARCH_VERSATILE_PB)
+=
versatile_pb.o
obj-$(CONFIG_ARCH_VERSATILE_AB)
+=
versatile_ab.o
arch/arm/mach-versatile/core.c
View file @
bbad8b17
...
...
@@ -33,6 +33,7 @@
#include <asm/mach-types.h>
#include <asm/hardware/amba.h>
#include <asm/hardware/amba_clcd.h>
#include <asm/hardware/icst307.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
...
...
@@ -43,6 +44,9 @@
#include <asm/mach/mmc.h>
#endif
#include "core.h"
#include "clock.h"
/*
* All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx
* is the (PA >> 12).
...
...
@@ -111,19 +115,17 @@ sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
#if 1
#define IRQ_MMCI0A IRQ_VICSOURCE22
#define IRQ_MMCI1A IRQ_VICSOURCE23
#define IRQ_AACI IRQ_VICSOURCE24
#define IRQ_ETH IRQ_VICSOURCE25
#define PIC_MASK 0xFFD00000
#else
#define IRQ_MMCI0A IRQ_SIC_MMCI0A
#define IRQ_MMCI1A IRQ_SIC_MMCI1A
#define IRQ_AACI IRQ_SIC_AACI
#define IRQ_ETH IRQ_SIC_ETH
#define PIC_MASK 0
#endif
static
void
__init
versatile_init_irq
(
void
)
void
__init
versatile_init_irq
(
void
)
{
unsigned
int
i
,
value
;
...
...
@@ -189,6 +191,10 @@ static struct map_desc versatile_io_desc[] __initdata = {
{
IO_ADDRESS
(
VERSATILE_SIC_BASE
),
VERSATILE_SIC_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
VERSATILE_VIC_BASE
),
VERSATILE_VIC_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
VERSATILE_SCTL_BASE
),
VERSATILE_SCTL_BASE
,
SZ_4K
*
9
,
MT_DEVICE
},
#ifdef CONFIG_ARCH_VERSATILE_AB
{
IO_ADDRESS
(
VERSATILE_GPIO0_BASE
),
VERSATILE_GPIO0_BASE
,
SZ_4K
,
MT_DEVICE
},
{
IO_ADDRESS
(
VERSATILE_IB2_BASE
),
VERSATILE_IB2_BASE
,
SZ_64M
,
MT_DEVICE
},
#endif
#ifdef CONFIG_DEBUG_LL
{
IO_ADDRESS
(
VERSATILE_UART0_BASE
),
VERSATILE_UART0_BASE
,
SZ_4K
,
MT_DEVICE
},
#endif
...
...
@@ -200,7 +206,7 @@ static struct map_desc versatile_io_desc[] __initdata = {
#endif
};
static
void
__init
versatile_map_io
(
void
)
void
__init
versatile_map_io
(
void
)
{
iotable_init
(
versatile_io_desc
,
ARRAY_SIZE
(
versatile_io_desc
));
}
...
...
@@ -208,7 +214,7 @@ static void __init versatile_map_io(void)
#define VERSATILE_REFCOUNTER (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET)
/*
* This is the Versatile
PB
sched_clock implementation. This has
* This is the Versatile sched_clock implementation. This has
* a resolution of 41.7ns, and a maximum value of about 179s.
*/
unsigned
long
long
sched_clock
(
void
)
...
...
@@ -303,7 +309,7 @@ static struct platform_device smc91x_device = {
#define VERSATILE_SYSMCI (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET)
#ifdef CONFIG_MMC
static
unsigned
int
mmc_status
(
struct
device
*
dev
)
unsigned
int
mmc_status
(
struct
device
*
dev
)
{
struct
amba_device
*
adev
=
container_of
(
dev
,
struct
amba_device
,
dev
);
u32
mask
;
...
...
@@ -320,21 +326,52 @@ static struct mmc_platform_data mmc0_plat_data = {
.
ocr_mask
=
MMC_VDD_32_33
|
MMC_VDD_33_34
,
.
status
=
mmc_status
,
};
#endif
static
struct
mmc_platform_data
mmc1_plat_data
=
{
.
ocr_mask
=
MMC_VDD_32_33
|
MMC_VDD_33_34
,
.
status
=
mmc_status
,
/*
* Clock handling
*/
static
const
struct
icst307_params
versatile_oscvco_params
=
{
.
ref
=
24000
,
.
vco_max
=
200000
,
.
vd_min
=
4
+
8
,
.
vd_max
=
511
+
8
,
.
rd_min
=
1
+
2
,
.
rd_max
=
127
+
2
,
};
static
void
versatile_oscvco_set
(
struct
clk
*
clk
,
struct
icst307_vco
vco
)
{
unsigned
long
sys_lock
=
IO_ADDRESS
(
VERSATILE_SYS_BASE
)
+
VERSATILE_SYS_LOCK_OFFSET
;
#if defined(CONFIG_ARCH_VERSATILE_PB)
unsigned
long
sys_osc
=
IO_ADDRESS
(
VERSATILE_SYS_BASE
)
+
VERSATILE_SYS_OSC4_OFFSET
;
#elif defined(CONFIG_ARCH_VERSATILE_AB)
unsigned
long
sys_osc
=
IO_ADDRESS
(
VERSATILE_SYS_BASE
)
+
VERSATILE_SYS_OSC1_OFFSET
;
#endif
u32
val
;
val
=
readl
(
sys_osc
)
&
~
0x7ffff
;
val
|=
vco
.
v
|
(
vco
.
r
<<
9
)
|
(
vco
.
s
<<
16
);
writel
(
0xa05f
,
sys_lock
);
writel
(
val
,
sys_osc
);
writel
(
0
,
sys_lock
);
}
static
struct
clk
versatile_clcd_clk
=
{
.
name
=
"CLCDCLK"
,
.
params
=
&
versatile_oscvco_params
,
.
setvco
=
versatile_oscvco_set
,
};
/*
* CLCD support.
*/
#define SYS_CLCD_MODE_MASK (3 << 0)
#define SYS_CLCD_MODE_
5551
(0 << 0)
#define SYS_CLCD_MODE_5
65
(1 << 0)
#define SYS_CLCD_MODE_
888
(2 << 0)
#define SYS_CLCD_MODE_
LT
(3 << 0)
#define SYS_CLCD_MODE_
888
(0 << 0)
#define SYS_CLCD_MODE_5
551
(1 << 0)
#define SYS_CLCD_MODE_
565_RLSB
(2 << 0)
#define SYS_CLCD_MODE_
565_BLSB
(3 << 0)
#define SYS_CLCD_NLCDIOON (1 << 2)
#define SYS_CLCD_VDDPOSSWITCH (1 << 3)
#define SYS_CLCD_PWR3V5SWITCH (1 << 4)
...
...
@@ -342,6 +379,7 @@ static struct mmc_platform_data mmc1_plat_data = {
#define SYS_CLCD_ID_SANYO_3_8 (0x00 << 8)
#define SYS_CLCD_ID_UNKNOWN_8_4 (0x01 << 8)
#define SYS_CLCD_ID_EPSON_2_2 (0x02 << 8)
#define SYS_CLCD_ID_SANYO_2_5 (0x07 << 8)
#define SYS_CLCD_ID_VGA (0x1f << 8)
static
struct
clcd_panel
vga
=
{
...
...
@@ -390,6 +428,29 @@ static struct clcd_panel sanyo_3_8_in = {
.
bpp
=
16
,
};
static
struct
clcd_panel
sanyo_2_5_in
=
{
.
mode
=
{
.
name
=
"Sanyo QVGA Portrait"
,
.
refresh
=
116
,
.
xres
=
240
,
.
yres
=
320
,
.
pixclock
=
100000
,
.
left_margin
=
20
,
.
right_margin
=
10
,
.
upper_margin
=
2
,
.
lower_margin
=
2
,
.
hsync_len
=
10
,
.
vsync_len
=
2
,
.
sync
=
FB_SYNC_HOR_HIGH_ACT
|
FB_SYNC_VERT_HIGH_ACT
,
.
vmode
=
FB_VMODE_NONINTERLACED
,
},
.
width
=
-
1
,
.
height
=
-
1
,
.
tim2
=
TIM2_IVS
|
TIM2_IHS
|
TIM2_IPC
,
.
cntl
=
CNTL_LCDTFT
|
CNTL_LCDVCOMP
(
1
),
.
bpp
=
16
,
};
static
struct
clcd_panel
epson_2_2_in
=
{
.
mode
=
{
.
name
=
"Epson QCIF"
,
...
...
@@ -428,6 +489,8 @@ static struct clcd_panel *versatile_clcd_panel(void)
val
=
readl
(
sys_clcd
)
&
SYS_CLCD_ID_MASK
;
if
(
val
==
SYS_CLCD_ID_SANYO_3_8
)
panel
=
&
sanyo_3_8_in
;
else
if
(
val
==
SYS_CLCD_ID_SANYO_2_5
)
panel
=
&
sanyo_2_5_in
;
else
if
(
val
==
SYS_CLCD_ID_EPSON_2_2
)
panel
=
&
epson_2_2_in
;
else
if
(
val
==
SYS_CLCD_ID_VGA
)
...
...
@@ -435,9 +498,10 @@ static struct clcd_panel *versatile_clcd_panel(void)
else
{
printk
(
KERN_ERR
"CLCD: unknown LCD panel ID 0x%08x, using VGA
\n
"
,
val
);
panel
=
&
vga
;
}
return
&
vga
;
return
panel
;
}
/*
...
...
@@ -451,6 +515,20 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
val
=
readl
(
sys_clcd
);
val
&=
~
SYS_CLCD_NLCDIOON
|
SYS_CLCD_PWR3V5SWITCH
;
writel
(
val
,
sys_clcd
);
#ifdef CONFIG_ARCH_VERSATILE_AB
/*
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
*/
if
(
fb
->
panel
==
&
sanyo_2_5_in
)
{
unsigned
long
versatile_ib2_ctrl
=
IO_ADDRESS
(
VERSATILE_IB2_CTRL
);
unsigned
long
ctrl
;
ctrl
=
readl
(
versatile_ib2_ctrl
);
ctrl
&=
~
0x01
;
writel
(
ctrl
,
versatile_ib2_ctrl
);
}
#endif
}
/*
...
...
@@ -466,19 +544,10 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
switch
(
fb
->
fb
.
var
.
green
.
length
)
{
case
5
:
#if 0
/*
* For some undocumented reason, we need to select 565 mode
* even when using 555 with VGA. Maybe this is only true
* for the VGA output and needs to be done for LCD panels?
* I can't get an explaination from the people who should
* know.
*/
val
|=
SYS_CLCD_MODE_5551
;
break
;
#endif
case
6
:
val
|=
SYS_CLCD_MODE_565
;
val
|=
SYS_CLCD_MODE_565
_BLSB
;
break
;
case
8
:
val
|=
SYS_CLCD_MODE_888
;
...
...
@@ -495,6 +564,20 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
*/
val
|=
SYS_CLCD_NLCDIOON
|
SYS_CLCD_PWR3V5SWITCH
;
writel
(
val
,
sys_clcd
);
#ifdef CONFIG_ARCH_VERSATILE_AB
/*
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
*/
if
(
fb
->
panel
==
&
sanyo_2_5_in
)
{
unsigned
long
versatile_ib2_ctrl
=
IO_ADDRESS
(
VERSATILE_IB2_CTRL
);
unsigned
long
ctrl
;
ctrl
=
readl
(
versatile_ib2_ctrl
);
ctrl
|=
0x01
;
writel
(
ctrl
,
versatile_ib2_ctrl
);
}
#endif
}
static
unsigned
long
framesize
=
SZ_1M
;
...
...
@@ -525,7 +608,7 @@ static void versatile_clcd_remove(struct clcd_fb *fb)
}
static
struct
clcd_board
clcd_plat_data
=
{
.
name
=
"Versatile
PB
"
,
.
name
=
"Versatile"
,
.
check
=
clcdfb_check
,
.
decode
=
clcdfb_decode
,
.
disable
=
versatile_clcd_disable
,
...
...
@@ -534,23 +617,6 @@ static struct clcd_board clcd_plat_data = {
.
remove
=
versatile_clcd_remove
,
};
#define AMBA_DEVICE(name,busid,base,plat) \
static struct amba_device name##_device = { \
.dev = { \
.coherent_dma_mask = ~0, \
.bus_id = busid, \
.platform_data = plat, \
}, \
.res = { \
.start = VERSATILE_##base##_BASE, \
.end = (VERSATILE_##base##_BASE) + SZ_4K - 1,\
.flags = IORESOURCE_MEM, \
}, \
.dma_mask = ~0, \
.irq = base##_IRQ, \
/* .dma = base##_DMA,*/
\
}
#define AACI_IRQ { IRQ_AACI, NO_IRQ }
#define AACI_DMA { 0x80, 0x81 }
#define MMCI0_IRQ { IRQ_MMCI0A,IRQ_SIC_MMCI0B }
...
...
@@ -559,12 +625,6 @@ static struct amba_device name##_device = { \
#define KMI0_DMA { 0, 0 }
#define KMI1_IRQ { IRQ_SIC_KMI1, NO_IRQ }
#define KMI1_DMA { 0, 0 }
#define UART3_IRQ { IRQ_SIC_UART3, NO_IRQ }
#define UART3_DMA { 0x86, 0x87 }
#define SCI1_IRQ { IRQ_SIC_SCI3, NO_IRQ }
#define SCI1_DMA { 0x88, 0x89 }
#define MMCI1_IRQ { IRQ_MMCI1A, IRQ_SIC_MMCI1B }
#define MMCI1_DMA { 0x85, 0 }
/*
* These devices are connected directly to the multi-layer AHB switch
...
...
@@ -589,10 +649,6 @@ static struct amba_device name##_device = { \
#define GPIO0_DMA { 0, 0 }
#define GPIO1_IRQ { IRQ_GPIOINT1, NO_IRQ }
#define GPIO1_DMA { 0, 0 }
#define GPIO2_IRQ { IRQ_GPIOINT2, NO_IRQ }
#define GPIO2_DMA { 0, 0 }
#define GPIO3_IRQ { IRQ_GPIOINT3, NO_IRQ }
#define GPIO3_DMA { 0, 0 }
#define RTC_IRQ { IRQ_RTCINT, NO_IRQ }
#define RTC_DMA { 0, 0 }
...
...
@@ -617,11 +673,6 @@ AMBA_DEVICE(mmc0, "fpga:05", MMCI0, &mmc0_plat_data);
#endif
AMBA_DEVICE
(
kmi0
,
"fpga:06"
,
KMI0
,
NULL
);
AMBA_DEVICE
(
kmi1
,
"fpga:07"
,
KMI1
,
NULL
);
AMBA_DEVICE
(
uart3
,
"fpga:09"
,
UART3
,
NULL
);
AMBA_DEVICE
(
sci1
,
"fpga:0a"
,
SCI1
,
NULL
);
#ifdef CONFIG_MMC
AMBA_DEVICE
(
mmc1
,
"fpga:0b"
,
MMCI1
,
&
mmc1_plat_data
);
#endif
/* DevChip Primecells */
AMBA_DEVICE
(
smc
,
"dev:00"
,
SMC
,
NULL
);
...
...
@@ -632,8 +683,6 @@ AMBA_DEVICE(sctl, "dev:e0", SCTL, NULL);
AMBA_DEVICE
(
wdog
,
"dev:e1"
,
WATCHDOG
,
NULL
);
AMBA_DEVICE
(
gpio0
,
"dev:e4"
,
GPIO0
,
NULL
);
AMBA_DEVICE
(
gpio1
,
"dev:e5"
,
GPIO1
,
NULL
);
AMBA_DEVICE
(
gpio2
,
"dev:e6"
,
GPIO2
,
NULL
);
AMBA_DEVICE
(
gpio3
,
"dev:e7"
,
GPIO3
,
NULL
);
AMBA_DEVICE
(
rtc
,
"dev:e8"
,
RTC
,
NULL
);
AMBA_DEVICE
(
sci0
,
"dev:f0"
,
SCI
,
NULL
);
AMBA_DEVICE
(
uart0
,
"dev:f1"
,
UART0
,
NULL
);
...
...
@@ -646,7 +695,6 @@ static struct amba_device *amba_devs[] __initdata = {
&
uart0_device
,
&
uart1_device
,
&
uart2_device
,
&
uart3_device
,
&
smc_device
,
&
mpmc_device
,
&
clcd_device
,
...
...
@@ -654,8 +702,6 @@ static struct amba_device *amba_devs[] __initdata = {
&
wdog_device
,
&
gpio0_device
,
&
gpio1_device
,
&
gpio2_device
,
&
gpio3_device
,
&
rtc_device
,
&
sci0_device
,
&
ssp0_device
,
...
...
@@ -665,12 +711,9 @@ static struct amba_device *amba_devs[] __initdata = {
#endif
&
kmi0_device
,
&
kmi1_device
,
&
sci1_device
,
#ifdef CONFIG_MMC
&
mmc1_device
,
#endif
};
#ifdef CONFIG_LEDS
#define VA_LEDS_BASE (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET)
static
void
versatile_leds_event
(
led_event_t
ledevt
)
...
...
@@ -705,11 +748,14 @@ static void versatile_leds_event(led_event_t ledevt)
writel
(
val
,
VA_LEDS_BASE
);
local_irq_restore
(
flags
);
}
#endif
/* CONFIG_LEDS */
static
void
__init
versatile_init
(
void
)
void
__init
versatile_init
(
void
)
{
int
i
;
clk_register
(
&
versatile_clcd_clk
);
platform_device_register
(
&
versatile_flash_device
);
platform_device_register
(
&
smc91x_device
);
...
...
@@ -718,7 +764,9 @@ static void __init versatile_init(void)
amba_device_register
(
d
,
&
iomem_resource
);
}
#ifdef CONFIG_LEDS
leds_event
=
versatile_leds_event
;
#endif
}
/*
...
...
@@ -863,17 +911,7 @@ static void __init versatile_timer_init(void)
setup_irq
(
IRQ_TIMERINT0_1
,
&
versatile_timer_irq
);
}
st
atic
st
ruct
sys_timer
versatile_timer
=
{
struct
sys_timer
versatile_timer
=
{
.
init
=
versatile_timer_init
,
.
offset
=
versatile_gettimeoffset
,
};
MACHINE_START
(
VERSATILE_PB
,
"ARM-Versatile PB"
)
MAINTAINER
(
"ARM Ltd/Deep Blue Solutions Ltd"
)
BOOT_MEM
(
0x00000000
,
0x101f1000
,
0xf11f1000
)
BOOT_PARAMS
(
0x00000100
)
MAPIO
(
versatile_map_io
)
INITIRQ
(
versatile_init_irq
)
.
timer
=
&
versatile_timer
,
INIT_MACHINE
(
versatile_init
)
MACHINE_END
arch/arm/mach-versatile/core.h
0 → 100644
View file @
bbad8b17
/*
* linux/arch/arm/mach-versatile/core.h
*
* Copyright (C) 2004 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __ASM_ARCH_VERSATILE_H
#define __ASM_ARCH_VERSATILE_H
#include <asm/hardware/amba.h>
extern
void
__init
versatile_init
(
void
);
extern
void
__init
versatile_init_irq
(
void
);
extern
void
__init
versatile_map_io
(
void
);
extern
struct
sys_timer
versatile_timer
;
extern
unsigned
int
mmc_status
(
struct
device
*
dev
);
#define AMBA_DEVICE(name,busid,base,plat) \
static struct amba_device name##_device = { \
.dev = { \
.coherent_dma_mask = ~0, \
.bus_id = busid, \
.platform_data = plat, \
}, \
.res = { \
.start = VERSATILE_##base##_BASE, \
.end = (VERSATILE_##base##_BASE) + SZ_4K - 1,\
.flags = IORESOURCE_MEM, \
}, \
.dma_mask = ~0, \
.irq = base##_IRQ, \
/* .dma = base##_DMA,*/
\
}
#endif
arch/arm/mm/Kconfig
View file @
bbad8b17
...
...
@@ -121,8 +121,8 @@ config CPU_ARM925T
# ARM926T
config CPU_ARM926T
bool "Support ARM926T processor" if ARCH_INTEGRATOR
depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || ARCH_OMAP730 || ARCH_OMAP1610 || ARCH_OMAP5912
default y if ARCH_VERSATILE_PB
depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || ARCH_
VERSATILE_AB || ARCH_
OMAP730 || ARCH_OMAP1610 || ARCH_OMAP5912
default y if ARCH_VERSATILE_PB
|| ARCH_VERSATILE_AB
select CPU_32v5
select CPU_ABRT_EV5TJ
select CPU_CACHE_VIVT
...
...
include/asm-arm/arch-versatile/hardware.h
View file @
bbad8b17
/*
* linux/include/asm-arm/arch-versatile/hardware.h
*
* This file contains the hardware definitions of the Versatile
PB board
.
* This file contains the hardware definitions of the Versatile
boards
.
*
* Copyright (C) 2003 ARM Limited.
*
...
...
include/asm-arm/arch-versatile/platform.h
View file @
bbad8b17
...
...
@@ -47,7 +47,7 @@
/* ------------------------------------------------------------------------
* Versatile
PB
Registers
* Versatile Registers
* ------------------------------------------------------------------------
*
*/
...
...
@@ -55,10 +55,16 @@
#define VERSATILE_SYS_SW_OFFSET 0x04
#define VERSATILE_SYS_LED_OFFSET 0x08
#define VERSATILE_SYS_OSC0_OFFSET 0x0C
#if defined(CONFIG_ARCH_VERSATILE_PB)
#define VERSATILE_SYS_OSC1_OFFSET 0x10
#define VERSATILE_SYS_OSC2_OFFSET 0x14
#define VERSATILE_SYS_OSC3_OFFSET 0x18
#define VERSATILE_SYS_OSC4_OFFSET 0x1C
#elif defined(CONFIG_ARCH_VERSATILE_AB)
#define VERSATILE_SYS_OSC1_OFFSET 0x1C
#endif
#define VERSATILE_SYS_LOCK_OFFSET 0x20
#define VERSATILE_SYS_100HZ_OFFSET 0x24
#define VERSATILE_SYS_CFGDATA1_OFFSET 0x28
...
...
@@ -90,9 +96,13 @@
#define VERSATILE_SYS_LED (VERSATILE_SYS_BASE + VERSATILE_SYS_LED_OFFSET)
#define VERSATILE_SYS_OSC0 (VERSATILE_SYS_BASE + VERSATILE_SYS_OSC0_OFFSET)
#define VERSATILE_SYS_OSC1 (VERSATILE_SYS_BASE + VERSATILE_SYS_OSC1_OFFSET)
#if defined(CONFIG_ARCH_VERSATILE_PB)
#define VERSATILE_SYS_OSC2 (VERSATILE_SYS_BASE + VERSATILE_SYS_OSC2_OFFSET)
#define VERSATILE_SYS_OSC3 (VERSATILE_SYS_BASE + VERSATILE_SYS_OSC3_OFFSET)
#define VERSATILE_SYS_OSC4 (VERSATILE_SYS_BASE + VERSATILE_SYS_OSC4_OFFSET)
#endif
#define VERSATILE_SYS_LOCK (VERSATILE_SYS_BASE + VERSATILE_SYS_LOCK_OFFSET)
#define VERSATILE_SYS_100HZ (VERSATILE_SYS_BASE + VERSATILE_SYS_100HZ_OFFSET)
#define VERSATILE_SYS_CFGDATA1 (VERSATILE_SYS_BASE + VERSATILE_SYS_CFGDATA1_OFFSET)
...
...
@@ -132,7 +142,7 @@
/* ------------------------------------------------------------------------
* Versatile
PB
control registers
* Versatile control registers
* ------------------------------------------------------------------------
*/
...
...
@@ -213,6 +223,7 @@
#define VERSATILE_SSP_BASE 0x101F4000
/* Synchronous Serial Port */
#define VERSATILE_SSMC_BASE 0x20000000
/* SSMC */
#define VERSATILE_IB2_BASE 0x24000000
/* IB2 module */
#define VERSATILE_MBX_BASE 0x40000000
/* MBX */
#define VERSATILE_PCI_BASE 0x41000000
/* PCI Interface */
#define VERSATILE_SDRAM67_BASE 0x70000000
/* SDRAM banks 6 and 7 */
...
...
@@ -255,7 +266,7 @@
/* ------------------------------------------------------------------------
* Versatile
PB
Interrupt Controller - control registers
* Versatile Interrupt Controller - control registers
* ------------------------------------------------------------------------
*
* Offsets from interrupt controller base
...
...
@@ -483,6 +494,17 @@
#define VERSATILE_CSR_BASE 0x10000000
#define VERSATILE_CSR_SIZE 0x10000000
#ifdef CONFIG_ARCH_VERSATILE_AB
/*
* IB2 Versatile/AB expansion board definitions
*/
#define VERSATILE_IB2_CAMERA_BANK 0x24000000
#define VERSATILE_IB2_KBD_DATAREG 0x25000000
#define VERSATILE_IB2_IER 0x26000000
/* for VICINTSOURCE27 */
#define VERSATILE_IB2_CTRL 0x27000000
#define VERSATILE_IB2_STAT 0x27000004
#endif
#endif
/* END */
include/asm-arm/arch-versatile/timex.h
View file @
bbad8b17
/*
* linux/include/asm-arm/arch-versatile/timex.h
*
* Versatile
PB
architecture timex specifications
* Versatile architecture timex specifications
*
* Copyright (C) 2003 ARM Limited
*
...
...
include/asm-arm/hardware/amba_clcd.h
View file @
bbad8b17
...
...
@@ -22,7 +22,7 @@
#define CLCD_UBAS 0x00000010
#define CLCD_LBAS 0x00000014
#ifndef CONFIG_ARCH_VERSATILE
_PB
#ifndef CONFIG_ARCH_VERSATILE
#define CLCD_IENB 0x00000018
#define CLCD_CNTL 0x0000001c
#else
...
...
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