Commit Graph

199 Commits

Author SHA1 Message Date
Mark Schulte
b3222bbc8a irq_dispatch: Add argument pointer to irq_dispatch
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
08c001196b drivers/: Remove all explicit use of 'hidden' macro _info. Code must never use this directly. Code must always use a debug macro such as info which is basic on _info but can be appropriately filtered. 2017-01-15 13:00:50 -06:00
Gregory Nutt
4fcbe8e410 drivers: Disable priority inheritance on all semaphores used for signaling 2016-11-03 11:00:47 -06:00
Gregory Nutt
47b043df1e drivers/serial.c: Make sure that priority inheritance is not enabled for the signaling semaphores used in the serial driver. 2016-11-03 08:16:59 -06:00
Gregory Nutt
79c8bb7ddf Updae more comments 2016-07-27 08:03:09 -06:00
Gregory Nutt
59e0c4411f Correct some comments 2016-07-26 13:39:20 -06:00
Gregory Nutt
0c7f5d62e4 More comments 2016-07-26 12:13:30 -06:00
Gregory Nutt
084d200a66 PTY: Cosmetic, update some comments 2016-07-26 10:09:35 -06:00
Gregory Nutt
eaaa69da0a serial.c: Fix an error in FIONWRITE calculation 2016-07-26 06:47:53 -06:00
Gregory Nutt
e0b4a10dfa drivers/serial/pty.c, serial.c, usbdev/cdcacm.c, include/nuttx/fs/ioctl.h: Fix FIONWRITE and add FIONSPACE. All implementations of FIONWRITE were wrong. FIONWRITE should return the number of bytes waiting in the outgoing send queue, not the free space. Rather, FIONSPACE should return the free space in the send queue. 2016-07-25 14:06:32 -06:00
Gregory Nutt
9a8c3572db serial.c: Fix a race condition noted by Stefan Kolb. Between the test if the TX buffer is full and entering a critical section, bytes may be removed from the TX buffer making the wait unnecessary. The unnecessary wait is an inefficiency, but not really a problem. But with USB CDC/ACM it can be a problem because the entire TX buffer may be emptied when we lose the race. If that happens that uart_putxmitchar() can hang waiting for data to be removed from an empty TX buffer. 2016-07-22 07:47:59 -06:00
Gregory Nutt
10fff9011a Move include/nuttx/configdata.h to include/nuttx/mtd/configdata.h 2016-07-21 13:34:54 -06:00
Gregory Nutt
4b4dbc79a2 Move driver related prototypes out of include/nuttx/fs/fs.h and into new include/drivers/drivers.h 2016-07-20 13:15:37 -06:00
Gregory Nutt
2cacc6204a Kconfig: If Pseudo-terminals are enabled, then pipes must be selected as well 2016-07-19 14:26:40 -06:00
Gregory Nutt
318f34fb7d Psuedo-terminal pipe size is now configurable 2016-07-19 14:26:41 -06:00
Gregory Nutt
56582e2263 Update some comments 2016-07-19 10:40:23 -06:00
Gregory Nutt
8bf4684de8 Update some comments 2016-07-19 09:53:52 -06:00
Gregory Nutt
a4458c5016 PTY: Fix a race condition in test-fifo-empty-before-read logic 2016-07-19 06:45:02 -06:00
Gregory Nutt
d9fbf4c90f Eliminate some warnings 2016-07-18 11:27:06 -06:00
Gregory Nutt
1660329d06 Rename up_rnginitialize to devrandom_register 2016-07-18 10:55:37 -06:00
Gregory Nutt
6194467c13 PTY: Fix termios read input processing.. what was I thinking? Also, if some data was read, pty_read() should not block on the empty FIFO. 2016-07-18 08:00:56 -06:00
Gregory Nutt
ded91e451b PTY: Add TERMIOS support. 2016-07-16 10:43:44 -06:00
Alan Carvalho de Assis
8fa14b8fed Fix poll-related compile issues introduced with recent PTY changes 2016-07-16 07:03:38 -06:00
Gregory Nutt
6a75f2df89 PTY: Add some encode to reduce the likely of misinterpreting the return value of the file open() method 2016-07-15 17:13:21 -06:00
Gregory Nutt
4b1553d3ad PTY: Fix some tricky issues. Now seems to be working. A lot more testing is needed 2016-07-15 14:29:32 -06:00
Gregory Nutt
4b5149b244 PTY: Fix a few errors from early testing 2016-07-15 14:09:02 -06:00
Gregory Nutt
9ecd558002 Add the correct implementation of the file_poll() function 2016-07-15 11:34:08 -06:00
Gregory Nutt
f7f7036db8 Update some comments 2016-07-15 11:15:33 -06:00
Gregory Nutt
4d1b811117 PTY: Add support for the poll() method. 2016-07-15 10:07:33 -06:00
Gregory Nutt
95555a0199 PTY: Add ioctls to support locking and unlocking of the slave. LIBC: Add implementation of unlockpt() 2016-07-15 09:39:33 -06:00
Gregory Nutt
6139860c0b PTY: Added PTY IOCTL command definitions. Add support for TIOCGPTN. LIB: Implement ptsname() and ptsname_r() 2016-07-15 08:33:47 -06:00
Gregory Nutt
bcbe9806d2 In SUSv1 model, need to tried the PTY driver pair as unlinked if the master closes its reference 2016-07-15 07:33:48 -06:00
Gregory Nutt
14c216107a PTY: Need to free PTMX minor number is slave is unlinked 2016-07-15 07:22:36 -06:00
Gregory Nutt
e50646336b Add PTY header files 2016-07-15 07:19:42 -06:00
Gregory Nutt
7fa5093fff PTYs prototypes hooked into build and configuration system (as EXPERIMENTAL) 2016-07-15 06:48:10 -06:00
Gregory Nutt
ccf4bfafcb Prototype versions of ptmx/pty suppoprt. Still under developement; not yet hooked into build or configuration system. 2016-07-14 20:20:48 -06:00
Heath Petersen
dc72e16625 handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not enabled 2016-07-12 06:50:58 +00:00
Gregory Nutt
29a99bef0f serial/Kconfig: Oops put SERIAL_CONSOLE definition within if-endif condition. Better outside 2016-06-20 17:49:16 -06:00
Gregory Nutt
9434d3e945 There is now one-and-only-one copy of syslog_putc. It is in the SYSLOG channel logic and can redirect syslog output as needed. All former syslog_putc versions were renamed and the corresponding SYSLOG device initializaiton now calls syslog_channel() 2016-06-19 13:03:20 -06:00
Gregory Nutt
0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt
efb02f2ef1 drivers/: Change some nerr() ERRORS to nwarn() WARNINGS. Anomolous network evernts are not errors. 2016-06-12 08:31:22 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Paul A. Patience
f8f7b7582c Silence some warnings 2016-05-26 14:06:13 -04:00
Gregory Nutt
9ec104834a Remove CONFIG_USARTn_ISUART 2016-05-25 11:21:48 -06:00
Gregory Nutt
c089a2f241 Rename CONFIG_ARCH_HAVE_OTHER_UART to CONFIG_OTHER_UART_SERIALDRIVER 2016-05-25 10:48:33 -06:00
Gregory Nutt
e2e6ce3f1b Rename CONFIG_ARCH_HAVE_SCIn to CONFIG_SCIn_SERIALDRIVER 2016-05-25 10:46:55 -06:00
Gregory Nutt
2a87741e72 Rename CONFIG_ARCH_HAVE_UARTn to CONFIG_UARTn_SERIALDRIVER 2016-05-25 10:45:01 -06:00
Gregory Nutt
249a2e48e5 Rename CONFIG_ARCH_HAVE_USARTn to CONFIG_USARTn_SERIALDRIVER 2016-05-25 10:39:23 -06:00
Gregory Nutt
050f544782 Fix typo in variable name in serial BREAK logic. Review other serial implementations for similar naming problems. 2016-05-05 11:30:47 -06:00
Gregory Nutt
0fb035f76b Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
Gregory Nutt
2244ed46bc nuttx/drivers: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 07:32:58 -06:00
Gregory Nutt
ce2a0b6b51 Eliminate a warning 2016-01-06 10:05:39 -06:00
Gregory Nutt
ab9d124528 serial: Remove confusing inline functions. Correct attribution for serial DMA logic 2015-11-15 08:39:01 -06:00
Gregory Nutt
7f1ac36194 Serial driver: Move serial DMA logic to a separate file 2015-11-15 07:58:08 -06:00
Max Neklyudov
d54a39832a Implement high level DMA infrastructure for serial devices 2015-11-12 14:16:19 -06:00
Gregory Nutt
cf14f8d1b5 drivers/: Fixes to spacing and alignement 2015-10-10 10:41:00 -06:00
Gregory Nutt
0b12dbf95d Fix some spacing problems 2015-10-04 15:04:00 -06:00
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Anton D. Kachalov
1bb74504a8 Add support for custom platform IOCTL on UART
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-08-03 15:32:51 +03:00
Anton D. Kachalov
a07ed262b4 Revert "Two more places there THRE is used with inverted sense"
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-08-03 13:21:01 +03:00
Anton D. Kachalov
2fa6237b49 Revert THRNE-patch. The problem was in u16550_putc
Regarding to:
https://github.com/tanzilli/ariag25-linux-2.6.39/blob/ariag25/drivers/tty/serial/8250.c#L1584
https://github.com/tanzilli/ariag25-linux-2.6.39/blob/ariag25/drivers/tty/serial/8250.c#L1913

When UART_LSR_THRE bit is set, then we ready to transmit more.

Current u16550_putc loops while UART_LSR_THRE bit is set. This logic have to be inverted.

Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-08-03 13:19:55 +03:00
Anton D. Kachalov
274b7986be [drivers/serial/uart_16550] Typo fix in data bits setup
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2015-07-31 20:19:54 +03:00
Gregory Nutt
fb82061bf7 Two more places there THRE is used with inverted sense 2015-07-29 20:42:49 -06:00
Gregory Nutt
8935ff34d5 16550 UART Driver: Add a configuration option to indicate the the THR empty bit is inverted. This is the the case for the moxART SoC. Based comments from Anton D. Kachalov 2015-07-29 16:31:21 -06:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
e4d2822af8 Make some file section headers more consistent with standard 2015-04-08 07:15:32 -06:00
Gregory Nutt
b83cea4f99 Back out 70cb75adaf3243478276cebf367c5f47c4725715 2015-03-13 10:40:09 -06:00
Gregory Nutt
3473bb1635 drivers/serial: Report correct number of bytes free in serial buffer with FIONWRITE. From Jussi Kivilinna. 2015-03-13 07:22:43 -06:00
Gregory Nutt
6f335dc6c6 STM32 SPI: The source clock for SPI 4,5, and 6 should be PCLK2, not PCLK1 (for F411, F427, and F429). Per David Sidrane. 2015-02-07 13:59:45 -06:00
Gregory Nutt
52aeabb4b2 Cosmetic changes 2015-01-02 13:59:47 -06:00
Gregory Nutt
5ee81c0d50 Serial: Allow serial console selection even if /dev/console is disabled: There can still be a serial console with no file system at all 2014-12-28 15:23:05 -06:00
Gregory Nutt
089578319a STM32 Serial: PX4 HW workarround for flaky STM32 RTS. From David Sidrane 2014-12-27 18:58:18 -06:00
Gregory Nutt
33f7151cd9 Remove STM32-specific RX flow control logic from the upper level serial driver to the lower level STM32 serial driver 2014-12-27 09:45:45 -06:00
Gregory Nutt
32fd858dc6 Serial RX Flow Control: Fix a bunch of compile problems introduced into unbuilt, conditioned out logic 2014-12-27 08:15:41 -06:00
Gregory Nutt
2fadd0da4b Eliminate an unnecessary calculation in the serial RX flow control logic 2014-12-27 08:00:48 -06:00
Gregory Nutt
aefde565d3 Serial Upper Half: Add watermarks to RX flow control logic 2014-12-27 07:43:06 -06:00
Gregory Nutt
623757d77c Update TODO list and add REVISIT comment 2014-12-13 08:44:28 -06:00
Gregory Nutt
d09bb13833 In case a thread is doing a blocking operation (e.g. read()) on a serial
device, while it is being terminated by pthread_cancel(), then
uart_close() gets called, but the semaphore (dev->recv.sem in the above
example) is still blocked.

This means that once the serial device is opened next time, data will
arrive on the serial port (and driver interrupts handled as normal), but
the received characters never arrive in the reader thread.

This patch addresses the problem by re-initializing the semaphores on the
last uart_close() on the device.
2014-12-13 08:07:21 -06:00
Gregory Nutt
0ec5043a4e Add an interface definition and upper half driver for a discrete joystick device 2014-11-27 17:42:16 -06:00
Gregory Nutt
5d231b25f0 SAMA5D3 Xplained: Add an apps/examples/bridge configuration 2014-11-20 16:24:30 -06:00
Gregory Nutt
5120d745fd Fix some typos 2014-10-29 10:48:50 -06:00
Gregory Nutt
6c9f325e1e Move selection for CONFIG_SERIAL_TERMIOS out of MCU Kconfigs to common drivers/serial/Kconfig. Add CONFIG_ARCH_HAVE_SERIAL_TERMIOS to indicate if an MCU supports TERMIOS 2014-10-27 11:31:16 -06:00
Gregory Nutt
37e08c3b49 The olimex-efm32g880f128-stk now defaults to use LEUART1 as the serial console. Also fixes lots of compile bugs from the original LEUART checkin 2014-10-21 11:38:51 -06:00
Gregory Nutt
d13c9a08b9 EFM32: Add configuration support for LEUARTs 2014-10-21 09:37:02 -06:00
Gregory Nutt
47d55c28dc Mostly cosmetic changes 2014-09-04 10:28:38 -06:00
Gregory Nutt
320707fdfa SAMA5: Fix bugs in timer/counter interrupts and one-shot timer 2014-08-10 10:47:38 -06:00
Gregory Nutt
b5efb9dd77 Add serial method so that lower half driver can provide RX flow control information. From Jussi Kivilinna 2014-05-08 09:01:14 -06:00
Gregory Nutt
7594d8b8cf Add serial method so that lower half driver can provide RX flow control information. From Jussi Kivilinna 2014-05-08 09:00:33 -06:00
Gregory Nutt
7ad2ace833 Costmetic changes to some comments 2014-04-14 16:36:07 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
cbdc9155ab SAMA5: Add support for DBGU. Xplained board now uses DBGU for the serial console 2014-04-01 11:24:15 -06:00
Gregory Nutt
113d5a2a81 Correct an error introduced in this file in very recent commits 2014-03-06 15:33:02 -06:00
Gregory Nutt
17a96f6e1e configs/us7032evb1/ostest: Configuration converted to use the kconfig-frontends tools 2014-03-06 09:17:11 -06:00
Gregory Nutt
ba6fe788ea SAMA5 serial: Restore logic to minimize TX interrupts. Oddly, seems to improve ADC stability 2013-10-26 16:02:07 -06:00
Gregory Nutt
0ab6d8382f SAMA5 TC: Debug instrumentation 2013-10-26 14:03:30 -06:00
Gregory Nutt
bc46b447dc Fix all occurrences of "the the" in documentation and comments 2013-08-27 09:40:19 -06:00
Gregory Nutt
dd3c682443 SAMA5: Some improvements to the HSCMI card removal/insertion logic 2013-08-11 11:13:11 -06:00
Gregory Nutt
82b528e0c8 Serial FIONREAD, FIONWRITE, and TERMIOS I/O processing from Mike Smith, Andrew Tridgell, and and Lorenz Meier 2013-08-10 19:14:05 -06:00