Alexander von Gluck IV 2ec676a4e8 rpi: Add missing uart defines
* The uart defines need validated.
* Verified vector base and size defines
2012-04-22 22:17:24 -05:00

117 lines
3.4 KiB
C

/*
* Copyright (c) 2012 Haiku Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Authors:
* Alexander von Gluck, kallisti5@unixzen.com
*/
#ifndef __PLATFORM_BCM2708_H
#define __PLATFORM_BCM2708_H
#define SIZE_4K 0x00001000
#define BCM2708_SDRAM_BASE 0x00000000
#define BCM2708_PERI_BASE 0x20000000
#define SDRAM_BASE BCM2708_SDRAM_BASE
#define ST_BASE (BCM2708_PERI_BASE + 0x3000)
// System Timer
#define DMA_BASE (BCM2708_PERI_BASE + 0x7000)
// DMA Controller
#define ARM_BASE (BCM2708_PERI_BASE + 0xB000)
// BCM2708 ARM Control Block
#define PM_BASE (BCM2708_PERI_BASE + 0x100000)
// Power Management, Reset controller and Watchdog registers
#define GPIO_BASE (BCM2708_PERI_BASE + 0x200000)
// GPIO
#define UART0_BASE (BCM2708_PERI_BASE + 0x201000)
// UART 0
#define MMCI0_BASE (BCM2708_PERI_BASE + 0x202000)
// MMC
#define UART1_BASE (BCM2708_PERI_BASE + 0x215000)
// UART 1
#define EMMC_BASE (BCM2708_PERI_BASE + 0x300000)
// eMMC interface
#define SMI_BASE (BCM2708_PERI_BASE + 0x600000)
// SMI Base
#define USB_BASE (BCM2708_PERI_BASE + 0x980000)
// USB Controller
#define FB_BASE (BCM2708_PERI_BASE + 0x0000)
// Fake frame buffer
#define FB_SIZE SIZE_4K
#define ARM_CTRL_BASE (ARM_BASE + 0x000)
#define ARM_CTRL_IC_BASa (ARM_BASE + 0x200)
// Interrupt controller
#define ARM_CTRL_TIMER0_1_BASE (ARM_BASE + 0x400)
// Timer 0 and 1
#define ARM_CTRL_0_SBM_BASE (ARM_BASE + 0x800)
// ARM Semaphores, Doorbells, and Mailboxes
#define VECT_BASE 0xffff0000
#define VECT_SIZE SIZE_4K
#define DEVICE_BASE ARM_CTRL_BASE
#define DEVICE_SIZE SIZE_4K
/* UART */
// TODO: Check these UART defines!
#define UART_RHR 0
#define UART_THR 0
#define UART_DLL 0
#define UART_IER 1
#define UART_DLH 1
#define UART_IIR 2
#define UART_FCR 2
#define UART_EFR 2
#define UART_LCR 3
#define UART_MCR 4
#define UART_LSR 5
#define UART_MSR 6
#define UART_TCR 6
#define UART_SPR 7
#define UART_TLR 7
#define UART_MDR1 8
#define UART_MDR2 9
#define UART_SFLSR 10
#define UART_RESUME 11
#define UART_TXFLL 10
#define UART_TXFLH 11
#define UART_SFREGL 12
#define UART_SFREGH 13
#define UART_RXFLL 12
#define UART_RXFLH 13
#define UART_BLR 14
#define UART_UASR 14
#define UART_ACREG 15
#define UART_SCR 16
#define UART_SSR 17
#define UART_EBLR 18
#define UART_MVR 19
#define UART_SYSC 20
#endif /* __PLATFORM_BCM2708_H */