/* * Hardware register defines for Elvees NVCom-01 microcontroller. * * Copyright (C) 2010 Serge Vakulenko, * * This file is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. * * You can redistribute this file and/or modify it under the terms of the GNU * General Public License (GPL) as published by the Free Software Foundation; * either version 2 of the License, or (at your discretion) any later version. * See the accompanying file "COPYING.txt" for more details. * * As a special exception to the GPL, permission is granted for additional * uses of the text contained in this file. See the accompanying file * "COPY-UOS.txt" for details. */ #ifndef _IO_NVCOM01_H #define _IO_NVCOM01_H #define MC_BASE_ADDR 0xB82F0000 #define MC_R(a) *(volatile unsigned*)(MC_BASE_ADDR + (a)) #define MC_A(a) (MC_BASE_ADDR + (a)) /* * Регистры UART0, UART1 */ #define MC_UART0_BASE MC_A (0x3000) #define MC_RBR MC_R (0x3000) /* Приемный буферный регистр */ #define MC_THR MC_R (0x3000) /* Передающий буферный регистр */ #define MC_IER MC_R (0x3004) /* Регистр разрешения прерываний */ #define MC_IIR MC_R (0x3008) /* Регистр идентификации прерывания */ #define MC_FCR MC_R (0x3008) /* Регистр управления FIFO */ #define MC_LCR MC_R (0x300C) /* Регистр управления линией */ #define MC_MCR MC_R (0x3010) /* Регистр управления модемом */ #define MC_LSR MC_R (0x3014) /* Регистр состояния линии */ #define MC_MSR MC_R (0x3018) /* Регистр состояния модемом */ #define MC_SPR MC_R (0x301C) /* Регистр Scratch Pad */ #define MC_DLL MC_R (0x3000) /* Регистр делителя младший */ #define MC_DLM MC_R (0x3004) /* Регистр делителя старший */ #define MC_SCLR MC_R (0x3014) /* Регистр предделителя (scaler) */ #define MC_UART1_BASE MC_A (0x3800) #define MC_RBR1 MC_R (0x3800) /* Приемный буферный регистр */ #define MC_THR1 MC_R (0x3800) /* Передающий буферный регистр */ #define MC_IER1 MC_R (0x3804) /* Регистр разрешения прерываний */ #define MC_IIR1 MC_R (0x3808) /* Регистр идентификации прерывания */ #define MC_FCR1 MC_R (0x3808) /* Регистр управления FIFO */ #define MC_LCR1 MC_R (0x380C) /* Регистр управления линией */ #define MC_MCR1 MC_R (0x3810) /* Регистр управления модемом */ #define MC_LSR1 MC_R (0x3814) /* Регистр состояния линии */ #define MC_MSR1 MC_R (0x3818) /* Регистр состояния модемом */ #define MC_SPR1 MC_R (0x381C) /* Регистр Scratch Pad */ #define MC_DLL1 MC_R (0x3800) /* Регистр делителя младший */ #define MC_DLM1 MC_R (0x3804) /* Регистр делителя старший */ #define MC_SCLR1 MC_R (0x3814) /* Регистр предделителя (scaler) */ /* * Регистры интервального таймера IT0, IT1 */ #define MC_ITCSR MC_R (0xD000) /* Управление */ #define MC_ITPERIOD MC_R (0xD004) /* Период работы таймера */ #define MC_ITCOUNT MC_R (0xD008) /* Счетчик */ #define MC_ITSCALE MC_R (0xD00C) /* Предделитель */ #define MC_ITCSR1 MC_R (0xD020) /* Управление */ #define MC_ITPERIOD1 MC_R (0xD024) /* Период работы таймера */ #define MC_ITCOUNT1 MC_R (0xD028) /* Счетчик */ #define MC_ITSCALE1 MC_R (0xD02C) /* Предделитель */ /* * Регистры WDT */ #define MC_WTCSR MC_R (0xD010) /* Управление */ #define MC_WTPERIOD MC_R (0xD014) /* Период работы таймера */ #define MC_WTCOUNT MC_R (0xD018) /* Счетчик */ #define MC_WTSCALE MC_R (0xD01C) /* Предделитель */ /* * Регистры VPIN */ #define MC_CSR_VPIN MC_R (0x8000) /* Управление и состояние */ #define MC_CNT_VPIN MC_R (0x8004) /* Счетчик строк / счетчик пикселов */ #define MC_FRAME_CNT_VPIN MC_R (0x8008) /* Счетчик кадров */ #define MC_FIFO_VPIN MC_R (0x800C) /* Выход FIFO */ /* * Регистры VPOUT */ #define MC_CSR_VPOUT MC_R (0x9000) /* Управление и состояние */ #define MC_DIV MC_R (0x9004) /* Период сигнала VCLKO_out */ #define MC_HSTART_HEND MC_R (0x9008) /* Начало/конец активной части строки */ #define MC_VSTART_VEND MC_R (0x900C) /* Начало/конец активной части кадра */ #define MC_CNT_VPOUT MC_R (0x9010) /* Счетчик строк / счетчик пикселов */ #define MC_FRAME_CNT_VPOUT MC_R (0x9014) /* Счетчик кадров */ #define MC_FIFO_VPOUT MC_R (0x901C) /* Вход FIFO */ /* * Регистры USB */ #define MC_USB_CSR MC_R (0xC000) /* Управление и статус контроллера */ #define MC_USB_INT_CSR MC_R (0xC004) /* Управление и статус прерываний */ #define MC_USB_VENDOR_DATA MC_R (0xC008) /* Данные для передачи по Vendor-каналу */ #define MC_USB_VENDOR_INDEX MC_R (0xC00C) /* Указатель на данные по Vendor-каналу */ #define MC_USB_VENDOR_VALUE MC_R (0xC010) /* Принятые данные по Vendor-каналу */ #define MC_USB_CFG_ADDR MC_R (0xC014) /* Адрес массива конфигурации */ #define MC_USB_CFG_DATA MC_R (0xC018) /* Данные массива конфигурации */ #define MC_USB_REVISION MC_R (0xC01C) /* Номер ревизии */ #define MC_USB_CSR_EP1 MC_R (0xC020) /* Управление и статус ЕР1 */ #define MC_USB_CSR_EP2 MC_R (0xC024) /* Управление и статус ЕР2 */ #define MC_USB_CSR_EP3 MC_R (0xC028) /* Управление и статус ЕР3 */ #define MC_USB_CSR_EP4 MC_R (0xC02C) /* Управление и статус ЕР4 */ /* * Регистры порта внешней памяти MPORT */ #define MC_CSCON0 MC_R (0x1000) /* Регистр конфигурации 0 */ #define MC_CSCON1 MC_R (0x1004) /* Регистр конфигурации 1 */ #define MC_CSCON2 MC_R (0x1008) /* Регистр конфигурации 2 */ #define MC_CSCON3 MC_R (0x100C) /* Регистр конфигурации 3 */ #define MC_CSCON4 MC_R (0x1010) /* Регистр конфигурации 4 */ #define MC_SDRCON MC_R (0x1014) /* Регистр конфигурации памяти SDRAM */ #define MC_SDRTMR MC_R (0x1018) /* Временные параметры памяти SDRAM */ #define MC_SDRCSR MC_R (0x101C) /* Управление режимами памяти SDRAM */ /* * Системные регистры */ #define MC_CRPLL MC_R (0x4000) /* Управление PLL */ #define MC_CLKEN MC_R (0x4004) /* Управление отключением частоты от устройств */ #define MC_CSR MC_R (0x4008) /* Управление и состояние */ #define MC_MASKR0 MC_R (0x4010) /* Маска прерываний */ #define MC_QSTR0 MC_R (0x4014) /* Запросы прерываний от IT, RTT, WDT, * VPOUT, VPIN, ETHERNET MAC, USB, * PMSC, UART, nIRQ[3:0] */ #define MC_MASKR1 MC_R (0x4018) /* Маска прерываний от DMA MEM */ #define MC_QSTR1 MC_R (0x401C) /* Запросы прерываний от DMA MEM */ #define MC_MASKR2 MC_R (0x4020) /* Маска прерываний от MFBSP */ #define MC_QSTR2 MC_R (0x4024) /* Запросы прерываний от MFBSP */ #define MC_IRQM MC_R (0x4030) /* Режимы внешних прерываний nIRQ[3:0] */ /* * Регистры многоканального коррелятора */ #define MC_BASE_MCC MC_R (0xF000) /* Базовый адрес регистров МСС */ #define MC_INT_EN_MCC MC_R (0xFFF4) /* Разрешение прерывания от MCC */ #define MC_INT_RST_MCC MC_R (0xFFF8) /* Сброс прерывания от MCC */ #endif /* _IO_NVCOM01_H */