/**************************************************************************//** * @file BU1511KV2.h * @brief Peripheral Access Layer Header File for * ROHM U1511KV2 Device Series * @version V1.00 * @date 23. March 2010 * * @note * Copyright (C) 2010 ARM Limited. All rights reserved. * * @par * ARM Limited (ARM) is supplying this software for use with Cortex-M * processor based microcontrollers. This file can be freely distributed * within development tools that are supporting such ARM based processors. * * @par * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. * ******************************************************************************/ #ifndef __BU1511KV2_H__ #define __BU1511KV2_H__ #include /* Include standard types */ #ifdef __cplusplus extern "C" { #endif /** * IO definitions * * define access restrictions to peripheral registers */ #ifdef __cplusplus #define __I volatile /*!< defines 'read only' permissions */ #else #define __I volatile const /*!< defines 'read only' permissions */ #endif #define __O volatile /*!< defines 'write only' permissions */ #define __IO volatile /*!< defines 'read / write' permissions */ /******************************************************************************/ /* Device Specific Peripheral Registers structures */ /******************************************************************************/ #if defined ( __CC_ARM ) #pragma anon_unions #endif /*------------- Universal Asynchronous Receiver Transmitter (UART) -----------*/ /** @addtogroup BU1511KV2_UART BU1511KV2 Universal Asynchronous Receiver/Transmitter @{ */ typedef struct { union { __I uint32_t RBR; /*!< Offset: 0x000 Receiver Buffer Register (R/ ) */ __O uint32_t THR; /*!< Offset: 0x000 Transmit Holding Register ( /W) */ __IO uint32_t DLL; /*!< Offset: 0x000 Divisor Latch (Low) (R/W) */ }; union { __IO uint32_t DLH; /*!< Offset: 0x004 Divisor Latch (High) (R/W) */ __IO uint32_t IER; /*!< Offset: 0x004 Interrupt Enable Register (R/W) */ }; union { __I uint32_t IIR; /*!< Offset: 0x008 Interrupt Identification Register (R/ ) */ __O uint32_t FCR; /*!< Offset: 0x008 FIFO Control Register ( /W) */ }; __IO uint32_t LCR; /*!< Offset: 0x00C Line Control Register (R/W) */ __IO uint32_t MCR; /*!< Offset: 0x010 Modem control Register (R/W) */ __I uint32_t LSR; /*!< Offset: 0x014 Line Status Register (R/ ) */ __I uint32_t MSR; /*!< Offset: 0x018 Modem status Register (R/ ) */ __IO uint32_t SCR; /*!< Offset: 0x01C Scratchpad Register (R/W) */ uint32_t RESERVED0[20]; __IO uint32_t FAR; /*!< Offset: 0x070 FIFO Access Register (R/W) */ __I uint32_t TFR; /*!< Offset: 0x074 Transmit FIFO Read Register (R/ ) */ __O uint32_t RFW; /*!< Offset: 0x078 Receive FIFO Write Register ( /W) */ __I uint32_t USR; /*!< Offset: 0x07C UART Status Register (R/ ) */ __I uint32_t TFL; /*!< Offset: 0x080 Transmit FIFO Level Register (R/ ) */ __I uint32_t RFL; /*!< Offset: 0x084 Receive FIFO Level Register (R/ ) */ uint32_t RESERVED1[7]; __IO uint32_t HTX; /*!< Offset: 0x0A4 Halt TX Register (R/W) */ } ROHM_UART_TypeDef; /*@}*/ /* end of group BU1511KV2_UART */ /*------------- Timer (TMR) --------------------------------------------------*/ /** @addtogroup BU1511KV2_TMR BU1511KV2 32-bit Counter/Timer @{ */ typedef struct { __IO uint32_t LoadCount; /*!< Offset: 0x000 Initial Counter Value Register (R/W) */ __I uint32_t CurrentValue; /*!< Offset: 0x004 Current Counter Value Register (R/ ) */ __IO uint32_t ControlReg; /*!< Offset: 0x008 Control Register (R/W) */ __I uint32_t EOI; /*!< Offset: 0x00C Interrupt Clear Register (R/ ) */ __IO uint32_t STAT; /*!< Offset: 0x010 Interrupt Status Register (R/ ) */ } ROHM_TMR_TypeDef; /*@}*/ /* end of group BU1511KV2_TMR */ /*------------- Watchdog Timer (WDT) -----------------------------------------*/ /** @addtogroup BU1511KV2_WDT BU1511KV2 32-bit WatchDog Timer @{ */ typedef struct { __IO uint32_t CR; /*!< Offset: 0x000 Control Register (R/W) */ __IO uint32_t TORR; /*!< Offset: 0x004 Timeout Range Register (R/W) */ __I uint32_t CCVR; /*!< Offset: 0x008 Current Counter Value Register (R/ ) */ __O uint32_t CRR; /*!< Offset: 0x00C Counter Restart Register ( /W) */ __I uint32_t STAT; /*!< Offset: 0x010 Interrupt Status Register (R/ ) */ __I uint32_t EOI; /*!< Offset: 0x014 Interrupt Clear Register (R/ ) */ } ROHM_WDT_TypeDef; /*@}*/ /* end of group BU1511KV2_WDT */ /*------------- General Purpose Input/Output (GPIO) --------------------------*/ /** @addtogroup BU1511KV2_GPIO BU1511KV2 General Purpose Input/Output @{ */ typedef struct { __IO uint32_t swporta_dr; /*!< Offset: 0x000 Port Output Data Register (R/W) */ __IO uint32_t swporta_ddr; /*!< Offset: 0x004 Port Data Direction Register (R/W) */ uint32_t RESERVED0[10]; __IO uint32_t inten; /*!< Offset: 0x030 Interrupt Enable Register (R/W) */ __IO uint32_t intmask; /*!< Offset: 0x034 Interrupt Mask Register (R/W) */ __IO uint32_t inttype_level; /*!< Offset: 0x038 Interrupt Input Type Register (R/W) */ __IO uint32_t int_polarity; /*!< Offset: 0x03C Interrupt Polarity Register (R/W) */ __I uint32_t intstatus; /*!< Offset: 0x040 Interrupt Status Register (after mask filter) (R/ ) */ __I uint32_t rawintstatus; /*!< Offset: 0x044 Interrupt Status Register (before mask filter) (R/ ) */ uint32_t RESERVED1[1]; __O uint32_t porta_eoi; /*!< Offset: 0x04C Interrupt Status Clear Register ( /W) */ __I uint32_t ext_porta; /*!< Offset: 0x050 Input Data Register (R/ ) */ } ROHM_GPIO_TypeDef; /*@}*/ /* end of group BU1511KV2_GPIO */ /*------------- Analog-to-Digital Converter (ADC) ----------------------------*/ /** @addtogroup BU1511KV2_ADC BU1511KV2 Analog-to-Digital Converter @{ */ typedef struct { uint32_t RESERVED0[1]; __IO uint32_t MOD; /*!< Offset: 0x004 Operation mode Register (R/W) */ __IO uint32_t TRIGEN; /*!< Offset: 0x008 Sampling Trigger Enable Register (R/W) */ __IO uint32_t SOFTTRIG[4]; /*!< Offset: 0x010 Sampling Trigger Channel 0..3 Register (R/W) */ uint32_t RESERVED1[8]; __I uint32_t DATA[4]; /*!< Offset: 0x040 Sampling Channel 0..3 Data Register (R/ ) */ uint32_t RESERVED2[9]; __IO uint32_t INTMASK; /*!< Offset: 0x074 Interrupt Mask Register (R/W) */ __I uint32_t INTRSTATUS; /*!< Offset: 0x078 Interrupt Status Register (before mask filter) (R/ ) */ __I uint32_t INTSTATUS; /*!< Offset: 0x07C Interrupt Status Register (after mask filter) (R/ ) */ __I uint32_t INTCLR; /*!< Offset: 0x080 Interrupt Status Clear Register (R/ ) */ } ROHM_ADC_TypeDef; /*@}*/ /* end of group BU1511KV2_ADC */ /*------------- System Control (SYS) --------------------------------------*/ /** @addtogroup BU1511KV2_SYSCON BU1511KV2 System Control Block @{ */ typedef struct { __IO uint32_t CLKCNT; /*!< Offset: 0x000 Clock Control Register (R/W) */ __IO uint32_t PLLCNT; /*!< Offset: 0x004 PLL Control Register (R/W) */ uint32_t RESERVED0[2]; __IO uint32_t CLKARM; /*!< Offset: 0x010 System Clock Register (R/W) */ __IO uint32_t CLKADC; /*!< Offset: 0x014 ADC Clock Register (R/W) */ __IO uint32_t CLKIMG; /*!< Offset: 0x018 IMG Clock Register (R/W) */ __IO uint32_t CLKTVE; /*!< Offset: 0x01C TVE Clock Register (R/W) */ __IO uint32_t CLKSDC; /*!< Offset: 0x020 SDC Clock Register (R/W) */ __IO uint32_t CLKAUD; /*!< Offset: 0x024 AUD Clock Register (R/W) */ uint32_t RESERVED1[2]; __IO uint32_t RST; /*!< Offset: 0x030 Soft Reset Register (R/W) */ uint32_t RESERVED2[3]; __IO uint32_t WPB; /*!< Offset: 0x040 Active Level Register (R/W) */ } ROHM_SYS_TypeDef; /*@}*/ /* end of group BU1511KV2_SYSCON */ /*------------- Interrupt Controller (INT) --------------------------------------*/ /** @addtogroup BU1511KV2_INT BU1511KV2 Interrupt Controller Block @{ */ typedef struct { __IO uint32_t irq_inten_I; /*!< Offset: 0x000 IRQ interrupt source enable (R/W) */ uint32_t RESERVED0[1]; __IO uint32_t irq_intmask_I; /*!< Offset: 0x008 IRQ interrupt source mask (R/W) */ uint32_t RESERVED1[3]; __I uint32_t irq_rawstatus_I; /*!< Offset: 0x018 IRQ Interrupt Status Register (before mask filter) (R/ ) */ uint32_t RESERVED2[1]; __I uint32_t irq_status_I; /*!< Offset: 0x020 IRQ Interrupt Status Register (after mask filter) (R/ ) */ uint32_t RESERVED3[1]; __I uint32_t irq_maskstatus_I; /*!< Offset: 0x028 IRQ Interrupt Mask Status Register (R/ ) */ uint32_t RESERVED4[1]; __I uint32_t irq_finalstatus_I; /*!< Offset: 0x030 IRQ Interrupt Final Status Register (R/ ) */ uint32_t RESERVED5[35]; __IO uint32_t fiq_inten_; /*!< Offset: 0x0C0 FIQ interrupt source enable (R/W) */ __IO uint32_t fiq_intmask; /*!< Offset: 0x0C4 FIQ interrupt source mask (R/W) */ uint32_t RESERVED6[1]; __I uint32_t fiq_rawstatus; /*!< Offset: 0x0CC FIQ Interrupt Status Register (before mask filter) (R/ ) */ __I uint32_t fiq_status; /*!< Offset: 0x0D0 FIQ Interrupt Status Register (after mask filter) (R/ ) */ __I uint32_t fiq_finalstatus; /*!< Offset: 0x0D4 FIQ Interrupt Final Status Register (R/ ) */ __IO uint32_t irq_plevel; /*!< Offset: 0x0D8 IRQ interrupt source enable (R/W) */ } ROHM_INTCTL_TypeDef; /* Interrupt Number Definitions */ #define ROHM_INTCTL_TIM1_IRQn (0) #define ROHM_INTCTL_TIM2_IRQn (1) /*@}*/ /* end of group BU1511KV2_INT */ /*------------- Synchronous Serial Interface (SSI) -----------------------*/ /** @addtogroup BU1511KV2_SSI BU1511KV2 Synchronous Serial Interface @{ */ typedef struct { __IO uint32_t CTRLR0; /*!< Offset: 0x000 Control Register 0 (R/W) */ __IO uint32_t CTRLR1; /*!< Offset: 0x004 Control Register 1 (R/W) */ __IO uint32_t SSIENR; /*!< Offset: 0x008 SSI enable/Disable Register (R/W) */ __IO uint32_t MWCR; /*!< Offset: 0x00C Micrwire Control Register (R/W) */ __IO uint32_t SER; /*!< Offset: 0x010 Slave Select Register (R/W) */ __IO uint32_t BAUDR; /*!< Offset: 0x014 SSI Clock Devider Register (R/W) */ __IO uint32_t TXFTLR; /*!< Offset: 0x018 Transmit FIFO Theshold Register (R/W) */ __IO uint32_t RXFTLR; /*!< Offset: 0x01C Receive FIFO Theshold Register (R/W) */ __I uint32_t TXFLR; /*!< Offset: 0x020 Transmit FIFO Level Register (R/ ) */ __I uint32_t RXFLR; /*!< Offset: 0x024 Receive FIFO Level Register (R/ ) */ __I uint32_t SR; /*!< Offset: 0x028 Status Register (R/ ) */ __IO uint32_t IMR; /*!< Offset: 0x02C Interrupt Mask Register (R/W) */ __I uint32_t ISR; /*!< Offset: 0x030 Interrupt Status Register (R/ ) */ __I uint32_t RISR; /*!< Offset: 0x034 Interrupt Raw Status Register (R/ ) */ __I uint32_t TXOICR; /*!< Offset: 0x038 Clear Transmit FIFO Overflow Interrupt Register (R/ ) */ __I uint32_t RXOICR; /*!< Offset: 0x03C Clear Receive FIFO Overflow Interrupt Register (R/ ) */ __I uint32_t RXUICR; /*!< Offset: 0x040 Clear Receive FIFO Underrun Interrupt Register (R/ ) */ __I uint32_t MSTICR; /*!< Offset: 0x044 Clear Multi-Master Contention Interrupt Register (R/ ) */ __I uint32_t ICR; /*!< Offset: 0x048 Interrupt Clear Register (R/ ) */ uint32_t RESERVED0[3]; __I uint32_t IDR; /*!< Offset: 0x058 Identification Code Register (R/ ) */ __I uint32_t SSI_COMP_VERSION; /*!< Offset: 0x05C Synopsis Component Register (R/ ) */ __IO uint32_t DR; /*!< Offset: 0x060 Data Register (R/W) */ } LPC_SSP_TypeDef; /*@}*/ /* end of group BU1511KV2_SSI */ /*------------- PWM Function of GPIO (PWM) -----------------------------------------*/ /** @addtogroup BU1511KV2_PWM BU1511KV2 Pulse Width Modulation @{ */ typedef struct { __IO uint32_t BSCKDV; /*!< Offset: 0x00C Base clock Register (R/W) */ __IO uint32_t LCNT; /*!< Offset: 0x010 Low Level pulse count Register (R/W) */ __IO uint32_t HCNT; /*!< Offset: 0x014 High Level pulse count Register (R/W) */ __IO uint32_t PULSE_NUM; /*!< Offset: 0x018 Output pulse cycle Register (R/W) */ } ROHM_PWMCHN_TypeDef; typedef struct { __IO uint32_t EN; /*!< Offset: 0x000 Function enable Register (R/W) */ __IO uint32_t MOD; /*!< Offset: 0x004 Mode stetting Register (R/W) */ __IO uint32_t CNT; /*!< Offset: 0x008 Control Register (R/W) */ ROHM_PWMCHN_TypeDef CHN[4]; /*!< Offset: 0x00C Channel Register (R/W) */ } ROHM_PWM_TypeDef; /*@}*/ /* end of group BU1511KV2_PWM */ /*------------- External Memory Controller (EMC) --------------------------------------*/ /** @addtogroup BU1511KV2_EMC BU1511KV2 External Memory Controller Block @{ */ typedef struct { uint32_t RESERVED0[5]; __IO uint32_t SCSLR0_LOW; /*!< Offset: 0x014 Chip Select (CS0|CS2) Addressing Register (R/W) */ __IO uint32_t SCSLR1_LOW; /*!< Offset: 0x018 Chip Select (CS1|CS3) Addressing Register (R/W) */ uint32_t RESERVED1[14]; __IO uint32_t SMSKR0; /*!< Offset: 0x054 Chip Select (CS0|CS2) Mask Register (R/W) */ __IO uint32_t SMSKR1; /*!< Offset: 0x058 Chip Select (CS1|CS3) Mask Register (R/W) */ uint32_t RESERVED2[6]; __IO uint32_t CSALIAS0_LOW; /*!< Offset: 0x074 Chip Select (CS0|CS2) Alias Register (R/W) */ __IO uint32_t CSALIAS1_LOW; /*!< Offset: 0x078 Chip Select (CS1|CS3) Alias Register (R/W) */ uint32_t RESERVED3[6]; __IO uint32_t SMTMGR_SET0; /*!< Offset: 0x094 Chip Select (CS0) Timing Register (R/W) */ __IO uint32_t SMTMGR_SET1; /*!< Offset: 0x098 Chip Select (CS1) Timing Register (R/W) */ __IO uint32_t SMTMGR_SET2; /*!< Offset: 0x09C Chip Select (CS2) Timing Register (R/W) */ __IO uint32_t FLASH_TRPDR; /*!< Offset: 0x0A0 Flash Waiting Time Register (R/W) */ __IO uint32_t SMCTLR; /*!< Offset: 0x0A4 Bus Access Control Register (R/W) */ } ROHM_EMC_TypeDef; /*@}*/ /* end of group BU1511KV2_EMC */ /*------------- Audio/Video and Multimedia Interface Mega-Block (AVM) ----------------*/ /** @addtogroup BU1511KV2_AVM Audio/Video and Multimedia Interface Mega-Block @{ */ typedef struct { uint16_t RESERVED0[4]; __IO uint16_t IDX; /*!< Offset: 0x004 Access to Index Register (R/W) */ uint16_t RESERVED1[1]; __IO uint16_t DAT; /*!< Offset: 0x00C Access to Other Register (R/W) */ } ROHM_AVM_TypeDef; /* AVM Register Definitions */ #define ROHM_AVM_CLKCNT (0x00D0) /*!< Clock Control Register (R/W) */ #define ROHM_AVM_CLKDIV1 (0x00D1) /*!< Clock Division Register1 (R/W) */ #define ROHM_AVM_CLKDIV3 (0x00D3) /*!< Clock Division Register3 (R/W) */ #define ROHM_AVM_CLKDIV4 (0x00D4) /*!< Clock Division Register4 (R/W) */ #define ROHM_AVM_HWMODE (0x00D8) /*!< Hardware operation mode setting Register (R/W) */ #define ROHM_AVM_INTCNT (0x00D9) /*!< Interrupt control Register (R/W) */ #define ROHM_AVM_INTST1 (0x00DA) /*!< Interrupt status Register 1 (R/W) */ #define ROHM_AVM_INTST2 (0x00DC) /*!< Interrupt status Register 2 (R/W) */ #define ROHM_AVM_INTMSK1 (0x00DB) /*!< Interrupt mask Register 1 (R/W) */ #define ROHM_AVM_INTMSK2 (0x00DD) /*!< Interrupt mask Register 2 (R/W) */ /* AVM Register Definitions for Camera Module Interface */ #define ROHM_AVM_CAMIF (0x0010) /*!< Camera signal logic setting register (R/W) */ #define ROHM_AVM_CAMTIM (0x0017) /*!< Camera signal frame start pixel position register (R/W) */ #define ROHM_AVM_CAMFLT (0x0011) /*!< Camera image filter processing selection register (R/W) */ #define ROHM_AVM_FLTTHD (0x0012) /*!< Camera image 2 gradation processing threshold value register (R/W) */ #define ROHM_AVM_FLTSEP (0x0013) /*!< Camera image sepia processing coefficient register (R/W) */ #define ROHM_AVM_SEPRNG (0x0014) /*!< Camera image sepia processing coefficient register (R/W) */ #define ROHM_AVM_FLTCOEF (0x0015) /*!< Camera image edge enhancement1 processing coefficient register (R/W) */ #define ROHM_AVM_FLTEDG2 (0x0016) /*!< Camera image edge enhancement2 processing coefficient register (R/W) */ #define ROHM_AVM_CXSIZE (0x0018) /*!< X direction camera image size register (R/W) */ #define ROHM_AVM_CYSIZE (0x0019) /*!< Y direction camera image size register (R/W) */ #define ROHM_AVM_CAMRSX (0x001B) /*!< X direction cropping start position register (R/W) */ #define ROHM_AVM_CAMRSY (0x001C) /*!< Y direction cropping start position register (R/W) */ #define ROHM_AVM_CAMREX (0x001D) /*!< X direction cropping end position register (R/W) */ #define ROHM_AVM_CAMREY (0x001E) /*!< Y direction cropping end position register (R/W) */ #define ROHM_AVM_CAMYD (0x001F) /*!< Brightness factor enlargement setting register (R/W) */ #define ROHM_AVM_CXSRK (0x0021) /*!< Reduction ratio in X direction setting register (R/W) */ #define ROHM_AVM_CYSRK (0x0022) /*!< Reduction ratio in Y direction setting register (R/W) */ #define ROHM_AVM_SRKTYPE (0x0023) /*!< Reduction algorithm setting register (R/W) */ #define ROHM_AVM_SRKTYPE (0x0023) /*!< Reduction algorithm setting register (R/W) */ /* AVM Register Definitions for Two-wire serial setting control(I2C) */ #define ROHM_AVM_SERICNT (0x0060) /*!< Serial interface control register (R/W) */ #define ROHM_AVM_SERIDEVADR (0x0061) /*!< Serial transfer device address setting register (R/W) */ #define ROHM_AVM_SERI2NDADR (0x0062) /*!< Serial transfer register address setting register (R/W) */ #define ROHM_AVM_SERIBYTECNT (0x0063) /*!< Serial interface byte control register (R/W) */ #define ROHM_AVM_SERIBYTECNT (0x0063) /*!< Serial interface byte control register (R/W) */ /* AVM Register Definitions for Memory interface */ #define ROHM_AVM_IMGHSIZE (0x0043) /*!< Frame memory horizontal size setting register (R/W) */ #define ROHM_AVM_IMGVSIZE (0x0044) /*!< Frame memory vertical size setting register (R/W) */ #define ROHM_AVM_MEMCNT (0x0030) /*!< Memory control register (R/W) */ #define ROHM_AVM_MEMCSTAX (0x0031) /*!< Camera image storage start X position setting register (R/W) */ #define ROHM_AVM_MEMCSTAY (0x0032) /*!< Camera image storage start Y position setting register (R/W) */ #define ROHM_AVM_MEMACS_YUV (0x0033) /*!< Memory access register YUV (R/W) */ #define ROHM_AVM_MEMACS_RGB (0x0034) /*!< Memory access register RGB (R/W) */ #define ROHM_AVM_MEMACS_ABS (0x0036) /*!< Memory access register ABS (R/W) */ #define ROHM_AVM_MEM_ADR_STX (0x0037) /*!< Memory rectangular access start X position setting register (R/W) */ #define ROHM_AVM_MEM_ADR_STY (0x0038) /*!< Memory rectangular access start Y position setting register (R/W) */ #define ROHM_AVM_MEM_ADR_EDX (0x0039) /*!< Memory rectangular access end X position setting register (R/W) */ #define ROHM_AVM_MEM_ADR_EDY (0x003A) /*!< Memory rectangular access end Y position setting register (R/W) */ #define ROHM_AVM_MEM_ADR_ABS1 (0x003B) /*!< Memory absolute address setting 1 register (R/W) */ #define ROHM_AVM_MEM_ADR_ABS2 (0x003C) /*!< Memory absolute address setting 2 register (R/W) */ #define ROHM_AVM_MEMTRANS (0x003D) /*!< Memory data transparent color setting register (R/W) */ #define ROHM_AVM_MEMTRMSK (0x003E) /*!< Memory data transparent color mask register (R/W) */ /* AVM Register Definitions for TV encoder interface and TV encoder */ #define ROHM_AVM_TE_CNT (0x00B0) /*!< TV encoder interface control register (R/W) */ #define ROHM_AVM_TE_CNT2 (0x00BD) /*!< TV encoder interface control register 2 (R/W) */ #define ROHM_AVM_TE_STX (0x00B1) /*!< Frame Memory Transfer X Start Position register (R/W) */ #define ROHM_AVM_TE_STY (0x00B2) /*!< Frame Memory Transfer Y Start Position register (R/W) */ #define ROHM_AVM_TE_EDX (0x00B3) /*!< Frame Memory Transfer X End Position register (R/W) */ #define ROHM_AVM_TE_EDY (0x00B4) /*!< Frame Memory Transfer Y End Position register (R/W) */ #define ROHM_AVM_TE_EXPH (0x00B5) /*!< H Direction Expansion Configuration register (R/W) */ #define ROHM_AVM_TE_EXPV (0x00B6) /*!< V Direction Expansion Configuration register (R/W) */ #define ROHM_AVM_TE_OUTSTH (0x00B7) /*!< TV Encoder Output H Direction Start Position Configuration register (R/W) */ #define ROHM_AVM_TE_OUTSTV (0x00B8) /*!< TV Encoder Output V Direction Start Position Configuration register (R/W) */ #define ROHM_AVM_TE_OUTSTV (0x00B8) /*!< TV Encoder Output V Direction Start Position Configuration register (R/W) */ #define ROHM_AVM_PARAMSET (0x1011) /*!< Parameter update register (R/W) */ #define ROHM_AVM_MODE (0x1012) /*!< Mode register (R/W) */ #define ROHM_AVM_YUVIFSET (0x1013) /*!< Input interface format specification register (R/W) */ #define ROHM_AVM_XSIZE_L (0x1014) /*!< X direction pixel size setting register Low (R/W) */ #define ROHM_AVM_XSIZE_H (0x1015) /*!< X direction pixel size setting register High (R/W) */ #define ROHM_AVM_YSIZE_L (0x1016) /*!< Y direction pixel size setting register Low (R/W) */ #define ROHM_AVM_YSIZE_H (0x1017) /*!< Y direction pixel size setting register High (R/W) */ #define ROHM_AVM_PWD (0x1041) /*!< TV encoder Reset register ( R/W) */ #define ROHM_AVM_DISP (0x1043) /*!< TV encoder display mode register ( R/W) */ #define ROHM_AVM_VIDEO (0x1045) /*!< TV encoder video format register ( R/W) */ #define ROHM_AVM_CVBS (0x1046) /*!< TV encoder video mode register ( R/W) */ #define ROHM_AVM_BGCOL (0x1047) /*!< TV encoder BGCOLOR register ( R/W) */ #define ROHM_AVM_COLBAR (0x1048) /*!< TV encoder color bar test register ( R/W) */ #define ROHM_AVM_SETUP (0x1055) /*!< TV encoder setup register ( R/W) */ #define ROHM_AVM_GM_A0 (0x10D0) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_A1 (0x10D1) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_A2 (0x10D2) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_X0 (0x10D3) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_X1 (0x10D4) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_X2 (0x10D5) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_X3 (0x10D6) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_Y0 (0x10D7) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_Y1 (0x10D8) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_Y2 (0x10D9) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_GM_Y3 (0x10DA) /*!< TV Encordagamma correction register ( R/W) */ #define ROHM_AVM_OFS_H (0x10E0) /*!< Effective start input pixel offset setting register High ( R/W) */ #define ROHM_AVM_OFS_L (0x10E1) /*!< Effective start input pixel offset setting register Low ( R/W) */ #define ROHM_AVM_WID_VD_H (0x10E2) /*!< TV encoder effective data width setting register ( R/W) */ #define ROHM_AVM_WID_VD_L (0x10E3) /*!< TV encoder effective data width setting register Low (R/W) */ #define ROHM_AVM_HT_VD (0x10E4) /*!< TV encoder effective line width setting register (R/W) */ #define ROHM_AVM_H_POS (0x10E5) /*!< TV encoder horizontal display position offset register (R/W) */ #define ROHM_AVM_V_POS (0x10E6) /*!< TV encoder vertical display position offset register (R/W) */ #define ROHM_AVM_V_OFS (0x10E7) /*!< TV encoder effective start input line off set setting register (R/W) */ #define ROHM_AVM_SRST (0x10FF) /*!< Initialization register (R/W) */ /* AVM Register Definitions for JPEG Codec */ #define ROHM_AVM_JPG_CNT (0x0080) /*!< JPEG control register (R/W) */ #define ROHM_AVM_JPG_ST1 (0x0083) /*!< JPEG status 1 register (R/W) */ #define ROHM_AVM_JPG_ST2 (0x0084) /*!< JPEG status 2 register (R/W) */ #define ROHM_AVM_JPG_ST3 (0x0085) /*!< JPEG status 3 register (R/W) */ #define ROHM_AVM_JE_CNT (0x0090) /*!< JPEG compression control register (R/W) */ #define ROHM_AVM_JE_CSIZE1 (0x0091) /*!< JPEG code size register 1 (R/W) */ #define ROHM_AVM_JE_CSIZE2 (0x0092) /*!< JPEG code size register 2 (R/W) */ #define ROHM_AVM_JE_CSIZE1_PRE (0x0093) /*!< JPEG code size pre register 1 (R/W) */ #define ROHM_AVM_JE_CSIZE2_PRE (0x0094) /*!< JPEG code size pre register 2 (R/W) */ #define ROHM_AVM_JD_PICTYPE (0x00A0) /*!< JPEG code YUV format setting register (R/W) */ #define ROHM_AVM_JD_INTERVAL (0x00A1) /*!< JPEG restart interval setting register (R/W) */ #define ROHM_AVM_JD_XSIZE (0x00A2) /*!< JPEG code X direction size setting register (R/W) */ #define ROHM_AVM_JD_YSIZE (0x00A3) /*!< JPEG code Y direction size setting register (R/W) */ #define ROHM_AVM_JD_HUF_Y_DC1 (0x00A4) /*!< Brightness DC component Huffman table 1 setting register (R/W) */ #define ROHM_AVM_JD_HUF_Y_AC1 (0x00A6) /*!< Brightness AC component Huffman table 1 setting register (R/W) */ #define ROHM_AVM_JD_HUF_C_DC1 (0x00A8) /*!< Color difference DC component Huffman table 1 setting register (R/W) */ #define ROHM_AVM_JD_HUF_C_AC1 (0x00AA) /*!< Color difference AC component Huffman table 1 setting register (R/W) */ #define ROHM_AVM_RING_CNT (0x0086) /*!< RING_INT occurrence control register (R/W) */ #define ROHM_AVM_RING_COUNT (0x008F) /*!< Number of RING_INT occurrence count register (R/W) */ #define ROHM_AVM_RING_RD (0x003F) /*!< Ring buffer read data register (R/W) */ /* AVM Register Definitions for ADPCM/PCM codec and I2S interface */ #define ROHM_AVM_COMMON_SET_UP1 (0x0100) /*!< Common setup register 1 (R/W) */ #define ROHM_AVM_COMMON_SET_UP2 (0x0101) /*!< Common setup register 2 (R/W) */ #define ROHM_AVM_ADPCM_CH_VOL (0x0103) /*!< ADPCM cannel volume register (R/W) */ #define ROHM_AVM_ADPCM_M_LR_VOL (0x0104) /*!< ADPCM master channel volume register (R/W) */ #define ROHM_AVM_ADPCM_S_LR_VOL (0x0105) /*!< ADPCM slave channel volume register (R/W) */ #define ROHM_AVM_ADPCM_INT_STATUS (0x0106) /*!< ADPCM interrupt status register (R/ ) */ #define ROHM_AVM_ADPCM_M_FIFO_STATUS (0x0108) /*!< ADPCM master FIFO status register (R/W) */ #define ROHM_AVM_ADPCM_S_FIFO_STATUS (0x0109) /*!< ADPCM slave FIFO status register (R/W) */ #define ROHM_AVM_ADPCM_FIFO_SETUP (0x010C) /*!< ADPCM FIFO setup register ( /W) */ #define ROHM_AVM_ADPCM_EXT_VOL (0x010D) /*!< ADPCM record volume register ( /W) */ #define ROHM_AVM_ADPCM_M_SETUP (0x010E) /*!< ADPCM master setup register ( /W) */ #define ROHM_AVM_ADPCM_S_SETUP (0x010F) /*!< ADPCM slave setup register ( /W) */ #define ROHM_AVM_ADPCM_CH_CONTROL (0x0110) /*!< ADPCM channel control register ( /W) */ #define ROHM_AVM_PCMIF_FORMAT (0x0111) /*!< PCMIF format register ( /W) */ #define ROHM_AVM_ADPCM_FORMAT (0x0115) /*!< Digital I/F input register ( /W) */ #define ROHM_AVM_INTERVAL_SETTING (0x0116) /*!< Interval setting register ( /W) */ #define ROHM_AVM_ADPCM_REC_MODE (0x0119) /*!< ADPCM recode mode register ( /W) */ #define ROHM_AVM_ADPCM_M_FIFO_WND (0x011B) /*!< ADPCM master FIFO access register ( /W) */ #define ROHM_AVM_ADPCM_ENC_FIFO_WND (0x011B) /*!< ADPCM master FIFO access register (R/ ) */ #define ROHM_AVM_ADPCM_S_FIFO_WND (0x011C) /*!< ADPCM slave FIFO access register ( /W) */ #define ROHM_AVM_SMP_TIMING_SETUP (0x0120) /*!< Sampling timing setup register ( /W) */ #define ROHM_AVM_SEQUENCE_CONTROL1 (0x0140) /*!< Sequence control register (R/W) */ /* AVM Register Definitions for SD Card interface / controller */ #define ROHM_AVM_INTST2 (0x00DC) /*!< Interrupt status register 2 (R/W) */ #define ROHM_AVM_INTMSK2 (0x00DD) /*!< Interrupt mask register 2 (R/W) */ #define ROHM_AVM_SD_CARD_CNT (0x00BA) /*!< SD card control register (R/W) */ #define ROHM_AVM_SD_CLK_CNT (0x00BC) /*!< SD Clock control register (R/W) */ #define ROHM_AVM_SD_CMD (0x0200) /*!< Command register (R/W) */ #define ROHM_AVM_SD_PORTSEL (0x0201) /*!< SD Port selection register (R/W) */ #define ROHM_AVM_SD_ARG0 (0x0202) /*!< SD Command Argument register 0 (R/W) */ #define ROHM_AVM_SD_ARG1 (0x0203) /*!< SD Command Argument register 1 (R/W) */ #define ROHM_AVM_SD_STOP (0x0204) /*!< Data STOP register (R/W) */ #define ROHM_AVM_SD_SECCNT (0x0205) /*!< Transfer Sector Count Register (R/W) */ #define ROHM_AVM_SD_RSP0 (0x0206) /*!< SD Memory Card Information Register 0 (R/W) */ #define ROHM_AVM_SD_RSP1 (0x0207) /*!< SD Memory Card Information Register 1 (R/W) */ #define ROHM_AVM_SD_RSP2 (0x0208) /*!< SD Memory Card Information Register 2 (R/W) */ #define ROHM_AVM_SD_RSP3 (0x0209) /*!< SD Memory Card Information Register 3 (R/W) */ #define ROHM_AVM_SD_RSP4 (0x020A) /*!< SD Memory Card Information Register 4 (R/W) */ #define ROHM_AVM_SD_RSP5 (0x020B) /*!< SD Memory Card Information Register 5 (R/W) */ #define ROHM_AVM_SD_RSP6 (0x020C) /*!< SD Memory Card Information Register 6 (R/W) */ #define ROHM_AVM_SD_RSP7 (0x020D) /*!< SD Memory Card Information Register 7 (R/W) */ #define ROHM_AVM_SD_INFO1 (0x020E) /*!< SD Memory Card Buffer Control & Error Register (R/W) */ #define ROHM_AVM_SD_INFO2 (0x020F) /*!< SD Memory Card Information Mask Register (R/W) */ #define ROHM_AVM_SD_INFO1_MASK (0x0210) /*!< SD Memory Card Information Mask Register (R/W) */ #define ROHM_AVM_SD_INFO2_MASK (0x0211) /*!< SD Memory Card Buffer & Error Mask Register (R/W) */ #define ROHM_AVM_SD_CLK_CTRL (0x0212) /*!< SD Clock Control Register (R/W) */ #define ROHM_AVM_SD_SIZE (0x0213) /*!< Transfer data length register (R/W) */ #define ROHM_AVM_SD_OPTION (0x0214) /*!< SD Memory Card Access Control Option Register (R/W) */ #define ROHM_AVM_SD_ERR_STS1 (0x0216) /*!< SD error interrupt (CMD, CRC, END) status register (R/W) */ #define ROHM_AVM_SD_ERR_STS2 (0x0217) /*!< SD error interrupt (Time out) status register (R/W) */ #define ROHM_AVM_SD_BUF0 (0x0218) /*!< Buffer Read/Write Port Register (R/W) */ #define ROHM_AVM_SOFT_RST (0x0270) /*!< Soft Reset Register (R/W) */ #define ROHM_AVM_VERSION (0x0271) /*!< Soft Reset Register (R/ ) */ /* AVM Register Definitions for AVM Setup */ #define ROHM_AVM_SETUPCNT (0x00F8) /*!< Setup-sequence control register (R/W) */ #define ROHM_AVM_SETUPSET (0x00FE) /*!< Setup sequence setting register (R/W) */ #define ROHM_AVM_PRODUCT_ID (0x0000) /*!< Product ID register (R/ ) */ #define ROHM_AVM_REV_NO (0x0001) /*!< Revision No. register (R/ ) */ /*@}*/ /* end of group BU1511KV2_AVM */ #if defined ( __CC_ARM ) #pragma no_anon_unions #endif /******************************************************************************/ /* Peripheral memory map */ /******************************************************************************/ /* Base addresses */ #define ROHM_FLASH_BASE (0x00000000UL) #define ROHM_RAM_BASE (0x10000000UL) #define ROHM_AVM_BASE (0x30000000UL) #define ROHM_EMC1_BASE (0x90000000UL) #define ROHM_EMC2_BASE (0xA0000000UL) #define ROHM_APB_BASE (0xC0000000UL) /* APB peripherals */ #define ROHM_UART1_BASE (ROHM_APB_BASE + 0x00000) #define ROHM_UART2_BASE (ROHM_APB_BASE + 0x01000) #define ROHM_TMR1_BASE (ROHM_APB_BASE + 0x02000) #define ROHM_TMR2_BASE (ROHM_APB_BASE + 0x02014) #define ROHM_TMRC_BASE (ROHM_APB_BASE + 0x02028) #define ROHM_WDT_BASE (ROHM_APB_BASE + 0x03000) #define ROHM_GPIO_BASE (ROHM_APB_BASE + 0x04000) #define ROHM_ADC_BASE (ROHM_APB_BASE + 0x05000) #define ROHM_SYS_BASE (ROHM_APB_BASE + 0x06000) #define ROHM_INTCTL_BASE (ROHM_APB_BASE + 0x07000) #define ROHM_SSI_BASE (ROHM_APB_BASE + 0x08000) #define ROHM_PWM_BASE (ROHM_APB_BASE + 0x09000) /******************************************************************************/ /* Peripheral declaration */ /******************************************************************************/ #define ROHM_UART1 ((ROHM_UART_TypeDef *) ROHM_UART1_BASE ) #define ROHM_UART2 ((ROHM_UART_TypeDef *) ROHM_UART2_BASE ) #define ROHM_TMR1 ((ROHM_TMR_TypeDef *) ROHM_TMR1_BASE ) #define ROHM_TMR2 ((ROHM_TMR_TypeDef *) ROHM_TMR2_BASE ) #define ROHM_TMRC ((ROHM_TMR_TypeDef *) ROHM_TMRC_BASE ) #define ROHM_WDT ((ROHM_WDT_TypeDef *) ROHM_WDT_BASE ) #define ROHM_GPIO ((ROHM_GPIO_TypeDef *) ROHM_GPIO_BASE ) #define ROHM_ADC ((ROHM_ADC_TypeDef *) ROHM_ADC_BASE ) #define ROHM_SYS ((ROHM_SYS_TypeDef *) ROHM_SYS_BASE ) #define ROHM_INTCTL ((ROHM_INTCTL_TypeDef *) ROHM_INTCTL_BASE) #define ROHM_SSI ((ROHM_SSI_TypeDef *) ROHM_SPI_BASE ) #define ROHM_PWM ((ROHM_PWM_TypeDef *) ROHM_PWM_BASE ) #define ROHM_EMC1 ((ROHM_EMC_TypeDef *) ROHM_EMC1_BASE ) #define ROHM_EMC2 ((ROHM_EMC_TypeDef *) ROHM_EMC2_BASE ) #define ROHM_AVM ((ROHM_AVM_TypeDef *) ROHM_AVM_BASE ) #ifdef __cplusplus } #endif #endif /* __BU1511KV2_H__ */