gpio: sch311x: Slightly refactor sch311x_detect for better readability
authorAxel Lin <axel.lin@ingics.com>
Tue, 15 Apr 2014 02:15:27 +0000 (10:15 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 28 Apr 2014 19:35:09 +0000 (12:35 -0700)
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-sch311x.c

index 0357387b3645321de91c338b826f02e4120d211b..f942b80ee403fb1499dfa21323a2c1edd7e12e81 100644 (file)
@@ -327,14 +327,22 @@ static int __init sch311x_detect(int sio_config_port, unsigned short *addr)
        if (err)
                return err;
 
-       /* Check device ID. We currently know about:
-        * SCH3112 (0x7c), SCH3114 (0x7d), and SCH3116 (0x7f). */
+       /* Check device ID. */
        reg = sch311x_sio_inb(sio_config_port, 0x20);
-       if (!(reg == 0x7c || reg == 0x7d || reg == 0x7f)) {
+       switch (reg) {
+       case 0x7c: /* SCH3112 */
+               dev_id = 2;
+               break;
+       case 0x7d: /* SCH3114 */
+               dev_id = 4;
+               break;
+       case 0x7f: /* SCH3116 */
+               dev_id = 6;
+               break;
+       default:
                err = -ENODEV;
                goto exit;
        }
-       dev_id = reg == 0x7c ? 2 : reg == 0x7d ? 4 : 6;
 
        /* Select logical device A (runtime registers) */
        sch311x_sio_outb(sio_config_port, 0x07, 0x0a);