diff --git a/pyserial/documentation/pyserial_api.rst b/pyserial/documentation/pyserial_api.rst
index f0a0cb1..809841e 100644
--- a/pyserial/documentation/pyserial_api.rst
+++ b/pyserial/documentation/pyserial_api.rst
@@ -388,9 +388,27 @@
     .. method:: setXON(level=True)
 
         :platform: Windows
+        :platform: Posix
         :param level: Set flow control state.
 
-        Set software flow control state.
+        Manually control flow - when software flow control is enabled.
+
+        This will send XON (true) and XOFF (false) to the other device.
+
+        .. versionchanged:: 2.7 (renamed on Posix, function was called ``flowControl``)
+
+    .. method:: flowControlOut(enable)
+
+        :platform: Posix
+        :param enable: Set flow control state.
+
+        Manually control flow of outgoing data - when hardware or software flow
+        control is enabled.
+
+        Sending will be suspended when called with ``False`` and enabled when
+        called with ``True``.
+
+        .. versionadded:: 2.7 (Posix support added)
 
 .. note::
 
diff --git a/pyserial/serial/serialposix.py b/pyserial/serial/serialposix.py
index eccd782..4438a46 100644
--- a/pyserial/serial/serialposix.py
+++ b/pyserial/serial/serialposix.py
@@ -581,20 +581,36 @@
         fcntl.fcntl(self.fd, FCNTL.F_SETFL, os.O_NONBLOCK)
 
     def fileno(self):
-        """For easier use of the serial port instance with select.
-           WARNING: this function is not portable to different platforms!"""
+        """\
+        For easier use of the serial port instance with select.
+        WARNING: this function is not portable to different platforms!
+        """
         if not self._isOpen: raise portNotOpenError
         return self.fd
 
-    def flowControl(self, enable):
-        """manually control flow - when hardware or software flow control is
-        enabled"""
-        if not self._isOpen: raise portNotOpenError
-        if enable:
+    def setXON(self, level=True):
+        """\
+        Manually control flow - when software flow control is enabled.
+        This will send XON (true) and XOFF (false) to the other device.
+        WARNING: this function is not portable to different platforms!
+        """
+        if not self.hComPort: raise portNotOpenError
             termios.tcflow(self.fd, TERMIOS.TCION)
         else:
             termios.tcflow(self.fd, TERMIOS.TCIOFF)
 
+    def flowControlOut(self, enable):
+        """\
+        Manually control flow of outgoing data - when hardware or software flow
+        control is enabled.
+        WARNING: this function is not portable to different platforms!
+        """
+        if not self._isOpen: raise portNotOpenError
+        if enable:
+            termios.tcflow(self.fd, TERMIOS.TCOON)
+        else:
+            termios.tcflow(self.fd, TERMIOS.TCOOFF)
+
 
 # assemble Serial class with the platform specifc implementation and the base
 # for file-like behavior. for Python 2.6 and newer, that provide the new I/O
diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py
index bb1a15f..9a62fa0 100644
--- a/pyserial/serial/serialwin32.py
+++ b/pyserial/serial/serialwin32.py
@@ -356,7 +356,11 @@
         win32.SetupComm(self.hComPort, rx_size, tx_size)
 
     def setXON(self, level=True):
-        """Platform specific - set flow state."""
+        """\
+        Manually control flow - when software flow control is enabled.
+        This will send XON (true) and XOFF (false) to the other device.
+        WARNING: this function is not portable to different platforms!
+        """
         if not self.hComPort: raise portNotOpenError
         if level:
             win32.EscapeCommFunction(self.hComPort, win32.SETXON)
