1. 14 2月, 2014 3 次提交
  2. 01 11月, 2013 1 次提交
  3. 30 10月, 2013 3 次提交
  4. 17 10月, 2013 1 次提交
  5. 27 9月, 2013 2 次提交
  6. 28 8月, 2013 2 次提交
  7. 16 8月, 2013 1 次提交
  8. 15 8月, 2013 1 次提交
    • M
      OMAP: add RS485 support · 4a0ac0f5
      Mark Jackson 提交于
      This patch adds RS485 support to the OMAP serial driver, as
      defined in:-
      
      Documentation/devicetree/bindings/serial/rs485.txt
      
      When a UART transmitter is connected to (eg) a RS485 driver, it is
      necessary to turn the driver on/off as quickly as possible.  This is
      best achieved in the serial driver itself (rather than in userspace
      where the latency can be quite large).
      
      This patch allows a GPIO pin to be defined (via DT) that controls
      the enabling of the driver at the start of a message, and disables
      the driver when the message has been completed.
      
      When RS485 is disabled, the RTS pin is set to on.
      Signed-off-by: NMark Jackson <mpfj@newflow.co.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4a0ac0f5
  9. 01 8月, 2013 1 次提交
  10. 27 7月, 2013 6 次提交
  11. 25 7月, 2013 1 次提交
  12. 18 6月, 2013 1 次提交
    • T
      serial: omap: Fix device tree based PM runtime · a630fbfb
      Tony Lindgren 提交于
      In the runtime_suspend function pdata is not being used, and
      also blocks the function in device tree based booting. Fix it
      by removing the unused pdata from the runtime_suspend function.
      
      Further, context loss count is not being passed in pdata, so
      let's just reinitialize the port every time for those case.
      This can be further optimized later on for the device tree
      case by adding detection for the hardware state and possibly
      by adding a driver specific autosuspend timeout.
      
      And doing this, we can then make the related dev_err into a
      dev_dbg message instead of an error.
      
      In order for the wake-up events to work, we also need to set
      autosuspend_timeout to -1 if 0, and also device_init_wakeup()
      as that's not being done by the platform init code for the
      device tree case.
      
      Note that this does not affect legacy booting, and in fact
      might make it work for the cases where the context loss info
      is not being passed in pdata.
      
      Thanks to Kevin Hilman <khilman@linaro.org> for debugging
      and suggesting fixes for the autosuspend_timeout and
      device_init_wakeup() related initializiation.
      Reviewed-by: NKevin Hilman <khilman@linaro.org>
      Tested-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a630fbfb
  13. 07 6月, 2013 1 次提交
  14. 04 6月, 2013 1 次提交
  15. 21 5月, 2013 1 次提交
  16. 20 5月, 2013 1 次提交
  17. 04 4月, 2013 1 次提交
  18. 06 2月, 2013 1 次提交
    • A
      OMAP/serial: Fix incorrect Rx FIFO threshold setting, LSR validation on Tx,... · 1776fd05
      Alexey Pelykh 提交于
      OMAP/serial: Fix incorrect Rx FIFO threshold setting, LSR validation on Tx, and Tx FIFO IRQ generation
      
      Original configuration of Rx FIFO threshold contained an error
      that resulted Rx threshold to be effectively set to 1 character
      instead of 16 characters, as noted in comments.
      Checking LSR to contain UART_LSR_THRE bit set caused issue when
      not all UART_IER_THRI interrupts have been properly handled.
      This caused gap in Tx data, visible on high baud rates using
      oscilloscope.
      Setting OMAP_UART_SCR_TX_EMPTY bit in SCR caused UART_IER_THRI
      interrupt to be raised only when Tx FIFO and Tx shift registers
      are empty.
      Signed-off-by: NAlexey Pelykh <alexey.pelykh@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1776fd05
  19. 18 1月, 2013 1 次提交
    • A
      OMAP/serial: Support 1Mbaud and similar baudrates that require Mode16 instead of Mode13 · 5fe21236
      Alexey Pelykh 提交于
      Original table in OMAP TRM named "UART Mode Baud Rates, Divisor
      Values, and Error Rates" determines modes not for all common baud
      rates. E.g. for 1000000 baud rate mode should be 16x, but according to
      that table it's determined as 13x. According to current implementation
      of mode divisor selection, after requesting 1000000 baudrate from
      driver, later one will configure chip to use MODE13 divisor. Assuming
      48Mhz as common UART clock speed, MODE13 divisor will effectively give
      1230769 baudrate, what is quite far from desired 1000000 baudrate.
      While with MODE16 divisor, chip will produce exact 1000000 baudrate.
      In old driver that served UART devices (8250.c and serial_core.c) this
      divisor could have been configured by user-space program, but in
      omap_serial.c driver implementation this ability was not implemented
      (afaik, by design) thus disallowing proper usage of MODE16-compatible
      baudrates.
      Signed-off-by: NAlexey Pelykh <alexey.pelykh@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5fe21236
  20. 16 1月, 2013 2 次提交
  21. 15 12月, 2012 1 次提交
  22. 22 11月, 2012 3 次提交
  23. 04 11月, 2012 4 次提交
    • R
      SERIAL: omap: fix hardware assisted flow control · 3af08bd7
      Russell King 提交于
      When the UART device has hardware flow control enabled, it ignores the
      MCR RTS bit in the MCR register, and keeps RTS asserted as long as we
      continue to read characters from the UART receiver FIFO.  This means
      that when the TTY buffers become full, the UART doesn't tell the remote
      end to stop sending, which causes the TTY layer to start dropping
      characters.
      
      A similar problem exists with software flow control.  We need the FIFO
      register to fill when software flow control is enabled to provoke the
      UART to send the XOFF character.
      
      Fix this by implementing the throttle/unthrottle callbacks, and use
      these to disable receiver interrupts.  This in turn means that the UART
      FIFO will fill, which will then cause the UART's hardware to deassert
      the RTS signal and/or send the XOFF character, stopping the remote end.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      3af08bd7
    • R
      SERIAL: omap: simplify (2) · 24054640
      Russell King 提交于
      Simplify:
      	- set ECB
      	...
      	- LCR mode A
      	- clear TCRTLR
      	- LCR mode B
      	- clear ECB
      	- set ECB and update other bits
      	- LCR mode A
      	- update XONANY
      
      to:
      	- set ECB
      	...
      	- LCR mode B
      	- set ECB and update other bits
      	- LCR mode A
      	- update XONANY and clear TCRTLR
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      24054640
    • R
      SERIAL: omap: move xon/xoff setting earlier · c533e51b
      Russell King 提交于
      Take advantage of the switch to mode B for accessing the TCR register,
      and move the xon/xoff configuration there.  This allows further
      simplication of this sequence.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c533e51b
    • R
      SERIAL: omap: always set TCR · c7d059ca
      Russell King 提交于
      We always setup the TCR register in the software flow control path,
      and when hardware flow control is enabled.  Remove this redundant
      setup, and place it before we setup any hardware flow control.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c7d059ca