[BACK]Return to s3c24x0reg.h CVS log [TXT][DIR] Up to [local] / sys / arch / arm / s3c2xx0

Annotation of sys/arch/arm/s3c2xx0/s3c24x0reg.h, Revision 1.1

1.1     ! nbrk        1: /* $NetBSD: s3c24x0reg.h,v 1.8 2005/12/11 12:16:51 christos Exp $ */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2003  Genetec corporation  All rights reserved.
        !             5:  * Written by Hiroyuki Bessho for Genetec corporation.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  * 3. The name of Genetec corporation may not be used to endorse
        !            16:  *    or promote products derived from this software without specific prior
        !            17:  *    written permission.
        !            18:  *
        !            19:  * THIS SOFTWARE IS PROVIDED BY GENETEC CORP. ``AS IS'' AND
        !            20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
        !            21:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
        !            22:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL GENETEC CORP.
        !            23:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            24:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            25:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            26:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            27:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            28:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            29:  * POSSIBILITY OF SUCH DAMAGE.
        !            30:  */
        !            31:
        !            32:
        !            33: /*
        !            34:  * Samsung S3C2410X/2400 processor is ARM920T based integrated CPU
        !            35:  *
        !            36:  * Reference:
        !            37:  *  S3C2410X User's Manual
        !            38:  *  S3C2400 User's Manual
        !            39:  */
        !            40: #ifndef _ARM_S3C2XX0_S3C24X0REG_H_
        !            41: #define        _ARM_S3C2XX0_S3C24X0REG_H_
        !            42:
        !            43: /* Memory controller */
        !            44: #define        MEMCTL_BWSCON           0x00    /* Bus width and wait status */
        !            45: #define         BWSCON_DW0_SHIFT       1       /* bank0 is odd */
        !            46: #define         BWSCON_BANK_SHIFT(n)   (4*(n)) /* for bank 1..7 */
        !            47: #define         BWSCON_DW_MASK         0x03
        !            48: #define         BWSCON_DW_8            0
        !            49: #define         BWSCON_DW_16           1
        !            50: #define         BWSCON_DW_32           2
        !            51: #define         BWSCON_WS              0x04    /* WAIT enable for the bank */
        !            52: #define         BWSCON_ST              0x08    /* SRAM use UB/LB for the bank */
        !            53:
        !            54: #define        MEMCTL_BANKCON0         0x04    /* Boot ROM control */
        !            55: #define        MEMCTL_BANKCON(n)       (0x04+4*(n)) /* BANKn control */
        !            56: #define         BANKCON_MT_SHIFT       15
        !            57: #define         BANKCON_MT_ROM         (0<<BANKCON_MT_SHIFT)
        !            58: #define         BANKCON_MT_DRAM        (3<<BANKCON_MT_SHIFT)
        !            59: #define         BANKCON_TACS_SHIFT     13      /* address set-up time to nGCS */
        !            60: #define         BANKCON_TCOS_SHIFT     11      /* CS set-up to nOE */
        !            61: #define         BANKCON_TACC_SHIFT     8       /* CS set-up to nOE */
        !            62: #define         BANKCON_TOCH_SHIFT     6       /* CS hold time from OE */
        !            63: #define         BANKCON_TCAH_SHIFT     4       /* address hold time from OE */
        !            64: #define         BANKCON_TACP_SHIFT     2       /* page mode access cycle */
        !            65: #define         BANKCON_TACP_2         (0<<BANKCON_TACP_SHIFT)
        !            66: #define         BANKCON_TACP_3         (1<<BANKCON_TACP_SHIFT)
        !            67: #define         BANKCON_TACP_4         (2<<BANKCON_TACP_SHIFT)
        !            68: #define         BANKCON_TACP_6         (3<<BANKCON_TACP_SHIFT)
        !            69: #define         BANKCON_PMC_4          (1<<0)
        !            70: #define         BANKCON_PMC_8          (2<<0)
        !            71: #define         BANKCON_PMC_16         (3<<0)
        !            72: #define         BANKCON_TRCD_SHIFT     2       /* RAS to CAS delay */
        !            73: #define         BANKCON_TRCD_2         (0<<2)
        !            74: #define         BANKCON_TRCD_3         (1<<2)
        !            75: #define         BANKCON_TRCD_4         (2<<2)
        !            76: #define         BANKCON_SCAN_8         (0<<0)  /* Column address number */
        !            77: #define         BANKCON_SCAN_9         (1<<0)
        !            78: #define         BANKCON_SCAN_10        (2<<0)
        !            79: #define        MEMCTL_REFRESH          0x24    /* DRAM?SDRAM Refresh */
        !            80: #define         REFRESH_REFEN          (1<<23)
        !            81: #define         REFRESH_TREFMD         (1<<22) /* 1=self refresh */
        !            82: #define         REFRESH_TRP_2          (0<<20)
        !            83: #define         REFRESH_TRP_3          (1<<20)
        !            84: #define         REFRESH_TRP_4          (2<<20)
        !            85: #define         REFRESH_TRC_4          (0<<18)
        !            86: #define         REFRESH_TRC_5          (1<<18)
        !            87: #define         REFRESH_TRC_6          (2<<18)
        !            88: #define         REFRESH_TRC_7          (3<<18)
        !            89: #define         REFRESH_COUNTER_MASK   0x3ff
        !            90: #define        MEMCTL_BANKSIZE         0x28    /* Flexible Bank size */
        !            91: #define        MEMCTL_MRSRB6           0x2c    /* SDRAM Mode register */
        !            92: #define        MEMCTL_MRSRB7           0x30
        !            93: #define         MRSR_CL_SHIFT          4       /* CAS Latency */
        !            94:
        !            95: #define        S3C24X0_MEMCTL_SIZE     0x34
        !            96:
        !            97: /* USB Host controller */
        !            98: #define        S3C24X0_USBHC_SIZE      0x5c
        !            99:
        !           100: /* Interrupt controller */
        !           101: #define        INTCTL_PRIORITY         0x0c    /* IRQ Priority control */
        !           102: #define        INTCTL_INTPND           0x10    /* Interrupt request status */
        !           103: #define        INTCTL_INTOFFSET        0x14    /* Interrupt request source */
        !           104:
        !           105: /* Interrupt source */
        !           106: #define        S3C24X0_INT_ADCTC       31      /* ADC (and TC for 2410 */
        !           107: #define        S3C24X0_INT_RTC         30      /* RTC alarm */
        !           108: #define        S3C2400_INT_UTXD1       29      /* UART1 Tx INT  (2400 only) */
        !           109: #define        S3C2410_INT_SPI1        29      /* SPI 1 (2410 only) */
        !           110: #define        S3C2400_INT_UTXD0       28      /* UART0 Tx INT  (2400 only) */
        !           111: #define        S3C2410_INT_UART0       28      /* UART0 (2410 only) */
        !           112: #define        S3C24X0_INT_IIC         27
        !           113: #define        S3C24X0_INT_USBH        26      /* USB Host */
        !           114: #define        S3C24X0_INT_USBD        25      /* USB Device */
        !           115: #define        S3C2400_INT_URXD1       24      /* UART1 Rx INT (2400 only) */
        !           116: #define        S3C2400_INT_URXD0       23      /* UART0 Rx INT (2400 only) */
        !           117: #define        S3C2410_INT_UART1       23      /* UART0  (2410 only) */
        !           118: #define        S3C24X0_INT_SPI0        22      /* SPI 0 */
        !           119: #define        S3C2400_INT_MMC         21
        !           120: #define        S3C2410_INT_SDI         21
        !           121: #define        S3C24X0_INT_DMA3        20
        !           122: #define        S3C24X0_INT_DMA2        19
        !           123: #define        S3C24X0_INT_DMA1        18
        !           124: #define        S3C24X0_INT_DMA0        17
        !           125: #define        S3C2410_INT_LCD         16
        !           126:
        !           127: #define        S3C2400_INT_UERR        15      /* UART 0/1 Error int (2400) */
        !           128: #define        S3C2410_INT_UART2       15      /* UART2 int (2410) */
        !           129: #define        S3C24X0_INT_TIMER4      14
        !           130: #define        S3C24X0_INT_TIMER3      13
        !           131: #define        S3C24X0_INT_TIMER2      12
        !           132: #define        S3C24X0_INT_TIMER1      11
        !           133: #define        S3C24X0_INT_TIMER0      10
        !           134: #define        S3C24X0_INT_TIMER(n)    (10+(n)) /* timer interrupt [4:0] */
        !           135: #define        S3C24X0_INT_WDT         9       /* Watch dog timer */
        !           136: #define        S3C24X0_INT_TICK        8
        !           137: #define        S3C2410_INT_BFLT        7       /* Battery fault */
        !           138: #define        S3C2410_INT_8_23        5       /* Ext int 8..23 */
        !           139: #define        S3C2410_INT_4_7         4       /* Ext int 4..7 */
        !           140: #define        S3C24X0_INT_EXT(n)      (n)     /* External interrupt [7:0] for 2400,
        !           141:                                         * [3:0] for 2410 */
        !           142: /* DMA controller */
        !           143: /* XXX */
        !           144:
        !           145: /* Clock & power manager */
        !           146: #define        CLKMAN_LOCKTIME 0x00    /* PLL lock time */
        !           147: #define        CLKMAN_MPLLCON  0x04    /* MPLL control */
        !           148: #define        CLKMAN_UPLLCON  0x08    /* UPLL control */
        !           149: #define         PLLCON_MDIV_SHIFT      12
        !           150: #define         PLLCON_MDIV_MASK       (0xff<<PLLCON_MDIV_SHIFT)
        !           151: #define         PLLCON_PDIV_SHIFT      4
        !           152: #define         PLLCON_PDIV_MASK       (0x3f<<PLLCON_PDIV_SHIFT)
        !           153: #define         PLLCON_SDIV_SHIFT      0
        !           154: #define         PLLCON_SDIV_MASK       (0x03<<PLLCON_SDIV_SHIFT)
        !           155: #define        CLKMAN_CLKCON   0x0c
        !           156:
        !           157: #define        CLKMAN_CLKSLOW  0x10    /* slow clock controll */
        !           158: #define         CLKSLOW_UCLK   (1<<7)  /* 1=UPLL off */
        !           159: #define         CLKSLOW_MPLL   (1<<5)  /* 1=PLL off */
        !           160: #define         CLKSLOW_SLOW   (1<<4)  /* 1: Enable SLOW mode */
        !           161: #define         CLKSLOW_VAL_MASK  0x0f /* divider value for slow clock */
        !           162:
        !           163: #define        CLKMAN_CLKDIVN  0x14    /* Software reset control */
        !           164: #define         CLKDIVN_HDIVN  (1<<1)
        !           165: #define         CLKDIVN_PDIVN  (1<<0)
        !           166:
        !           167: #define        S3C24X0_CLKMAN_SIZE     0x18
        !           168:
        !           169: /* LCD controller */
        !           170: #define        LCDC_LCDCON1    0x00    /* control 1 */
        !           171: #define         LCDCON1_ENVID          (1<<0)  /* enable video */
        !           172: #define         LCDCON1_BPPMODE_SHIFT  1
        !           173: #define         LCDCON1_BPPMODE_MASK   (0x0f<<LCDCON1_BPPMODE_SHIFT)
        !           174: #define         LCDCON1_BPPMODE_STN1   (0x0<<LCDCON1_BPPMODE_SHIFT)
        !           175: #define         LCDCON1_BPPMODE_STN2   (0x1<<LCDCON1_BPPMODE_SHIFT)
        !           176: #define         LCDCON1_BPPMODE_STN4   (0x2<<LCDCON1_BPPMODE_SHIFT)
        !           177: #define         LCDCON1_BPPMODE_STN8   (0x3<<LCDCON1_BPPMODE_SHIFT)
        !           178: #define         LCDCON1_BPPMODE_STN12  (0x4<<LCDCON1_BPPMODE_SHIFT)
        !           179: #define         LCDCON1_BPPMODE_TFT1   (0x8<<LCDCON1_BPPMODE_SHIFT)
        !           180: #define         LCDCON1_BPPMODE_TFT2   (0x9<<LCDCON1_BPPMODE_SHIFT)
        !           181: #define         LCDCON1_BPPMODE_TFT4   (0xa<<LCDCON1_BPPMODE_SHIFT)
        !           182: #define         LCDCON1_BPPMODE_TFT8   (0xb<<LCDCON1_BPPMODE_SHIFT)
        !           183: #define         LCDCON1_BPPMODE_TFT16  (0xc<<LCDCON1_BPPMODE_SHIFT)
        !           184: #define         LCDCON1_BPPMODE_TFT24  (0xd<<LCDCON1_BPPMODE_SHIFT)
        !           185: #define         LCDCON1_BPPMODE_TFTX   (0x8<<LCDCON1_BPPMODE_SHIFT)
        !           186:
        !           187: #define         LCDCON1_PNRMODE_SHIFT  5
        !           188: #define         LCDCON1_PNRMODE_MASK   (0x3<<LCDCON1_PNRMODE_SHIFT)
        !           189: #define         LCDCON1_PNRMODE_DUALSTN4    (0x0<<LCDCON1_PNRMODE_SHIFT)
        !           190: #define         LCDCON1_PNRMODE_SINGLESTN4  (0x1<<LCDCON1_PNRMODE_SHIFT)
        !           191: #define         LCDCON1_PNRMODE_SINGLESTN8  (0x2<<LCDCON1_PNRMODE_SHIFT)
        !           192: #define         LCDCON1_PNRMODE_TFT         (0x3<<LCDCON1_PNRMODE_SHIFT)
        !           193:
        !           194: #define         LCDCON1_MMODE          (1<<7) /* VM toggle rate */
        !           195: #define         LCDCON1_CLKVAL_SHIFT   8
        !           196: #define         LCDCON1_CLKVAL_MASK    (0x3ff<<LCDCON1_CLKVAL_SHIFT)
        !           197: #define         LCDCON1_LINCNT_SHIFT   18
        !           198: #define         LCDCON1_LINCNT_MASK    (0x3ff<<LCDCON1_LINCNT_SHIFT)
        !           199:
        !           200: #define        LCDC_LCDCON2    0x04    /* control 2 */
        !           201: #define         LCDCON2_VPSW_SHIFT     0       /* TFT Vsync pulse width */
        !           202: #define         LCDCON2_VPSW_MASK      (0x3f<<LCDCON2_VPSW_SHIFT)
        !           203: #define         LCDCON2_VFPD_SHIFT     6       /* TFT V front porch */
        !           204: #define         LCDCON2_VFPD_MASK      (0xff<<LCDCON2_VFPD_SHIFT)
        !           205: #define         LCDCON2_LINEVAL_SHIFT  14      /* Vertical size */
        !           206: #define         LCDCON2_LINEVAL_MASK   (0x3ff<<LCDCON2_LINEVAL_SHIFT)
        !           207: #define         LCDCON2_VBPD_SHIFT     24      /* TFT V back porch */
        !           208: #define         LCDCON2_VBPD_MASK      (0xff<<LCDCON2_VBPD_SHIFT)
        !           209:
        !           210: #define        LCDC_LCDCON3    0x08    /* control 2 */
        !           211: #define         LCDCON3_HFPD_SHIFT     0       /* TFT H front porch */
        !           212: #define         LCDCON3_HFPD_MASK      (0xff<<LCDCON3_VPFD_SHIFT)
        !           213: #define         LCDCON3_LINEBLANK_SHIFT  0     /* STN H blank time */
        !           214: #define         LCDCON3_LINEBLANK_MASK   (0xff<<LCDCON3_LINEBLANK_SHIFT)
        !           215: #define         LCDCON3_HOZVAL_SHIFT   8       /* Horizontal size */
        !           216: #define         LCDCON3_HOZVAL_MASK    (0x7ff<<LCDCON3_HOZVAL_SHIFT)
        !           217: #define         LCDCON3_HBPD_SHIFT     19      /* TFT H back porch */
        !           218: #define         LCDCON3_HBPD_MASK      (0x7f<<LCDCON3_HPBD_SHIFT)
        !           219: #define         LCDCON3_WDLY_SHIFT     19      /* STN vline delay */
        !           220: #define         LCDCON3_WDLY_MASK      (0x03<<LCDCON3_WDLY_SHIFT)
        !           221: #define         LCDCON3_WDLY_16        (0x00<<LCDCON3_WDLY_SHIFT)
        !           222: #define         LCDCON3_WDLY_32        (0x01<<LCDCON3_WDLY_SHIFT)
        !           223: #define         LCDCON3_WDLY_64        (0x02<<LCDCON3_WDLY_SHIFT)
        !           224: #define         LCDCON3_WDLY_128       (0x03<<LCDCON3_WDLY_SHIFT)
        !           225:
        !           226: #define        LCDC_LCDCON4    0x0c    /* control 4 */
        !           227: #define         LCDCON4_HPSW_SHIFT     0       /* TFT Hsync pulse width */
        !           228: #define         LCDCON4_HPSW_MASK      (0xff<<LCDCON4_HPSW_SHIFT)
        !           229: #define         LCDCON4_WLH_SHIFT      0       /* STN VLINE high width */
        !           230: #define         LCDCON4_WLH_MASK       (0x03<<LCDCON4_WLH_SHIFT)
        !           231: #define         LCDCON4_WLH_16         (0x00<<LCDCON4_WLH_SHIFT)
        !           232: #define         LCDCON4_WLH_32         (0x01<<LCDCON4_WLH_SHIFT)
        !           233: #define         LCDCON4_WLH_64         (0x02<<LCDCON4_WLH_SHIFT)
        !           234: #define         LCDCON4_WLH_128        (0x03<<LCDCON4_WLH_SHIFT)
        !           235:
        !           236: #define         LCDCON4_MVAL_SHIFT     8       /* STN VM toggle rate */
        !           237: #define         LCDCON4_MVAL_MASK      (0xff<<LCDCON4_MVAL_SHIFT)
        !           238:
        !           239: #define        LCDC_LCDCON5    0x10    /* control 5 */
        !           240: #define         LCDCON5_HWSWP          (1<<0)  /* half-word swap */
        !           241: #define         LCDCON5_BSWP           (1<<1)  /* byte swap */
        !           242: #define         LCDCON5_ENLEND         (1<<2)  /* TFT: enable LEND signal */
        !           243: #define         LCDCON5_PWREN          (1<<3)  /* enable PWREN signale */
        !           244: #define         LCDCON5_INVLEND        (1<<4)  /* TFT: LEND signal polarity */
        !           245: #define         LCDCON5_INVPWREN       (1<<5)  /* PWREN signal polarity */
        !           246: #define         LCDCON5_INVVDEN        (1<<6)  /* VDEN signal polarity */
        !           247: #define         LCDCON5_INVVD          (1<<7)  /* video data signal polarity */
        !           248: #define         LCDCON5_INVVFRAME      (1<<8)  /* VFRAME/VSYNC signal polarity */
        !           249: #define         LCDCON5_INVVLINE       (1<<9)  /* VLINE/HSYNC signal polarity */
        !           250: #define         LCDCON5_INVVCLK        (1<<10) /* VCLK signal polarity */
        !           251: #define         LCDCON5_INVVCLK_RISING LCDCON5_INVVCLK
        !           252: #define         LCDCON5_INVVCLK_FALLING  0
        !           253: #define         LCDCON5_FRM565         (1<<11) /* RGB:565 format*/
        !           254: #define         LCDCON5_FRM555I        0       /* RGBI:5551 format */
        !           255: #define         LCDCON5_BPP24BL        (1<<12) /* bit order for bpp24 */
        !           256:
        !           257: #define         LCDCON5_HSTATUS_SHIFT  17 /* TFT: horizontal status */
        !           258: #define         LCDCON5_HSTATUS_MASK   (0x03<<LCDCON5_HSTATUS_SHIFT)
        !           259: #define         LCDCON5_HSTATUS_HSYNC  (0x00<<LCDCON5_HSTATUS_SHIFT)
        !           260: #define         LCDCON5_HSTATUS_BACKP  (0x01<<LCDCON5_HSTATUS_SHIFT)
        !           261: #define         LCDCON5_HSTATUS_ACTIVE (0x02<<LCDCON5_HSTATUS_SHIFT)
        !           262: #define         LCDCON5_HSTATUS_FRONTP (0x03<<LCDCON5_HSTATUS_SHIFT)
        !           263:
        !           264: #define         LCDCON5_VSTATUS_SHIFT  19 /* TFT: vertical status */
        !           265: #define         LCDCON5_VSTATUS_MASK   (0x03<<LCDCON5_VSTATUS_SHIFT)
        !           266: #define         LCDCON5_VSTATUS_HSYNC  (0x00<<LCDCON5_VSTATUS_SHIFT)
        !           267: #define         LCDCON5_VSTATUS_BACKP  (0x01<<LCDCON5_VSTATUS_SHIFT)
        !           268: #define         LCDCON5_VSTATUS_ACTIVE (0x02<<LCDCON5_VSTATUS_SHIFT)
        !           269: #define         LCDCON5_VSTATUS_FRONTP (0x03<<LCDCON5_VSTATUS_SHIFT)
        !           270:
        !           271: #define        LCDC_LCDSADDR1  0x14    /* frame buffer start address */
        !           272: #define        LCDC_LCDSADDR2  0x18
        !           273: #define        LCDC_LCDSADDR3  0x1c
        !           274: #define         LCDSADDR3_OFFSIZE_SHIFT     11
        !           275: #define         LCDSADDR3_PAGEWIDTH_SHIFT   0
        !           276:
        !           277: #define        LCDC_REDLUT     0x20    /* STN: red lookup table */
        !           278: #define        LCDC_GREENLUT   0x24    /* STN: green lookup table */
        !           279: #define        LCDC_BLUELUT    0x28    /* STN: blue lookup table */
        !           280: #define        LCDC_DITHMODE   0x4c    /* STN: dithering mode */
        !           281:
        !           282: #define        LCDC_TPAL       0x50    /* TFT: temporary palette */
        !           283: #define         TPAL_TPALEN            (1<<24)
        !           284: #define         TPAL_RED_SHIFT         16
        !           285: #define         TPAL_GREEN_SHIFT       8
        !           286: #define         TPAL_BLUE_SHIFT        0
        !           287:
        !           288: #define        LCDC_LCDINTPND  0x54
        !           289: #define        LCDC_LCDSRCPND  0x58
        !           290: #define        LCDC_LCDINTMSK  0x5c
        !           291: #define         LCDINT_FICNT   (1<<0)  /* FIFO trigger interrupt pending */
        !           292: #define         LCDINT_FRSYN   (1<<1)  /* frame sync interrupt pending */
        !           293: #define         LCDINT_FIWSEL  (1<<2)  /* FIFO trigger level: 1=8 words, 0=4 words*/
        !           294:
        !           295: #define        LCDC_LPCSEL     0x60    /* LPC3600 mode  */
        !           296: #define         LPCSEL_LPC_EN          (1<<0)  /* enable LPC3600 mode */
        !           297: #define         LPCSEL_RES_SEL         (1<<1)  /* 1=240x320 0=320x240 */
        !           298: #define         LPCSEL_MODE_SEL        (1<<2)
        !           299: #define         LPCSEL_CPV_SEL         (1<<3)
        !           300:
        !           301:
        !           302: #define        LCDC_PALETTE            0x0400
        !           303: #define        LCDC_PALETTE_SIZE       0x0400
        !           304:
        !           305: #define        S3C24X0_LCDC_SIZE       (LCDC_PALETTE+LCDC_PALETTE_SIZE)
        !           306:
        !           307: /* Timer */
        !           308: #define        TIMER_TCFG0     0x00    /* Timer configuration */
        !           309: #define        TIMER_TCFG1     0x04
        !           310: #define         TCFG1_MUX_SHIFT(n)     (4*(n))
        !           311: #define         TCFG1_MUX_MASK(n)      (0x0f << TCFG1_MUX_SHIFT(n))
        !           312: #define         TCFG1_MUX_DIV2         0
        !           313: #define         TCFG1_MUX_DIV4         1
        !           314: #define         TCFG1_MUX_DIV8         2
        !           315: #define         TCFG1_MUX_DIV16        3
        !           316: #define         TCFG1_MUX_EXT          4
        !           317: #define        TIMER_TCON      0x08    /* control */
        !           318: #define         TCON_SHIFT(n)          (4 * ((n)==0 ? 0 : (n)+1))
        !           319: #define         TCON_START(n)          (1 << TCON_SHIFT(n))
        !           320: #define         TCON_MANUALUPDATE(n)   (1 << (TCON_SHIFT(n) + 1))
        !           321: #define         TCON_INVERTER(n)       (1 << (TCON_SHIFT(n) + 2))
        !           322: #define         __TCON_AUTORELOAD(n)   (1 << (TCON_SHIFT(n) + 3)) /* n=0..3 */
        !           323: #define         TCON_AUTORELOAD4       (1<<22)        /* stupid hardware design */
        !           324: #define         TCON_AUTORELOAD(n)     ((n)==4 ? TCON_AUTORELOAD4 : __TCON_AUTORELOAD(n))
        !           325: #define         TCON_MASK(n)           (0x0f << TCON_SHIFT(n))
        !           326: #define        TIMER_TCNTB(n)   (0x0c+0x0c*(n))        /* count buffer */
        !           327: #define        TIMER_TCMPB(n)   (0x10+0x0c*(n))        /* compare buffer */
        !           328: #define        __TIMER_TCNTO(n) (0x14+0x0c*(n))        /* count observation */
        !           329: #define        TIMER_TCNTO4    0x40
        !           330: #define        TIMER_TCNTO(n)  ((n)==4 ? TIMER_TCNTO4 : __TIMER_TCNTO(n))
        !           331:
        !           332: #define        S3C24X0_TIMER_SIZE      0x44
        !           333:
        !           334: /* UART */
        !           335: /* diffs to s3c2800 */
        !           336: #define         UMCON_AFC      (1<<4)  /* auto flow control */
        !           337: #define         UMSTAT_DCTS    (1<<2)  /* CTS change */
        !           338: #define         ULCON_IR       (1<<6)
        !           339: #define         ULCON_PARITY_SHIFT  3
        !           340:
        !           341: #define        S3C24X0_UART_SIZE       0x2c
        !           342:
        !           343: /* USB device */
        !           344: /* XXX */
        !           345:
        !           346: /* Watch dog timer */
        !           347: #define        WDT_WTCON       0x00    /* WDT mode */
        !           348: #define         WTCON_PRESCALE_SHIFT   8
        !           349: #define         WTCON_PRESCALE (0xff<<WTCON_PRESCALE_SHIFT)
        !           350: #define         WTCON_ENABLE   (1<<5)
        !           351: #define         WTCON_CLKSEL   (3<<3)
        !           352: #define         WTCON_CLKSEL_16  (0<<3)
        !           353: #define         WTCON_CLKSEL_32  (1<<3)
        !           354: #define         WTCON_CLKSEL_64  (2<<3)
        !           355: #define         WTCON_CLKSEL_128 (3<<3)
        !           356: #define         WTCON_ENINT    (1<<2)
        !           357: #define         WTCON_ENRST    (1<<0)
        !           358:
        !           359: #define         WTCON_WDTSTOP  0
        !           360:
        !           361: #define        WDT_WTDAT       0x04    /* timer data */
        !           362: #define        WDT_WTCNT       0x08    /* timer count */
        !           363:
        !           364: #define        S3C24X0_WDT_SIZE        0x0c
        !           365:
        !           366: /* IIC */ /* XXX */
        !           367: #define        S3C24X0_IIC_SIZE        0x0c
        !           368:
        !           369:
        !           370: /* IIS */ /* XXX */
        !           371: #define        S3C24X0_IIS_SIZE        0x14
        !           372:
        !           373: /* RTC */ /* XXX */
        !           374:
        !           375: /* SPI */
        !           376: #define        S3C24X0_SPI_SIZE        0x20
        !           377:
        !           378: #define        SPI_SPCON               0x00
        !           379: #define         SPCON_TAGD             (1<<0) /* Tx auto garbage */
        !           380: #define         SPCON_CPHA             (1<<1)
        !           381: #define         SPCON_CPOL             (1<<2)
        !           382: #define         SPCON_IDLELOW_RISING     (0|0)
        !           383: #define         SPCON_IDLELOW_FALLING    (0|SPCON_CPHA)
        !           384: #define         SPCON_IDLEHIGH_FALLING  (SPCON_CPOL|0)
        !           385: #define         SPCON_IDLEHIGH_RISING    (SPCON_CPOL|SPCON_CPHA)
        !           386: #define         SPCON_MSTR             (1<<3)
        !           387: #define         SPCON_ENSCK            (1<<4)
        !           388: #define         SPCON_SMOD_SHIFT       5
        !           389: #define         SPCON_SMOD_MASK        (0x03<<SPCON_SMOD_SHIFT)
        !           390: #define         SPCON_SMOD_POLL        (0x00<<SPCON_SMOD_SHIFT)
        !           391: #define         SPCON_SMOD_INT         (0x01<<SPCON_SMOD_SHIFT)
        !           392: #define         SPCON_SMOD_DMA         (0x02<<SPCON_SMOD_SHIFT)
        !           393:
        !           394: #define        SPI_SPSTA               0x04 /* status register */
        !           395: #define         SPSTA_REDY             (1<<0) /* ready */
        !           396: #define         SPSTA_MULF             (1<<1) /* multi master error */
        !           397: #define         SPSTA_DCOL             (1<<2) /* Data collision error */
        !           398:
        !           399: #define        SPI_SPPIN               0x08
        !           400: #define         SPPIN_KEEP             (1<<0)
        !           401: #define         SPPIN_ENMUL            (1<<2) /* multi master error detect */
        !           402:
        !           403: #define        SPI_SPPRE               0x0c /* prescaler */
        !           404: #define        SPI_SPTDAT              0x10 /* tx data */
        !           405: #define        SPI_SPRDAT              0x14 /* rx data */
        !           406:
        !           407:
        !           408: #endif /* _ARM_S3C2XX0_S3C24X0REG_H_ */

CVSweb