Home | History | Annotate | Line # | Download | only in clps711x
clps711xreg.h revision 1.1.4.2
      1  1.1.4.2  tls /*	$NetBSD: clps711xreg.h,v 1.1.4.2 2013/06/23 06:20:00 tls Exp $	*/
      2  1.1.4.2  tls /*
      3  1.1.4.2  tls  * Copyright (c) 2013 KIYOHARA Takashi
      4  1.1.4.2  tls  * All rights reserved.
      5  1.1.4.2  tls  *
      6  1.1.4.2  tls  * Redistribution and use in source and binary forms, with or without
      7  1.1.4.2  tls  * modification, are permitted provided that the following conditions
      8  1.1.4.2  tls  * are met:
      9  1.1.4.2  tls  * 1. Redistributions of source code must retain the above copyright
     10  1.1.4.2  tls  *    notice, this list of conditions and the following disclaimer.
     11  1.1.4.2  tls  * 2. Redistributions in binary form must reproduce the above copyright
     12  1.1.4.2  tls  *    notice, this list of conditions and the following disclaimer in the
     13  1.1.4.2  tls  *    documentation and/or other materials provided with the distribution.
     14  1.1.4.2  tls  *
     15  1.1.4.2  tls  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     16  1.1.4.2  tls  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     17  1.1.4.2  tls  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     18  1.1.4.2  tls  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
     19  1.1.4.2  tls  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     20  1.1.4.2  tls  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     21  1.1.4.2  tls  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     22  1.1.4.2  tls  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     23  1.1.4.2  tls  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     24  1.1.4.2  tls  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     25  1.1.4.2  tls  * POSSIBILITY OF SUCH DAMAGE.
     26  1.1.4.2  tls  */
     27  1.1.4.2  tls 
     28  1.1.4.2  tls #define PS711X_PADR	0x000	/* Port A Data Register */
     29  1.1.4.2  tls #define PS711X_PBDR	0x001	/* Port B Data Register */
     30  1.1.4.2  tls #define PS711X_PCDR	0x002	/* Port C Data Register */
     31  1.1.4.2  tls #define PS711X_PDDR	0x003	/* Port D Data Register */
     32  1.1.4.2  tls #define PS711X_PADDR	0x040	/* Port A Data Direction Register */
     33  1.1.4.2  tls #define PS711X_PBDDR	0x041	/* Port B Data Direction Register */
     34  1.1.4.2  tls #define PS711X_PCDDR	0x042	/* Port C Data Direction Register */
     35  1.1.4.2  tls #define PS711X_PDDDR	0x043	/* Port D Data Direction Register */
     36  1.1.4.2  tls #define PS711X_PEDR	0x080	/* Port E Data Register */
     37  1.1.4.2  tls #define PS711X_PEDDR	0x0c0	/* Port E Data Direction Register */
     38  1.1.4.2  tls #define PS711X_SYSCON	0x100	/* System Control Register */
     39  1.1.4.2  tls #define   SYSCON_IRTXM		(1 << 20)
     40  1.1.4.2  tls #define   SYSCON_WAKEDIS	(1 << 19)
     41  1.1.4.2  tls #define   SYSCON_EXCKEN		(1 << 18)
     42  1.1.4.2  tls #define   SYSCON_ADCKSEL	(0x3 << 16)
     43  1.1.4.2  tls #define   SYSCON_SIREN		(1 << 15)
     44  1.1.4.2  tls #define   SYSCON_CDENRX		(1 << 14)
     45  1.1.4.2  tls #define   SYSCON_CDENTX		(1 << 13)
     46  1.1.4.2  tls #define   SYSCON_LCDEN		(1 << 12)
     47  1.1.4.2  tls #define   SYSCON_DBGEN		(1 << 11)
     48  1.1.4.2  tls #define   SYSCON_BZMOD		(1 << 10)
     49  1.1.4.2  tls #define   SYSCON_BZTOG		(1 << 9)
     50  1.1.4.2  tls #define   SYSCON_UARTEN		(1 << 8)
     51  1.1.4.2  tls #define   SYSCON_TC2S		(1 << 7)
     52  1.1.4.2  tls #define   SYSCON_TC2M		(1 << 6)
     53  1.1.4.2  tls #define   SYSCON_TC1S		(1 << 5)
     54  1.1.4.2  tls #define   SYSCON_TC1M		(1 << 4)
     55  1.1.4.2  tls #define   SYSCON_KBDSCAN_MASK	(0xf << 0)
     56  1.1.4.2  tls #define PS711X_SYSFLG	0x140	/* System Status Flag Register (RO) */
     57  1.1.4.2  tls #define   SYSFLG_VERID(x)	(((x) >> 30) & 0x3)
     58  1.1.4.2  tls #define   SYSFLG_BOOT8BIT	(1 << 27)
     59  1.1.4.2  tls #define   SYSFLG_SSIBUSY	(1 << 26)
     60  1.1.4.2  tls #define   SYSFLG_CTXFF		(1 << 25)
     61  1.1.4.2  tls #define   SYSFLG_CRXFE		(1 << 24)
     62  1.1.4.2  tls #define   SYSFLG_UTXFF		(1 << 23)
     63  1.1.4.2  tls #define   SYSFLG_URXFE		(1 << 22)
     64  1.1.4.2  tls #define   SYSFLG_RTCDIV		(0x3f << 16)
     65  1.1.4.2  tls #define   SYSFLG_CLDFLG		(1 << 15)
     66  1.1.4.2  tls #define   SYSFLG_PFFLG		(1 << 14)
     67  1.1.4.2  tls #define   SYSFLG_RSTFLG		(1 << 13)
     68  1.1.4.2  tls #define   SYSFLG_NBFLG		(1 << 12)
     69  1.1.4.2  tls #define   SYSFLG_UBUSY		(1 << 11)
     70  1.1.4.2  tls #define   SYSFLG_DCD		(1 << 10)
     71  1.1.4.2  tls #define   SYSFLG_DSR		(1 << 9)
     72  1.1.4.2  tls #define   SYSFLG_CTS		(1 << 8)
     73  1.1.4.2  tls #define   SYSFLG_DID		(1 << 7)
     74  1.1.4.2  tls #define   SYSFLG_WUON		(1 << 3)
     75  1.1.4.2  tls #define   SYSFLG_WUDR		(1 << 2)
     76  1.1.4.2  tls #define   SYSFLG_DCDET		(1 << 1)
     77  1.1.4.2  tls #define   SYSFLG_MCDR		(1 << 0)
     78  1.1.4.2  tls #define PS711X_MEMCFG1	0x180	/* Memory Configuration Register 1 */
     79  1.1.4.2  tls #define   MEMCFG1_NCSCFG(n, x)	((x) << ((n) << 3))
     80  1.1.4.2  tls #define PS711X_MEMCFG2	0x1c0	/* Memory Configuration Register 2 */
     81  1.1.4.2  tls #define   MEMCFG2_CSCFG(n, x)	((x) << ((n) << 3))
     82  1.1.4.2  tls #define     CSCFG_CLKEN		  (1 << 7)
     83  1.1.4.2  tls #define     CSCFG_SQAEN		  (1 << 6)
     84  1.1.4.2  tls #define     CSCFG_SAWS_MASK	  (0x3 << 4) /* Sequential access wait state */
     85  1.1.4.2  tls #define     CSCFG_RAWS_MASK	  (0x3 << 2) /* Random access wait state */
     86  1.1.4.2  tls #define     CSCFG_BUSWIDTH_MASK	  (0x3 << 0)
     87  1.1.4.2  tls #define PS711X_DRFPR	0x200	/* DRAM Refresh Period Register */
     88  1.1.4.2  tls #define   DRFPR_RFSHEN		(1 << 7)
     89  1.1.4.2  tls #define   DRFPR_RFDIV_MASK	(0x7f << 0)
     90  1.1.4.2  tls #define PS711X_INTSR	0x240	/* Interrupt Status Register (RO) */
     91  1.1.4.2  tls #define PS711X_INTMR	0x280	/* Interrupt Mask Register */
     92  1.1.4.2  tls #define PS711X_LCDCON	0x2c0	/* LCD Control Register */
     93  1.1.4.2  tls #define   LCDCON_GSMD		(1 << 31) /* Grayscale mode 0:2bpp/1:4bpp */
     94  1.1.4.2  tls #define   LCDCON_GSEN		(1 << 30) /* Grayscale enable */
     95  1.1.4.2  tls #define   LCDCON_ACP_SFT	25	/* AC prescale */
     96  1.1.4.2  tls #define   LCDCON_ACP_MSK	0x1f
     97  1.1.4.2  tls #define   LCDCON_ACP(b)		((((b) + 1) & LCDCON_ACP_MSK) << LCDCON_ACP_SFT)
     98  1.1.4.2  tls #define   LCDCON_PP_SFT		19	/* Pixel prescale */
     99  1.1.4.2  tls #define   LCDCON_PP_MSK		0x3f
    100  1.1.4.2  tls #define   LCDCON_PP(b)	 (((526628 / (b) - 1) & LCDCON_PP_MSK) << LCDCON_PP_SFT)
    101  1.1.4.2  tls #define   LCDCON_LL_SFT		13	/* Line length */
    102  1.1.4.2  tls #define   LCDCON_LL_MSK		0x3f
    103  1.1.4.2  tls #define   LCDCON_LL(b)	     ((((b) / 16 - 1) & LCDCON_LL_MSK) << LCDCON_LL_SFT)
    104  1.1.4.2  tls #define   LCDCON_VBS_SFT	0	/* Video buffer size */
    105  1.1.4.2  tls #define   LCDCON_VBS_MSK	0x1fff
    106  1.1.4.2  tls #define   LCDCON_VBS(b)   ((((b) / 128 - 1) & LCDCON_VBS_MSK) << LCDCON_VBS_SFT)
    107  1.1.4.2  tls #define PS711X_TC1D	0x300	/* Read/Write data to TC1 */
    108  1.1.4.2  tls #define PS711X_TC2D	0x340	/* Read/Write data to TC2 */
    109  1.1.4.2  tls #define PS711X_RTCDR	0x380	/* Realtime Clock Data Register */
    110  1.1.4.2  tls #define PS711X_RTCMR	0x3c0	/* Realtime Clock Match Register */
    111  1.1.4.2  tls #define PS711X_PMPCON	0x400	/* DC-to-DC Pump Control Register */
    112  1.1.4.2  tls #define PS711X_CODR	0x440	/* Codec Data I/O Register */
    113  1.1.4.2  tls #define PS711X_UARTDR	0x480	/* UART FIFO Data Register */
    114  1.1.4.2  tls #define   UARTDR_OVERR		(1 << 10)
    115  1.1.4.2  tls #define   UARTDR_PARERR		(1 << 9)
    116  1.1.4.2  tls #define   UARTDR_FRMERR		(1 << 8)
    117  1.1.4.2  tls #define   UARTDR_RXDATA_MASK	0xff
    118  1.1.4.2  tls #define PS711X_UBRLCR	0x4c0	/* UART Bit Rate and Line Control Register */
    119  1.1.4.2  tls #define   UBRLCR_WRDLEN_MASK	(0x3 << 17)
    120  1.1.4.2  tls #define   UBRLCR_WRDLEN_8B	(0x3 << 17)
    121  1.1.4.2  tls #define   UBRLCR_WRDLEN_7B	(0x2 << 17)
    122  1.1.4.2  tls #define   UBRLCR_WRDLEN_6B	(0x1 << 17)
    123  1.1.4.2  tls #define   UBRLCR_WRDLEN_5B	(0x0 << 17)
    124  1.1.4.2  tls #define   UBRLCR_FIFOEN		(1 << 16)
    125  1.1.4.2  tls #define   UBRLCR_XSTOP		(1 << 15)
    126  1.1.4.2  tls #define   UBRLCR_EVENPRT		(1 << 14)
    127  1.1.4.2  tls #define   UBRLCR_PRTEN		(1 << 13)
    128  1.1.4.2  tls #define   UBRLCR_BREAK		(1 << 12)
    129  1.1.4.2  tls #define   UBRLCR_BRD_MASK	(0xfff << 0)	/* Bit rate divisor */
    130  1.1.4.2  tls #define PS711X_SYNCIO	0x500	/* Synchronous Serial I/O Data Register */
    131  1.1.4.2  tls #define PS711X_PALLSW	0x540	/* Least-significant 32b Word of LCD Palette */
    132  1.1.4.2  tls #define PS711X_PALMSW	0x580	/* Most-significant 32b Word of LCD Palette */
    133  1.1.4.2  tls #define PS711X_STFCLR	0x5c0	/* Write to clear all Start up reason flags */
    134  1.1.4.2  tls #define PS711X_BLEOI	0x600	/* Write to clear Battery Low Interrupt */
    135  1.1.4.2  tls #define PS711X_MCEOI	0x640	/* Write to clear Media Changed Interrupt */
    136  1.1.4.2  tls #define PS711X_TEOI	0x680	/* Write to clear Tick and Watchdog Interrupt */
    137  1.1.4.2  tls #define PS711X_TC1EOI	0x6c0	/* Write to clear TC1 Interrupt */
    138  1.1.4.2  tls #define PS711X_TC2EOI	0x700	/* Write to clear TC2 Interrupt */
    139  1.1.4.2  tls #define PS711X_RTCEOI	0x740	/* Write to clear RTC Match Interrupt */
    140  1.1.4.2  tls #define PS711X_UMSEOI	0x780	/* Write to clear UART Modem Stat Changed Int */
    141  1.1.4.2  tls #define PS711X_COEOI	0x7c0	/* Write to clear Codec Sound Interrupt */
    142  1.1.4.2  tls #define PS711X_HALT	0x800	/* Write to enter idle state */
    143  1.1.4.2  tls #define PS711X_STDBY	0x840	/* Write to enter standby state */
    144  1.1.4.2  tls 
    145  1.1.4.2  tls #define IRQ_EXTFIQ	0	/* External fast interrupt */
    146  1.1.4.2  tls #define IRQ_BLINT	1	/* Battery low interrupt */
    147  1.1.4.2  tls #define IRQ_WEINT	2	/* Watch dog expired interrupt */
    148  1.1.4.2  tls #define IRQ_MCINT	3	/* Media changed interrupt */
    149  1.1.4.2  tls #define IRQ_CSINT	4	/* Codec sound interrupt */
    150  1.1.4.2  tls #define IRQ_EINT1	5	/* External interrupt 1 */
    151  1.1.4.2  tls #define IRQ_EINT2	6	/* External interrupt 2 */
    152  1.1.4.2  tls #define IRQ_EINT3	7	/* External interrupt 3 */
    153  1.1.4.2  tls #define IRQ_TC1DI	8	/* TC1 under-flow interrupt */
    154  1.1.4.2  tls #define IRQ_TC2DI	9	/* TC2 under-flow interrupt */
    155  1.1.4.2  tls #define IRQ_RTCMI	10	/* RTC compare match interrupt */
    156  1.1.4.2  tls #define IRQ_TINT	11	/* 64-Hz tick interrupt */
    157  1.1.4.2  tls #define IRQ_UTXINT	12	/* Internal UART transmit FIFO half-empty */
    158  1.1.4.2  tls #define IRQ_URXINT	13	/* Internal UART receive FIFO half-full */
    159  1.1.4.2  tls #define IRQ_UMSINT	14	/* Internal UART modem status changed */
    160  1.1.4.2  tls #define IRQ_SSEOTI	15   /* Synchronous serial interface end-of-transfer */
    161