diff --git a/Documentation/ABI/testing/sysfs-class-ca b/Documentation/ABI/testing/sysfs-class-ca
new file mode 100644
index 0000000..7a2a52c
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-class-ca
@@ -0,0 +1,63 @@
+What:		/sys/class/dvb/dvbN/
+Date:		Dec 2017
+KernelVersion:	4.15
+Contact:	Jasmin Jessich <jasmin@anw.at>
+Description:
+        The dvbN/ class sub-directory belongs to the Adapter with the
+        index N. It is created for each found Adapter and depends on
+        the DVB hardware.
+
+What:		/sys/class/dvb/dvbN/caM
+Date:		Dec 2017
+KernelVersion:	4.15
+Contact:	Jasmin Jessich <jasmin@anw.at>
+Description:
+        The dvbN/caM/ class sub-directory belongs to the CA device with
+        the index M on the Adapter with the index N. It is created for
+        each found Conditional Access Interface where M is the number
+        of the CA Interface.
+
+What:		/sys/class/dvb/dvbN/caM/tim_wr_high
+Date:		Dec 2017
+KernelVersion:	4.15
+Contact:	Jasmin Jessich <jasmin@anw.at>
+Description:
+        Reading this file returns the wait time after writing the
+        length high byte to the CAM. The default timeout it '0', which
+        means no 'no timeout'. Any other value specifies the timeout in
+        micro seconds.
+          
+        Writing a value will change the timeout.
+             
+        Write fails with ``EINVAL`` if an invalid value has been written
+        (valid values are 0..100000).
+
+What:		/sys/class/dvb/dvbN/caM/tim_wr_low
+Date:		Dec 2017
+KernelVersion:	4.15
+Contact:	Jasmin Jessich <jasmin@anw.at>
+Description:
+        Reading this file returns the wait time after writing the
+        length low byte to the CAM. The default timeout it '0', which
+        means no 'no timeout'. Any other  value specifies the timeout in
+        micro seconds.
+          
+        Writing a value will change the timeout.
+             
+        Write fails with ``EINVAL`` if an invalid value has been written
+        (valid values are 0..100000).
+
+What:		/sys/class/dvb/dvbN/caM/tim_wr_data
+Date:		Dec 2017
+KernelVersion:	4.15
+Contact:	Jasmin Jessich <jasmin@anw.at>
+Description:
+        Reading this file returns the wait time between data bytes sent
+        to the CAM. The default timeout it '0', which means no 'no timeout'.
+        Any other value specifies the timeout in micro seconds.
+
+        Writing a value will change the timeout.
+             
+        Write fails with ``EINVAL`` if an invalid value has been written
+        (valid values are 0..100000).
+
diff --git a/Documentation/media/uapi/dvb/ca-sysfs-nodes.rst b/Documentation/media/uapi/dvb/ca-sysfs-nodes.rst
new file mode 100644
index 0000000..4a26afd
--- /dev/null
+++ b/Documentation/media/uapi/dvb/ca-sysfs-nodes.rst
@@ -0,0 +1,85 @@
+.. -*- coding: utf-8; mode: rst -*-
+
+.. _ca_sysfs_nodes:
+
+******************************
+Conditional Access sysfs nodes
+******************************
+
+As defined at ``Documentation/ABI/testing/sysfs-class-ca``, those are
+the sysfs nodes that control the en50221 CA driver:
+
+
+.. _sys_class_dvb_dvbN:
+
+/sys/class/dvb/dvbN/
+====================
+
+The ``/sys/class/dvb/dvbN/`` class sub-directory belongs to the Adapter
+with the index N. It is created for each found Adapter and depends on the
+DVB hardware.
+
+
+.. _sys_class_dvb_dvbN_caM:
+
+/sys/class/dvb/dvbN/caM
+=======================
+
+The ``/sys/class/dvb/dvbN/caM`` class sub-directory belongs to the CA device
+with the index M on the Adapter with the index N. It is created for each
+found Conditional Access Interface where M is the number of the CA Interface.
+A Conditional Access Module (CAM) will be inserted into the CI interface. The
+caM device is used to communicate to the CAM.
+
+The communication protocol contains a length field followed by the data bytes.
+The length is written in two parts. First the high byte of the length
+followed by the low byte. The following sysfs nodes define three timeouts
+which may be used to extend the communication to the CAM. Modern CAMs usually
+do not need those timeouts, but older CAMs will produce communication errors,
+when the bytes are written too fast. The underliying hardware has also a big
+impact due to the access speed.
+
+
+.. _sys_class_dvb_dvbN_caM_tim_wr_high:
+
+/sys/class/dvb/dvbN/caM/tim_wr_high
+===================================
+
+Reading this file returns the wait time after writing the length high byte to
+the CAM. The default timeout it '0', which means no 'no timeout'. Any other
+value specifies the timeout in micro seconds.
+
+Writing a value will change the timeout.
+
+Write fails with ``EINVAL`` if an invalid value has been written (valid values
+are 0..100000).
+
+
+.. _sys_class_dvb_dvbN_caM_tim_wr_low:
+
+/sys/class/dvb/dvbN/caM/tim_wr_low
+==================================
+
+Reading this file returns the wait time after writing the length low byte to
+the CAM. The default timeout it '0', which means no 'no timeout'. Any other
+value specifies the timeout in micro seconds.
+
+Writing a value will change the timeout.
+
+Write fails with ``EINVAL`` if an invalid value has been written (valid values
+are 0..100000).
+
+
+.. _sys_class_dvb_dvbN_caM_tim_wr_data:
+
+/sys/class/dvb/dvbN/caM/tim_wr_data
+===================================
+
+Reading this file returns the wait time between data bytes sent to the CAM.
+The default timeout it '0', which means no 'no timeout'. Any other value
+specifies the timeout in micro seconds.
+
+Writing a value will change the timeout.
+
+Write fails with ``EINVAL`` if an invalid value has been written (valid values
+are 0..100000).
diff --git a/Documentation/media/uapi/dvb/ca.rst b/Documentation/media/uapi/dvb/ca.rst
index deac72d..e790d19d 100644
--- a/Documentation/media/uapi/dvb/ca.rst
+++ b/Documentation/media/uapi/dvb/ca.rst
@@ -22,3 +22,4 @@ application.
 
     ca_data_types
     ca_function_calls
+    ca-sysfs-nodes
