blob: a3af4a2f9446941e8e8388fcdccb6a1c58d8f65f [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/* 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)