Skip to content

Commit

Permalink
ARM: clps711x: Using a single definition for the PHYS and VIRT regist…
Browse files Browse the repository at this point in the history
…ers offset

Using a single definition for the physical and virtual address register for all
variants boards clps711x. This patch also includes the use of a single function
clps_read/write in some units.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Alexander Shiyan authored and Arnd Bergmann committed May 11, 2012
1 parent 69964ea commit 304b2c6
Show file tree
Hide file tree
Showing 14 changed files with 34 additions and 85 deletions.
11 changes: 1 addition & 10 deletions arch/arm/include/asm/hardware/clps7111.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,7 @@
#ifndef __ASM_HARDWARE_CLPS7111_H
#define __ASM_HARDWARE_CLPS7111_H

#define CLPS7111_PHYS_BASE (0x80000000)

#ifndef __ASSEMBLY__
#define clps_readb(off) __raw_readb(CLPS7111_BASE + (off))
#define clps_readw(off) __raw_readw(CLPS7111_BASE + (off))
#define clps_readl(off) __raw_readl(CLPS7111_BASE + (off))
#define clps_writeb(val,off) __raw_writeb(val, CLPS7111_BASE + (off))
#define clps_writew(val,off) __raw_writew(val, CLPS7111_BASE + (off))
#define clps_writel(val,off) __raw_writel(val, CLPS7111_BASE + (off))
#endif
#define CLPS711X_PHYS_BASE (0x80000000)

#define PADR (0x0000)
#define PBDR (0x0001)
Expand Down
9 changes: 0 additions & 9 deletions arch/arm/include/asm/hardware/ep7211.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,6 @@
#ifndef __ASM_HARDWARE_EP7211_H
#define __ASM_HARDWARE_EP7211_H

#include <asm/hardware/clps7111.h>

/*
* define EP7211_BASE to be the base address of the region
* you want to access.
*/

#define EP7211_PHYS_BASE (0x80000000)

/*
* XXX miket@bluemug.com: need to introduce EP7211 registers (those not
* present in 7212) here.
Expand Down
12 changes: 0 additions & 12 deletions arch/arm/include/asm/hardware/ep7212.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,6 @@
#ifndef __ASM_HARDWARE_EP7212_H
#define __ASM_HARDWARE_EP7212_H

/*
* define EP7212_BASE to be the base address of the region
* you want to access.
*/

#define EP7212_PHYS_BASE (0x80000000)

#ifndef __ASSEMBLY__
#define ep_readl(off) __raw_readl(EP7212_BASE + (off))
#define ep_writel(val,off) __raw_writel(val, EP7212_BASE + (off))
#endif

/*
* These registers are specific to the EP7212 only
*/
Expand Down
5 changes: 2 additions & 3 deletions arch/arm/mach-clps711x/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,15 @@
#include <asm/page.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
#include <asm/hardware/clps7111.h>
#include <asm/system_misc.h>

/*
* This maps the generic CLPS711x registers
*/
static struct map_desc clps711x_io_desc[] __initdata = {
{
.virtual = CLPS7111_VIRT_BASE,
.pfn = __phys_to_pfn(CLPS7111_PHYS_BASE),
.virtual = (unsigned long)CLPS711X_VIRT_BASE,
.pfn = __phys_to_pfn(CLPS711X_PHYS_BASE),
.length = SZ_1M,
.type = MT_DEVICE
}
Expand Down
5 changes: 2 additions & 3 deletions arch/arm/mach-clps711x/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@
*/

#include <mach/hardware.h>
#include <asm/hardware/clps7111.h>

.macro addruart, rp, rv, tmp
#ifndef CONFIG_DEBUG_CLPS711X_UART2
mov \rp, #0x0000 @ UART1
#else
mov \rp, #0x1000 @ UART2
#endif
orr \rv, \rp, #CLPS7111_VIRT_BASE
orr \rp, \rp, #CLPS7111_PHYS_BASE
orr \rv, \rp, #CLPS711X_VIRT_BASE
orr \rp, \rp, #CLPS711X_PHYS_BASE
.endm

.macro senduart,rd,rx
Expand Down
3 changes: 1 addition & 2 deletions arch/arm/mach-clps711x/include/mach/entry-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
* warranty of any kind, whether express or implied.
*/
#include <mach/hardware.h>
#include <asm/hardware/clps7111.h>

.macro get_irqnr_preamble, base, tmp
.endm
Expand All @@ -18,7 +17,7 @@
#endif

.macro get_irqnr_and_base, irqnr, stat, base, mask
mov \base, #CLPS7111_BASE
mov \base, #CLPS711X_VIRT_BASE
ldr \stat, [\base, #INTSR1]
ldr \mask, [\base, #INTMR1]
mov \irqnr, #4
Expand Down
36 changes: 13 additions & 23 deletions arch/arm/mach-clps711x/include/mach/hardware.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,21 @@
* 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_HARDWARE_H
#define __ASM_ARCH_HARDWARE_H
#ifndef __MACH_HARDWARE_H
#define __MACH_HARDWARE_H

#include <asm/hardware/clps7111.h>

#define CLPS711X_VIRT_BASE IOMEM(0xff000000)

#define CLPS7111_VIRT_BASE 0xff000000
#define CLPS7111_BASE CLPS7111_VIRT_BASE
#ifndef __ASSEMBLY__
#define clps_readb(off) readb(CLPS711X_VIRT_BASE + (off))
#define clps_readw(off) readw(CLPS711X_VIRT_BASE + (off))
#define clps_readl(off) readl(CLPS711X_VIRT_BASE + (off))
#define clps_writeb(val,off) writeb(val, CLPS711X_VIRT_BASE + (off))
#define clps_writew(val,off) writew(val, CLPS711X_VIRT_BASE + (off))
#define clps_writel(val,off) writel(val, CLPS711X_VIRT_BASE + (off))
#endif

/*
* The physical addresses that the external chip select signals map to is
Expand Down Expand Up @@ -54,14 +63,10 @@

#if defined (CONFIG_ARCH_EP7211)

#define EP7211_VIRT_BASE CLPS7111_VIRT_BASE
#define EP7211_BASE CLPS7111_VIRT_BASE
#include <asm/hardware/ep7211.h>

#elif defined (CONFIG_ARCH_EP7212)

#define EP7212_VIRT_BASE CLPS7111_VIRT_BASE
#define EP7212_BASE CLPS7111_VIRT_BASE
#include <asm/hardware/ep7212.h>

#endif
Expand All @@ -71,10 +76,6 @@

#if defined (CONFIG_ARCH_AUTCPU12)

#define CS89712_VIRT_BASE CLPS7111_VIRT_BASE
#define CS89712_BASE CLPS7111_VIRT_BASE

#include <asm/hardware/clps7111.h>
#include <asm/hardware/ep7212.h>
#include <asm/hardware/cs89712.h>

Expand All @@ -83,15 +84,9 @@

#if defined (CONFIG_ARCH_CDB89712)

#include <asm/hardware/clps7111.h>
#include <asm/hardware/ep7212.h>
#include <asm/hardware/cs89712.h>

/* static cdb89712_map_io() areas */
#define REGISTER_START 0x80000000
#define REGISTER_SIZE 0x4000
#define REGISTER_BASE 0xff000000

#define ETHER_START 0x20000000
#define ETHER_SIZE 0x1000
#define ETHER_BASE 0xfe000000
Expand Down Expand Up @@ -154,13 +149,8 @@

#if defined (CONFIG_ARCH_CEIVA)

#define CEIVA_VIRT_BASE CLPS7111_VIRT_BASE
#define CEIVA_BASE CLPS7111_VIRT_BASE

#include <asm/hardware/clps7111.h>
#include <asm/hardware/ep7212.h>


/*
* The two flash banks are wired to chip selects 0 and 1. This is the mapping
* for them.
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-clps711x/include/mach/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <asm/leds.h>
#include <asm/hardware/clps7111.h>
#include <mach/hardware.h>

extern void clps711x_setup_timer(void);

Expand Down
19 changes: 9 additions & 10 deletions arch/arm/mach-clps711x/include/mach/uncompress.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <mach/hardware.h>
#include <asm/hardware/clps7111.h>

#undef CLPS7111_BASE
#define CLPS7111_BASE CLPS7111_PHYS_BASE

#define __raw_readl(p) (*(unsigned long *)(p))
#define __raw_writel(v,p) (*(unsigned long *)(p) = (v))

#ifdef CONFIG_DEBUG_CLPS711X_UART2
#define SYSFLGx SYSFLG2
#define UARTDRx UARTDR2
Expand All @@ -34,19 +27,25 @@
#define UARTDRx UARTDR1
#endif

#define phys_reg(x) (*(volatile u32 *)(CLPS711X_PHYS_BASE + (x)))

/*
* The following code assumes the serial port has already been
* initialized by the bootloader. If you didn't setup a port in
* your bootloader then nothing will appear (which might be desired).
*
* This does not append a newline
*/
static inline void putc(int c)
{
while (clps_readl(SYSFLGx) & SYSFLG_UTXFF)
while (phys_reg(SYSFLGx) & SYSFLG_UTXFF)
barrier();
clps_writel(c, UARTDRx);
phys_reg(UARTDRx) = c;
}

static inline void flush(void)
{
while (clps_readl(SYSFLGx) & SYSFLG_UBUSY)
while (phys_reg(SYSFLGx) & SYSFLG_UBUSY)
barrier();
}

Expand Down
3 changes: 0 additions & 3 deletions arch/arm/mach-clps711x/p720t-leds.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@
#include <asm/leds.h>
#include <asm/mach-types.h>

#include <asm/hardware/clps7111.h>
#include <asm/hardware/ep7212.h>

static void p720t_leds_event(led_event_t ledevt)
{
unsigned long flags;
Expand Down
10 changes: 4 additions & 6 deletions drivers/mtd/nand/autcpu12.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ static void autcpu12_hwcontrol(struct mtd_info *mtd, int cmd,
void __iomem *addr;
unsigned char bits;

addr = CS89712_VIRT_BASE + AUTCPU12_SMC_PORT_OFFSET;
bits = (ctrl & NAND_CLE) << 4;
bits = clps_readb(AUTCPU12_SMC_PORT_OFFSET) & ~0x30;
bits |= (ctrl & NAND_CLE) << 4;
bits |= (ctrl & NAND_ALE) << 2;
writeb((readb(addr) & ~0x30) | bits, addr);
clps_writeb(bits, AUTCPU12_SMC_PORT_OFFSET);

addr = autcpu12_fio_base + AUTCPU12_SMC_SELECT_OFFSET;
writeb((readb(addr) & ~0x1) | (ctrl & NAND_NCE), addr);
Expand All @@ -120,9 +120,7 @@ static void autcpu12_hwcontrol(struct mtd_info *mtd, int cmd,
*/
int autcpu12_device_ready(struct mtd_info *mtd)
{
void __iomem *addr = CS89712_VIRT_BASE + AUTCPU12_SMC_PORT_OFFSET;

return readb(addr) & AUTCPU12_SMC_RDY;
return clps_readb(AUTCPU12_SMC_PORT_OFFSET) & AUTCPU12_SMC_RDY;
}

/*
Expand Down
2 changes: 1 addition & 1 deletion drivers/mtd/nand/h1910.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <asm/io.h>
#include <mach/hardware.h> /* for CLPS7111_VIRT_BASE */
#include <mach/hardware.h>
#include <asm/sizes.h>
#include <mach/h1900-gpio.h>
#include <mach/ipaq.h>
Expand Down
1 change: 0 additions & 1 deletion drivers/tty/serial/clps711x.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@

#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/hardware/clps7111.h>

#define UART_NR 2

Expand Down
1 change: 0 additions & 1 deletion drivers/video/clps711xfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#include <asm/mach-types.h>
#include <linux/uaccess.h>

#include <asm/hardware/clps7111.h>
#include <mach/syspld.h>

struct fb_info *cfb;
Expand Down

0 comments on commit 304b2c6

Please sign in to comment.