1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  *  arch/arm/mach-pxa/include/mach/lubbock.h
4  *
5  *  Author:	Nicolas Pitre
6  *  Created:	Jun 15, 2001
7  *  Copyright:	MontaVista Software Inc.
8  */
9 
10 #include <mach/irqs.h>
11 
12 #define LUBBOCK_ETH_PHYS	PXA_CS3_PHYS
13 
14 #define LUBBOCK_FPGA_PHYS	PXA_CS2_PHYS
15 #define LUBBOCK_FPGA_VIRT	(0xf0000000)
16 #define LUB_P2V(x)		((x) - LUBBOCK_FPGA_PHYS + LUBBOCK_FPGA_VIRT)
17 #define LUB_V2P(x)		((x) - LUBBOCK_FPGA_VIRT + LUBBOCK_FPGA_PHYS)
18 
19 #ifndef __ASSEMBLY__
20 #  define __LUB_REG(x)		(*((volatile unsigned long *)LUB_P2V(x)))
21 #else
22 #  define __LUB_REG(x)		LUB_P2V(x)
23 #endif
24 
25 /* FPGA register virtual addresses */
26 #define LUB_WHOAMI		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x000)
27 #define LUB_DISC_BLNK_LED	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x040)
28 #define LUB_CONF_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x050)
29 #define LUB_USER_SWITCHES	__LUB_REG(LUBBOCK_FPGA_PHYS + 0x060)
30 #define LUB_MISC_WR		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x080)
31 #define LUB_MISC_RD		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x090)
32 #define LUB_IRQ_MASK_EN		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x0c0)
33 #define LUB_IRQ_SET_CLR		__LUB_REG(LUBBOCK_FPGA_PHYS + 0x0d0)
34 #define LUB_GP			__LUB_REG(LUBBOCK_FPGA_PHYS + 0x100)
35 
36 /* Board specific IRQs */
37 #define LUBBOCK_NR_IRQS		IRQ_BOARD_START
38 
39 #define LUBBOCK_IRQ(x)		(LUBBOCK_NR_IRQS + (x))
40 #define LUBBOCK_SD_IRQ		LUBBOCK_IRQ(0)
41 #define LUBBOCK_SA1111_IRQ	LUBBOCK_IRQ(1)
42 #define LUBBOCK_USB_IRQ		LUBBOCK_IRQ(2)  /* usb connect */
43 #define LUBBOCK_ETH_IRQ		LUBBOCK_IRQ(3)
44 #define LUBBOCK_UCB1400_IRQ	LUBBOCK_IRQ(4)
45 #define LUBBOCK_BB_IRQ		LUBBOCK_IRQ(5)
46 #define LUBBOCK_USB_DISC_IRQ	LUBBOCK_IRQ(6)  /* usb disconnect */
47 #define LUBBOCK_LAST_IRQ	LUBBOCK_IRQ(6)
48 
49 #define LUBBOCK_SA1111_IRQ_BASE	(LUBBOCK_NR_IRQS + 32)
50