spruce.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * include/asm-ppc/platforms/spruce.h
  3.  * 
  4.  * Definitions for IBM Spruce reference board support
  5.  *
  6.  * Authors: Matt Porter and Johnnie Peters
  7.  *          mporter@mvista.com
  8.  *          jpeters@mvista.com
  9.  *
  10.  * Copyright 2001 MontaVista Software Inc.
  11.  *
  12.  * This program is free software; you can redistribute  it and/or modify it
  13.  * under  the terms of  the GNU General Public License as published by the
  14.  * Free Software Foundation;  either version 2 of the  License, or (at your
  15.  * option) any later version.
  16.  *
  17.  * THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR   IMPLIED
  18.  * WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
  19.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
  20.  * NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT,  INDIRECT,
  21.  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22.  * NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF
  23.  * USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  24.  * ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT
  25.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26.  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27.  *
  28.  * You should have received a copy of the  GNU General Public License along
  29.  * with this program; if not, write  to the Free Software Foundation, Inc.,
  30.  * 675 Mass Ave, Cambridge, MA 02139, USA.
  31.  */
  32. #ifdef __KERNEL__
  33. #ifndef __ASM_SPRUCE_H__
  34. #define __ASM_SPRUCE_H__
  35. #define SPRUCE_PCI_CONFIG_ADDR 0xfec00000
  36. #define SPRUCE_PCI_CONFIG_DATA 0xfec00004
  37. #define SPRUCE_PCI_PHY_IO_BASE 0xf8000000
  38. #define SPRUCE_PCI_IO_BASE SPRUCE_PCI_PHY_IO_BASE
  39. #define SPRUCE_PCI_SYS_MEM_BASE 0x00000000
  40. #define SPRUCE_PCI_LOWER_MEM 0x80000000
  41. #define SPRUCE_PCI_UPPER_MEM 0x9fffffff
  42. #define SPRUCE_PCI_LOWER_IO 0x00000000
  43. #define SPRUCE_PCI_UPPER_IO 0x03ffffff
  44. #define SPRUCE_ISA_IO_BASE SPRUCE_PCI_IO_BASE
  45. #define SPRUCE_MEM_SIZE 0x04000000
  46. #define SPRUCE_BUS_SPEED 66666667
  47. #define SPRUCE_NVRAM_BASE_ADDR 0xff800000
  48. #define SPRUCE_RTC_BASE_ADDR SPRUCE_NVRAM_BASE_ADDR
  49. #define KEYBOARD_IRQ    22
  50. #define AUX_IRQ  21
  51. unsigned char spruce_read_keyb_data(void);
  52. unsigned char spruce_read_keyb_status(void);
  53. #define kbd_read_input  spruce_read_keyb_data
  54. #define kbd_read_status spruce_read_keyb_status
  55. #define kbd_write_output(val) *((unsigned char *)0xff810000) = (char)val
  56. #define kbd_write_command(val) *((unsigned char *)0xff810001) = (char)val
  57. /*
  58.  * Serial port defines
  59.  */ 
  60. #define SPRUCE_FPGA_REG_A 0xff820000
  61. #define SPRUCE_UARTCLK_33M 0x02
  62. #define SPRUCE_UARTCLK_IS_33M(reg) (reg & SPRUCE_UARTCLK_33M)
  63. #define UART0_IO_BASE 0xff600300
  64. #define UART1_IO_BASE 0xff600400
  65. #define RS_TABLE_SIZE 2
  66. #define SPRUCE_BAUD_33M 33000000/64
  67. #define SPRUCE_BAUD_30M 30000000/64
  68. #define BASE_BAUD SPRUCE_BAUD_33M
  69. #define UART0_INT 3
  70. #define UART1_INT 4
  71. #define STD_UART_OP(num)
  72. { 0, BASE_BAUD, 0, UART##num##_INT,
  73. (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST),
  74. iomem_base: UART##num##_IO_BASE,
  75. io_type: SERIAL_IO_MEM},
  76. #define SERIAL_PORT_DFNS
  77. STD_UART_OP(0)
  78. STD_UART_OP(1)
  79. #endif /* __ASM_SPRUCE_H__ */
  80. #endif /* __KERNEL__ */