+static int in_gp2x_get_wiz_bits(void)
+{
+ int value = 0;
+ read(gpiodev, &value, 4);
+ if (value & 0x02)
+ value |= 0x05;
+ if (value & 0x08)
+ value |= 0x14;
+ if (value & 0x20)
+ value |= 0x50;
+ if (value & 0x80)
+ value |= 0x41;
+
+ /* convert to GP2X style */
+ value &= 0x7ff55;
+ if (value & (1 << 16))
+ value |= 1 << BTN_VOL_UP;
+ if (value & (1 << 17))
+ value |= 1 << BTN_VOL_DOWN;
+ if (value & (1 << 18))
+ value |= 1 << BTN_PUSH;
+ value &= ~0x70000;
+
+ return value;
+}
+