Andrew Victor | c53c9cf | 2007-05-11 21:01:28 +0100 | [diff] [blame] | 1 | /* |
| 2 | * linux/include/asm-arm/arch-ks8695/regs-uart.h |
| 3 | * |
| 4 | * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk> |
| 5 | * Copyright (C) 2006 Simtec Electronics |
| 6 | * |
| 7 | * KS8695 - UART register and bit definitions. |
| 8 | * |
| 9 | * This program is free software; you can redistribute it and/or modify |
| 10 | * it under the terms of the GNU General Public License version 2 as |
| 11 | * published by the Free Software Foundation. |
| 12 | */ |
| 13 | |
| 14 | #ifndef KS8695_UART_H |
| 15 | #define KS8695_UART_H |
| 16 | |
| 17 | #define KS8695_UART_OFFSET (0xF0000 + 0xE000) |
| 18 | #define KS8695_UART_VA (KS8695_IO_VA + KS8695_UART_OFFSET) |
| 19 | #define KS8695_UART_PA (KS8695_IO_PA + KS8695_UART_OFFSET) |
| 20 | |
| 21 | |
| 22 | /* |
| 23 | * UART registers |
| 24 | */ |
| 25 | #define KS8695_URRB (0x00) /* Receive Buffer Register */ |
| 26 | #define KS8695_URTH (0x04) /* Transmit Holding Register */ |
| 27 | #define KS8695_URFC (0x08) /* FIFO Control Register */ |
| 28 | #define KS8695_URLC (0x0C) /* Line Control Register */ |
| 29 | #define KS8695_URMC (0x10) /* Modem Control Register */ |
| 30 | #define KS8695_URLS (0x14) /* Line Status Register */ |
| 31 | #define KS8695_URMS (0x18) /* Modem Status Register */ |
| 32 | #define KS8695_URBD (0x1C) /* Baud Rate Divisor Register */ |
| 33 | #define KS8695_USR (0x20) /* Status Register */ |
| 34 | |
| 35 | |
| 36 | /* FIFO Control Register */ |
| 37 | #define URFC_URFRT (3 << 6) /* Receive FIFO Trigger Level */ |
| 38 | #define URFC_URFRT_1 (0 << 6) |
| 39 | #define URFC_URFRT_4 (1 << 6) |
| 40 | #define URFC_URFRT_8 (2 << 6) |
| 41 | #define URFC_URFRT_14 (3 << 6) |
| 42 | #define URFC_URTFR (1 << 2) /* Transmit FIFO Reset */ |
| 43 | #define URFC_URRFR (1 << 1) /* Receive FIFO Reset */ |
| 44 | #define URFC_URFE (1 << 0) /* FIFO Enable */ |
| 45 | |
| 46 | /* Line Control Register */ |
| 47 | #define URLC_URSBC (1 << 6) /* Set Break Condition */ |
| 48 | #define URLC_PARITY (7 << 3) /* Parity */ |
| 49 | #define URPE_NONE (0 << 3) |
| 50 | #define URPE_ODD (1 << 3) |
| 51 | #define URPE_EVEN (3 << 3) |
| 52 | #define URPE_MARK (5 << 3) |
| 53 | #define URPE_SPACE (7 << 3) |
| 54 | #define URLC_URSB (1 << 2) /* Stop Bits */ |
| 55 | #define URLC_URCL (3 << 0) /* Character Length */ |
| 56 | #define URCL_5 (0 << 0) |
| 57 | #define URCL_6 (1 << 0) |
| 58 | #define URCL_7 (2 << 0) |
| 59 | #define URCL_8 (3 << 0) |
| 60 | |
| 61 | /* Modem Control Register */ |
| 62 | #define URMC_URLB (1 << 4) /* Loop-back mode */ |
| 63 | #define URMC_UROUT2 (1 << 3) /* OUT2 signal */ |
| 64 | #define URMC_UROUT1 (1 << 2) /* OUT1 signal */ |
| 65 | #define URMC_URRTS (1 << 1) /* Request to Send */ |
| 66 | #define URMC_URDTR (1 << 0) /* Data Terminal Ready */ |
| 67 | |
| 68 | /* Line Status Register */ |
| 69 | #define URLS_URRFE (1 << 7) /* Receive FIFO Error */ |
| 70 | #define URLS_URTE (1 << 6) /* Transmit Empty */ |
| 71 | #define URLS_URTHRE (1 << 5) /* Transmit Holding Register Empty */ |
| 72 | #define URLS_URBI (1 << 4) /* Break Interrupt */ |
| 73 | #define URLS_URFE (1 << 3) /* Framing Error */ |
| 74 | #define URLS_URPE (1 << 2) /* Parity Error */ |
| 75 | #define URLS_URROE (1 << 1) /* Receive Overrun Error */ |
| 76 | #define URLS_URDR (1 << 0) /* Receive Data Ready */ |
| 77 | |
| 78 | /* Modem Status Register */ |
| 79 | #define URMS_URDCD (1 << 7) /* Data Carrier Detect */ |
| 80 | #define URMS_URRI (1 << 6) /* Ring Indicator */ |
| 81 | #define URMS_URDSR (1 << 5) /* Data Set Ready */ |
| 82 | #define URMS_URCTS (1 << 4) /* Clear to Send */ |
| 83 | #define URMS_URDDCD (1 << 3) /* Delta Data Carrier Detect */ |
| 84 | #define URMS_URTERI (1 << 2) /* Trailing Edge Ring Indicator */ |
| 85 | #define URMS_URDDST (1 << 1) /* Delta Data Set Ready */ |
| 86 | #define URMS_URDCTS (1 << 0) /* Delta Clear to Send */ |
| 87 | |
| 88 | /* Status Register */ |
| 89 | #define USR_UTI (1 << 0) /* Timeout Indication */ |
| 90 | |
| 91 | |
| 92 | #endif |