rte_me2_cb.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 203 行

H
203
字号
/* * include/asm-v850/rte_me2_cb.h -- Midas labs RTE-V850E/ME2-CB board * *  Copyright (C) 2001,02,03  NEC Corporation *  Copyright (C) 2001,02,03  Miles Bader <miles@gnu.org> * * This file is subject to the terms and conditions of the GNU General * Public License.  See the file COPYING in the main directory of this * archive for more details. * * Written by Miles Bader <miles@gnu.org> */#ifndef __V850_RTE_ME2_CB_H__#define __V850_RTE_ME2_CB_H__#include <asm/rte_cb.h>		/* Common defs for Midas RTE-CB boards.  */#define PLATFORM		"rte-v850e/me2-cb"#define PLATFORM_LONG		"Midas lab RTE-V850E/ME2-CB"#define CPU_CLOCK_FREQ		150000000 /* 150MHz */#define FIXED_BOGOMIPS		50/* 32MB of onbard SDRAM.  */#define SDRAM_ADDR		0x00800000#define SDRAM_SIZE		0x02000000 /* 32MB *//* CPU addresses of GBUS memory spaces.  */#define GCS0_ADDR		0x04000000 /* GCS0 - Common SRAM (2MB) */#define GCS0_SIZE		0x00800000 /*   8MB */#define GCS1_ADDR		0x04800000 /* GCS1 - Flash ROM (8MB) */#define GCS1_SIZE		0x00800000 /*   8MB */#define GCS2_ADDR		0x07000000 /* GCS2 - I/O registers */#define GCS2_SIZE		0x00800000 /*   8MB */#define GCS5_ADDR		0x08000000 /* GCS5 - PCI bus space */#define GCS5_SIZE		0x02000000 /*   32MB */#define GCS6_ADDR		0x07800000 /* GCS6 - PCI control registers */#define GCS6_SIZE		0x00800000 /*   8MB *//* For <asm/page.h> */#define PAGE_OFFSET 		SDRAM_ADDR#ifdef CONFIG_ROM_KERNEL/* Kernel is in ROM, starting at address 0.  */#define INTV_BASE		0#define ROOT_FS_IMAGE_RW	0#else /* !CONFIG_ROM_KERNEL *//* Using RAM-kernel.  Assume some sort of boot-loader got us loaded at   address 0.  */#define INTV_BASE		0#define ROOT_FS_IMAGE_RW	1#endif /* CONFIG_ROM_KERNEL *//* Some misc. on-board devices.  *//* Seven-segment LED display (four digits).  */#define LED_ADDR(n)		(0x0FE02000 + (n))#define LED(n)			(*(volatile unsigned char *)LED_ADDR(n))#define LED_NUM_DIGITS		4/* On-board PIC.  */#define CB_PIC_BASE_ADDR 	0x0FE04000#define CB_PIC_INT0M_ADDR 	(CB_PIC_BASE_ADDR + 0x00)#define CB_PIC_INT0M      	(*(volatile u16 *)CB_PIC_INT0M_ADDR)#define CB_PIC_INT1M_ADDR 	(CB_PIC_BASE_ADDR + 0x10)#define CB_PIC_INT1M      	(*(volatile u16 *)CB_PIC_INT1M_ADDR)#define CB_PIC_INTR_ADDR  	(CB_PIC_BASE_ADDR + 0x20)#define CB_PIC_INTR       	(*(volatile u16 *)CB_PIC_INTR_ADDR)#define CB_PIC_INTEN_ADDR 	(CB_PIC_BASE_ADDR + 0x30)#define CB_PIC_INTEN      	(*(volatile u16 *)CB_PIC_INTEN_ADDR)#define CB_PIC_INT0EN        	0x0001#define CB_PIC_INT1EN        	0x0002#define CB_PIC_INT0SEL       	0x0080/* The PIC interrupts themselves.  */#define CB_PIC_BASE_IRQ		NUM_CPU_IRQS#define IRQ_CB_PIC_NUM		10/* Some specific CB_PIC interrupts. */#define IRQ_CB_EXTTM0		(CB_PIC_BASE_IRQ + 0)#define IRQ_CB_EXTSIO		(CB_PIC_BASE_IRQ + 1)#define IRQ_CB_TOVER		(CB_PIC_BASE_IRQ + 2)#define IRQ_CB_GINT0		(CB_PIC_BASE_IRQ + 3)#define IRQ_CB_USB		(CB_PIC_BASE_IRQ + 4)#define IRQ_CB_LANC		(CB_PIC_BASE_IRQ + 5)#define IRQ_CB_USB_VBUS_ON	(CB_PIC_BASE_IRQ + 6)#define IRQ_CB_USB_VBUS_OFF	(CB_PIC_BASE_IRQ + 7)#define IRQ_CB_EXTTM1		(CB_PIC_BASE_IRQ + 8)#define IRQ_CB_EXTTM2		(CB_PIC_BASE_IRQ + 9)/* The GBUS GINT1 - GINT3 (note, not GINT0!) interrupts are connected to   the INTP65 - INTP67 pins on the CPU.  These are shared among the GBUS   interrupts.  */#define IRQ_GINT(n)		IRQ_INTP((n) + 9)  /* 0 is unused! */#define IRQ_GINT_NUM		4		   /* 0 is unused! *//* The shared interrupt line from the PIC is connected to CPU pin INTP23.  */#define IRQ_CB_PIC		IRQ_INTP(4) /* P23 *//* Used by <asm/rte_cb.h> to derive NUM_MACH_IRQS.  */#define NUM_RTE_CB_IRQS		(NUM_CPU_IRQS + IRQ_CB_PIC_NUM)#ifndef __ASSEMBLY__struct cb_pic_irq_init {	const char *name;	/* name of interrupt type */	/* Range of kernel irq numbers for this type:	   BASE, BASE+INTERVAL, ..., BASE+INTERVAL*NUM  */	unsigned base, num, interval;	unsigned priority;	/* interrupt priority to assign */};struct hw_interrupt_type;	/* fwd decl *//* Enable interrupt handling for interrupt IRQ.  */extern void cb_pic_enable_irq (unsigned irq);/* Disable interrupt handling for interrupt IRQ.  Note that any interrupts   received while disabled will be delivered once the interrupt is enabled   again, unless they are explicitly cleared using `cb_pic_clear_pending_irq'.  */extern void cb_pic_disable_irq (unsigned irq);/* Initialize HW_IRQ_TYPES for PIC irqs described in array INITS (which is   terminated by an entry with the name field == 0).  */extern void cb_pic_init_irq_types (struct cb_pic_irq_init *inits,				   struct hw_interrupt_type *hw_irq_types);/* Initialize PIC interrupts.  */extern void cb_pic_init_irqs (void);#endif /* __ASSEMBLY__ *//* TL16C550C on board UART see also asm/serial.h */#define CB_UART_BASE    	0x0FE08000#define CB_UART_REG_GAP 	0x10#define CB_UART_CLOCK   	0x16000000/* CompactFlash setting */#define CB_CF_BASE     		0x0FE0C000#define CB_CF_CCR_ADDR 		(CB_CF_BASE+0x200)#define CB_CF_CCR      		(*(volatile u8 *)CB_CF_CCR_ADDR)#define CB_CF_REG0_ADDR		(CB_CF_BASE+0x1000)#define CB_CF_REG0     		(*(volatile u16 *)CB_CF_REG0_ADDR)#define CB_CF_STS0_ADDR		(CB_CF_BASE+0x1004)#define CB_CF_STS0     		(*(volatile u16 *)CB_CF_STS0_ADDR)#define CB_PCATA_BASE  		(CB_CF_BASE+0x800)#define CB_IDE_BASE    		(CB_CF_BASE+0x9F0)#define CB_IDE_CTRL    		(CB_CF_BASE+0xBF6)#define CB_IDE_REG_OFFS		0x1/* SMSC LAN91C111 setting */#if defined(CONFIG_SMC91111)#define CB_LANC_BASE 		0x0FE10300#define CONFIG_SMC16BITONLY#define ETH0_ADDR 		CB_LANC_BASE#define ETH0_IRQ 		IRQ_CB_LANC#endif /* CONFIG_SMC16BITONLY */#undef V850E_UART_PRE_CONFIGURE#define V850E_UART_PRE_CONFIGURE	rte_me2_cb_uart_pre_configure#ifndef __ASSEMBLY__extern void rte_me2_cb_uart_pre_configure (unsigned chan,					   unsigned cflags, unsigned baud);#endif /* __ASSEMBLY__ *//* This board supports RTS/CTS for the on-chip UART, but only for channel 0. *//* CTS for UART channel 0 is pin P22 (bit 2 of port 2).  */#define V850E_UART_CTS(chan)	((chan) == 0 ? !(ME2_PORT2_IO & 0x4) : 1)/* RTS for UART channel 0 is pin P21 (bit 1 of port 2).  */#define V850E_UART_SET_RTS(chan, val)					      \   do {									      \	   if (chan == 0) {						      \		   unsigned old = ME2_PORT2_IO; 			      \		   if (val)						      \			   ME2_PORT2_IO = old & ~0x2;			      \		   else							      \			   ME2_PORT2_IO = old | 0x2;			      \	   }								      \   } while (0)#ifndef __ASSEMBLY__extern void rte_me2_cb_init_irqs (void);#endif /* !__ASSEMBLY__ */#endif /* __V850_RTE_ME2_CB_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?