rockbox/firmware/export/dm320.h

1118 lines
48 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Karl Kurbjun
* Copyright (C) 2008 by Maurus Cuelenaere
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/** All register offset definitions for the TI DM320
* Taken from: http://svn.neurostechnology.com/filedetails.php?repname=neuros-bsp&path=%2Ftrunk%2Fkernels%2Flinux-2.6.15%2Finclude%2Fasm-arm%2Farch-ntosd-dm320%2Fio_registers.h&rev=0&sc=0
*/
#ifndef __DM320_H__
#define __DM320_H__
#if !defined(__ASSEMBLER__) && !defined(__LD__)
/* These variables are created during linking (app/boot.lds) */
extern unsigned long _lcdbuf;
#ifdef MROBE_500
extern unsigned long _lcdbuf2;
#endif
extern unsigned long _ttbstart;
#endif
#define TTB_BASE_ADDR (_ttbstart) /* End of memory */
#define FRAME ((short *) (&_lcdbuf)) /* Right after TTB */
#ifdef MROBE_500
#define FRAME2 ((short *) (&_lcdbuf2)) /* Right after FRAME */
#endif
#define PHY_IO_BASE 0x00030000
#define DM320_REG(addr) (*(volatile unsigned short *)(PHY_IO_BASE + (addr)))
#define PHY_IO_BASE2 0x00060000
#define DM320_REG2(addr) (*(volatile unsigned int *)(PHY_IO_BASE2 + (addr)))
#define COP_IO_BASE 0x00090000
#define DM320_COP(addr) (*(volatile unsigned short *)(COP_IO_BASE + (addr)))
/* This needs to be 2048 byte aligned, but USB_QHARRAY_ATTR should take care
* of that */
#define USB_QHARRAY_ATTR __attribute__((section(".qharray"),nocommon,aligned(4)))
#define USB_DEVBSS_ATTR IBSS_ATTR
/* Timer 0-3 */
#define IO_TIMER0_TMMD DM320_REG(0x0000)
#define IO_TIMER0_TMRSV0 DM320_REG(0x0002)
#define IO_TIMER0_TMPRSCL DM320_REG(0x0004)
#define IO_TIMER0_TMDIV DM320_REG(0x0006)
#define IO_TIMER0_TMTRG DM320_REG(0x0008)
#define IO_TIMER0_TMCNT DM320_REG(0x000A)
#define IO_TIMER1_TMMD DM320_REG(0x0080)
#define IO_TIMER1_TMRSV0 DM320_REG(0x0082)
#define IO_TIMER1_TMPRSCL DM320_REG(0x0084)
#define IO_TIMER1_TMDIV DM320_REG(0x0086)
#define IO_TIMER1_TMTRG DM320_REG(0x0088)
#define IO_TIMER1_TMCNT DM320_REG(0x008A)
#define IO_TIMER2_TMMD DM320_REG(0x0100)
#define IO_TIMER2_TMVDCLR DM320_REG(0x0102)
#define IO_TIMER2_TMPRSCL DM320_REG(0x0104)
#define IO_TIMER2_TMDIV DM320_REG(0x0106)
#define IO_TIMER2_TMTRG DM320_REG(0x0108)
#define IO_TIMER2_TMCNT DM320_REG(0x010A)
#define IO_TIMER3_TMMD DM320_REG(0x0180)
#define IO_TIMER3_TMVDCLR DM320_REG(0x0182)
#define IO_TIMER3_TMPRSCL DM320_REG(0x0184)
#define IO_TIMER3_TMDIV DM320_REG(0x0186)
#define IO_TIMER3_TMTRG DM320_REG(0x0188)
#define IO_TIMER3_TMCNT DM320_REG(0x018A)
/* Serial 0/1 */
#define IO_SERIAL0_TX_DATA DM320_REG(0x0200)
#define IO_SERIAL0_RX_DATA DM320_REG(0x0202)
#define IO_SERIAL0_TX_ENABLE DM320_REG(0x0204)
#define IO_SERIAL0_MODE DM320_REG(0x0206)
#define IO_SERIAL0_DMA_TRIGGER DM320_REG(0x0208)
#define IO_SERIAL0_DMA_MODE DM320_REG(0x020A)
#define IO_SERIAL0_DMA_SDRAM_LOW DM320_REG(0x020C)
#define IO_SERIAL0_DMA_SDRAM_HI DM320_REG(0x020E)
#define IO_SERIAL0_DMA_STATUS DM320_REG(0x0210)
#define IO_SERIAL1_TX_DATA DM320_REG(0x0280)
#define IO_SERIAL1_RX_DATA DM320_REG(0x0282)
#define IO_SERIAL1_TX_ENABLE DM320_REG(0x0284)
#define IO_SERIAL1_MODE DM320_REG(0x0286)
/* UART 0/1 */
#define IO_UART0_DTRR DM320_REG(0x0300)
#define IO_UART0_BRSR DM320_REG(0x0302)
#define IO_UART0_MSR DM320_REG(0x0304)
#define IO_UART0_RFCR DM320_REG(0x0306)
#define IO_UART0_TFCR DM320_REG(0x0308)
#define IO_UART0_LCR DM320_REG(0x030A)
#define IO_UART0_SR DM320_REG(0x030C)
#define IO_UART1_DTRR DM320_REG(0x0380)
#define IO_UART1_BRSR DM320_REG(0x0382)
#define IO_UART1_MSR DM320_REG(0x0384)
#define IO_UART1_RFCR DM320_REG(0x0386)
#define IO_UART1_TFCR DM320_REG(0x0388)
#define IO_UART1_LCR DM320_REG(0x038A)
#define IO_UART1_SR DM320_REG(0x038C)
/* Watchdog Timer */
#define IO_WATCHDOG_MODE DM320_REG(0x0400)
#define IO_WATCHDOG_RESET DM320_REG(0x0402)
#define IO_WATCHDOG_PRESCALAR DM320_REG(0x0404)
#define IO_WATCHDOG_DIVISOR DM320_REG(0x0406)
#define IO_WATCHDOG_EXT_RESET DM320_REG(0x0408)
/* MMC/SD Controller */
#define IO_MMC_CONTROL DM320_REG(0x0480)
#define IO_MMC_MEM_CLK_CONTROL DM320_REG(0x0482)
#define IO_MMC_STATUS0 DM320_REG(0x0484)
#define IO_MMC_STATUS1 DM320_REG(0x0486)
#define IO_MMC_INT_ENABLE DM320_REG(0x0488)
#define IO_MMC_RESPONSE_TIMEOUT DM320_REG(0x048A)
#define IO_MMC_READ_TIMEOUT DM320_REG(0x048C)
#define IO_MMC_BLOCK_LENGTH DM320_REG(0x048E)
#define IO_MMC_NR_BLOCKS DM320_REG(0x0490)
#define IO_MMC_NR_BLOCKS_COUNT DM320_REG(0x0492)
#define IO_MMC_RX_DATA DM320_REG(0x0494)
#define IO_MMC_TX_DATA DM320_REG(0x0496)
#define IO_MMC_COMMAND DM320_REG(0x0498)
#define IO_MMC_ARG_LOW DM320_REG(0x049A)
#define IO_MMC_ARG_HI DM320_REG(0x049C)
#define IO_MMC_RESPONSE0 DM320_REG(0x049E)
#define IO_MMC_RESPONSE1 DM320_REG(0x04A0)
#define IO_MMC_RESPONSE2 DM320_REG(0x04A2)
#define IO_MMC_RESPONSE3 DM320_REG(0x04A4)
#define IO_MMC_RESPONSE4 DM320_REG(0x04A6)
#define IO_MMC_RESPONSE5 DM320_REG(0x04A8)
#define IO_MMC_RESPONSE6 DM320_REG(0x04AA)
#define IO_MMC_RESPONSE7 DM320_REG(0x04AC)
#define IO_MMC_SPI_DATA DM320_REG(0x04AE)
#define IO_MMC_SPI_ERR DM320_REG(0x04B0)
#define IO_MMC_COMMAND_INDEX DM320_REG(0x04B2)
#define IO_MMC_CLK_START_PHASE DM320_REG(0x04B4)
#define IO_MMC_RESPONSE_TOUT_CNT DM320_REG(0x04B6)
#define IO_MMC_READ_TOUT_CNT DM320_REG(0x04B8)
#define IO_MMC_BLOCK_LENGTH_CNT DM320_REG(0x04BA)
#define IO_MMC_SD_DMA_TRIGGER DM320_REG(0x04BC)
#define IO_MMC_SD_DMA_MODE DM320_REG(0x04BE)
#define IO_MMC_SD_DMA_ADDR_LOW DM320_REG(0x04C0)
#define IO_MMC_SD_DMA_ADDR_HI DM320_REG(0x04C2)
#define IO_MMC_SD_DMA_STATUS0 DM320_REG(0x04C4)
#define IO_MMC_SD_DMA_STATUS1 DM320_REG(0x04C6)
#define IO_MMC_SD_DMA_TIMEOUT DM320_REG(0x04C8)
#define IO_SDIO_CONTROL DM320_REG(0x04CA)
#define IO_SDIO_STATUS0 DM320_REG(0x04CC)
#define IO_SDIO_INT_ENABLE DM320_REG(0x04CE)
#define IO_SDIO_INT_STATUS DM320_REG(0x04D0)
/* Interrupt Controller */
#define IO_INTC_FIQ0 DM320_REG(0x0500)
#define IO_INTC_FIQ1 DM320_REG(0x0502)
#define IO_INTC_FIQ2 DM320_REG(0x0504)
#define IO_INTC_IRQ0 DM320_REG(0x0508)
#define IO_INTC_IRQ1 DM320_REG(0x050A)
#define IO_INTC_IRQ2 DM320_REG(0x050C)
#define IO_INTC_FIQENTRY0 DM320_REG(0x0510)
#define IO_INTC_FIQENTRY1 DM320_REG(0x0512)
#define IO_INTC_FIQ_LOCK_ADDR0 DM320_REG(0x0514)
#define IO_INTC_FIQ_LOCK_ADDR1 DM320_REG(0x0516)
#define IO_INTC_IRQENTRY0 DM320_REG(0x0518)
#define IO_INTC_IRQENTRY1 DM320_REG(0x051A)
#define IO_INTC_IRQ_LOCK_ADDR0 DM320_REG(0x051C)
#define IO_INTC_IRQ_LOCK_ADDR1 DM320_REG(0x051E)
#define IO_INTC_FISEL0 DM320_REG(0x0520)
#define IO_INTC_FISEL1 DM320_REG(0x0522)
#define IO_INTC_FISEL2 DM320_REG(0x0524)
#define IO_INTC_EINT0 DM320_REG(0x0528)
#define IO_INTC_EINT1 DM320_REG(0x052A)
#define IO_INTC_EINT2 DM320_REG(0x052C)
#define IO_INTC_RAW DM320_REG(0x0530)
#define IO_INTC_ENTRY_TBA0 DM320_REG(0x0538)
#define IO_INTC_ENTRY_TBA1 DM320_REG(0x053A)
#define IO_INTC_PRIORITY0 DM320_REG(0x0540)
#define IO_INTC_PRIORITY1 DM320_REG(0x0542)
#define IO_INTC_PRIORITY2 DM320_REG(0x0544)
#define IO_INTC_PRIORITY3 DM320_REG(0x0546)
#define IO_INTC_PRIORITY4 DM320_REG(0x0548)
#define IO_INTC_PRIORITY5 DM320_REG(0x054A)
#define IO_INTC_PRIORITY6 DM320_REG(0x054C)
#define IO_INTC_PRIORITY7 DM320_REG(0x054E)
#define IO_INTC_PRIORITY8 DM320_REG(0x0550)
#define IO_INTC_PRIORITY9 DM320_REG(0x0552)
#define IO_INTC_PRIORITY10 DM320_REG(0x0554)
#define IO_INTC_PRIORITY11 DM320_REG(0x0556)
#define IO_INTC_PRIORITY12 DM320_REG(0x0558)
#define IO_INTC_PRIORITY13 DM320_REG(0x055A)
#define IO_INTC_PRIORITY14 DM320_REG(0x055C)
#define IO_INTC_PRIORITY15 DM320_REG(0x055E)
#define IO_INTC_PRIORITY16 DM320_REG(0x0560)
#define IO_INTC_PRIORITY17 DM320_REG(0x0562)
#define IO_INTC_PRIORITY18 DM320_REG(0x0564)
#define IO_INTC_PRIORITY19 DM320_REG(0x0566)
#define IO_INTC_PRIORITY20 DM320_REG(0x0568)
#define IO_INTC_PRIORITY21 DM320_REG(0x056A)
#define IO_INTC_PRIORITY22 DM320_REG(0x056C)
/* GIO Controller */
#define IO_GIO_DIR0 DM320_REG(0x0580)
#define IO_GIO_DIR1 DM320_REG(0x0582)
#define IO_GIO_DIR2 DM320_REG(0x0584)
#define IO_GIO_INV0 DM320_REG(0x0586)
#define IO_GIO_INV1 DM320_REG(0x0588)
#define IO_GIO_INV2 DM320_REG(0x058A)
#define IO_GIO_BITSET0 DM320_REG(0x058C)
#define IO_GIO_BITSET1 DM320_REG(0x058E)
#define IO_GIO_BITSET2 DM320_REG(0x0590)
#define IO_GIO_BITCLR0 DM320_REG(0x0592)
#define IO_GIO_BITCLR1 DM320_REG(0x0594)
#define IO_GIO_BITCLR2 DM320_REG(0x0596)
#define IO_GIO_IRQPORT DM320_REG(0x0598)
#define IO_GIO_IRQEDGE DM320_REG(0x059A)
#define IO_GIO_CHAT0 DM320_REG(0x059C)
#define IO_GIO_CHAT1 DM320_REG(0x059E)
#define IO_GIO_CHAT2 DM320_REG(0x05A0)
#define IO_GIO_NCHAT DM320_REG(0x05A2)
#define IO_GIO_FSEL0 DM320_REG(0x05A4)
#define IO_GIO_FSEL1 DM320_REG(0x05A6)
#define IO_GIO_FSEL2 DM320_REG(0x05A8)
#define IO_GIO_FSEL3 DM320_REG(0x05AA)
#define IO_GIO_FSEL4 DM320_REG(0x05AC)
#define IO_GIO_CARD_SET DM320_REG(0x05AE)
#define IO_GIO_CARD_ST DM320_REG(0x05B0)
/* DSP Controller */
#define IO_DSPC_HPIB_CONTROL DM320_REG(0x0600)
#define IO_DSPC_HPIB_STATUS DM320_REG(0x0602)
/* OSD Controller */
#define IO_OSD_MODE DM320_REG(0x0680)
#define IO_OSD_VIDWINMD DM320_REG(0x0682)
#define IO_OSD_OSDWINMD0 DM320_REG(0x0684)
#define IO_OSD_OSDWINMD1 DM320_REG(0x0686)
#define IO_OSD_ATRMD DM320_REG(0x0688)
#define IO_OSD_RECTCUR DM320_REG(0x0688)
#define IO_OSD_RESERVED DM320_REG(0x068A)
#define IO_OSD_VIDWIN0OFST DM320_REG(0x068C)
#define IO_OSD_VIDWIN1OFST DM320_REG(0x068E)
#define IO_OSD_OSDWIN0OFST DM320_REG(0x0690)
#define IO_OSD_OSDWIN1OFST DM320_REG(0x0692)
#define IO_OSD_VIDWINADH DM320_REG(0x0694)
#define IO_OSD_VIDWIN0ADL DM320_REG(0x0696)
#define IO_OSD_VIDWIN1ADL DM320_REG(0x0698)
#define IO_OSD_OSDWINADH DM320_REG(0x069A)
#define IO_OSD_OSDWIN0ADL DM320_REG(0x069C)
#define IO_OSD_OSDWIN1ADL DM320_REG(0x069E)
#define IO_OSD_BASEPX DM320_REG(0x06A0)
#define IO_OSD_BASEPY DM320_REG(0x06A2)
#define IO_OSD_VIDWIN0XP DM320_REG(0x06A4)
#define IO_OSD_VIDWIN0YP DM320_REG(0x06A6)
#define IO_OSD_VIDWIN0XL DM320_REG(0x06A8)
#define IO_OSD_VIDWIN0YL DM320_REG(0x06AA)
#define IO_OSD_VIDWIN1XP DM320_REG(0x06AC)
#define IO_OSD_VIDWIN1YP DM320_REG(0x06AE)
#define IO_OSD_VIDWIN1XL DM320_REG(0x06B0)
#define IO_OSD_VIDWIN1YL DM320_REG(0x06B2)
#define IO_OSD_OSDWIN0XP DM320_REG(0x06B4)
#define IO_OSD_OSDWIN0YP DM320_REG(0x06B6)
#define IO_OSD_OSDWIN0XL DM320_REG(0x06B8)
#define IO_OSD_OSDWIN0YL DM320_REG(0x06BA)
#define IO_OSD_OSDWIN1XP DM320_REG(0x06BC)
#define IO_OSD_OSDWIN1YP DM320_REG(0x06BE)
#define IO_OSD_OSDWIN1XL DM320_REG(0x06C0)
#define IO_OSD_OSDWIN1YL DM320_REG(0x06C2)
#define IO_OSD_CURXP DM320_REG(0x06C4)
#define IO_OSD_CURYP DM320_REG(0x06C6)
#define IO_OSD_CURXL DM320_REG(0x06C8)
#define IO_OSD_CURYL DM320_REG(0x06CA)
#define IO_OSD_W0BMP01 DM320_REG(0x06D0)
#define IO_OSD_W0BMP23 DM320_REG(0x06D2)
#define IO_OSD_W0BMP45 DM320_REG(0x06D4)
#define IO_OSD_W0BMP67 DM320_REG(0x06D6)
#define IO_OSD_W0BMP89 DM320_REG(0x06D8)
#define IO_OSD_W0BMPAB DM320_REG(0x06DA)
#define IO_OSD_W0BMPCD DM320_REG(0x06DC)
#define IO_OSD_W0BMPEF DM320_REG(0x06DE)
#define IO_OSD_W1BMP01 DM320_REG(0x06E0)
#define IO_OSD_W1BMP23 DM320_REG(0x06E2)
#define IO_OSD_W1BMP45 DM320_REG(0x06E4)
#define IO_OSD_W1BMP67 DM320_REG(0x06E6)
#define IO_OSD_W1BMP89 DM320_REG(0x06E8)
#define IO_OSD_W1BMPAB DM320_REG(0x06EA)
#define IO_OSD_W1BMPCD DM320_REG(0x06EC)
#define IO_OSD_W1BMPEF DM320_REG(0x06EE)
#define IO_OSD_MISCCTL DM320_REG(0x06F4)
#define IO_OSD_CLUTRAMYCB DM320_REG(0x06F6)
#define IO_OSD_CLUTRAMCR DM320_REG(0x06F8)
#define IO_OSD_PPWIN0ADH DM320_REG(0x06FC)
#define IO_OSD_PPWIN0ADL DM320_REG(0x06FE)
/* CCD Controller */
#define IO_CCD_SYNCEN DM320_REG(0x0700)
#define IO_CCD_MODESET DM320_REG(0x0702)
#define IO_CCD_HDWIDTH DM320_REG(0x0704)
#define IO_CCD_VDWIDTH DM320_REG(0x0706)
#define IO_CCD_PPLN DM320_REG(0x0708)
#define IO_CCD_LPFR DM320_REG(0x070A)
#define IO_CCD_SPH DM320_REG(0x070C)
#define IO_CCD_NPH DM320_REG(0x070E)
#define IO_CCD_SLV0 DM320_REG(0x0710)
#define IO_CCD_SLV1 DM320_REG(0x0712)
#define IO_CCD_NLV DM320_REG(0x0714)
#define IO_CCD_CULH DM320_REG(0x0716)
#define IO_CCD_CULV DM320_REG(0x0718)
#define IO_CCD_HSIZE DM320_REG(0x071A)
#define IO_CCD_SDOFST DM320_REG(0x071C)
#define IO_CCD_STADRH DM320_REG(0x071E)
#define IO_CCD_STADRL DM320_REG(0x0720)
#define IO_CCD_CLAMP DM320_REG(0x0722)
#define IO_CCD_DCSUB DM320_REG(0x0724)
#define IO_CCD_COLPTN DM320_REG(0x0726)
#define IO_CCD_BLKCMP0 DM320_REG(0x0728)
#define IO_CCD_BLKCMP1 DM320_REG(0x072A)
#define IO_CCD_MEDFILT DM320_REG(0x072C)
#define IO_CCD_RYEGAIN DM320_REG(0x072E)
#define IO_CCD_GRCYGAIN DM320_REG(0x0730)
#define IO_CCD_GBGGAIN DM320_REG(0x0732)
#define IO_CCD_BMGGAIN DM320_REG(0x0734)
#define IO_CCD_OFFSET DM320_REG(0x0736)
#define IO_CCD_OUTCLP DM320_REG(0x0738)
#define IO_CCD_VDINT0 DM320_REG(0x073A)
#define IO_CCD_VDINT1 DM320_REG(0x073C)
#define IO_CCD_RSV0 DM320_REG(0x073E)
#define IO_CCD_GAMMAWD DM320_REG(0x0740)
#define IO_CCD_REC656IF DM320_REG(0x0742)
#define IO_CCD_CCDFG DM320_REG(0x0744)
#define IO_CCD_FMTCFG DM320_REG(0x0746)
#define IO_CCD_FMTSPH DM320_REG(0x0748)
#define IO_CCD_FMTLNH DM320_REG(0x074A)
#define IO_CCD_FMTSLV DM320_REG(0x074C)
#define IO_CCD_FMTSNV DM320_REG(0x074E)
#define IO_CCD_FMTOFST DM320_REG(0x0750)
#define IO_CCD_FMTRLEN DM320_REG(0x0752)
#define IO_CCD_FMTHCNT DM320_REG(0x0754)
#define IO_CCD_FMTPTNA DM320_REG(0x0756)
#define IO_CCD_FMTPTNB DM320_REG(0x0758)
/* NTSC/PAL Encoder */
#define IO_VID_ENC_VMOD DM320_REG(0x0800)
#define IO_VID_ENC_VDCTL DM320_REG(0x0802)
#define IO_VID_ENC_VDPRO DM320_REG(0x0804)
#define IO_VID_ENC_SYNCTL DM320_REG(0x0806)
#define IO_VID_ENC_HSPLS DM320_REG(0x0808)
#define IO_VID_ENC_VSPLS DM320_REG(0x080A)
#define IO_VID_ENC_HINT DM320_REG(0x080C)
#define IO_VID_ENC_HSTART DM320_REG(0x080E)
#define IO_VID_ENC_HVALID DM320_REG(0x0810)
#define IO_VID_ENC_VINT DM320_REG(0x0812)
#define IO_VID_ENC_VSTART DM320_REG(0x0814)
#define IO_VID_ENC_VVALID DM320_REG(0x0816)
#define IO_VID_ENC_HSDLY DM320_REG(0x0818)
#define IO_VID_ENC_VSDLY DM320_REG(0x081A)
#define IO_VID_ENC_YCCTL DM320_REG(0x081C)
#define IO_VID_ENC_RGBCTL DM320_REG(0x081E)
#define IO_VID_ENC_RGBCLP DM320_REG(0x0820)
#define IO_VID_ENC_LNECTL DM320_REG(0x0822)
#define IO_VID_ENC_CULLLNE DM320_REG(0x0824)
#define IO_VID_ENC_LCDOUT DM320_REG(0x0826)
#define IO_VID_ENC_BRTS DM320_REG(0x0828)
#define IO_VID_ENC_BRTW DM320_REG(0x082A)
#define IO_VID_ENC_ACCTL DM320_REG(0x082C)
#define IO_VID_ENC_PWMP DM320_REG(0x082E)
#define IO_VID_ENC_PWMW DM320_REG(0x0830)
#define IO_VID_ENC_DCLKCTL DM320_REG(0x0832)
#define IO_VID_ENC_DCLKPTN0 DM320_REG(0x0834)
#define IO_VID_ENC_DCLKPTN1 DM320_REG(0x0836)
#define IO_VID_ENC_DCLKPTN2 DM320_REG(0x0838)
#define IO_VID_ENC_DCLKPTN3 DM320_REG(0x083A)
#define IO_VID_ENC_DCLKPTN0A DM320_REG(0x083C)
#define IO_VID_ENC_DCLKPTN1A DM320_REG(0x083E)
#define IO_VID_ENC_DCLKPTN2A DM320_REG(0x0840)
#define IO_VID_ENC_DCLKPTN3A DM320_REG(0x0842)
#define IO_VID_ENC_DCLKHS DM320_REG(0x0844)
#define IO_VID_ENC_DCLKHSA DM320_REG(0x0846)
#define IO_VID_ENC_DCLKHR DM320_REG(0x0848)
#define IO_VID_ENC_DCLKVS DM320_REG(0x084A)
#define IO_VID_ENC_DCLKVR DM320_REG(0x084C)
#define IO_VID_ENC_CAPCTL DM320_REG(0x084E)
#define IO_VID_ENC_CAPDO DM320_REG(0x0850)
#define IO_VID_ENC_CAPDE DM320_REG(0x0852)
#define IO_VID_ENC_ATR0 DM320_REG(0x0854)
/* Clock Controller */
#define IO_CLK_PLLA DM320_REG(0x0880)
#define IO_CLK_PLLB DM320_REG(0x0882)
#define IO_CLK_SEL0 DM320_REG(0x0884)
#define IO_CLK_SEL1 DM320_REG(0x0886)
#define IO_CLK_SEL2 DM320_REG(0x0888)
#define IO_CLK_DIV0 DM320_REG(0x088A)
#define IO_CLK_DIV1 DM320_REG(0x088C)
#define IO_CLK_DIV2 DM320_REG(0x088E)
#define IO_CLK_DIV3 DM320_REG(0x0890)
#define IO_CLK_DIV4 DM320_REG(0x0892)
#define IO_CLK_BYP DM320_REG(0x0894)
#define IO_CLK_INV DM320_REG(0x0896)
#define IO_CLK_MOD0 DM320_REG(0x0898)
#define IO_CLK_MOD1 DM320_REG(0x089A)
#define IO_CLK_MOD2 DM320_REG(0x089C)
#define IO_CLK_LPCTL0 DM320_REG(0x089E)
#define IO_CLK_LPCTL1 DM320_REG(0x08A0)
#define IO_CLK_OSEL DM320_REG(0x08A2)
#define IO_CLK_O0DIV DM320_REG(0x08A4)
#define IO_CLK_O1DIV DM320_REG(0x08A6)
#define IO_CLK_O2DIV DM320_REG(0x08A8)
#define IO_CLK_PWM0C DM320_REG(0x08AA)
#define IO_CLK_PWM0H DM320_REG(0x08AC)
#define IO_CLK_PWM1C DM320_REG(0x08AE)
#define IO_CLK_PWM1H DM320_REG(0x08B0)
/* Bus Controller */
#define IO_BUSC_ECR DM320_REG(0x0900)
#define IO_BUSC_EBYTER DM320_REG(0x0902)
#define IO_BUSC_EBITR DM320_REG(0x0904)
#define IO_BUSC_REVR DM320_REG(0x0906)
/* Known Silicon Revisions */
#define REVR_ES10 0x0010
#define REVR_ES11 0x0011
/* SDRAM Controller */
#define IO_SDRAM_SDBUFD0L DM320_REG(0x0980)
#define IO_SDRAM_SDBUFD0H DM320_REG(0x0982)
#define IO_SDRAM_SDBUFD1L DM320_REG(0x0984)
#define IO_SDRAM_SDBUFD1H DM320_REG(0x0986)
#define IO_SDRAM_SDBUFD2L DM320_REG(0x0988)
#define IO_SDRAM_SDBUFD2H DM320_REG(0x098A)
#define IO_SDRAM_SDBUFD3L DM320_REG(0x098C)
#define IO_SDRAM_SDBUFD3H DM320_REG(0x098E)
#define IO_SDRAM_SDBUFD4L DM320_REG(0x0990)
#define IO_SDRAM_SDBUFD4H DM320_REG(0x0992)
#define IO_SDRAM_SDBUFD5L DM320_REG(0x0994)
#define IO_SDRAM_SDBUFD5H DM320_REG(0x0996)
#define IO_SDRAM_SDBUFD6L DM320_REG(0x0998)
#define IO_SDRAM_SDBUFD6H DM320_REG(0x099A)
#define IO_SDRAM_SDBUFD7L DM320_REG(0x099C)
#define IO_SDRAM_SDBUFD7H DM320_REG(0x099E)
#define IO_SDRAM_SDBUFAD1 DM320_REG(0x09A0)
#define IO_SDRAM_SDBUFAD2 DM320_REG(0x09A2)
#define IO_SDRAM_SDBUFCTL DM320_REG(0x09A4)
#define IO_SDRAM_SDMODE DM320_REG(0x09A6)
#define IO_SDRAM_REFCTL DM320_REG(0x09A8)
#define IO_SDRAM_SDPRTY1 DM320_REG(0x09AA)
#define IO_SDRAM_SDPRTY2 DM320_REG(0x09AC)
#define IO_SDRAM_SDPRTY3 DM320_REG(0x09AE)
#define IO_SDRAM_SDPRTY4 DM320_REG(0x09B0)
#define IO_SDRAM_SDPRTY5 DM320_REG(0x09B2)
#define IO_SDRAM_SDPRTY6 DM320_REG(0x09B4)
#define IO_SDRAM_SDPRTY7 DM320_REG(0x09B6)
#define IO_SDRAM_SDPRTY8 DM320_REG(0x09B8)
#define IO_SDRAM_SDPRTY9 DM320_REG(0x09BA)
#define IO_SDRAM_SDPRTY10 DM320_REG(0x09BC)
#define IO_SDRAM_SDPRTY11 DM320_REG(0x09BE)
#define IO_SDRAM_SDPRTY12 DM320_REG(0x09C0)
#define IO_SDRAM_RSV DM320_REG(0x09C2)
#define IO_SDRAM_SDPRTYON DM320_REG(0x09C4)
#define IO_SDRAM_SDDMASEL DM320_REG(0x09C6)
/* EMIF Controller */
#define IO_EMIF_CS0CTRL1 DM320_REG(0x0A00)
#define IO_EMIF_CS0CTRL2 DM320_REG(0x0A02)
#define IO_EMIF_CS0CTRL3 DM320_REG(0x0A04)
#define IO_EMIF_CS1CTRL1A DM320_REG(0x0A06)
#define IO_EMIF_CS1CTRL1B DM320_REG(0x0A08)
#define IO_EMIF_CS1CTRL2 DM320_REG(0x0A0A)
#define IO_EMIF_CS2CTRL1 DM320_REG(0x0A0C)
#define IO_EMIF_CS2CTRL2 DM320_REG(0x0A0E)
#define IO_EMIF_CS3CTRL1 DM320_REG(0x0A10)
#define IO_EMIF_CS3CTRL2 DM320_REG(0x0A12)
#define IO_EMIF_CS4CTRL1 DM320_REG(0x0A14)
#define IO_EMIF_CS4CTRL2 DM320_REG(0x0A16)
#define IO_EMIF_BUSCTRL DM320_REG(0x0A18)
#define IO_EMIF_BUSRLS DM320_REG(0x0A1A)
#define IO_EMIF_CFCTRL1 DM320_REG(0x0A1C)
#define IO_EMIF_CFCTRL2 DM320_REG(0x0A1E)
#define IO_EMIF_SMCTRL DM320_REG(0x0A20)
#define IO_EMIF_BUSINTEN DM320_REG(0x0A22)
#define IO_EMIF_BUSSTS DM320_REG(0x0A24)
#define IO_EMIF_BUSWAITMD DM320_REG(0x0A26)
#define IO_EMIF_ECC1CP DM320_REG(0x0A28)
#define IO_EMIF_ECC1LP DM320_REG(0x0A2A)
#define IO_EMIF_ECC2CP DM320_REG(0x0A2C)
#define IO_EMIF_ECC2LP DM320_REG(0x0A2E)
#define IO_EMIF_ECC3CP DM320_REG(0x0A30)
#define IO_EMIF_ECC3LP DM320_REG(0x0A32)
#define IO_EMIF_ECC4CP DM320_REG(0x0A34)
#define IO_EMIF_ECC4LP DM320_REG(0x0A36)
#define IO_EMIF_ECC5CP DM320_REG(0x0A38)
#define IO_EMIF_ECC5LP DM320_REG(0x0A3A)
#define IO_EMIF_ECC6CP DM320_REG(0x0A3C)
#define IO_EMIF_ECC6LP DM320_REG(0x0A3E)
#define IO_EMIF_ECC7CP DM320_REG(0x0A40)
#define IO_EMIF_ECC7LP DM320_REG(0x0A42)
#define IO_EMIF_ECC8CP DM320_REG(0x0A44)
#define IO_EMIF_ECC8LP DM320_REG(0x0A46)
#define IO_EMIF_ECCCLR DM320_REG(0x0A48)
#define IO_EMIF_PAGESZ DM320_REG(0x0A4A)
#define IO_EMIF_PRIORCTL DM320_REG(0x0A4C)
#define IO_EMIF_MGDSPDEST DM320_REG(0x0A4E)
#define IO_EMIF_MGDSPADDH DM320_REG(0x0A50)
#define IO_EMIF_MGDSPADDL DM320_REG(0x0A52)
#define IO_EMIF_AHBADDH DM320_REG(0x0A54)
#define IO_EMIF_AHBADDL DM320_REG(0x0A56)
#define IO_EMIF_MTCADDH DM320_REG(0x0A58)
#define IO_EMIF_MTCADDL DM320_REG(0x0A5A)
#define IO_EMIF_DMASIZE DM320_REG(0x0A5C)
#define IO_EMIF_DMAMTCSEL DM320_REG(0x0A5E)
#define IO_EMIF_DMACTL DM320_REG(0x0A60)
/* Preivew Engine */
#define IO_PREV_ENG_PVEN DM320_REG(0x0A80)
#define IO_PREV_ENG_PVSET1 DM320_REG(0x0A82)
#define IO_PREV_ENG_RADRH DM320_REG(0x0A84)
#define IO_PREV_ENG_RADRL DM320_REG(0x0A86)
#define IO_PREV_ENG_WADRH DM320_REG(0x0A88)
#define IO_PREV_ENG_WADRL DM320_REG(0x0A8A)
#define IO_PREV_ENG_HSTART DM320_REG(0x0A8C)
#define IO_PREV_ENG_HSIZE DM320_REG(0x0A8E)
#define IO_PREV_ENG_VSTART DM320_REG(0x0A90)
#define IO_PREV_ENG_VSIZE DM320_REG(0x0A92)
#define IO_PREV_ENG_PVSET2 DM320_REG(0x0A94)
#define IO_PREV_ENG_NFILT DM320_REG(0x0A96)
#define IO_PREV_ENG_DGAIN DM320_REG(0x0A98)
#define IO_PREV_ENG_WBGAIN0 DM320_REG(0x0A9A)
#define IO_PREV_ENG_WBGAIN1 DM320_REG(0x0A9C)
#define IO_PREV_ENG_SMTH DM320_REG(0x0A9E)
#define IO_PREV_ENG_HRSZ DM320_REG(0x0AA0)
#define IO_PREV_ENG_VRSZ DM320_REG(0x0AA2)
#define IO_PREV_ENG_BLOFST0 DM320_REG(0x0AA4)
#define IO_PREV_ENG_BLOFST1 DM320_REG(0x0AA6)
#define IO_PREV_ENG_MTXGAIN0 DM320_REG(0x0AA8)
#define IO_PREV_ENG_MTXGAIN1 DM320_REG(0x0AAA)
#define IO_PREV_ENG_MTXGAIN2 DM320_REG(0x0AAC)
#define IO_PREV_ENG_MTXGAIN3 DM320_REG(0x0AAE)
#define IO_PREV_ENG_MTXGAIN4 DM320_REG(0x0AB0)
#define IO_PREV_ENG_MTXGAIN5 DM320_REG(0x0AB2)
#define IO_PREV_ENG_MTXGAIN6 DM320_REG(0x0AB4)
#define IO_PREV_ENG_MTXGAIN7 DM320_REG(0x0AB6)
#define IO_PREV_ENG_MTXGAIN8 DM320_REG(0x0AB8)
#define IO_PREV_ENG_MTXOFST0 DM320_REG(0x0ABA)
#define IO_PREV_ENG_MTXOFST1 DM320_REG(0x0ABC)
#define IO_PREV_ENG_MTXOFST2 DM320_REG(0x0ABE)
#define IO_PREV_ENG_GAMTBYP DM320_REG(0x0AC0)
#define IO_PREV_ENG_CSC0 DM320_REG(0x0AC2)
#define IO_PREV_ENG_CSC1 DM320_REG(0x0AC4)
#define IO_PREV_ENG_CSC2 DM320_REG(0x0AC6)
#define IO_PREV_ENG_CSC3 DM320_REG(0x0AC8)
#define IO_PREV_ENG_CSC4 DM320_REG(0x0ACA)
#define IO_PREV_ENG_YOFST DM320_REG(0x0ACC)
#define IO_PREV_ENG_COFST DM320_REG(0x0ACE)
#define IO_PREV_ENG_CNTBRT DM320_REG(0x0AD0)
#define IO_PREV_ENG_CSUP0 DM320_REG(0x0AD2)
#define IO_PREV_ENG_CSUP1 DM320_REG(0x0AD4)
#define IO_PREV_ENG_SETUPY DM320_REG(0x0AD4)
#define IO_PREV_ENG_SETUPC DM320_REG(0x0AD8)
#define IO_PREV_ENG_TABLE_ADDR DM320_REG(0x0ADA)
#define IO_PREV_ENG_TABLE_DATA DM320_REG(0x0ADC)
#define IO_PREV_ENG_HG_CTL DM320_REG(0x0ADE)
#define IO_PREV_ENG_HG_R0_HSTART DM320_REG(0x0AE0)
#define IO_PREV_ENG_HG_R0_HSIZE DM320_REG(0x0AE2)
#define IO_PREV_ENG_HG_R0_VSTART DM320_REG(0x0AE4)
#define IO_PREV_ENG_HR_R0_VSIZE DM320_REG(0x0AE6)
#define IO_PREV_ENG_HG_R1_HSTART DM320_REG(0x0AE8)
#define IO_PREV_ENG_HG_R1_HSIZE DM320_REG(0x0AEA)
#define IO_PREV_ENG_HG_R1_VSTART DM320_REG(0x0AEC)
#define IO_PREV_ENG_HG_R1_VSIZE DM320_REG(0x0AEE)
#define IO_PREV_ENG_HG_R2_HSTART DM320_REG(0x0AF0)
#define IO_PREV_ENG_HG_R2_HSIZE DM320_REG(0x0AF2)
#define IO_PREV_ENG_HG_R2_VSTART DM320_REG(0x0AF4)
#define IO_PREV_ENG_HG_R2_VSIZE DM320_REG(0x0AF6)
#define IO_PREV_ENG_HG_R3_HSTART DM320_REG(0x0AF8)
#define IO_PREV_ENG_HG_R3_HSIZE DM320_REG(0x0AFA)
#define IO_PREV_ENG_HG_R3_VSTART DM320_REG(0x0AFC)
#define IO_PREV_ENG_HG_R3_VSIZE DM320_REG(0x0AFE)
#define IO_PREV_ENG_HG_ADDR DM320_REG(0x0B00)
#define IO_PREV_ENG_HG_DATA DM320_REG(0x0B02)
/* H3A Hardware */
#define IO_H3A_H3ACTRL DM320_REG(0x0B80)
#define IO_H3A_AFCTRL DM320_REG(0x0B82)
#define IO_H3A_AFPAX1 DM320_REG(0x0B84)
#define IO_H3A_AFPAX2 DM320_REG(0x0B86)
#define IO_H3A_AFPAX3 DM320_REG(0x0B88)
#define IO_H3A_AFPAX4 DM320_REG(0x0B8A)
#define IO_H3A_AFIRSH DM320_REG(0x0B8C)
#define IO_H3A_AFPAX5 DM320_REG(0x0B8E)
#define IO_H3A_AFSDRA1 DM320_REG(0x0B90)
#define IO_H3A_AFSDRA2 DM320_REG(0x0B92)
#define IO_H3A_AFSDRFLG DM320_REG(0x0B94)
#define IO_H3A_AFCOEFF10 DM320_REG(0x0B96)
#define IO_H3A_AFCOEFF11 DM320_REG(0x0B98)
#define IO_H3A_AFCOEFF12 DM320_REG(0x0B9A)
#define IO_H3A_AFCOEFF13 DM320_REG(0x0B9C)
#define IO_H3A_AFCOEFF14 DM320_REG(0x0B9E)
#define IO_H3A_AFCOEFF15 DM320_REG(0x0BA0)
#define IO_H3A_AFCOEFF16 DM320_REG(0x0BA2)
#define IO_H3A_AFCOEFF17 DM320_REG(0x0BA4)
#define IO_H3A_AFCOEFF18 DM320_REG(0x0BA6)
#define IO_H3A_AFCOEFF19 DM320_REG(0x0BA8)
#define IO_H3A_AFCOEFF110 DM320_REG(0x0BAA)
#define IO_H3A_AFCOEFF20 DM320_REG(0x0BAC)
#define IO_H3A_AFCOEFF21 DM320_REG(0x0BAE)
#define IO_H3A_AFCOEFF22 DM320_REG(0x0BB0)
#define IO_H3A_AFCOEFF23 DM320_REG(0x0BB2)
#define IO_H3A_AFCOEFF24 DM320_REG(0x0BB4)
#define IO_H3A_AFCOEFF25 DM320_REG(0x0BB6)
#define IO_H3A_AFCOEFF26 DM320_REG(0x0BB8)
#define IO_H3A_AFCOEFF27 DM320_REG(0x0BBA)
#define IO_H3A_AFCOEFF28 DM320_REG(0x0BBC)
#define IO_H3A_AFCOEFF29 DM320_REG(0x0BBE)
#define IO_H3A_AFCOEFF210 DM320_REG(0x0BC0)
#define IO_H3A_AEWCTRL DM320_REG(0x0BC2)
#define IO_H3A_AEWWIN1 DM320_REG(0x0BC4)
#define IO_H3A_AEWWIN2 DM320_REG(0x0BC6)
#define IO_H3A_AEWWIN3 DM320_REG(0x0BC8)
#define IO_H3A_AEWWIN4 DM320_REG(0x0BCA)
#define IO_H3A_AEWWIN5 DM320_REG(0x0BCC)
#define IO_H3A_AEWSDRA1 DM320_REG(0x0BCE)
#define IO_H3A_AEWSDRA2 DM320_REG(0x0BD0)
#define IO_H3A_AEWSDRFLG DM320_REG(0x0BD2)
/* Reserved 0x0C00 - 0x0CCFF */
/* Memory Stick Controller : */
#define IO_MEM_STICK_MODE DM320_REG(0x0C80)
#define IO_MEM_STICK_CMD DM320_REG(0x0C82)
#define IO_MEM_STICK_DATA DM320_REG(0x0C84)
#define IO_MEM_STICK_STATUS DM320_REG(0x0C86)
#define IO_MEM_STICK_SYS DM320_REG(0x0C88)
#define IO_MEM_STICK_ENDIAN DM320_REG(0x0C8A)
#define IO_MEM_STICK_INT_STATUS DM320_REG(0x0C8C)
#define IO_MEM_STICK_DMA_TRG DM320_REG(0x0C8E)
#define IO_MEM_STICK_DMA_MODE DM320_REG(0x0C90)
#define IO_MEM_STICK_SDRAM_ADDL DM320_REG(0x0C92)
#define IO_MEM_STICK_SDRAM_ADDH DM320_REG(0x0C94)
#define IO_MEM_STICK_DMA_STATUS DM320_REG(0x0C96)
/* ATM : WBB Need to find these Register values */
#define IO_ATM_ DM320_REG(0x0D00)
/* I2C */
#define IO_I2C_TXDATA DM320_REG(0x0D80)
#define IO_I2C_RXDATA DM320_REG(0x0D82)
#define IO_I2C_SCS DM320_REG(0x0D84)
/* VLYNQ */
#define VL_ID DM320_REG2(0x0300)
#define VL_CTRL DM320_REG2(0x0304)
#define VL_STAT DM320_REG2(0x0308)
#define VL_INTPRI DM320_REG2(0x030c)
#define VL_INTST DM320_REG2(0x0310)
#define VL_INTPND DM320_REG2(0x0314)
#define VL_INTPTR DM320_REG2(0x0318)
#define VL_TXMAP DM320_REG2(0x031c)
#define VL_RXMAPSZ1 DM320_REG2(0x0320)
#define VL_RXMAPOF1 DM320_REG2(0x0324)
#define VL_RXMAPSZ2 DM320_REG2(0x0328)
#define VL_RXMAPOF2 DM320_REG2(0x032c)
#define VL_RXMAPSZ3 DM320_REG2(0x0330)
#define VL_RXMAPOF3 DM320_REG2(0x0334)
#define VL_RXMAPSZ4 DM320_REG2(0x0338)
#define VL_RXMAPOF4 DM320_REG2(0x033c)
#define VL_CHIPVER DM320_REG2(0x0340)
#define VL_AUTONEG DM320_REG2(0x0344)
#define VL_MANNEG DM320_REG2(0x0348)
#define VL_NEGSTAT DM320_REG2(0x034c)
#define VL_ENDIAN DM320_REG2(0x035c)
#define VL_INTVEC30 DM320_REG2(0x0360)
#define VL_INTVEC74 DM320_REG2(0x0364)
#define VL_ID_R DM320_REG2(0x0380)
#define VL_CTRL_R DM320_REG2(0x0384)
#define VL_STAT_R DM320_REG2(0x0388)
#define VL_INTPRI_R DM320_REG2(0x038c)
#define VL_INTST_R DM320_REG2(0x0390)
#define VL_INTPND_R DM320_REG2(0x0394)
#define VL_INTPTR_R DM320_REG2(0x0398)
#define VL_TXMAP_R DM320_REG2(0x039c)
#define VL_RXMAPSZ1_R DM320_REG2(0x03a0)
#define VL_RXMAPOF1_R DM320_REG2(0x03a4)
#define VL_RXMAPSZ2_R DM320_REG2(0x03a8)
#define VL_RXMAPOF2_R DM320_REG2(0x03ac)
#define VL_RXMAPSZ3_R DM320_REG2(0x03b0)
#define VL_RXMAPOF3_R DM320_REG2(0x03b4)
#define VL_RXMAPSZ4_R DM320_REG2(0x03b8)
#define VL_RXMAPOF4_R DM320_REG2(0x03bc)
#define VL_CHIPVER_R DM320_REG2(0x03c0)
#define VL_AUTONEG_R DM320_REG2(0x03c4)
#define VL_MANNEG_R DM320_REG2(0x03c8)
#define VL_NEGSTAT_R DM320_REG2(0x03cc)
#define VL_ENDIAN_R DM320_REG2(0x03dc)
#define VL_INTVEC30_R DM320_REG2(0x03e0)
#define VL_INTVEC74_R DM320_REG2(0x03e4)
/* Coprocessor Interface */
#define COP_SDEM_ADDRH DM320_COP(0xe000)
#define COP_SDEM_ADDRL DM320_COP(0xe002)
#define COP_SDEM_LOFST DM320_COP(0xe004)
#define COP_BUF_ADDR DM320_COP(0xe006)
#define COP_BUF_LOFST DM320_COP(0xe008)
#define COP_DMA_XNUM DM320_COP(0xe00a)
#define COP_DMA_YNUM DM320_COP(0xe00c)
#define COP_DMA_CTRL DM320_COP(0xe00e)
#define COP_BUF_MUX0 DM320_COP(0xe010)
#define COP_BUF_MUX1 DM320_COP(0xe012)
#define COP_IMG_MODE DM320_COP(0xe014)
#define COP_CP_CLKC DM320_COP(0xe502)
/* Taken from linux/include/asm-arm/arch-itdm320/irqs.h
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) 2004 Ingenient Technologies
*/
/*
* Interrupt numbers
*/
#define IRQ_TIMER0 0
#define IRQ_TIMER1 1
#define IRQ_TIMER2 2
#define IRQ_TIMER3 3
#define IRQ_CCD_VD0 4
#define IRQ_CCD_VD1 5
#define IRQ_CCD_WEN 6
#define IRQ_VENC 7
#define IRQ_SERIAL0 8
#define IRQ_SERIAL1 9
#define IRQ_EXT_HOST 10
#define IRQ_DSPHINT 11
#define IRQ_UART0 12
#define IRQ_UART1 13
#define IRQ_USB_DMA 14
#define IRQ_USB_CORE 15
#define IRQ_VLYNQ 16
#define IRQ_MTC0 17
#define IRQ_MTC1 18
#define IRQ_SD_MMC 19
#define IRQ_SDIO_MS 20
#define IRQ_GIO0 21
#define IRQ_GIO1 22
#define IRQ_GIO2 23
#define IRQ_GIO3 24
#define IRQ_GIO4 25
#define IRQ_GIO5 26
#define IRQ_GIO6 27
#define IRQ_GIO7 28
#define IRQ_GIO8 29
#define IRQ_GIO9 30
#define IRQ_GIO10 31
#define IRQ_GIO11 32
#define IRQ_GIO12 33
#define IRQ_GIO13 34
#define IRQ_GIO14 35
#define IRQ_GIO15 36
#define IRQ_PREVIEW0 37
#define IRQ_PREVIEW1 38
#define IRQ_WATCHDOG 39
#define IRQ_I2C 40
#define IRQ_CLKC 41
/* Embedded Debugging Interrupts */
#define IRQ_ICE 42
#define IRQ_ARMCOM_RX 43
#define IRQ_ARMCOM_TX 44
#define IRQ_RESERVED 45
#define NR_IRQS 46
/* Taken from linux/include/asm-arm/arch-integrator/timex.h
*
* Copyright (C) 1999 ARM Limited
*/
#define CONFIG_TIMER0_TMMD_STOP 0x0000
#define CONFIG_TIMER0_TMMD_ONE_SHOT 0x0001
#define CONFIG_TIMER0_TMMD_FREE_RUN 0x0002
#define CONFIG_TIMER1_TMMD_STOP 0x0000
#define CONFIG_TIMER1_TMMD_ONE_SHOT 0x0001
#define CONFIG_TIMER1_TMMD_FREE_RUN 0x0002
#define CONFIG_TIMER2_TMMD_STOP 0x0000
#define CONFIG_TIMER2_TMMD_ONE_SHOT 0x0001
#define CONFIG_TIMER2_TMMD_FREE_RUN 0x0002
#define CONFIG_TIMER2_TMMD_CCD_SHUTTER 0x0100
#define CONFIG_TIMER2_TMMD_CCD_STROBE 0x0200
#define CONFIG_TIMER2_TMMD_POLARITY 0x0400
#define CONFIG_TIMER2_TMMD_TRG_SELECT 0x0800
#define CONFIG_TIMER2_TMMD_TRG_READY 0x1000
#define CONFIG_TIMER2_TMMD_SIGNAL 0x2000
#define CONFIG_TIMER3_TMMD_STOP 0x0000
#define CONFIG_TIMER3_TMMD_ONE_SHOT 0x0001
#define CONFIG_TIMER3_TMMD_FREE_RUN 0x0002
#define CONFIG_TIMER3_TMMD_CCD_SHUTTER 0x0100
#define CONFIG_TIMER3_TMMD_CCD_STROBE 0x0200
#define CONFIG_TIMER3_TMMD_POLARITY 0x0400
#define CONFIG_TIMER3_TMMD_TRG_SELECT 0x0800
#define CONFIG_TIMER3_TMMD_TRG_READY 0x1000
#define CONFIG_TIMER3_TMMD_SIGNAL 0x2000
/*
* IO_MODx bits
*/
#define CLK_MOD0_HPIB (1 << 11)
#define CLK_MOD0_DSP (1 << 10)
#define CLK_MOD0_EXTHOST (1 << 9)
#define CLK_MOD0_SDRAMC (1 << 8)
#define CLK_MOD0_EMIF (1 << 7)
#define CLK_MOD0_INTC (1 << 6)
#define CLK_MOD0_AIM (1 << 5)
#define CLK_MOD0_E2ICE (1 << 4)
#define CLK_MOD0_ETM (1 << 3)
#define CLK_MOD0_AHB (1 << 2)
#define CLK_MOD0_BUSC (1 << 1)
#define CLK_MOD0_ARM (1 << 0)
#define CLK_MOD1_CPBUS (1 << 11)
#define CLK_MOD1_SEQ (1 << 10)
#define CLK_MOD1_DCT (1 << 9)
#define CLK_MOD1_IMGBUF (1 << 8)
#define CLK_MOD1_IMX (1 << 7)
#define CLK_MOD1_VLCD (1 << 6)
#define CLK_MOD1_DAC (1 << 5)
#define CLK_MOD1_VENC (1 << 4)
#define CLK_MOD1_OSD (1 << 3)
#define CLK_MOD1_PRV (1 << 2)
#define CLK_MOD1_H3A (1 << 1)
#define CLK_MOD1_CCDC (1 << 0)
#define CLK_MOD2_TEST (1 << 15)
#define CLK_MOD2_MS (1 << 14)
#define CLK_MOD2_VLYNQ (1 << 13)
#define CLK_MOD2_I2C (1 << 12)
#define CLK_MOD2_MMC (1 << 11)
#define CLK_MOD2_SIF1 (1 << 10)
#define CLK_MOD2_SIF0 (1 << 9)
#define CLK_MOD2_UART1 (1 << 8)
#define CLK_MOD2_UART0 (1 << 7)
#define CLK_MOD2_USB (1 << 6)
#define CLK_MOD2_GIO (1 << 5)
#define CLK_MOD2_CCDTMR1 (1 << 4)
#define CLK_MOD2_CCDTMR0 (1 << 3)
#define CLK_MOD2_TMR1 (1 << 2)
#define CLK_MOD2_TMR0 (1 << 1)
#define CLK_MOD2_WDT (1 << 0)
#define CLK_SEL0_UART0 (1 << 5)
#define CLK_SEL1_OSD (1 << 12)
#define CLK_SEL1_CCD (1 << 8)
#define CLK_SEL1_VENCPLL (1 << 4)
#define CLK_SEL1_VENC(x) (x << 0)
#define CLK_OSEL_O2SEL(x) (x << 8)
#define CLK_OSEL_O1SEL(x) (x << 4)
#define CLK_OSEL_O0SEL(x) (x << 0)
#define CLK_BYP_AXL (1 << 12)
#define CLK_BYP_SDRAM (1 << 8)
#define CLK_BYP_DSP (1 << 4)
#define CLK_BYP_ARM (1 << 0)
#define CLK_INV_MMC (1 << 0)
#define CLK_INV_VENC (1 << 4)
#define CLK_INV_CCD (1 << 8)
#define CLK_INV_SIF0 (1 << 12)
#define CLK_INV_SIF1 (1 << 13)
#define MMC_CTRL_DATRST (1 << 0)
#define MMC_CTRL_CMDRST (1 << 1)
#define MMC_CTRL_WIDTH (1 << 2)
#define MMC_CTRL_DMASZEN (1 << 4)
#define MMC_CTRL_TEST2 (1 << 8)
#define MMC_CTRL_PERMDR (1 << 9)
#define MMC_CTRL_PERMDX (1 << 10)
#define MMC_CMD_CMD_MASK (0x3F)
#define MMC_CMD_PPLEN (1 << 7)
#define MMC_CMD_BSYEXP (1 << 8)
#define MMC_CMD_RSPFMT_SHIFT 9
#define MMC_CMD_RSPFMT_MASK (3 << MMC_CMD_RSPFMT_SHIFT)
#define MMC_CMD_WRITE (1 << 11)
#define MMC_CMD_STREAM (1 << 12)
#define MMC_CMD_DATA (1 << 13)
#define MMC_CMD_INITCLK (1 << 14)
#define MMC_CMD_DCLR (1 << 15)
#define MMC_ST0_DATDNE (1 << 0)
#define MMC_ST0_BSYDNE (1 << 1)
#define MMC_ST0_RSPDNE (1 << 2)
#define MMC_ST0_DATA_TIMEOUT (1 << 3)
#define MMC_ST0_CMD_TIMEOUT (1 << 4)
#define MMC_ST0_WR_CRCERR (1 << 5)
#define MMC_ST0_RD_CRCERR (1 << 6)
#define MMC_ST0_RESP_CRCERR (1 << 7)
#define MMC_ST0_DMADNE (1 << 8)
#define MMC_ST0_DXRDY (1 << 9)
#define MMC_ST0_DRRDY (1 << 10)
#define MMC_ST0_DAT3_EDGE (1 << 11)
#define MMC_ST1_BUSY (1 << 0)
#define MMC_ST1_CLKSTP (1 << 1)
#define MMC_ST1_DXEMPTY (1 << 2)
#define MMC_ST1_DXFULL (1 << 3)
#define MMC_ST1_DAT3ST (1 << 4)
#define MMC_IE_EDATDNE (1 << 0)
#define MMC_IE_EBSYDNE (1 << 1)
#define MMC_IE_ERSPDNE (1 << 2)
#define MMC_IE_ETOUTRD (1 << 3)
#define MMC_IE_ETOUTRS (1 << 4)
#define MMC_IE_ECRCWR (1 << 5)
#define MMC_IE_ECRCRD (1 << 6)
#define MMC_IE_ECRCRS (1 << 7)
#define MMC_IE_EDXRDY (1 << 9)
#define MMC_IE_EDRRDY (1 << 10)
#define MMC_IE_EDATED (1 << 11)
#define MMC_DMAMODE_RD_WORDSWAP (1 << 10)
#define MMC_DMAMODE_WR_WORDSWAP (1 << 11)
#define MMC_DMAMODE_WRITE (1 << 12)
#define MMC_DMAMODE_ENABLE (1 << 13)
#define MMC_DMAMODE_TIMEOUTIRQ_EN (1 << 14)
#define MMC_DMASTAT1_RUNST (1 << 12)
#define MMC_DMASTAT1_TOUTDT (1 << 13)
/*
* IO_EINTx bits
*/
#define INTR_EINT0_USB1 (1 << 15)
#define INTR_EINT0_USB0 (1 << 14)
#define INTR_EINT0_UART1 (1 << 13)
#define INTR_EINT0_UART0 (1 << 12)
#define INTR_EINT0_IMGBUF (1 << 11)
#define INTR_EINT0_EXTHOST (1 << 10)
#define INTR_EINT0_SP1 (1 << 9)
#define INTR_EINT0_SP0 (1 << 8)
#define INTR_EINT0_VENC (1 << 7)
#define INTR_EINT0_CCDWEN (1 << 6)
#define INTR_EINT0_CCDVD1 (1 << 5)
#define INTR_EINT0_CCDVD0 (1 << 4)
#define INTR_EINT0_TMR3 (1 << 3)
#define INTR_EINT0_TMR2 (1 << 2)
#define INTR_EINT0_TMR1 (1 << 1)
#define INTR_EINT0_TMR0 (1 << 0)
#define INTR_EINT1_EXT10 (1 << 15)
#define INTR_EINT1_EXT9 (1 << 14)
#define INTR_EINT1_EXT8 (1 << 13)
#define INTR_EINT1_EXT7 (1 << 12)
#define INTR_EINT1_EXT6 (1 << 11)
#define INTR_EINT1_EXT5 (1 << 10)
#define INTR_EINT1_EXT4 (1 << 9)
#define INTR_EINT1_EXT3 (1 << 8)
#define INTR_EINT1_EXT2 (1 << 7)
#define INTR_EINT1_EXT1 (1 << 6)
#define INTR_EINT1_EXT0 (1 << 5)
#define INTR_EINT1_MMCSDMS1 (1 << 4)
#define INTR_EINT1_MMCSDMS0 (1 << 3)
#define INTR_EINT1_MTC1 (1 << 2)
#define INTR_EINT1_MTC0 (1 << 1)
#define INTR_EINT1_VLYNQ (1 << 0)
#define INTR_EINT2_RSVINT (1 << 13)
#define INTR_EINT2_ARMCOMTX (1 << 12)
#define INTR_EINT2_ARMCOMRX (1 << 11)
#define INTR_EINT2_E2ICE (1 << 10)
#define INTR_EINT2_INTRC (1 << 9)
#define INTR_EINT2_I2C (1 << 8)
#define INTR_EINT2_WDT (1 << 7)
#define INTR_EINT2_PREV1 (1 << 6)
#define INTR_EINT2_PREV0 (1 << 5)
#define INTR_EINT2_EXT15 (1 << 4)
#define INTR_EINT2_EXT14 (1 << 3)
#define INTR_EINT2_EXT13 (1 << 2)
#define INTR_EINT2_EXT12 (1 << 1)
#define INTR_EINT2_EXT11 (1 << 0)
/*
* IO_IRQx bits
*/
#define INTR_IRQ0_TMR0 INTR_EINT0_TMR0
#define INTR_IRQ0_TMR1 INTR_EINT0_TMR1
#define INTR_IRQ0_TMR2 INTR_EINT0_TMR2
#define INTR_IRQ0_TMR3 INTR_EINT0_TMR3
#define INTR_IRQ0_UART1 INTR_EINT0_UART1
#define INTR_IRQ0_CCDVD1 INTR_EINT0_CCDVD1
#define INTR_IRQ0_IMGBUF INTR_EINT0_IMGBUF
#define INTR_IRQ1_EXT0 INTR_EINT1_EXT0
#define INTR_IRQ1_EXT2 INTR_EINT1_EXT2
#define INTR_IRQ1_EXT7 INTR_EINT1_EXT7
#define INTR_IRQ1_MMCSDMS0 INTR_EINT1_MMCSDMS0
#define INTR_IRQ1_MTC0 INTR_EINT1_MTC0
/*
* HPIBCTL bits
*/
#define HPIBCTL_DBIO (1 << 10)
#define HPIBCTL_DHOLD (1 << 9)
#define HPIBCTL_DRST (1 << 8)
#define HPIBCTL_DINT0 (1 << 7)
#define HPIBCTL_EXCHG (1 << 5)
#define HPIBCTL_HPNMI (1 << 3)
#define HPIBCTL_HPIEN (1 << 0)
/*
* Video Encoder bits
*/
#define VENC_VMOD_VDMD(x) (x << 12)
#define VENC_VMOD_ITLC (1 << 10)
#define VENC_VMOD_CBTYP (1 << 9)
#define VENC_VMOD_CBMD (1 << 8)
#define VENC_VMOD_NTPLS(x) (x << 6)
#define VENC_VMOD_SLAVE (1 << 5)
#define VENC_VMOD_VMD (1 << 4)
#define VENC_VMOD_BLNK (1 << 3)
#define VENC_VMOD_DACPD (1 << 2)
#define VENC_VMOD_VIE (1 << 1)
#define VENC_VMOD_VENC (1 << 0)
#define VENC_VDCTL_VCLKP (1 << 14)
#define VENC_VDCTL_VCLKE (1 << 13)
#define VENC_VDCTL_VCLKZ (1 << 12)
#define VENC_VDCTL_DOMD(x) (x << 4)
#define VENC_VDCTL_YCDC (1 << 2)
#define VENC_VDCTL_INPTRU (1 << 1)
#define VENC_VDCTL_YCDIR (1 << 0)
#define VENC_VDPRO_PFLTY(x) (x << 12)
#define VENC_VDPRO_PFLTR (1 << 11)
#define VENC_VDPRO_YCDLY(x) (x << 8)
#define VENC_VDPRO_RGBMAT (1 << 7)
#define VENC_VDPRO_ATRGB (1 << 6)
#define VENC_VDPRO_ATYCC (1 << 5)
#define VENC_VDPRO_ATCOM (1 << 4)
#define VENC_VDPRO_STUP (1 << 3)
#define VENC_VDPRO_CRCUT (1 << 2)
#define VENC_VDPRO_CUPS (1 << 1)
#define VENC_VDPRO_YUPS (1 << 0)
#define VENC_SYNCTL_EXFEN (1 << 12)
#define VENC_SYNCTL_EXFIV (1 << 11)
#define VENC_SYNCTL_EXSYNC (1 << 10)
#define VENC_SYNCTL_EXVIV (1 << 9)
#define VENC_SYNCTL_EXHIV (1 << 8)
#define VENC_SYNCTL_CSP (1 << 7)
#define VENC_SYNCTL_CSE (1 << 6)
#define VENC_SYNCTL_SYSW (1 << 5)
#define VENC_SYNCTL_VSYNCS (1 << 4)
#define VENC_SYNCTL_VPL (1 << 3)
#define VENC_SYNCTL_HPL (1 << 2)
#define VENC_SYNCTL_SYE (1 << 1)
#define VENC_SYNCTL_SYDIR (1 << 0)
#define VENC_RGBCTL_IRONM (1 << 11)
#define VENC_RGBCTL_DFLTR (1 << 10)
#define VENC_RGBCTL_DFLTS(x) (x << 8)
#define VENC_RGBCTL_RGBEF(x) (x << 4)
#define VENC_RGBCTL_RGBOF(x) (x << 0)
#define VENC_RGBCLP_UCLIP(x) (x << 8)
#define VENC_RGBCLP_OFST(x) (x << 0)
#define VENC_LCDOUT_FIDS (1 << 8)
#define VENC_LCDOUT_FIDP (1 << 7)
#define VENC_LCDOUT_PWMP (1 << 6)
#define VENC_LCDOUT_PWME (1 << 5)
#define VENC_LCDOUT_ACE (1 << 4)
#define VENC_LCDOUT_BRP (1 << 3)
#define VENC_LCDOUT_BRE (1 << 2)
#define VENC_LCDOUT_OEP (1 << 1)
#define VENC_LCDOUT_OEE (1 << 0)
#define VENC_DCLKCTL_DOFST(x) (x << 12)
#define VENC_DCLKCTL_DCKEC (1 << 11)
#define VENC_DCLKCTL_DCKME (1 << 10)
#define VENC_DCLKCTL_DCKOH (1 << 9)
#define VENC_DCLKCTL_DCKIH (1 << 8)
#define VENC_DCLKCTL_DCKPW(x) (x << 0)
/* Timer frequency */
/* timer is based on PCLK and minimum division is 2 */
#define TIMER_FREQ (27000000)
#endif