+static int w83687thf_read_vid(struct i2c_client *client)
+{
+ int res = 0xff;
+
+ superio_enter();
+ superio_select(W83627HF_LD_HWM);
+
+ /* Make sure these GPIO pins are enabled */
+ if (!(superio_inb(W83687THF_VID_EN) & (1 << 2))) {
+ dev_dbg(&client->dev, "VID disabled, no VID function\n");
+ goto exit;
+ }
+
+ /* Make sure the pins are configured for input */
+ if (!(superio_inb(W83687THF_VID_CFG) & (1 << 4))) {
+ dev_dbg(&client->dev, "VID configured as output, "
+ "no VID function\n");
+ goto exit;
+ }
+
+ res = superio_inb(W83687THF_VID_DATA) & 0x3f;
+
+exit:
+ superio_exit();
+ return res;
+}
+