Linux Kernel
3.7.1
|
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/platform_device.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/serial_core.h>
#include <linux/serial.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/rational.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/pinctrl/consumer.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <linux/platform_data/serial-imx.h>
Go to the source code of this file.
Data Structures | |
struct | imx_uart_data |
struct | imx_port |
struct | imx_port_ucrs |
Macros | |
#define | URXD0 0x0 /* Receiver Register */ |
#define | URTX0 0x40 /* Transmitter Register */ |
#define | UCR1 0x80 /* Control Register 1 */ |
#define | UCR2 0x84 /* Control Register 2 */ |
#define | UCR3 0x88 /* Control Register 3 */ |
#define | UCR4 0x8c /* Control Register 4 */ |
#define | UFCR 0x90 /* FIFO Control Register */ |
#define | USR1 0x94 /* Status Register 1 */ |
#define | USR2 0x98 /* Status Register 2 */ |
#define | UESC 0x9c /* Escape Character Register */ |
#define | UTIM 0xa0 /* Escape Timer Register */ |
#define | UBIR 0xa4 /* BRM Incremental Register */ |
#define | UBMR 0xa8 /* BRM Modulator Register */ |
#define | UBRC 0xac /* Baud Rate Count Register */ |
#define | IMX21_ONEMS 0xb0 /* One Millisecond register */ |
#define | IMX1_UTS 0xd0 /* UART Test Register on i.mx1 */ |
#define | IMX21_UTS 0xb4 /* UART Test Register on all other i.mx*/ |
#define | URXD_CHARRDY (1<<15) |
#define | URXD_ERR (1<<14) |
#define | URXD_OVRRUN (1<<13) |
#define | URXD_FRMERR (1<<12) |
#define | URXD_BRK (1<<11) |
#define | URXD_PRERR (1<<10) |
#define | UCR1_ADEN (1<<15) /* Auto detect interrupt */ |
#define | UCR1_ADBR (1<<14) /* Auto detect baud rate */ |
#define | UCR1_TRDYEN (1<<13) /* Transmitter ready interrupt enable */ |
#define | UCR1_IDEN (1<<12) /* Idle condition interrupt */ |
#define | UCR1_RRDYEN (1<<9) /* Recv ready interrupt enable */ |
#define | UCR1_RDMAEN (1<<8) /* Recv ready DMA enable */ |
#define | UCR1_IREN (1<<7) /* Infrared interface enable */ |
#define | UCR1_TXMPTYEN (1<<6) /* Transimitter empty interrupt enable */ |
#define | UCR1_RTSDEN (1<<5) /* RTS delta interrupt enable */ |
#define | UCR1_SNDBRK (1<<4) /* Send break */ |
#define | UCR1_TDMAEN (1<<3) /* Transmitter ready DMA enable */ |
#define | IMX1_UCR1_UARTCLKEN (1<<2) /* UART clock enabled, i.mx1 only */ |
#define | UCR1_DOZE (1<<1) /* Doze */ |
#define | UCR1_UARTEN (1<<0) /* UART enabled */ |
#define | UCR2_ESCI (1<<15) /* Escape seq interrupt enable */ |
#define | UCR2_IRTS (1<<14) /* Ignore RTS pin */ |
#define | UCR2_CTSC (1<<13) /* CTS pin control */ |
#define | UCR2_CTS (1<<12) /* Clear to send */ |
#define | UCR2_ESCEN (1<<11) /* Escape enable */ |
#define | UCR2_PREN (1<<8) /* Parity enable */ |
#define | UCR2_PROE (1<<7) /* Parity odd/even */ |
#define | UCR2_STPB (1<<6) /* Stop */ |
#define | UCR2_WS (1<<5) /* Word size */ |
#define | UCR2_RTSEN (1<<4) /* Request to send interrupt enable */ |
#define | UCR2_ATEN (1<<3) /* Aging Timer Enable */ |
#define | UCR2_TXEN (1<<2) /* Transmitter enabled */ |
#define | UCR2_RXEN (1<<1) /* Receiver enabled */ |
#define | UCR2_SRST (1<<0) /* SW reset */ |
#define | UCR3_DTREN (1<<13) /* DTR interrupt enable */ |
#define | UCR3_PARERREN (1<<12) /* Parity enable */ |
#define | UCR3_FRAERREN (1<<11) /* Frame error interrupt enable */ |
#define | UCR3_DSR (1<<10) /* Data set ready */ |
#define | UCR3_DCD (1<<9) /* Data carrier detect */ |
#define | UCR3_RI (1<<8) /* Ring indicator */ |
#define | UCR3_TIMEOUTEN (1<<7) /* Timeout interrupt enable */ |
#define | UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ |
#define | UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ |
#define | UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ |
#define | IMX21_UCR3_RXDMUXSEL (1<<2) /* RXD Muxed Input Select */ |
#define | UCR3_INVT (1<<1) /* Inverted Infrared transmission */ |
#define | UCR3_BPEN (1<<0) /* Preset registers enable */ |
#define | UCR4_CTSTL_SHF 10 /* CTS trigger level shift */ |
#define | UCR4_CTSTL_MASK 0x3F /* CTS trigger is 6 bits wide */ |
#define | UCR4_INVR (1<<9) /* Inverted infrared reception */ |
#define | UCR4_ENIRI (1<<8) /* Serial infrared interrupt enable */ |
#define | UCR4_WKEN (1<<7) /* Wake interrupt enable */ |
#define | UCR4_REF16 (1<<6) /* Ref freq 16 MHz */ |
#define | UCR4_IRSC (1<<5) /* IR special case */ |
#define | UCR4_TCEN (1<<3) /* Transmit complete interrupt enable */ |
#define | UCR4_BKEN (1<<2) /* Break condition interrupt enable */ |
#define | UCR4_OREN (1<<1) /* Receiver overrun interrupt enable */ |
#define | UCR4_DREN (1<<0) /* Recv data ready interrupt enable */ |
#define | UFCR_RXTL_SHF 0 /* Receiver trigger level shift */ |
#define | UFCR_DCEDTE (1<<6) /* DCE/DTE mode select */ |
#define | UFCR_RFDIV (7<<7) /* Reference freq divider mask */ |
#define | UFCR_RFDIV_REG(x) (((x) < 7 ? 6 - (x) : 6) << 7) |
#define | UFCR_TXTL_SHF 10 /* Transmitter trigger level shift */ |
#define | USR1_PARITYERR (1<<15) /* Parity error interrupt flag */ |
#define | USR1_RTSS (1<<14) /* RTS pin status */ |
#define | USR1_TRDY (1<<13) /* Transmitter ready interrupt/dma flag */ |
#define | USR1_RTSD (1<<12) /* RTS delta */ |
#define | USR1_ESCF (1<<11) /* Escape seq interrupt flag */ |
#define | USR1_FRAMERR (1<<10) /* Frame error interrupt flag */ |
#define | USR1_RRDY (1<<9) /* Receiver ready interrupt/dma flag */ |
#define | USR1_TIMEOUT (1<<7) /* Receive timeout interrupt status */ |
#define | USR1_RXDS (1<<6) /* Receiver idle interrupt flag */ |
#define | USR1_AIRINT (1<<5) /* Async IR wake interrupt flag */ |
#define | USR1_AWAKE (1<<4) /* Aysnc wake interrupt flag */ |
#define | USR2_ADET (1<<15) /* Auto baud rate detect complete */ |
#define | USR2_TXFE (1<<14) /* Transmit buffer FIFO empty */ |
#define | USR2_DTRF (1<<13) /* DTR edge interrupt flag */ |
#define | USR2_IDLE (1<<12) /* Idle condition */ |
#define | USR2_IRINT (1<<8) /* Serial infrared interrupt flag */ |
#define | USR2_WAKE (1<<7) /* Wake */ |
#define | USR2_RTSF (1<<4) /* RTS edge interrupt flag */ |
#define | USR2_TXDC (1<<3) /* Transmitter complete */ |
#define | USR2_BRCD (1<<2) /* Break condition */ |
#define | USR2_ORE (1<<1) /* Overrun error */ |
#define | USR2_RDR (1<<0) /* Recv data ready */ |
#define | UTS_FRCPERR (1<<13) /* Force parity error */ |
#define | UTS_LOOP (1<<12) /* Loop tx and rx */ |
#define | UTS_TXEMPTY (1<<6) /* TxFIFO empty */ |
#define | UTS_RXEMPTY (1<<5) /* RxFIFO empty */ |
#define | UTS_TXFULL (1<<4) /* TxFIFO full */ |
#define | UTS_RXFULL (1<<3) /* RxFIFO full */ |
#define | UTS_SOFTRST (1<<0) /* Software reset */ |
#define | SERIAL_IMX_MAJOR 207 |
#define | MINOR_START 16 |
#define | DEV_NAME "ttymxc" |
#define | MCTRL_TIMEOUT (250*HZ/1000) |
#define | DRIVER_NAME "IMX-uart" |
#define | UART_NR 8 |
#define | USE_IRDA(sport) (0) |
#define | TXTL 2 /* reset default */ |
#define | RXTL 1 /* reset default */ |
#define | CTSTL 16 |
#define | IMX_CONSOLE NULL |
Enumerations | |
enum | imx_uart_type { IMX1_UART, IMX21_UART } |
Functions | |
MODULE_DEVICE_TABLE (platform, imx_uart_devtype) | |
MODULE_DEVICE_TABLE (of, imx_uart_dt_ids) | |
module_init (imx_serial_init) | |
module_exit (imx_serial_exit) | |
MODULE_AUTHOR ("Sascha Hauer") | |
MODULE_DESCRIPTION ("IMX generic serial port driver") | |
MODULE_LICENSE ("GPL") | |
MODULE_ALIAS ("platform:imx-uart") | |
#define IMX21_UTS 0xb4 /* UART Test Register on all other i.mx*/ |
enum imx_uart_type |
MODULE_ALIAS | ( | "platform:imx-uart" | ) |
MODULE_AUTHOR | ( | "Sascha Hauer" | ) |
MODULE_DEVICE_TABLE | ( | platform | , |
imx_uart_devtype | |||
) |
MODULE_DEVICE_TABLE | ( | of | , |
imx_uart_dt_ids | |||
) |
module_exit | ( | imx_serial_exit | ) |
module_init | ( | imx_serial_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |