forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'tty-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel…
…/git/gregkh/tty Pull tty/serial updates from Greg KH: "Here is the big tty and serial pull request for 4.20-rc1 Lots of little things here, including a merge from the SPI tree in order to keep things simpler for everyone to sync around for one platform. Major stuff is: - tty buffer clearing after use - atmel_serial fixes and additions - xilinx uart driver updates and of course, lots of tiny fixes and additions to individual serial drivers. All of these have been in linux-next with no reported issues for a while" * tag 'tty-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (66 commits) of: base: Change logic in of_alias_get_alias_list() of: base: Fix english spelling in of_alias_get_alias_list() serial: sh-sci: do not warn if DMA transfers are not supported serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES tty: check name length in tty_find_polling_driver() serial: sh-sci: Add r8a77990 support tty: wipe buffer if not echoing data tty: wipe buffer. serial: fsl_lpuart: Remove the alias node dependence TTY: sn_console: Replace spin_is_locked() with spin_trylock() Revert "serial:serial_core: Allow use of CTS for PPS line discipline" serial: 8250_uniphier: add auto-flow-control support serial: 8250_uniphier: flatten probe function serial: 8250_uniphier: remove unused "fifo-size" property dt-bindings: serial: sh-sci: Document r8a7744 bindings serial: uartps: Fix missing unlock on error in cdns_get_id() tty/serial: atmel: add ISO7816 support tty/serial_core: add ISO7816 infrastructure serial:serial_core: Allow use of CTS for PPS line discipline serial: docs: Fix filename for serial reference implementation ...
- Loading branch information
Showing
43 changed files
with
977 additions
and
380 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,7 @@ This document is meant as a brief overview of some aspects of the new serial | |
driver. It is not complete, any questions you have should be directed to | ||
<[email protected]> | ||
|
||
The reference implementation is contained within amba_pl011.c. | ||
The reference implementation is contained within amba-pl011.c. | ||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
ISO7816 SERIAL COMMUNICATIONS | ||
|
||
1. INTRODUCTION | ||
|
||
ISO/IEC7816 is a series of standards specifying integrated circuit cards (ICC) | ||
also known as smart cards. | ||
|
||
2. HARDWARE-RELATED CONSIDERATIONS | ||
|
||
Some CPUs/UARTs (e.g., Microchip AT91) contain a built-in mode capable of | ||
handling communication with a smart card. | ||
|
||
For these microcontrollers, the Linux driver should be made capable of | ||
working in both modes, and proper ioctls (see later) should be made | ||
available at user-level to allow switching from one mode to the other, and | ||
vice versa. | ||
|
||
3. DATA STRUCTURES ALREADY AVAILABLE IN THE KERNEL | ||
|
||
The Linux kernel provides the serial_iso7816 structure (see [1]) to handle | ||
ISO7816 communications. This data structure is used to set and configure | ||
ISO7816 parameters in ioctls. | ||
|
||
Any driver for devices capable of working both as RS232 and ISO7816 should | ||
implement the iso7816_config callback in the uart_port structure. The | ||
serial_core calls iso7816_config to do the device specific part in response | ||
to TIOCGISO7816 and TIOCSISO7816 ioctls (see below). The iso7816_config | ||
callback receives a pointer to struct serial_iso7816. | ||
|
||
4. USAGE FROM USER-LEVEL | ||
|
||
From user-level, ISO7816 configuration can be get/set using the previous | ||
ioctls. For instance, to set ISO7816 you can use the following code: | ||
|
||
#include <linux/serial.h> | ||
|
||
/* Include definition for ISO7816 ioctls: TIOCSISO7816 and TIOCGISO7816 */ | ||
#include <sys/ioctl.h> | ||
|
||
/* Open your specific device (e.g., /dev/mydevice): */ | ||
int fd = open ("/dev/mydevice", O_RDWR); | ||
if (fd < 0) { | ||
/* Error handling. See errno. */ | ||
} | ||
|
||
struct serial_iso7816 iso7816conf; | ||
|
||
/* Reserved fields as to be zeroed */ | ||
memset(&iso7816conf, 0, sizeof(iso7816conf)); | ||
|
||
/* Enable ISO7816 mode: */ | ||
iso7816conf.flags |= SER_ISO7816_ENABLED; | ||
|
||
/* Select the protocol: */ | ||
/* T=0 */ | ||
iso7816conf.flags |= SER_ISO7816_T(0); | ||
/* or T=1 */ | ||
iso7816conf.flags |= SER_ISO7816_T(1); | ||
|
||
/* Set the guard time: */ | ||
iso7816conf.tg = 2; | ||
|
||
/* Set the clock frequency*/ | ||
iso7816conf.clk = 3571200; | ||
|
||
/* Set transmission factors: */ | ||
iso7816conf.sc_fi = 372; | ||
iso7816conf.sc_di = 1; | ||
|
||
if (ioctl(fd_usart, TIOCSISO7816, &iso7816conf) < 0) { | ||
/* Error handling. See errno. */ | ||
} | ||
|
||
/* Use read() and write() syscalls here... */ | ||
|
||
/* Close the device when finished: */ | ||
if (close (fd) < 0) { | ||
/* Error handling. See errno. */ | ||
} | ||
|
||
5. REFERENCES | ||
|
||
[1] include/uapi/linux/serial.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.