Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
peak_pcmcia.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/io.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
#include <linux/can.h>
#include <linux/can/dev.h>
#include "sja1000.h"

Go to the source code of this file.

Data Structures

struct  pcan_channel
 
struct  pcan_pccard
 

Macros

#define PCC_NAME   "peak_pcmcia"
 
#define PCC_CHAN_MAX   2
 
#define PCC_CAN_CLOCK   (16000000 / 2)
 
#define PCC_MANF_ID   0x0377
 
#define PCC_CARD_ID   0x0001
 
#define PCC_CHAN_SIZE   0x20
 
#define PCC_CHAN_OFF(c)   ((c) * PCC_CHAN_SIZE)
 
#define PCC_COMN_OFF   (PCC_CHAN_OFF(PCC_CHAN_MAX))
 
#define PCC_COMN_SIZE   0x40
 
#define PCC_CCR   0x00
 
#define PCC_CSR   0x02
 
#define PCC_CPR   0x04
 
#define PCC_SPI_DIR   0x06
 
#define PCC_SPI_DOR   0x08
 
#define PCC_SPI_ADR   0x0a
 
#define PCC_SPI_IR   0x0c
 
#define PCC_FW_MAJOR   0x10
 
#define PCC_FW_MINOR   0x12
 
#define PCC_CCR_CLK_16   0x00
 
#define PCC_CCR_CLK_10   0x01
 
#define PCC_CCR_CLK_21   0x02
 
#define PCC_CCR_CLK_8   0x03
 
#define PCC_CCR_CLK_MASK   PCC_CCR_CLK_8
 
#define PCC_CCR_RST_CHAN(c)   (0x01 << ((c) + 2))
 
#define PCC_CCR_RST_ALL   (PCC_CCR_RST_CHAN(0) | PCC_CCR_RST_CHAN(1))
 
#define PCC_CCR_RST_MASK   PCC_CCR_RST_ALL
 
#define PCC_LED(c)   (1 << (c))
 
#define PCC_LED_ALL   (PCC_LED(0) | PCC_LED(1))
 
#define PCC_LED_ON   0x00
 
#define PCC_LED_FAST   0x01
 
#define PCC_LED_SLOW   0x02
 
#define PCC_LED_OFF   0x03
 
#define PCC_CCR_LED_CHAN(s, c)   ((s) << (((c) + 2) << 1))
 
#define PCC_CCR_LED_ON_CHAN(c)   PCC_CCR_LED_CHAN(PCC_LED_ON, c)
 
#define PCC_CCR_LED_FAST_CHAN(c)   PCC_CCR_LED_CHAN(PCC_LED_FAST, c)
 
#define PCC_CCR_LED_SLOW_CHAN(c)   PCC_CCR_LED_CHAN(PCC_LED_SLOW, c)
 
#define PCC_CCR_LED_OFF_CHAN(c)   PCC_CCR_LED_CHAN(PCC_LED_OFF, c)
 
#define PCC_CCR_LED_MASK_CHAN(c)   PCC_CCR_LED_OFF_CHAN(c)
 
#define PCC_CCR_LED_OFF_ALL
 
#define PCC_CCR_LED_MASK   PCC_CCR_LED_OFF_ALL
 
#define PCC_CCR_INIT   (PCC_CCR_CLK_16 | PCC_CCR_RST_ALL | PCC_CCR_LED_OFF_ALL)
 
#define PCC_CSR_SPI_BUSY   0x04
 
#define PCC_SPI_MAX_BUSY_WAIT_MS   3
 
#define PCC_WRITE_MAX_LOOP   1000
 
#define PCC_ISR_MAX_LOOP   10
 
#define PCC_EEP_WRITE(a)   (0x02 | (((a) & 0x100) >> 5))
 
#define PCC_EEP_READ(a)   (0x03 | (((a) & 0x100) >> 5))
 
#define PCC_EEP_WRDI   0x04 /* EEPROM Write Disable */
 
#define PCC_EEP_RDSR   0x05 /* EEPROM Read Status Register */
 
#define PCC_EEP_WREN   0x06 /* EEPROM Write Enable */
 
#define PCC_EEP_SR_WEN   0x02 /* EEPROM SR Write Enable bit */
 
#define PCC_EEP_SR_WIP   0x01 /* EEPROM SR Write In Progress bit */
 
#define PCC_OCR   (OCR_TX0_PUSHPULL | OCR_TX1_PUSHPULL)
 
#define PCC_CDR   (CDR_CBP | CDR_CLKOUT_MASK)
 

Functions

 MODULE_AUTHOR ("Stephane Grosjean <[email protected]>")
 
 MODULE_DESCRIPTION ("CAN driver for PEAK-System PCAN-PC Cards")
 
 MODULE_LICENSE ("GPL v2")
 
 MODULE_SUPPORTED_DEVICE ("PEAK PCAN-PC Card")
 
 MODULE_DEVICE_TABLE (pcmcia, pcan_table)
 
 module_init (pcan_init)
 
 module_exit (pcan_exit)
 

Macro Definition Documentation

#define PCC_CAN_CLOCK   (16000000 / 2)

Definition at line 40 of file peak_pcmcia.c.

#define PCC_CARD_ID   0x0001

Definition at line 43 of file peak_pcmcia.c.

#define PCC_CCR   0x00

Definition at line 51 of file peak_pcmcia.c.

#define PCC_CCR_CLK_10   0x01

Definition at line 63 of file peak_pcmcia.c.

#define PCC_CCR_CLK_16   0x00

Definition at line 62 of file peak_pcmcia.c.

#define PCC_CCR_CLK_21   0x02

Definition at line 64 of file peak_pcmcia.c.

#define PCC_CCR_CLK_8   0x03

Definition at line 65 of file peak_pcmcia.c.

#define PCC_CCR_CLK_MASK   PCC_CCR_CLK_8

Definition at line 66 of file peak_pcmcia.c.

#define PCC_CCR_INIT   (PCC_CCR_CLK_16 | PCC_CCR_RST_ALL | PCC_CCR_LED_OFF_ALL)

Definition at line 93 of file peak_pcmcia.c.

#define PCC_CCR_LED_CHAN (   s,
  c 
)    ((s) << (((c) + 2) << 1))

Definition at line 82 of file peak_pcmcia.c.

#define PCC_CCR_LED_FAST_CHAN (   c)    PCC_CCR_LED_CHAN(PCC_LED_FAST, c)

Definition at line 85 of file peak_pcmcia.c.

#define PCC_CCR_LED_MASK   PCC_CCR_LED_OFF_ALL

Definition at line 91 of file peak_pcmcia.c.

#define PCC_CCR_LED_MASK_CHAN (   c)    PCC_CCR_LED_OFF_CHAN(c)

Definition at line 88 of file peak_pcmcia.c.

#define PCC_CCR_LED_OFF_ALL
Value:
PCC_CCR_LED_OFF_CHAN(1))

Definition at line 89 of file peak_pcmcia.c.

#define PCC_CCR_LED_OFF_CHAN (   c)    PCC_CCR_LED_CHAN(PCC_LED_OFF, c)

Definition at line 87 of file peak_pcmcia.c.

#define PCC_CCR_LED_ON_CHAN (   c)    PCC_CCR_LED_CHAN(PCC_LED_ON, c)

Definition at line 84 of file peak_pcmcia.c.

#define PCC_CCR_LED_SLOW_CHAN (   c)    PCC_CCR_LED_CHAN(PCC_LED_SLOW, c)

Definition at line 86 of file peak_pcmcia.c.

#define PCC_CCR_RST_ALL   (PCC_CCR_RST_CHAN(0) | PCC_CCR_RST_CHAN(1))

Definition at line 69 of file peak_pcmcia.c.

#define PCC_CCR_RST_CHAN (   c)    (0x01 << ((c) + 2))

Definition at line 68 of file peak_pcmcia.c.

#define PCC_CCR_RST_MASK   PCC_CCR_RST_ALL

Definition at line 70 of file peak_pcmcia.c.

#define PCC_CDR   (CDR_CBP | CDR_CLKOUT_MASK)

Definition at line 136 of file peak_pcmcia.c.

#define PCC_CHAN_MAX   2

Definition at line 38 of file peak_pcmcia.c.

#define PCC_CHAN_OFF (   c)    ((c) * PCC_CHAN_SIZE)

Definition at line 46 of file peak_pcmcia.c.

#define PCC_CHAN_SIZE   0x20

Definition at line 45 of file peak_pcmcia.c.

#define PCC_COMN_OFF   (PCC_CHAN_OFF(PCC_CHAN_MAX))

Definition at line 47 of file peak_pcmcia.c.

#define PCC_COMN_SIZE   0x40

Definition at line 48 of file peak_pcmcia.c.

#define PCC_CPR   0x04

Definition at line 53 of file peak_pcmcia.c.

#define PCC_CSR   0x02

Definition at line 52 of file peak_pcmcia.c.

#define PCC_CSR_SPI_BUSY   0x04

Definition at line 96 of file peak_pcmcia.c.

#define PCC_EEP_RDSR   0x05 /* EEPROM Read Status Register */

Definition at line 113 of file peak_pcmcia.c.

#define PCC_EEP_READ (   a)    (0x03 | (((a) & 0x100) >> 5))

Definition at line 111 of file peak_pcmcia.c.

#define PCC_EEP_SR_WEN   0x02 /* EEPROM SR Write Enable bit */

Definition at line 117 of file peak_pcmcia.c.

#define PCC_EEP_SR_WIP   0x01 /* EEPROM SR Write In Progress bit */

Definition at line 118 of file peak_pcmcia.c.

#define PCC_EEP_WRDI   0x04 /* EEPROM Write Disable */

Definition at line 112 of file peak_pcmcia.c.

#define PCC_EEP_WREN   0x06 /* EEPROM Write Enable */

Definition at line 114 of file peak_pcmcia.c.

#define PCC_EEP_WRITE (   a)    (0x02 | (((a) & 0x100) >> 5))

Definition at line 110 of file peak_pcmcia.c.

#define PCC_FW_MAJOR   0x10

Definition at line 58 of file peak_pcmcia.c.

#define PCC_FW_MINOR   0x12

Definition at line 59 of file peak_pcmcia.c.

#define PCC_ISR_MAX_LOOP   10

Definition at line 106 of file peak_pcmcia.c.

#define PCC_LED (   c)    (1 << (c))

Definition at line 73 of file peak_pcmcia.c.

#define PCC_LED_ALL   (PCC_LED(0) | PCC_LED(1))

Definition at line 74 of file peak_pcmcia.c.

#define PCC_LED_FAST   0x01

Definition at line 78 of file peak_pcmcia.c.

#define PCC_LED_OFF   0x03

Definition at line 80 of file peak_pcmcia.c.

#define PCC_LED_ON   0x00

Definition at line 77 of file peak_pcmcia.c.

#define PCC_LED_SLOW   0x02

Definition at line 79 of file peak_pcmcia.c.

#define PCC_MANF_ID   0x0377

Definition at line 42 of file peak_pcmcia.c.

#define PCC_NAME   "peak_pcmcia"

Definition at line 36 of file peak_pcmcia.c.

#define PCC_OCR   (OCR_TX0_PUSHPULL | OCR_TX1_PUSHPULL)

Definition at line 128 of file peak_pcmcia.c.

#define PCC_SPI_ADR   0x0a

Definition at line 56 of file peak_pcmcia.c.

#define PCC_SPI_DIR   0x06

Definition at line 54 of file peak_pcmcia.c.

#define PCC_SPI_DOR   0x08

Definition at line 55 of file peak_pcmcia.c.

#define PCC_SPI_IR   0x0c

Definition at line 57 of file peak_pcmcia.c.

#define PCC_SPI_MAX_BUSY_WAIT_MS   3

Definition at line 99 of file peak_pcmcia.c.

#define PCC_WRITE_MAX_LOOP   1000

Definition at line 103 of file peak_pcmcia.c.

Function Documentation

MODULE_AUTHOR ( "Stephane Grosjean <[email protected]>"  )
MODULE_DESCRIPTION ( "CAN driver for PEAK-System PCAN-PC Cards"  )
MODULE_DEVICE_TABLE ( pcmcia  ,
pcan_table   
)
module_exit ( pcan_exit  )
module_init ( pcan_init  )
MODULE_LICENSE ( "GPL v2 )
MODULE_SUPPORTED_DEVICE ( "PEAK PCAN-PC Card"  )