``LIRC_CAN_REC_MODE2``
 
-    The driver is capable of receiving using
-    :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>`.
+    This is raw IR driver for receiving. This means that
+    :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
+    that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
+    as long as the kernel is recent enough. Use the
+    :ref:`lirc_set_rec_mode` to switch modes.
 
 .. _LIRC-CAN-REC-LIRCCODE:
 
 
 ``LIRC_CAN_REC_SCANCODE``
 
-    The driver is capable of receiving using
-    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>`.
-
+    This is a scancode driver for receiving. This means that
+    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
 
 .. _LIRC-CAN-SET-SEND-CARRIER:
 
 ``LIRC_CAN_SEND_PULSE``
 
     The driver supports sending (also called as IR blasting or IR TX) using
-    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`.
+    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
+    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
+    transmit, as long as the kernel is recent enough. Use the
+    :ref:`lirc_set_send_mode` to switch modes.
 
 .. _LIRC-CAN-SEND-MODE2:
 
 
     Unused. Kept just to avoid breaking uAPI.
 
-.. _LIRC-CAN-SEND-SCANCODE:
-
-``LIRC_CAN_SEND_SCANCODE``
-
-    The driver supports sending (also called as IR blasting or IR TX) using
-    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>`.
-
 
 Return Value
 ============
 
                        val |= LIRC_CAN_REC_SCANCODE;
 
                if (dev->driver_type == RC_DRIVER_IR_RAW) {
-                       val |= LIRC_CAN_REC_MODE2 | LIRC_CAN_REC_SCANCODE;
+                       val |= LIRC_CAN_REC_MODE2;
                        if (dev->rx_resolution)
                                val |= LIRC_CAN_GET_REC_RESOLUTION;
                }
 
                if (dev->tx_ir) {
-                       val |= LIRC_CAN_SEND_PULSE | LIRC_CAN_SEND_SCANCODE;
+                       val |= LIRC_CAN_SEND_PULSE;
                        if (dev->s_tx_mask)
                                val |= LIRC_CAN_SET_TRANSMITTER_MASK;
                        if (dev->s_tx_carrier)