Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
8250_pci.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/tty.h>
#include <linux/serial_reg.h>
#include <linux/serial_core.h>
#include <linux/8250_pci.h>
#include <linux/bitops.h>
#include <asm/byteorder.h>
#include <asm/io.h>
#include "8250.h"

Go to the source code of this file.

Data Structures

struct  pci_serial_quirk
 
struct  serial_private
 
struct  timedia_struct
 

Macros

#define PCI_NUM_BAR_RESOURCES   6
 
#define NI8420_INT_ENABLE_REG   0x38
 
#define NI8420_INT_ENABLE_BIT   0x2000
 
#define MITE_IOWBSR1   0xc4
 
#define MITE_IOWCR1   0xf4
 
#define MITE_LCIMR1   0x08
 
#define MITE_LCIMR2   0x10
 
#define MITE_LCIMR2_CLR_CPU_IE   (1 << 30)
 
#define OCT_REG_CR_OFF   0x500
 
#define PCI_DEVICE_ID_SIIG_1S_10x   (PCI_DEVICE_ID_SIIG_1S_10x_550 & 0xfffc)
 
#define PCI_DEVICE_ID_SIIG_2S_10x   (PCI_DEVICE_ID_SIIG_2S_10x_550 & 0xfff8)
 
#define PCI_DEVICE_ID_SIIG_2S_20x   (PCI_DEVICE_ID_SIIG_2S_20x_550 & 0xfffc)
 
#define PCI_DEVICE_ID_SIIG_2S1P_20x   (PCI_DEVICE_ID_SIIG_2S1P_20x_550 & 0xfffc)
 
#define MITE_IOWBSR1_WSIZE   0xa
 
#define MITE_IOWBSR1_WIN_OFFSET   0x800
 
#define MITE_IOWBSR1_WENAB   (1 << 7)
 
#define MITE_LCIMR1_IO_IE_0   (1 << 24)
 
#define MITE_LCIMR2_SET_CPU_IE   (1 << 31)
 
#define MITE_IOWCR1_RAMSEL_MASK   0xfffffffe
 
#define NI8430_PORTCON   0x0f
 
#define NI8430_PORTCON_TXVR_ENABLE   (1 << 3)
 
#define ITE_887x_MISCR   0x9c
 
#define ITE_887x_INTCBAR   0x78
 
#define ITE_887x_UARTBAR   0x7c
 
#define ITE_887x_PS0BAR   0x10
 
#define ITE_887x_POSIO0   0x60
 
#define ITE_887x_IOSIZE   32
 
#define ITE_887x_POSIO_IOSIZE_8   (3 << 24)
 
#define ITE_887x_POSIO_IOSIZE_32   (5 << 24)
 
#define ITE_887x_POSIO_SPEED   (3 << 29)
 
#define ITE_887x_POSIO_ENABLE   (1 << 31)
 
#define PCI_VENDOR_ID_SBSMODULARIO   0x124B
 
#define PCI_SUBVENDOR_ID_SBSMODULARIO   0x124B
 
#define PCI_DEVICE_ID_OCTPRO   0x0001
 
#define PCI_SUBDEVICE_ID_OCTPRO232   0x0108
 
#define PCI_SUBDEVICE_ID_OCTPRO422   0x0208
 
#define PCI_SUBDEVICE_ID_POCTAL232   0x0308
 
#define PCI_SUBDEVICE_ID_POCTAL422   0x0408
 
#define PCI_SUBDEVICE_ID_SIIG_DUAL_00   0x2500
 
#define PCI_SUBDEVICE_ID_SIIG_DUAL_30   0x2530
 
#define PCI_VENDOR_ID_ADVANTECH   0x13fe
 
#define PCI_DEVICE_ID_INTEL_CE4100_UART   0x2e66
 
#define PCI_DEVICE_ID_ADVANTECH_PCI3620   0x3620
 
#define PCI_DEVICE_ID_TITAN_200I   0x8028
 
#define PCI_DEVICE_ID_TITAN_400I   0x8048
 
#define PCI_DEVICE_ID_TITAN_800I   0x8088
 
#define PCI_DEVICE_ID_TITAN_800EH   0xA007
 
#define PCI_DEVICE_ID_TITAN_800EHB   0xA008
 
#define PCI_DEVICE_ID_TITAN_400EH   0xA009
 
#define PCI_DEVICE_ID_TITAN_100E   0xA010
 
#define PCI_DEVICE_ID_TITAN_200E   0xA012
 
#define PCI_DEVICE_ID_TITAN_400E   0xA013
 
#define PCI_DEVICE_ID_TITAN_800E   0xA014
 
#define PCI_DEVICE_ID_TITAN_200EI   0xA016
 
#define PCI_DEVICE_ID_TITAN_200EISI   0xA017
 
#define PCI_DEVICE_ID_TITAN_400V3   0xA310
 
#define PCI_DEVICE_ID_TITAN_410V3   0xA312
 
#define PCI_DEVICE_ID_TITAN_800V3   0xA314
 
#define PCI_DEVICE_ID_TITAN_800V3B   0xA315
 
#define PCI_DEVICE_ID_OXSEMI_16PCI958   0x9538
 
#define PCIE_DEVICE_ID_NEO_2_OX_IBM   0x00F6
 
#define PCI_DEVICE_ID_PLX_CRONYX_OMEGA   0xc001
 
#define PCI_DEVICE_ID_INTEL_PATSBURG_KT   0x1d3d
 
#define PCI_VENDOR_ID_WCH   0x4348
 
#define PCI_DEVICE_ID_WCH_CH353_4S   0x3453
 
#define PCI_DEVICE_ID_WCH_CH353_2S1PF   0x5046
 
#define PCI_DEVICE_ID_WCH_CH353_2S1P   0x7053
 
#define PCI_VENDOR_ID_AGESTAR   0x5372
 
#define PCI_DEVICE_ID_AGESTAR_9375   0x6872
 
#define PCI_VENDOR_ID_ASIX   0x9710
 
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584   0x1584
 

Enumerations

enum  pci_board_num_t {
  pbn_default = 0, pbn_b0_1_115200, pbn_b0_2_115200, pbn_b0_4_115200,
  pbn_b0_5_115200, pbn_b0_8_115200, pbn_b0_1_921600, pbn_b0_2_921600,
  pbn_b0_4_921600, pbn_b0_2_1130000, pbn_b0_4_1152000, pbn_b0_2_1843200,
  pbn_b0_4_1843200, pbn_b0_2_1843200_200, pbn_b0_4_1843200_200, pbn_b0_8_1843200_200,
  pbn_b0_1_4000000, pbn_b0_bt_1_115200, pbn_b0_bt_2_115200, pbn_b0_bt_4_115200,
  pbn_b0_bt_8_115200, pbn_b0_bt_1_460800, pbn_b0_bt_2_460800, pbn_b0_bt_4_460800,
  pbn_b0_bt_1_921600, pbn_b0_bt_2_921600, pbn_b0_bt_4_921600, pbn_b0_bt_8_921600,
  pbn_b1_1_115200, pbn_b1_2_115200, pbn_b1_4_115200, pbn_b1_8_115200,
  pbn_b1_16_115200, pbn_b1_1_921600, pbn_b1_2_921600, pbn_b1_4_921600,
  pbn_b1_8_921600, pbn_b1_2_1250000, pbn_b1_bt_1_115200, pbn_b1_bt_2_115200,
  pbn_b1_bt_4_115200, pbn_b1_bt_2_921600, pbn_b1_1_1382400, pbn_b1_2_1382400,
  pbn_b1_4_1382400, pbn_b1_8_1382400, pbn_b2_1_115200, pbn_b2_2_115200,
  pbn_b2_4_115200, pbn_b2_8_115200, pbn_b2_1_460800, pbn_b2_4_460800,
  pbn_b2_8_460800, pbn_b2_16_460800, pbn_b2_1_921600, pbn_b2_4_921600,
  pbn_b2_8_921600, pbn_b2_8_1152000, pbn_b2_bt_1_115200, pbn_b2_bt_2_115200,
  pbn_b2_bt_4_115200, pbn_b2_bt_2_921600, pbn_b2_bt_4_921600, pbn_b3_2_115200,
  pbn_b3_4_115200, pbn_b3_8_115200, pbn_b4_bt_2_921600, pbn_b4_bt_4_921600,
  pbn_b4_bt_8_921600, pbn_panacom, pbn_panacom2, pbn_panacom4,
  pbn_plx_romulus, pbn_oxsemi, pbn_oxsemi_1_4000000, pbn_oxsemi_2_4000000,
  pbn_oxsemi_4_4000000, pbn_oxsemi_8_4000000, pbn_intel_i960, pbn_sgi_ioc3,
  pbn_computone_4, pbn_computone_6, pbn_computone_8, pbn_sbsxrsio,
  pbn_exar_XR17C152, pbn_exar_XR17C154, pbn_exar_XR17C158, pbn_exar_ibm_saturn,
  pbn_pasemi_1682M, pbn_ni8430_2, pbn_ni8430_4, pbn_ni8430_8,
  pbn_ni8430_16, pbn_ADDIDATA_PCIe_1_3906250, pbn_ADDIDATA_PCIe_2_3906250, pbn_ADDIDATA_PCIe_4_3906250,
  pbn_ADDIDATA_PCIe_8_3906250, pbn_ce4100_1_115200, pbn_omegapci, pbn_NETMOS9900_2s_115200
}
 

Functions

struct serial_privatepciserial_init_ports (struct pci_dev *dev, const struct pciserial_board *board)
 
 EXPORT_SYMBOL_GPL (pciserial_init_ports)
 
void pciserial_remove_ports (struct serial_private *priv)
 
 EXPORT_SYMBOL_GPL (pciserial_remove_ports)
 
void pciserial_suspend_ports (struct serial_private *priv)
 
 EXPORT_SYMBOL_GPL (pciserial_suspend_ports)
 
void pciserial_resume_ports (struct serial_private *priv)
 
 EXPORT_SYMBOL_GPL (pciserial_resume_ports)
 
 module_init (serial8250_pci_init)
 
 module_exit (serial8250_pci_exit)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_DESCRIPTION ("Generic 8250/16x50 PCI serial probe module")
 
 MODULE_DEVICE_TABLE (pci, serial_pci_tbl)
 

Macro Definition Documentation

#define ITE_887x_INTCBAR   0x78

Definition at line 884 of file 8250_pci.c.

#define ITE_887x_IOSIZE   32

Definition at line 890 of file 8250_pci.c.

#define ITE_887x_MISCR   0x9c

Definition at line 883 of file 8250_pci.c.

#define ITE_887x_POSIO0   0x60

Definition at line 887 of file 8250_pci.c.

#define ITE_887x_POSIO_ENABLE   (1 << 31)

Definition at line 898 of file 8250_pci.c.

#define ITE_887x_POSIO_IOSIZE_32   (5 << 24)

Definition at line 894 of file 8250_pci.c.

#define ITE_887x_POSIO_IOSIZE_8   (3 << 24)

Definition at line 892 of file 8250_pci.c.

#define ITE_887x_POSIO_SPEED   (3 << 29)

Definition at line 896 of file 8250_pci.c.

#define ITE_887x_PS0BAR   0x10

Definition at line 886 of file 8250_pci.c.

#define ITE_887x_UARTBAR   0x7c

Definition at line 885 of file 8250_pci.c.

#define MITE_IOWBSR1   0xc4

Definition at line 341 of file 8250_pci.c.

#define MITE_IOWBSR1_WENAB   (1 << 7)

Definition at line 708 of file 8250_pci.c.

#define MITE_IOWBSR1_WIN_OFFSET   0x800

Definition at line 707 of file 8250_pci.c.

#define MITE_IOWBSR1_WSIZE   0xa

Definition at line 706 of file 8250_pci.c.

#define MITE_IOWCR1   0xf4

Definition at line 342 of file 8250_pci.c.

#define MITE_IOWCR1_RAMSEL_MASK   0xfffffffe

Definition at line 711 of file 8250_pci.c.

#define MITE_LCIMR1   0x08

Definition at line 343 of file 8250_pci.c.

#define MITE_LCIMR1_IO_IE_0   (1 << 24)

Definition at line 709 of file 8250_pci.c.

#define MITE_LCIMR2   0x10

Definition at line 344 of file 8250_pci.c.

#define MITE_LCIMR2_CLR_CPU_IE   (1 << 30)

Definition at line 346 of file 8250_pci.c.

#define MITE_LCIMR2_SET_CPU_IE   (1 << 31)

Definition at line 710 of file 8250_pci.c.

#define NI8420_INT_ENABLE_BIT   0x2000

Definition at line 314 of file 8250_pci.c.

#define NI8420_INT_ENABLE_REG   0x38

Definition at line 313 of file 8250_pci.c.

#define NI8430_PORTCON   0x0f

Definition at line 751 of file 8250_pci.c.

#define NI8430_PORTCON_TXVR_ENABLE   (1 << 3)

Definition at line 752 of file 8250_pci.c.

#define OCT_REG_CR_OFF   0x500

Definition at line 399 of file 8250_pci.c.

#define PCI_DEVICE_ID_ADVANTECH_PCI3620   0x3620

Definition at line 1188 of file 8250_pci.c.

#define PCI_DEVICE_ID_AGESTAR_9375   0x6872

Definition at line 1214 of file 8250_pci.c.

#define PCI_DEVICE_ID_INTEL_CE4100_UART   0x2e66

Definition at line 1187 of file 8250_pci.c.

#define PCI_DEVICE_ID_INTEL_PATSBURG_KT   0x1d3d

Definition at line 1208 of file 8250_pci.c.

#define PCI_DEVICE_ID_OCTPRO   0x0001

Definition at line 1179 of file 8250_pci.c.

#define PCI_DEVICE_ID_OXSEMI_16PCI958   0x9538

Definition at line 1205 of file 8250_pci.c.

#define PCI_DEVICE_ID_PLX_CRONYX_OMEGA   0xc001

Definition at line 1207 of file 8250_pci.c.

#define PCI_DEVICE_ID_SIIG_1S_10x   (PCI_DEVICE_ID_SIIG_1S_10x_550 & 0xfffc)

Definition at line 463 of file 8250_pci.c.

#define PCI_DEVICE_ID_SIIG_2S1P_20x   (PCI_DEVICE_ID_SIIG_2S1P_20x_550 & 0xfffc)

Definition at line 494 of file 8250_pci.c.

#define PCI_DEVICE_ID_SIIG_2S_10x   (PCI_DEVICE_ID_SIIG_2S_10x_550 & 0xfff8)

Definition at line 464 of file 8250_pci.c.

#define PCI_DEVICE_ID_SIIG_2S_20x   (PCI_DEVICE_ID_SIIG_2S_20x_550 & 0xfffc)

Definition at line 493 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_100E   0xA010

Definition at line 1195 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_200E   0xA012

Definition at line 1196 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_200EI   0xA016

Definition at line 1199 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_200EISI   0xA017

Definition at line 1200 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_200I   0x8028

Definition at line 1189 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_400E   0xA013

Definition at line 1197 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_400EH   0xA009

Definition at line 1194 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_400I   0x8048

Definition at line 1190 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_400V3   0xA310

Definition at line 1201 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_410V3   0xA312

Definition at line 1202 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800E   0xA014

Definition at line 1198 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800EH   0xA007

Definition at line 1192 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800EHB   0xA008

Definition at line 1193 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800I   0x8088

Definition at line 1191 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800V3   0xA314

Definition at line 1203 of file 8250_pci.c.

#define PCI_DEVICE_ID_TITAN_800V3B   0xA315

Definition at line 1204 of file 8250_pci.c.

#define PCI_DEVICE_ID_WCH_CH353_2S1P   0x7053

Definition at line 1212 of file 8250_pci.c.

#define PCI_DEVICE_ID_WCH_CH353_2S1PF   0x5046

Definition at line 1211 of file 8250_pci.c.

#define PCI_DEVICE_ID_WCH_CH353_4S   0x3453

Definition at line 1210 of file 8250_pci.c.

#define PCI_NUM_BAR_RESOURCES   6

Definition at line 51 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_OCTPRO232   0x0108

Definition at line 1180 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_OCTPRO422   0x0208

Definition at line 1181 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_POCTAL232   0x0308

Definition at line 1182 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_POCTAL422   0x0408

Definition at line 1183 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_SIIG_DUAL_00   0x2500

Definition at line 1184 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_SIIG_DUAL_30   0x2530

Definition at line 1185 of file 8250_pci.c.

#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584   0x1584

Definition at line 1218 of file 8250_pci.c.

#define PCI_SUBVENDOR_ID_SBSMODULARIO   0x124B

Definition at line 1178 of file 8250_pci.c.

#define PCI_VENDOR_ID_ADVANTECH   0x13fe

Definition at line 1186 of file 8250_pci.c.

#define PCI_VENDOR_ID_AGESTAR   0x5372

Definition at line 1213 of file 8250_pci.c.

#define PCI_VENDOR_ID_ASIX   0x9710

Definition at line 1215 of file 8250_pci.c.

#define PCI_VENDOR_ID_SBSMODULARIO   0x124B

Definition at line 1177 of file 8250_pci.c.

#define PCI_VENDOR_ID_WCH   0x4348

Definition at line 1209 of file 8250_pci.c.

#define PCIE_DEVICE_ID_NEO_2_OX_IBM   0x00F6

Definition at line 1206 of file 8250_pci.c.

Enumeration Type Documentation

Enumerator:
pbn_default 
pbn_b0_1_115200 
pbn_b0_2_115200 
pbn_b0_4_115200 
pbn_b0_5_115200 
pbn_b0_8_115200 
pbn_b0_1_921600 
pbn_b0_2_921600 
pbn_b0_4_921600 
pbn_b0_2_1130000 
pbn_b0_4_1152000 
pbn_b0_2_1843200 
pbn_b0_4_1843200 
pbn_b0_2_1843200_200 
pbn_b0_4_1843200_200 
pbn_b0_8_1843200_200 
pbn_b0_1_4000000 
pbn_b0_bt_1_115200 
pbn_b0_bt_2_115200 
pbn_b0_bt_4_115200 
pbn_b0_bt_8_115200 
pbn_b0_bt_1_460800 
pbn_b0_bt_2_460800 
pbn_b0_bt_4_460800 
pbn_b0_bt_1_921600 
pbn_b0_bt_2_921600 
pbn_b0_bt_4_921600 
pbn_b0_bt_8_921600 
pbn_b1_1_115200 
pbn_b1_2_115200 
pbn_b1_4_115200 
pbn_b1_8_115200 
pbn_b1_16_115200 
pbn_b1_1_921600 
pbn_b1_2_921600 
pbn_b1_4_921600 
pbn_b1_8_921600 
pbn_b1_2_1250000 
pbn_b1_bt_1_115200 
pbn_b1_bt_2_115200 
pbn_b1_bt_4_115200 
pbn_b1_bt_2_921600 
pbn_b1_1_1382400 
pbn_b1_2_1382400 
pbn_b1_4_1382400 
pbn_b1_8_1382400 
pbn_b2_1_115200 
pbn_b2_2_115200 
pbn_b2_4_115200 
pbn_b2_8_115200 
pbn_b2_1_460800 
pbn_b2_4_460800 
pbn_b2_8_460800 
pbn_b2_16_460800 
pbn_b2_1_921600 
pbn_b2_4_921600 
pbn_b2_8_921600 
pbn_b2_8_1152000 
pbn_b2_bt_1_115200 
pbn_b2_bt_2_115200 
pbn_b2_bt_4_115200 
pbn_b2_bt_2_921600 
pbn_b2_bt_4_921600 
pbn_b3_2_115200 
pbn_b3_4_115200 
pbn_b3_8_115200 
pbn_b4_bt_2_921600 
pbn_b4_bt_4_921600 
pbn_b4_bt_8_921600 
pbn_panacom 
pbn_panacom2 
pbn_panacom4 
pbn_plx_romulus 
pbn_oxsemi 
pbn_oxsemi_1_4000000 
pbn_oxsemi_2_4000000 
pbn_oxsemi_4_4000000 
pbn_oxsemi_8_4000000 
pbn_intel_i960 
pbn_sgi_ioc3 
pbn_computone_4 
pbn_computone_6 
pbn_computone_8 
pbn_sbsxrsio 
pbn_exar_XR17C152 
pbn_exar_XR17C154 
pbn_exar_XR17C158 
pbn_exar_ibm_saturn 
pbn_pasemi_1682M 
pbn_ni8430_2 
pbn_ni8430_4 
pbn_ni8430_8 
pbn_ni8430_16 
pbn_ADDIDATA_PCIe_1_3906250 
pbn_ADDIDATA_PCIe_2_3906250 
pbn_ADDIDATA_PCIe_4_3906250 
pbn_ADDIDATA_PCIe_8_3906250 
pbn_ce4100_1_115200 
pbn_omegapci 
pbn_NETMOS9900_2s_115200 

Definition at line 1849 of file 8250_pci.c.

Function Documentation

EXPORT_SYMBOL_GPL ( pciserial_init_ports  )
EXPORT_SYMBOL_GPL ( pciserial_remove_ports  )
EXPORT_SYMBOL_GPL ( pciserial_suspend_ports  )
EXPORT_SYMBOL_GPL ( pciserial_resume_ports  )
MODULE_DESCRIPTION ( "Generic 8250/16x50 PCI serial probe module"  )
MODULE_DEVICE_TABLE ( pci  ,
serial_pci_tbl   
)
module_exit ( serial8250_pci_exit  )
module_init ( serial8250_pci_init  )
MODULE_LICENSE ( "GPL"  )
struct serial_private* pciserial_init_ports ( struct pci_dev dev,
const struct pciserial_board board 
)
read

Definition at line 2785 of file 8250_pci.c.

void pciserial_remove_ports ( struct serial_private priv)

Definition at line 2859 of file 8250_pci.c.

void pciserial_resume_ports ( struct serial_private priv)

Definition at line 2900 of file 8250_pci.c.

void pciserial_suspend_ports ( struct serial_private priv)

Definition at line 2884 of file 8250_pci.c.