root/sys/arch/hpcsh/dev/hd64461/hd64461reg.h
/*      $NetBSD: hd64461reg.h,v 1.4 2008/04/28 20:23:22 martin Exp $    */

/*-
 * Copyright (c) 2001 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by UCHIYAMA Yasushi.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _HPCSH_DEV_HD64461REG_H_
#define _HPCSH_DEV_HD64461REG_H_

#define SH3_AREA4_BASE                                  0xb0000000
#define SH3_AREA5_BASE                                  0xb4000000
#define SH3_AREA6_BASE                                  0xb8000000

/* HD64461 Address mapping (mapped to SH3 memory space) */

/* SH3 Area 4 (Register, Framebuffer) */
#define HD64461_REGBASE                         SH3_AREA4_BASE
#define HD64461_REGSIZE                         0x02000000
#define HD64461_FBBASE                          (SH3_AREA4_BASE + 0x02000000)
#define HD64461_FBSIZE                          0x02000000
#define HD64461_FBPAGESIZE                      0x1000

/* SH3 Area 5 (PCC1 memory space) */
#define HD64461_PCC1_MEMBASE                    SH3_AREA5_BASE
#define HD64461_PCC1_MEMSIZE                    0x02000000

/* SH3 Area 6 (PCC0 memory, I/O space*/
#define HD64461_PCC0_MEMBASE                    SH3_AREA6_BASE
#define HD64461_PCC0_MEMSIZE                    0x02000000
#define HD64461_PCC0_IOBASE                     (SH3_AREA6_BASE + 0x02000000)
#define HD64461_PCC0_IOSIZE                     0x02000000

/*
 * Register mapping.
 */
#define HD64461_SYSTEM_REGBASE                          0xb0000000
#define HD64461_SYSTEM_REGSIZE                          0x00001000

#define HD64461_LCDC_REGBASE                            0xb0001000
#define HD64461_LCDC_REGSIZE                            0x00001000

#define HD64461_PCMCIA_REGBASE                          0xb0002000
#define HD64461_PCMCIA_REGSIZE                          0x00001000

#define HD64461_AFE_REGBASE                             0xb0003000
#define HD64461_AFE_REGSIZE                             0x00001000

#define HD64461_GPIO_REGBASE                            0xb0004000
#define HD64461_GPIO_REGSIZE                            0x00001000

#define HD64461_INTC_REGBASE                            0xb0005000
#define HD64461_INTC_REGSIZE                            0x00001000

#define HD64461_TIMER_REGBASE                           0xb0006000
#define HD64461_TIMER_REGSIZE                           0x00001000

#define HD64461_IRDA_REGBASE                            0xb0007000
#define HD64461_IRDA_REGSIZE                            0x00001000

#define HD64461_UART_REGBASE                            0xb0008000
#define HD64461_UART_REGSIZE                            0x00001000

/* 
 * System Configuration Register and STANBY Mode
 */
/* Stanby Control Register */
#define HD64461_SYSSTBCR_REG16                          0xb0000000
#define HD64461_SYSSTBCR_CKIO_STBY              0x2000
#define HD64461_SYSSTBCR_SAFECKE_IST            0x1000
#define HD64461_SYSSTBCR_SLCKE_IST              0x0800
#define HD64461_SYSSTBCR_SAFECKE_OST            0x0400
#define HD64461_SYSSTBCR_SLCKE_OST              0x0200
#define HD64461_SYSSTBCR_SMIAST                 0x0100
#define HD64461_SYSSTBCR_SLCDST                 0x0080
#define HD64461_SYSSTBCR_SPC0ST                 0x0040
#define HD64461_SYSSTBCR_SPC1ST                 0x0020
#define HD64461_SYSSTBCR_SAFEST                 0x0010
#define HD64461_SYSSTBCR_STM0ST                 0x0008
#define HD64461_SYSSTBCR_STM1ST                 0x0004
#define HD64461_SYSSTBCR_SIRST                  0x0002
#define HD64461_SYSSTBCR_SURTSD                 0x0001

/* System Configuration Register */
#define HD64461_SYSSYSCR_REG16                          0xb0000002
#define HD64461_SYSSYSCR_SCPU_BUS_IGAT          0x2000
#define HD64461_SYSSYSCR_SPTA_IR                0x0080
#define HD64461_SYSSYSCR_SPTA_TM                0x0040
#define HD64461_SYSSYSCR_SPTB_UR                0x0020
#define HD64461_SYSSYSCR_WAIT_CTL_SEL           0x0010
#define HD64461_SYSSYSCR_SMODE1                 0x0002
#define HD64461_SYSSYSCR_SMODE0                 0x0001

/* CPU Data Bus Control Register */
#define HD64461_SYSSCPUCR_REG16                         0xb0000004
#define HD64461_SYSSCPUCR_SPDSTOF               0x8000
#define HD64461_SYSSCPUCR_SPDSTIG               0x4000
#define HD64461_SYSSCPUCR_SPCSTOF               0x2000
#define HD64461_SYSSCPUCR_SPCSTIG               0x1000
#define HD64461_SYSSCPUCR_SPBSTOF               0x0800
#define HD64461_SYSSCPUCR_SPBSTIG               0x0400
#define HD64461_SYSSCPUCR_SPASTOF               0x0200
#define HD64461_SYSSCPUCR_SPASTIG               0x0100
#define HD64461_SYSSCPUCR_SLCDSTIG              0x0080
#define HD64461_SYSSCPUCR_SCPU_CS56_EP          0x0040
#define HD64461_SYSSCPUCR_SCPU_CMD_EP           0x0020
#define HD64461_SYSSCPUCR_SCPU_ADDR_EP          0x0010
#define HD64461_SYSSCPUCR_SCPDPU                0x0008
#define HD64461_SYSSCPUCR_SCPU_A2319_EP         0x0001

#endif /* !_HPCSH_DEV_HD64461REG_H_ */