Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (30 commits)
  Blackfin SMC91X ethernet supporting driver: SMC91C111 LEDs are note drived in the kernel like in uboot
  Blackfin SPI driver: fix bug SPI DMA incomplete transmission
  Blackfin SPI driver: tweak spi cleanup function to match newer kernel changes
  Blackfin RTC drivers: update MAINTAINERS information
  Blackfin serial driver: decouple PARODD and CMSPAR checking from PARENB
  Blackfin serial driver: actually implement the break_ctl() function
  Blackfin serial driver: ignore framing and parity errors
  Blackfin serial driver: hook up our UARTs STP bit with userspaces CMSPAR
  Blackfin arch: move HI/LO macros into blackfin.h and punt the rest of macros.h as it includes VDSP macros we never use
  Blackfin arch: redo our linker script a bit
  Blackfin arch: make sure we initialize our L1 Data B section properly based on the linked kernel
  Blackfin arch: fix bug can not wakeup from sleep via push buttons
  Blackfin arch: add support for Alon Bar-Lev's dynamic kernel command-line
  Blackfin arch: add missing gpio.h header to fix compiling in some pm configurations
  Blackfin arch: As Mike pointed out range goes form m..MAX_BLACKFIN_GPIO -1
  Blackfin arch: fix spelling typo in output
  Blackfin arch: try to split up functions like this into smaller units according to LKML review
  Blackfin arch: add proper ENDPROC()
  Blackfin arch: move more of our startup code to .init so it can be freed once we are up and running
  Blackfin arch: unify differences between our diff head.S files -- no functional changes
  ...
This commit is contained in:
Linus Torvalds 2007-06-15 16:16:31 -07:00
commit 902233ee49
60 changed files with 1070 additions and 2049 deletions

View file

@ -6,7 +6,11 @@
#ifndef _BLACKFIN_H_
#define _BLACKFIN_H_
#include <asm/macros.h>
#define LO(con32) ((con32) & 0xFFFF)
#define lo(con32) ((con32) & 0xFFFF)
#define HI(con32) (((con32) >> 16) & 0xFFFF)
#define hi(con32) (((con32) >> 16) & 0xFFFF)
#include <asm/mach/blackfin.h>
#include <asm/bfin-global.h>

View file

@ -332,6 +332,7 @@ struct gpio_port_s {
unsigned short inen;
unsigned short fer;
unsigned short reserved;
};
#endif /*CONFIG_PM*/

View file

@ -42,6 +42,12 @@
#if defined(ANOMALY_05000198)
#define bfin_read8(addr) ({ unsigned char __v; \
__asm__ __volatile__ ("NOP;\n\t" \
"%0 = b[%1] (z);\n\t" \
: "=d"(__v) : "a"(addr)); \
__v; })
#define bfin_read16(addr) ({ unsigned __v; \
__asm__ __volatile__ ("NOP;\n\t"\
"%0 = w[%1] (z);\n\t"\
@ -52,6 +58,11 @@
"%0 = [%1];\n\t"\
: "=d"(__v) : "a"(addr)); __v; })
#define bfin_write8(addr, val) ({ \
__asm__ __volatile__ ("NOP;\n\t" \
"b[%0] = %1;\n\t" \
: : "a"(addr), "d"(val) : "memory");})
#define bfin_write16(addr,val) ({\
__asm__ __volatile__ ("NOP;\n\t"\
"w[%0] = %1;\n\t"\
@ -64,6 +75,12 @@
#else
#define bfin_read8(addr) ({ unsigned char __v; \
__asm__ __volatile__ ( \
"%0 = b[%1] (z);\n\t" \
:"=d"(__v) : "a"(addr)); \
__v; })
#define bfin_read16(addr) ({ unsigned __v; \
__asm__ __volatile__ (\
"%0 = w[%1] (z);\n\t"\
@ -74,6 +91,11 @@
"%0 = [%1];\n\t"\
: "=d"(__v) : "a"(addr)); __v; })
#define bfin_write8(addr, val) ({ \
__asm__ __volatile__ ( \
"b[%0] = %1; \n\t" \
::"a"(addr), "d"(val) : "memory");})
#define bfin_write16(addr,val) ({\
__asm__ __volatile__ (\
"w[%0] = %1;\n\t"\

View file

@ -1,95 +0,0 @@
/************************************************************************
*
* macros.h
*
* (c) Copyright 2001-2003 Analog Devices, Inc. All rights reserved.
*
************************************************************************/
/* Defines various assembly macros. */
#ifndef _MACROS_H
#define _MACROS_H
#define LO(con32) ((con32) & 0xFFFF)
#define lo(con32) ((con32) & 0xFFFF)
#define HI(con32) (((con32) >> 16) & 0xFFFF)
#define hi(con32) (((con32) >> 16) & 0xFFFF)
/*
* Set the corresponding bits in a System Register (SR);
* All bits set in "mask" will be set in the system register
* specified by "sys_reg" bitset_SR(sys_reg, mask), where
* sys_reg is the system register and mask are the bits to be set.
*/
#define bitset_SR(sys_reg, mask)\
[--SP] = (R7:6);\
r7 = sys_reg;\
r6.l = (mask) & 0xffff;\
r6.h = (mask) >> 16;\
r7 = r7 | r6;\
sys_reg = r7;\
csync;\
(R7:6) = [SP++]
/*
* Clear the corresponding bits in a System Register (SR);
* All bits set in "mask" will be cleared in the SR
* specified by "sys_reg" bitclr_SR(sys_reg, mask), where
* sys_reg is the SR and mask are the bits to be cleared.
*/
#define bitclr_SR(sys_reg, mask)\
[--SP] = (R7:6);\
r7 = sys_reg;\
r7 =~ r7;\
r6.l = (mask) & 0xffff;\
r6.h = (mask) >> 16;\
r7 = r7 | r6;\
r7 =~ r7;\
sys_reg = r7;\
csync;\
(R7:6) = [SP++]
/*
* Set the corresponding bits in a Memory Mapped Register (MMR);
* All bits set in "mask" will be set in the MMR specified by "mmr_reg"
* bitset_MMR(mmr_reg, mask), where mmr_reg is the MMR and mask are
* the bits to be set.
*/
#define bitset_MMR(mmr_reg, mask)\
[--SP] = (R7:6);\
[--SP] = P5;\
p5.l = mmr_reg & 0xffff;\
p5.h = mmr_reg >> 16;\
r7 = [p5];\
r6.l = (mask) & 0xffff;\
r6.h = (mask) >> 16;\
r7 = r7 | r6;\
[p5] = r7;\
csync;\
p5 = [SP++];\
(R7:6) = [SP++]
/*
* Clear the corresponding bits in a Memory Mapped Register (MMR);
* All bits set in "mask" will be cleared in the MMR specified by "mmr_reg"
* bitclr_MMRreg(mmr_reg, mask), where sys_reg is the MMR and mask are
* the bits to be cleared.
*/
#define bitclr_MMR(mmr_reg, mask)\
[--SP] = (R7:6);\
[--SP] = P5;\
p5.l = mmr_reg & 0xffff;\
p5.h = mmr_reg >> 16;\
r7 = [p5];\
r7 =~ r7;\
r6.l = (mask) & 0xffff;\
r6.h = (mask) >> 16;\
r7 = r7 | r6;\
r7 =~ r7;\
[p5] = r7;\
csync;\
p5 = [SP++];\
(R7:6) = [SP++]
#endif /* _MACROS_H */