1a09e64fbSRussell King /* 2a09e64fbSRussell King * arch/arm/mach-sa1100/include/mach/neponset.h 3a09e64fbSRussell King * 42f82af08SNicolas Pitre * Created 2000/06/05 by Nicolas Pitre <nico@fluxnic.net> 5a09e64fbSRussell King * 6a09e64fbSRussell King * This file contains the hardware specific definitions for Assabet 7a09e64fbSRussell King * Only include this file from SA1100-specific files. 8a09e64fbSRussell King * 9a09e64fbSRussell King * 2000/05/23 John Dorsey <john+@cs.cmu.edu> 10a09e64fbSRussell King * Definitions for Neponset added. 11a09e64fbSRussell King */ 12a09e64fbSRussell King #ifndef __ASM_ARCH_NEPONSET_H 13a09e64fbSRussell King #define __ASM_ARCH_NEPONSET_H 14a09e64fbSRussell King 15a09e64fbSRussell King /* 16a09e64fbSRussell King * Neponset definitions: 17a09e64fbSRussell King */ 18a09e64fbSRussell King 19a09e64fbSRussell King #define NEPONSET_CPLD_BASE (0x10000000) 20a09e64fbSRussell King #define Nep_p2v( x ) ((x) - NEPONSET_CPLD_BASE + 0xf3000000) 21a09e64fbSRussell King #define Nep_v2p( x ) ((x) - 0xf3000000 + NEPONSET_CPLD_BASE) 22a09e64fbSRussell King 23a09e64fbSRussell King #define _IRR 0x10000024 /* Interrupt Reason Register */ 24a09e64fbSRussell King #define _AUD_CTL 0x100000c0 /* Audio controls (RW) */ 25a09e64fbSRussell King #define _MDM_CTL_0 0x100000b0 /* Modem control 0 (RW) */ 26a09e64fbSRussell King #define _MDM_CTL_1 0x100000b4 /* Modem control 1 (RW) */ 27a09e64fbSRussell King #define _NCR_0 0x100000a0 /* Control Register (RW) */ 28a09e64fbSRussell King #define _KP_X_OUT 0x10000090 /* Keypad row write (RW) */ 29a09e64fbSRussell King #define _KP_Y_IN 0x10000080 /* Keypad column read (RO) */ 30a09e64fbSRussell King #define _SWPK 0x10000020 /* Switch pack (RO) */ 31a09e64fbSRussell King #define _WHOAMI 0x10000000 /* System ID Register (RO) */ 32a09e64fbSRussell King 33a09e64fbSRussell King #define _LEDS 0x10000010 /* LEDs [31:0] (WO) */ 34a09e64fbSRussell King 35a09e64fbSRussell King #define IRR (*((volatile u_char *) Nep_p2v(_IRR))) 36a09e64fbSRussell King #define AUD_CTL (*((volatile u_char *) Nep_p2v(_AUD_CTL))) 37a09e64fbSRussell King #define MDM_CTL_0 (*((volatile u_char *) Nep_p2v(_MDM_CTL_0))) 38a09e64fbSRussell King #define MDM_CTL_1 (*((volatile u_char *) Nep_p2v(_MDM_CTL_1))) 39a09e64fbSRussell King #define NCR_0 (*((volatile u_char *) Nep_p2v(_NCR_0))) 40a09e64fbSRussell King #define KP_X_OUT (*((volatile u_char *) Nep_p2v(_KP_X_OUT))) 41a09e64fbSRussell King #define KP_Y_IN (*((volatile u_char *) Nep_p2v(_KP_Y_IN))) 42a09e64fbSRussell King #define SWPK (*((volatile u_char *) Nep_p2v(_SWPK))) 43a09e64fbSRussell King #define WHOAMI (*((volatile u_char *) Nep_p2v(_WHOAMI))) 44a09e64fbSRussell King 45a09e64fbSRussell King #define LEDS (*((volatile Word *) Nep_p2v(_LEDS))) 46a09e64fbSRussell King 47a09e64fbSRussell King #define IRR_ETHERNET (1<<0) 48a09e64fbSRussell King #define IRR_USAR (1<<1) 49a09e64fbSRussell King #define IRR_SA1111 (1<<2) 50a09e64fbSRussell King 51a09e64fbSRussell King #define AUD_SEL_1341 (1<<0) 52a09e64fbSRussell King #define AUD_MUTE_1341 (1<<1) 53a09e64fbSRussell King 54a09e64fbSRussell King #define MDM_CTL0_RTS1 (1 << 0) 55a09e64fbSRussell King #define MDM_CTL0_DTR1 (1 << 1) 56a09e64fbSRussell King #define MDM_CTL0_RTS2 (1 << 2) 57a09e64fbSRussell King #define MDM_CTL0_DTR2 (1 << 3) 58a09e64fbSRussell King 59a09e64fbSRussell King #define MDM_CTL1_CTS1 (1 << 0) 60a09e64fbSRussell King #define MDM_CTL1_DSR1 (1 << 1) 61a09e64fbSRussell King #define MDM_CTL1_DCD1 (1 << 2) 62a09e64fbSRussell King #define MDM_CTL1_CTS2 (1 << 3) 63a09e64fbSRussell King #define MDM_CTL1_DSR2 (1 << 4) 64a09e64fbSRussell King #define MDM_CTL1_DCD2 (1 << 5) 65a09e64fbSRussell King 66a09e64fbSRussell King #define NCR_GP01_OFF (1<<0) 67a09e64fbSRussell King #define NCR_TP_PWR_EN (1<<1) 68a09e64fbSRussell King #define NCR_MS_PWR_EN (1<<2) 69a09e64fbSRussell King #define NCR_ENET_OSC_EN (1<<3) 70a09e64fbSRussell King #define NCR_SPI_KB_WK_UP (1<<4) 71a09e64fbSRussell King #define NCR_A0VPP (1<<5) 72a09e64fbSRussell King #define NCR_A1VPP (1<<6) 73a09e64fbSRussell King 74*6ad1b614SRussell King void neponset_ncr_frob(unsigned int, unsigned int); 75*6ad1b614SRussell King #define neponset_ncr_set(v) neponset_ncr_frob(0, v) 76*6ad1b614SRussell King #define neponset_ncr_clear(v) neponset_ncr_frob(v, 0) 77*6ad1b614SRussell King 78a09e64fbSRussell King #endif 79