Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77c44ab1 authored by Harald Welte's avatar Harald Welte Committed by Linus Torvalds
Browse files

[PATCH] New Omnikey Cardman 4040 driver



Add new Omnikey Cardman 4040 smartcard reader driver

Signed-off-by: default avatarHarald Welte <laforge@gnumonks.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bca73e4b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1873,6 +1873,11 @@ L: linux-tr@linuxtr.net
W:	http://www.linuxtr.net
S:	Maintained

OMNIKEY CARDMAN 4040 DRIVER
P:	Harald Welte
M:	laforge@gnumonks.org
S:	Maintained

ONSTREAM SCSI TAPE DRIVER
P:	Willem Riede
M:	osst@riede.org
+13 −0
Original line number Diff line number Diff line
@@ -18,5 +18,18 @@ config SYNCLINK_CS
	  The module will be called synclinkmp.  If you want to do that, say M
	  here.

config CARDMAN_4040
	tristate "Omnikey CardMan 4040 support"
	depends on PCMCIA
	help
	  Enable support for the Omnikey CardMan 4040 PCMCIA Smartcard
	  reader.

	  This card is basically a USB CCID device connected to a FIFO
	  in I/O space.  To use the kernel driver, you will need either the
	  PC/SC ifdhandler provided from the Omnikey homepage
	  (http://www.omnikey.com/), or a current development version of OpenCT
	  (http://www.opensc.org/).

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -5,3 +5,4 @@
#

obj-$(CONFIG_SYNCLINK_CS) += synclink_cs.o
obj-$(CONFIG_CARDMAN_4040) += cm4040_cs.o
+841 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −0
Original line number Diff line number Diff line
#ifndef	_CM4040_H_
#define	_CM4040_H_

#define	CM_MAX_DEV		4

#define	DEVICE_NAME		"cmx"
#define	MODULE_NAME		"cm4040_cs"

#define REG_OFFSET_BULK_OUT      0
#define REG_OFFSET_BULK_IN       0
#define REG_OFFSET_BUFFER_STATUS 1
#define REG_OFFSET_SYNC_CONTROL  2

#define BSR_BULK_IN_FULL  0x02
#define BSR_BULK_OUT_FULL 0x01

#define SCR_HOST_TO_READER_START 0x80
#define SCR_ABORT                0x40
#define SCR_EN_NOTIFY            0x20
#define SCR_ACK_NOTIFY           0x10
#define SCR_READER_TO_HOST_DONE  0x08
#define SCR_HOST_TO_READER_DONE  0x04
#define SCR_PULSE_INTERRUPT      0x02
#define SCR_POWER_DOWN           0x01


#define  CMD_PC_TO_RDR_ICCPOWERON       0x62
#define  CMD_PC_TO_RDR_GETSLOTSTATUS    0x65
#define  CMD_PC_TO_RDR_ICCPOWEROFF      0x63
#define  CMD_PC_TO_RDR_SECURE           0x69
#define  CMD_PC_TO_RDR_GETPARAMETERS    0x6C
#define  CMD_PC_TO_RDR_RESETPARAMETERS  0x6D
#define  CMD_PC_TO_RDR_SETPARAMETERS    0x61
#define  CMD_PC_TO_RDR_XFRBLOCK         0x6F
#define  CMD_PC_TO_RDR_ESCAPE           0x6B
#define  CMD_PC_TO_RDR_ICCCLOCK         0x6E
#define  CMD_PC_TO_RDR_TEST_SECURE      0x74
#define  CMD_PC_TO_RDR_OK_SECURE        0x89


#define  CMD_RDR_TO_PC_SLOTSTATUS         0x81
#define  CMD_RDR_TO_PC_DATABLOCK          0x80
#define  CMD_RDR_TO_PC_PARAMETERS         0x82
#define  CMD_RDR_TO_PC_ESCAPE             0x83
#define  CMD_RDR_TO_PC_OK_SECURE          0x89

#endif	/* _CM4040_H_ */