port documentation to Sphinx
diff --git a/documentation/pyserial_api.rst b/documentation/pyserial_api.rst
new file mode 100644
index 0000000..7c5ea1d
--- /dev/null
+++ b/documentation/pyserial_api.rst
@@ -0,0 +1,248 @@
+==============
+ pySerial API
+==============
+
+.. module:: serial
+
+Classes
+=======
+
+.. class:: Serial
+
+ .. method:: __init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=0, rtscts=0, interCharTimeout=None)
+
+ :param port:
+
+ Device name or port number number or None.
+
+ Number: number of device, numbering starts at zero
+ Device name: depending on operating system. e.g. ``/dev/ttyUSB0``
+ on GNU/Linux or ``COM3`` on Windows.
+
+ :param baudrate:
+ Baud rate such as 9600 or 115200 etc.
+
+ :param bytesize:
+ Number of data bits. Possible values: FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS
+
+ :param parity:
+ Enable parity checking. Possible values: PARITY_NONE PARITY_EVEN PARITY_ODD PARITY_MARK PARITY_SPACE
+
+ :param stopbits:
+ Number of stop bits. Possible values: STOPBITS_ONE STOPBITS_ONE_POINT_FIVE STOPBITS_TWO
+
+ :param timeout:
+ Set a read timeout value.
+
+ :param xonxoff:
+
+ Enable software flow control.
+
+ :param rtscts:
+
+ Enable hardware (RTS/CTS) flow control.
+
+ :param interCharTimeout:
+
+ Inter-character timeout, None to disable.
+
+ The port is immediately opened on object creation, when a port is given. It
+ is not opened when port is None.
+
+ Possible values for :param:`timeout`::
+
+ timeout=None # wait forever
+ timeout=0 # non-blocking mode (return immediately on read)
+ timeout=x # set timeout to x seconds (float allowed)
+
+
+ .. method:: open()
+
+ Open port.
+
+ .. method:: close()
+
+ Close port immediately.
+
+ .. method:: setBaudrate(baudrate)
+
+ Change baud rate on an open port.
+
+ .. method:: inWaiting()
+
+ Return the number of chars in the receive buffer.
+
+ .. method:: read(size=1)
+
+ Read size bytes from the serial port. If a timeout is set it may return
+ less characters as requested. With no timeout it will block until the
+ requested number of bytes is read.
+
+ .. method:: write(s)
+
+ Write the string :param:`s` to the port.
+
+ .. method:: flush(self):
+
+ Flush of file like objects. In this case, wait until all data is
+ written.
+
+ .. method:: flushInput()
+
+ Flush input buffer, discarding all it's contents.
+
+ .. method:: flushOutput()
+
+ Clear output buffer, aborting the current output and
+ discarding all that is in the buffer.
+
+ .. method:: sendBreak(duration=0.25)
+
+ Send break condition. Timed, returns to idle state after given
+ duration.
+
+ .. method:: setBreak(level=True)
+
+ Set break: Controls TXD. When active, no transmitting is possible.
+
+ .. method:: setRTS(level=True)
+
+ Set RTS line to specified logic level.
+
+ .. method:: setDTR(level=True)
+
+ Set DTR line to specified logic level.
+
+ .. method:: getCTS()
+
+ Return the state of the CTS line.
+
+ .. method:: getDSR()
+
+ Return the state of the DSR line.
+
+ .. method:: getRI()
+
+ Return the state of the RI line.
+
+ .. method:: getCD()
+
+ Return the state of the CD line
+
+ Read-only attributes:
+
+ .. attribute:: portstr
+
+ Device name (Read Only). This is always the device name even if the
+ port was opened by a numeber.
+
+ .. attribute:: BAUDRATES
+
+ A list of valid baud rates. The list may be incomplete such that higher
+ baud rates may be supported by the device and that values in between the
+ standard baud rates are supported. (Read Only).
+
+ .. attribute:: BYTESIZES
+
+ A list of valid byte sizes for the device (Read Only).
+
+ .. attribute:: PARITIES
+
+ A list of valid parities for the device (Read Only).
+
+ .. attribute:: STOPBITS
+
+ A list of valid stop bit widths for the device (Read Only).
+
+
+ New values can be assigned to the following attributes, the port will be reconfigured, even if it's opened at that time:
+
+ .. attribute:: port
+
+ Port name/number as set by the user.
+
+ .. attribute:: baudrate
+
+ Current baud rate setting.
+
+ .. attribute:: bytesize
+
+ Byte size in bits.
+
+ .. attribute:: parity
+
+ Parity setting.
+
+ .. attribute:: stopbits
+
+ Stop bit with.
+
+ .. attribute:: timeout
+
+ Timeout setting (seconds).
+
+ .. attribute:: xonxoff
+
+ If Xon/Xoff flow control is enabled.
+
+ .. attribute:: rtscts
+
+ If hardware flow control is enabled.
+
+ Platform specific methods.
+
+ .. warning:: Programs using the following methods are not portable to other platforms!
+
+ .. method:: nonblocking()
+
+ :platform: Unix
+ Configure the device for nonblocking operations. This can be useful if
+ the port is used with ``select``.
+
+ .. method:: fileno()
+
+ :platform: Unix
+ Return file descriptor number.
+
+
+ .. method:: setXON(level=True)
+
+ :platform: Windows
+ Set software flow control state.
+
+
+Exceptions
+==========
+
+.. exception:: SerialException
+
+ Base class for serial port exceptions.
+
+.. exception:: SerialTimeoutException
+
+ Exception that is raised on write timeouts.
+
+
+Constants
+=========
+
+parity
+------
+.. data:: PARITY_NONE
+.. data:: PARITY_EVEN
+.. data:: PARITY_ODD
+.. data:: PARITY_MARK
+.. data:: PARITY_SPACE
+
+stopbits
+--------
+.. data:: STOPBITS_ONE
+.. data:: STOPBITS_ONE_POINT_FIVE
+.. data:: STOPBITS_TWO
+
+bytesize
+--------
+.. data:: FIVEBITS
+.. data:: SIXBITS
+.. data:: SEVENBITS
+.. data:: EIGHTBITS