Main Page | Data Structures | File List | Data Fields | Globals

serial_io.h File Reference


Detailed Description

UART and /proc support for serial routing.

Author:
Andrew Roca
Exports UART and /proc support for serial routing

#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/version.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/list.h>
#include <linux/ioport.h>
#include <linux/serial.h>
#include <linux/interrupt.h>
#include <linux/string.h>
#include <linux/spinlock.h>
#include <linux/mtd/mtd.h>
#include <linux/crypto.h>
#include <asm/uaccess.h>
#include "axis_hardware.h"

Include dependency graph for serial_io.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  text_to_int
 element in array that supports integer to string and string to integer lookup More...


Defines

#define ROUTE_TO_RS232   0
#define ROUTE_TO_TTL   1
#define ROUTE_TO_CCTALK   2
#define ROUTE_TO_RS485   3
#define UART_ENABLE   4
#define FPGA_UART_1_SHIFT   0
#define FPGA_UART_2_SHIFT   3
#define FPGA_UART_3_SHIFT   6
#define FPGA_UART_4_SHIFT   9
#define UART1_DEFAULT   ((ROUTE_TO_RS232|UART_ENABLE)<<FPGA_UART_1_SHIFT)
#define UART2_DEFAULT   ((ROUTE_TO_CCTALK|UART_ENABLE)<<FPGA_UART_2_SHIFT)
#define UART3_DEFAULT   ((ROUTE_TO_RS232|UART_ENABLE)<<FPGA_UART_3_SHIFT)
#define UART4_DEFAULT   ((ROUTE_TO_RS485|UART_ENABLE)<<FPGA_UART_4_SHIFT)
#define RS232_A_ENABLE_OFFSET   16
#define TTL_A_ENABLE_OFFSET   18
#define CCTALK_A_ENABLE_OFFSET   20
#define RS485_A_ENABLE_OFFSET   22
#define RS232_B_ENABLE_OFFSET   17
#define TTL_B_ENABLE_OFFSET   19
#define CCTALK_B_ENABLE_OFFSET   21
#define RS485_B_ENABLE_OFFSET   23
#define UARTA_ENABLE_DEFAULT   ((1<<RS232_A_ENABLE_OFFSET)|(0<<TTL_A_ENABLE_OFFSET)|(1<<CCTALK_A_ENABLE_OFFSET)|(0<<RS485_A_ENABLE_OFFSET))
#define UARTB_ENABLE_DEFAULT   ((1<<RS232_B_ENABLE_OFFSET)|(0<<TTL_B_ENABLE_OFFSET)|(0<<CCTALK_B_ENABLE_OFFSET)|(1<<RS485_B_ENABLE_OFFSET))
#define UART_ROUTING_DEFAULT   (UART1_DEFAULT|UART2_DEFAULT|UART3_DEFAULT|UART4_DEFAULT|UARTA_ENABLE_DEFAULT|UARTB_ENABLE_DEFAULT)
#define MAX_VALID_ROUTE_VALUE   (ROUTE_TO_RS485)
#define NUMBER_OF_ROUTABLE_UARTS   4
#define NUMBER_OF_SERIAL_OUTPUTS   (sizeof(serial_output_enable_table)/sizeof(serial_output_enable_table[0]))
#define SMART_CARD_RESET   (1<<12)
#define SMART_CARD_CLOCK_ENABLE   (1<<13)

Functions

void create_proc_smart_card_entries (struct axis_pci_device_entry *device)
 Creates a smart card releated /proc file system.

void delete_proc_smart_card_entries (struct axis_pci_device_entry *device)
 removes smart card related entries from axis /proc filesystem

void create_proc_serial_entries (struct axis_pci_device_entry *device)
 Create /proc entries assoicated with serial routing.

void delete_proc_serial_entries (struct axis_pci_device_entry *device)
 Remove serial routing /proc entries.

void disable_uarts (struct axis_pci_device_entry *device)
 Cleanup code for 16550's.

void enable_uarts (struct axis_pci_device_entry *device)
 register Axis 16550's with kernel serial module


Define Documentation

#define CCTALK_A_ENABLE_OFFSET   20
 

#define CCTALK_B_ENABLE_OFFSET   21
 

#define FPGA_UART_1_SHIFT   0
 

#define FPGA_UART_2_SHIFT   3
 

#define FPGA_UART_3_SHIFT   6
 

#define FPGA_UART_4_SHIFT   9
 

#define MAX_VALID_ROUTE_VALUE   (ROUTE_TO_RS485)
 

#define NUMBER_OF_ROUTABLE_UARTS   4
 

#define NUMBER_OF_SERIAL_OUTPUTS   (sizeof(serial_output_enable_table)/sizeof(serial_output_enable_table[0]))
 

#define ROUTE_TO_CCTALK   2
 

#define ROUTE_TO_RS232   0
 

#define ROUTE_TO_RS485   3
 

#define ROUTE_TO_TTL   1
 

#define RS232_A_ENABLE_OFFSET   16
 

#define RS232_B_ENABLE_OFFSET   17
 

#define RS485_A_ENABLE_OFFSET   22
 

#define RS485_B_ENABLE_OFFSET   23
 

#define SMART_CARD_CLOCK_ENABLE   (1<<13)
 

#define SMART_CARD_RESET   (1<<12)
 

#define TTL_A_ENABLE_OFFSET   18
 

#define TTL_B_ENABLE_OFFSET   19
 

#define UART1_DEFAULT   ((ROUTE_TO_RS232|UART_ENABLE)<<FPGA_UART_1_SHIFT)
 

#define UART2_DEFAULT   ((ROUTE_TO_CCTALK|UART_ENABLE)<<FPGA_UART_2_SHIFT)
 

#define UART3_DEFAULT   ((ROUTE_TO_RS232|UART_ENABLE)<<FPGA_UART_3_SHIFT)
 

#define UART4_DEFAULT   ((ROUTE_TO_RS485|UART_ENABLE)<<FPGA_UART_4_SHIFT)
 

#define UART_ENABLE   4
 

#define UART_ROUTING_DEFAULT   (UART1_DEFAULT|UART2_DEFAULT|UART3_DEFAULT|UART4_DEFAULT|UARTA_ENABLE_DEFAULT|UARTB_ENABLE_DEFAULT)
 

#define UARTA_ENABLE_DEFAULT   ((1<<RS232_A_ENABLE_OFFSET)|(0<<TTL_A_ENABLE_OFFSET)|(1<<CCTALK_A_ENABLE_OFFSET)|(0<<RS485_A_ENABLE_OFFSET))
 

#define UARTB_ENABLE_DEFAULT   ((1<<RS232_B_ENABLE_OFFSET)|(0<<TTL_B_ENABLE_OFFSET)|(0<<CCTALK_B_ENABLE_OFFSET)|(1<<RS485_B_ENABLE_OFFSET))
 


Function Documentation

void create_proc_serial_entries struct axis_pci_device_entry device  ) 
 

Create /proc entries assoicated with serial routing.

Parameters:
device - hardware master structure
Returns:
NONE

Called by the PCI probe function creates a directory full of entries to allow queries and reconfiguration of the serial port routing

Here is the call graph for this function:

void create_proc_smart_card_entries struct axis_pci_device_entry device  ) 
 

Creates a smart card releated /proc file system.

Parameters:
device - hardware master structure
Returns:
none

Creates a smart card releated /proc file system

Here is the call graph for this function:

void delete_proc_serial_entries struct axis_pci_device_entry device  ) 
 

Remove serial routing /proc entries.

Parameters:
device - hardware master structure
Returns:
NONE

Remove all the entries in the /proc file system related to serial routing

void delete_proc_smart_card_entries struct axis_pci_device_entry device  ) 
 

removes smart card related entries from axis /proc filesystem

Parameters:
device - hardware master structure
Returns:
none

removes smart card related entries from axis /proc filesystem

void disable_uarts struct axis_pci_device_entry device  ) 
 

Cleanup code for 16550's.

Parameters:
device - hardware master structure
Returns:
NONE

Tell the serial subsystem that we are about to unload so ask it to return control of the 16550's

Here is the call graph for this function:

void enable_uarts struct axis_pci_device_entry device  ) 
 

register Axis 16550's with kernel serial module

Parameters:
device - hardware master structure
Returns:
NONE

Enable uart interrupts setup the PCI region (1) map a chip select and then register the uarts with the kernel serial driver

Here is the call graph for this function:


Generated on Fri Jan 28 12:37:18 2005 for Axis Kernel Driver by doxygen 1.3.6