* Zero if no reversal should be done.
         */
        __s8 touch_ring_flip_at;
+       /*
+        * Offset of the bitmap dial byte, in the report. Zero if not present.
+        * Only valid if "id" is not zero. A bitmap dial sends reports with a
+        * dedicated bit per direction: 1 means clockwise rotation, 2 means
+        * counterclockwise, as opposed to the normal 1 and -1.
+        */
+       unsigned int bitmap_dial_byte;
 };
 
 /*
        "\t\t.touch_ring_byte = %u\n"       \
        "\t\t.touch_ring_max = %hhd\n"      \
        "\t\t.touch_ring_flip_at = %hhd\n"  \
+       "\t\t.bitmap_dial_byte = %u\n"      \
        "\t},\n"                            \
        "\t{\n"                             \
        "\t\t.desc_ptr = %p\n"              \
        "\t\t.touch_ring_byte = %u\n"       \
        "\t\t.touch_ring_max = %hhd\n"      \
        "\t\t.touch_ring_flip_at = %hhd\n"  \
+       "\t\t.bitmap_dial_byte = %u\n"      \
        "\t},\n"                            \
        "\t{\n"                             \
        "\t\t.desc_ptr = %p\n"              \
        "\t\t.touch_ring_byte = %u\n"       \
        "\t\t.touch_ring_max = %hhd\n"      \
        "\t\t.touch_ring_flip_at = %hhd\n"  \
+       "\t\t.bitmap_dial_byte = %u\n"      \
        "\t},\n"                            \
        "}\n"
 
        (_params)->frame_list[0].touch_ring_byte,                   \
        (_params)->frame_list[0].touch_ring_max,                    \
        (_params)->frame_list[0].touch_ring_flip_at,                \
+       (_params)->frame_list[0].bitmap_dial_byte,                  \
        (_params)->frame_list[1].desc_ptr,                          \
        (_params)->frame_list[1].desc_size,                         \
        (_params)->frame_list[1].id,                                \
        (_params)->frame_list[1].touch_ring_byte,                   \
        (_params)->frame_list[1].touch_ring_max,                    \
        (_params)->frame_list[1].touch_ring_flip_at,                \
+       (_params)->frame_list[1].bitmap_dial_byte,                  \
        (_params)->frame_list[2].desc_ptr,                          \
        (_params)->frame_list[2].desc_size,                         \
        (_params)->frame_list[2].id,                                \
        (_params)->frame_list[2].dev_id_byte,                       \
        (_params)->frame_list[2].touch_ring_byte,                   \
        (_params)->frame_list[2].touch_ring_max,                    \
-       (_params)->frame_list[2].touch_ring_flip_at
+       (_params)->frame_list[2].touch_ring_flip_at,                \
+       (_params)->frame_list[2].bitmap_dial_byte
 
 /* Get a replacement report descriptor for a tablet's interface. */
 extern int uclogic_params_get_desc(const struct uclogic_params *params,