/*
 * arch/arm/mach-ixp2000/include/mach/ixdp2x01.h
 *
 * Platform definitions for IXDP2X01 && IXDP2801 systems
 *
 * Author: Deepak Saxena <dsaxena@plexity.net>
 *
 * Copyright 2004 (c) MontaVista Software, Inc. 
 *
 * Based on original code Copyright (c) 2002-2003 Intel Corporation
 * 
 * This file is licensed under  the terms of the GNU General Public 
 * License version 2. This program is licensed "as is" without any 
 * warranty of any kind, whether express or implied.
 */

#ifndef __IXDP2X01_H__
#define __IXDP2X01_H__

#define	IXDP2X01_PHYS_CPLD_BASE		0xc6024000
#define	IXDP2X01_VIRT_CPLD_BASE		0xfe000000
#define	IXDP2X01_CPLD_REGION_SIZE	0x00100000

#define IXDP2X01_CPLD_VIRT_REG(reg) (volatile unsigned long*)(IXDP2X01_VIRT_CPLD_BASE | reg)
#define IXDP2X01_CPLD_PHYS_REG(reg) (IXDP2X01_PHYS_CPLD_BASE | reg)

#define IXDP2X01_UART1_VIRT_BASE	IXDP2X01_CPLD_VIRT_REG(0x40)
#define IXDP2X01_UART1_PHYS_BASE	IXDP2X01_CPLD_PHYS_REG(0x40)

#define IXDP2X01_UART2_VIRT_BASE	IXDP2X01_CPLD_VIRT_REG(0x60)
#define IXDP2X01_UART2_PHYS_BASE	IXDP2X01_CPLD_PHYS_REG(0x60)

#define IXDP2X01_CS8900_VIRT_BASE	IXDP2X01_CPLD_VIRT_REG(0x80)
#define IXDP2X01_CS8900_VIRT_END	(IXDP2X01_CS8900_VIRT_BASE + 16)

#define IXDP2X01_CPLD_RESET_REG         IXDP2X01_CPLD_VIRT_REG(0x00)
#define IXDP2X01_INT_MASK_SET_REG	IXDP2X01_CPLD_VIRT_REG(0x08)
#define IXDP2X01_INT_STAT_REG		IXDP2X01_CPLD_VIRT_REG(0x0C)
#define IXDP2X01_INT_RAW_REG		IXDP2X01_CPLD_VIRT_REG(0x10) 
#define IXDP2X01_INT_MASK_CLR_REG	IXDP2X01_INT_RAW_REG
#define IXDP2X01_INT_SIM_REG		IXDP2X01_CPLD_VIRT_REG(0x14)

#define IXDP2X01_CPLD_FLASH_REG		IXDP2X01_CPLD_VIRT_REG(0x20)

#define IXDP2X01_CPLD_FLASH_INTERN 	0x8000
#define IXDP2X01_CPLD_FLASH_BANK_MASK 	0xF
#define IXDP2X01_FLASH_WINDOW_BITS 	25
#define IXDP2X01_FLASH_WINDOW_SIZE 	(1 << IXDP2X01_FLASH_WINDOW_BITS)
#define IXDP2X01_FLASH_WINDOW_MASK 	(IXDP2X01_FLASH_WINDOW_SIZE - 1)

#define	IXDP2X01_UART_CLK		1843200

#define	IXDP2X01_GPIO_I2C_ENABLE	0x02
#define	IXDP2X01_GPIO_SCL		0x07
#define	IXDP2X01_GPIO_SDA		0x06

#endif /* __IXDP2x01_H__ */