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
5b0e59c8
Commit
5b0e59c8
authored
Apr 30, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
978b7ac2
f1d26c92
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
359 additions
and
551 deletions
+359
-551
arch/arm/configs/lubbock_defconfig
arch/arm/configs/lubbock_defconfig
+267
-410
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/idp.c
+1
-1
arch/arm/mach-pxa/leds-lubbock.c
arch/arm/mach-pxa/leds-lubbock.c
+33
-43
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/lubbock.c
+2
-8
arch/arm/mm/proc-xscale.S
arch/arm/mm/proc-xscale.S
+43
-1
drivers/mtd/maps/lubbock-flash.c
drivers/mtd/maps/lubbock-flash.c
+1
-1
include/asm-arm/arch-pxa/lubbock.h
include/asm-arm/arch-pxa/lubbock.h
+12
-87
No files found.
arch/arm/configs/lubbock_defconfig
View file @
5b0e59c8
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/idp.c
View file @
5b0e59c8
...
@@ -113,7 +113,7 @@ static void __init idp_map_io(void)
...
@@ -113,7 +113,7 @@ static void __init idp_map_io(void)
MACHINE_START
(
PXA_IDP
,
"Accelent Xscale IDP"
)
MACHINE_START
(
PXA_IDP
,
"Accelent Xscale IDP"
)
MAINTAINER
(
"Accelent Systems Inc."
)
MAINTAINER
(
"Accelent Systems Inc."
)
BOOT_MEM
(
0xa0000000
,
0x40000000
,
0xfc000000
)
BOOT_MEM
(
0xa0000000
,
0x40000000
,
io_p2v
(
0x40000000
)
)
MAPIO
(
idp_map_io
)
MAPIO
(
idp_map_io
)
INITIRQ
(
idp_init_irq
)
INITIRQ
(
idp_init_irq
)
INIT_MACHINE
(
idp_init
)
INIT_MACHINE
(
idp_init
)
...
...
arch/arm/mach-pxa/leds-lubbock.c
View file @
5b0e59c8
...
@@ -7,12 +7,10 @@
...
@@ -7,12 +7,10 @@
*
*
* Original (leds-footbridge.c) by Russell King
* Original (leds-footbridge.c) by Russell King
*
*
* See leds.h for bit definitions. The first version defines D28 on the
* Major surgery on April 2004 by Nicolas Pitre for less global
* Lubbock dev board as the heartbeat, and D27 as the Sys_busy led.
* namespace collision. Mostly adapted the Mainstone version.
* There's plenty more if you're interested in adding them :)
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/init.h>
#include <linux/init.h>
...
@@ -22,6 +20,21 @@
...
@@ -22,6 +20,21 @@
#include "leds.h"
#include "leds.h"
/*
* 8 discrete leds available for general use:
*
* Note: bits [15-8] are used to enable/blank the 8 7 segment hex displays
* so be sure to not monkey with them here.
*/
#define D28 (1 << 0)
#define D27 (1 << 1)
#define D26 (1 << 2)
#define D25 (1 << 3)
#define D24 (1 << 4)
#define D23 (1 << 5)
#define D22 (1 << 6)
#define D21 (1 << 7)
#define LED_STATE_ENABLED 1
#define LED_STATE_ENABLED 1
#define LED_STATE_CLAIMED 2
#define LED_STATE_CLAIMED 2
...
@@ -37,7 +50,7 @@ void lubbock_leds_event(led_event_t evt)
...
@@ -37,7 +50,7 @@ void lubbock_leds_event(led_event_t evt)
switch
(
evt
)
{
switch
(
evt
)
{
case
led_start
:
case
led_start
:
hw_led_state
=
HEARTBEAT_LED
|
SYS_BUSY_LED
;
hw_led_state
=
0
;
led_state
=
LED_STATE_ENABLED
;
led_state
=
LED_STATE_ENABLED
;
break
;
break
;
...
@@ -47,30 +60,27 @@ void lubbock_leds_event(led_event_t evt)
...
@@ -47,30 +60,27 @@ void lubbock_leds_event(led_event_t evt)
case
led_claim
:
case
led_claim
:
led_state
|=
LED_STATE_CLAIMED
;
led_state
|=
LED_STATE_CLAIMED
;
hw_led_state
=
HEARTBEAT_LED
|
SYS_BUSY_LED
;
hw_led_state
=
0
;
break
;
break
;
case
led_release
:
case
led_release
:
led_state
&=
~
LED_STATE_CLAIMED
;
led_state
&=
~
LED_STATE_CLAIMED
;
hw_led_state
=
HEARTBEAT_LED
|
SYS_BUSY_LED
;
hw_led_state
=
0
;
break
;
break
;
#ifdef CONFIG_LEDS_TIMER
#ifdef CONFIG_LEDS_TIMER
case
led_timer
:
case
led_timer
:
if
(
!
(
led_state
&
LED_STATE_CLAIMED
))
hw_led_state
^=
D26
;
hw_led_state
^=
HEARTBEAT_LED
;
break
;
break
;
#endif
#endif
#ifdef CONFIG_LEDS_CPU
#ifdef CONFIG_LEDS_CPU
case
led_idle_start
:
case
led_idle_start
:
if
(
!
(
led_state
&
LED_STATE_CLAIMED
))
hw_led_state
&=
~
D27
;
hw_led_state
|=
SYS_BUSY_LED
;
break
;
break
;
case
led_idle_end
:
case
led_idle_end
:
if
(
!
(
led_state
&
LED_STATE_CLAIMED
))
hw_led_state
|=
D27
;
hw_led_state
&=
~
SYS_BUSY_LED
;
break
;
break
;
#endif
#endif
...
@@ -78,29 +88,27 @@ void lubbock_leds_event(led_event_t evt)
...
@@ -78,29 +88,27 @@ void lubbock_leds_event(led_event_t evt)
break
;
break
;
case
led_green_on
:
case
led_green_on
:
if
(
led_state
&
LED_STATE_CLAIMED
)
hw_led_state
|=
D21
;;
hw_led_state
&=
~
HEARTBEAT_LED
;
break
;
break
;
case
led_green_off
:
case
led_green_off
:
if
(
led_state
&
LED_STATE_CLAIMED
)
hw_led_state
&=
~
D21
;
hw_led_state
|=
HEARTBEAT_LED
;
break
;
break
;
case
led_amber_on
:
case
led_amber_on
:
hw_led_state
|=
D22
;;
break
;
break
;
case
led_amber_off
:
case
led_amber_off
:
hw_led_state
&=
~
D22
;
break
;
break
;
case
led_red_on
:
case
led_red_on
:
if
(
led_state
&
LED_STATE_CLAIMED
)
hw_led_state
|=
D23
;;
hw_led_state
&=
~
SYS_BUSY_LED
;
break
;
break
;
case
led_red_off
:
case
led_red_off
:
if
(
led_state
&
LED_STATE_CLAIMED
)
hw_led_state
&=
~
D23
;
hw_led_state
|=
SYS_BUSY_LED
;
break
;
break
;
default:
default:
...
@@ -108,27 +116,9 @@ void lubbock_leds_event(led_event_t evt)
...
@@ -108,27 +116,9 @@ void lubbock_leds_event(led_event_t evt)
}
}
if
(
led_state
&
LED_STATE_ENABLED
)
if
(
led_state
&
LED_STATE_ENABLED
)
{
LUB_DISC_BLNK_LED
=
(
LUB_DISC_BLNK_LED
|
0xff
)
&
~
hw_led_state
;
switch
(
hw_led_state
)
{
else
case
0
:
// all on
LUB_DISC_BLNK_LED
|=
0xff
;
HEARTBEAT_LED_ON
;
SYS_BUSY_LED_ON
;
break
;
case
1
:
// turn off heartbeat, status on:
HEARTBEAT_LED_OFF
;
SYS_BUSY_LED_ON
;
break
;
case
2
:
// status off, heartbeat on:
HEARTBEAT_LED_ON
;
SYS_BUSY_LED_OFF
;
break
;
case
3
:
// turn them both off...
HEARTBEAT_LED_OFF
;
SYS_BUSY_LED_OFF
;
break
;
default:
break
;
}
}
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
}
}
arch/arm/mach-pxa/lubbock.c
View file @
5b0e59c8
...
@@ -28,7 +28,6 @@
...
@@ -28,7 +28,6 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/arch/irq.h>
#include <asm/arch/udc.h>
#include <asm/arch/udc.h>
#include <asm/hardware/sa1111.h>
#include <asm/hardware/sa1111.h>
...
@@ -156,11 +155,7 @@ static void __init lubbock_init(void)
...
@@ -156,11 +155,7 @@ static void __init lubbock_init(void)
}
}
static
struct
map_desc
lubbock_io_desc
[]
__initdata
=
{
static
struct
map_desc
lubbock_io_desc
[]
__initdata
=
{
/* virtual physical length type */
{
LUBBOCK_FPGA_VIRT
,
LUBBOCK_FPGA_PHYS
,
0x00100000
,
MT_DEVICE
},
/* CPLD */
{
0xf0000000
,
0x08000000
,
0x00100000
,
MT_DEVICE
},
/* CPLD */
{
0xf1000000
,
0x0c000000
,
0x00100000
,
MT_DEVICE
},
/* LAN91C96 IO */
{
0xf1100000
,
0x0e000000
,
0x00100000
,
MT_DEVICE
},
/* LAN91C96 Attr */
{
0xf4000000
,
0x10000000
,
0x00800000
,
MT_DEVICE
},
/* SA1111 */
};
};
static
void
__init
lubbock_map_io
(
void
)
static
void
__init
lubbock_map_io
(
void
)
...
@@ -169,7 +164,6 @@ static void __init lubbock_map_io(void)
...
@@ -169,7 +164,6 @@ static void __init lubbock_map_io(void)
iotable_init
(
lubbock_io_desc
,
ARRAY_SIZE
(
lubbock_io_desc
));
iotable_init
(
lubbock_io_desc
,
ARRAY_SIZE
(
lubbock_io_desc
));
/* This enables the BTUART */
/* This enables the BTUART */
CKEN
|=
CKEN7_BTUART
;
pxa_gpio_mode
(
GPIO42_BTRXD_MD
);
pxa_gpio_mode
(
GPIO42_BTRXD_MD
);
pxa_gpio_mode
(
GPIO43_BTTXD_MD
);
pxa_gpio_mode
(
GPIO43_BTTXD_MD
);
pxa_gpio_mode
(
GPIO44_BTCTS_MD
);
pxa_gpio_mode
(
GPIO44_BTCTS_MD
);
...
@@ -188,7 +182,7 @@ static void __init lubbock_map_io(void)
...
@@ -188,7 +182,7 @@ static void __init lubbock_map_io(void)
PCFR
|=
PCFR_OPDE
;
PCFR
|=
PCFR_OPDE
;
}
}
MACHINE_START
(
LUBBOCK
,
"Intel DBPXA250 Development Platform"
)
MACHINE_START
(
LUBBOCK
,
"Intel DBPXA250 Development Platform
(aka Lubbock)
"
)
MAINTAINER
(
"MontaVista Software Inc."
)
MAINTAINER
(
"MontaVista Software Inc."
)
BOOT_MEM
(
0xa0000000
,
0x40000000
,
io_p2v
(
0x40000000
))
BOOT_MEM
(
0xa0000000
,
0x40000000
,
io_p2v
(
0x40000000
))
MAPIO
(
lubbock_map_io
)
MAPIO
(
lubbock_map_io
)
...
...
arch/arm/mm/proc-xscale.S
View file @
5b0e59c8
...
@@ -647,6 +647,16 @@ cpu_pxa210_name:
...
@@ -647,6 +647,16 @@ cpu_pxa210_name:
.
asciz
"XScale-PXA210"
.
asciz
"XScale-PXA210"
.
size
cpu_pxa210_name
,
.
-
cpu_pxa210_name
.
size
cpu_pxa210_name
,
.
-
cpu_pxa210_name
.
type
cpu_pxa255_name
,
#
object
cpu_pxa255_name
:
.
asciz
"XScale-PXA255"
.
size
cpu_pxa255_name
,
.
-
cpu_pxa255_name
.
type
cpu_pxa270_name
,
#
object
cpu_pxa270_name
:
.
asciz
"XScale-PXA270"
.
size
cpu_pxa270_name
,
.
-
cpu_pxa270_name
.
align
.
align
.
section
".proc.info"
,
#
alloc
,
#
execinstr
.
section
".proc.info"
,
#
alloc
,
#
execinstr
...
@@ -686,7 +696,7 @@ __80321_proc_info:
...
@@ -686,7 +696,7 @@ __80321_proc_info:
.
type
__pxa250_proc_info
,#
object
.
type
__pxa250_proc_info
,#
object
__pxa250_proc_info
:
__pxa250_proc_info
:
.
long
0x69052100
.
long
0x69052100
.
long
0xfffff
3
f0
.
long
0xfffff
7
f0
.
long
0x00000c0e
.
long
0x00000c0e
b
__xscale_setup
b
__xscale_setup
.
long
cpu_arch_name
.
long
cpu_arch_name
...
@@ -715,3 +725,35 @@ __pxa210_proc_info:
...
@@ -715,3 +725,35 @@ __pxa210_proc_info:
.
long
xscale_cache_fns
.
long
xscale_cache_fns
.
size
__pxa210_proc_info
,
.
-
__pxa210_proc_info
.
size
__pxa210_proc_info
,
.
-
__pxa210_proc_info
.
type
__pxa255_proc_info
,#
object
__pxa255_proc_info
:
.
long
0x69052d00
.
long
0xfffffff0
.
long
0x00000c0e
b
__xscale_setup
.
long
cpu_arch_name
.
long
cpu_elf_name
.
long
HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
.
long
cpu_pxa255_name
.
long
xscale_processor_functions
.
long
v4wbi_tlb_fns
.
long
xscale_mc_user_fns
.
long
xscale_cache_fns
.
size
__pxa255_proc_info
,
.
-
__pxa255_proc_info
.
type
__pxa270_proc_info
,#
object
__pxa270_proc_info
:
.
long
0x69054110
.
long
0xfffffff0
.
long
0x00000c0e
b
__xscale_setup
.
long
cpu_arch_name
.
long
cpu_elf_name
.
long
HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
.
long
cpu_pxa270_name
.
long
xscale_processor_functions
.
long
v4wbi_tlb_fns
.
long
xscale_mc_user_fns
.
long
xscale_cache_fns
.
size
__pxa270_proc_info
,
.
-
__pxa270_proc_info
drivers/mtd/maps/lubbock-flash.c
View file @
5b0e59c8
...
@@ -60,7 +60,7 @@ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
...
@@ -60,7 +60,7 @@ static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
static
int
__init
init_lubbock
(
void
)
static
int
__init
init_lubbock
(
void
)
{
{
int
flashboot
=
(
CONF_SWITCHES
&
1
);
int
flashboot
=
(
LUB_
CONF_SWITCHES
&
1
);
int
ret
=
0
,
i
;
int
ret
=
0
,
i
;
lubbock_maps
[
0
].
buswidth
=
lubbock_maps
[
1
].
buswidth
=
lubbock_maps
[
0
].
buswidth
=
lubbock_maps
[
1
].
buswidth
=
...
...
include/asm-arm/arch-pxa/lubbock.h
View file @
5b0e59c8
...
@@ -10,11 +10,10 @@
...
@@ -10,11 +10,10 @@
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#define LUBBOCK_FPGA_PHYS PXA_CS2_PHYS
#define LUBBOCK_FPGA_VIRT (0xf0000000)
/* phys 0x08000000 */
#define LUBBOCK_ETH_PHYS PXA_CS3_PHYS
#define LUBBOCK_ETH_PHYS PXA_CS3_PHYS
#define LUBBOCK_ETH_VIRT (0xf1000000)
#define LUBBOCK_FPGA_PHYS PXA_CS2_PHYS
#define LUBBOCK_FPGA_VIRT (0xf0000000)
#define LUB_P2V(x) ((x) - LUBBOCK_FPGA_PHYS + LUBBOCK_FPGA_VIRT)
#define LUB_P2V(x) ((x) - LUBBOCK_FPGA_PHYS + LUBBOCK_FPGA_VIRT)
#define LUB_V2P(x) ((x) - LUBBOCK_FPGA_VIRT + LUBBOCK_FPGA_PHYS)
#define LUB_V2P(x) ((x) - LUBBOCK_FPGA_VIRT + LUBBOCK_FPGA_PHYS)
...
@@ -24,89 +23,15 @@
...
@@ -24,89 +23,15 @@
# define __LUB_REG(x) LUB_P2V(x)
# define __LUB_REG(x) LUB_P2V(x)
#endif
#endif
/* board level registers in the CPLD: (offsets from CPLD_BASE) */
#define WHOAMI 0 // card ID's (see programmers manual)
#define HEX_LED 0x10 // R/W access to 8 7 segment displays
#define DISC_BLNK_LED 0x40 // R/W [15-8] enables for hex leds, [7-0] discrete LEDs
#define CONF_SWITCHES 0x50 // RO [1] flash wrt prot, [0] 0= boot from rom, 1= flash
#define USER_SWITCHES 0x60 // RO [15-8] dip switches, [7-0] 2 hex encoding switches
#define MISC_WR 0x80 // R/W various system controls -see manual
#define MISC_RD 0x90 // RO various system status bits -see manual
//#define LUB_IRQ_MASK_EN 0xC0 // R/W 0= mask, 1= enable of TS, codec, ethernet, USB, SA1111, and card det. irq's
//#define LUB_IRQ_SET_CLR 0xD0 // R/W 1= set, 0 = clear IRQ's from TS, codec, etc...
//#define LUB_GP 0x100 // R/W [15-0] 16 bits of general purpose I/o for hacking
/* FPGA register physical addresses */
#define _LUB_WHOAMI (LUBBOCK_FPGA_PHYS + 0x000)
#define _LUB_HEXLED (LUBBOCK_FPGA_PHYS + 0x010)
#define _LUB_DISC_BLNK_LED (LUBBOCK_FPGA_PHYS + 0x040)
#define _LUB_CONF_SWITCHES (LUBBOCK_FPGA_PHYS + 0x050)
#define _LUB_USER_SWITCHES (LUBBOCK_FPGA_PHYS + 0x060)
#define _LUB_MISC_WR (LUBBOCK_FPGA_PHYS + 0x080)
#define _LUB_MISC_RD (LUBBOCK_FPGA_PHYS + 0x090)
#define _LUB_IRQ_MASK_EN (LUBBOCK_FPGA_PHYS + 0x0C0)
#define _LUB_IRQ_SET_CLR (LUBBOCK_FPGA_PHYS + 0x0D0)
#define _LUB_GP (LUBBOCK_FPGA_PHYS + 0x100)
/* FPGA register virtual addresses */
/* FPGA register virtual addresses */
#define LUB_WHOAMI __LUB_REG(_LUB_WHOAMI)
#define LUB_WHOAMI __LUB_REG(LUBBOCK_FPGA_PHYS + 0x000)
#define LUB_HEXLED __LUB_REG(_LUB_HEXLED)
#define LUB_HEXLED __LUB_REG(LUBBOCK_FPGA_PHYS + 0x010)
#define LUB_DISC_BLNK_LED __LUB_REG(_LUB_DISC_BLNK_LED)
#define LUB_DISC_BLNK_LED __LUB_REG(LUBBOCK_FPGA_PHYS + 0x040)
#define LUB_CONF_SWITCHES __LUB_REG(_LUB_CONF_SWITCHES)
#define LUB_CONF_SWITCHES __LUB_REG(LUBBOCK_FPGA_PHYS + 0x050)
#define LUB_USER_SWITCHES __LUB_REG(_LUB_USER_SWITCHES)
#define LUB_USER_SWITCHES __LUB_REG(LUBBOCK_FPGA_PHYS + 0x060)
#define LUB_MISC_WR __LUB_REG(_LUB_MISC_WR)
#define LUB_MISC_WR __LUB_REG(LUBBOCK_FPGA_PHYS + 0x080)
#define LUB_MISC_RD __LUB_REG(_LUB_MISC_RD)
#define LUB_MISC_RD __LUB_REG(LUBBOCK_FPGA_PHYS + 0x090)
#define LUB_IRQ_MASK_EN __LUB_REG(_LUB_IRQ_MASK_EN)
#define LUB_IRQ_MASK_EN __LUB_REG(LUBBOCK_FPGA_PHYS + 0x0c0)
#define LUB_IRQ_SET_CLR __LUB_REG(_LUB_IRQ_SET_CLR)
#define LUB_IRQ_SET_CLR __LUB_REG(LUBBOCK_FPGA_PHYS + 0x0d0)
#define LUB_GP __LUB_REG(_LUB_GP)
#define LUB_GP __LUB_REG(LUBBOCK_FPGA_PHYS + 0x100)
/* GPIOs */
#define GPIO_LUBBOCK_IRQ 0
#define IRQ_GPIO_LUBBOCK_IRQ IRQ_GPIO0
/*
* LED macros
*/
#define LEDS_BASE LUB_DISC_BLNK_LED
// 8 discrete leds available for general use:
#define D28 0x1
#define D27 0x2
#define D26 0x4
#define D25 0x8
#define D24 0x10
#define D23 0x20
#define D22 0x40
#define D21 0x80
/* Note: bits [15-8] are used to enable/blank the 8 7 segment hex displays so
* be sure to not monkey with them here.
*/
#define HEARTBEAT_LED D28
#define SYS_BUSY_LED D27
#define HEXLEDS_BASE LUB_HEXLED
#define HEARTBEAT_LED_ON (LEDS_BASE &= ~HEARTBEAT_LED)
#define HEARTBEAT_LED_OFF (LEDS_BASE |= HEARTBEAT_LED)
#define SYS_BUSY_LED_OFF (LEDS_BASE |= SYS_BUSY_LED)
#define SYS_BUSY_LED_ON (LEDS_BASE &= ~SYS_BUSY_LED)
// use x = D26-D21 for these, please...
#define DISCRETE_LED_ON(x) (LEDS_BASE &= ~(x))
#define DISCRETE_LED_OFF(x) (LEDS_BASE |= (x))
#ifndef __ASSEMBLY__
//extern int hexled_val = 0;
#endif
#define BUMP_COUNTER (HEXLEDS_BASE = hexled_val++)
#define DEC_COUNTER (HEXLEDS_BASE = hexled_val--)
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