Loading drivers/gpio/gpio-sch311x.c +12 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
drivers/gpio/gpio-sch311x.c +12 −4 Original line number Diff line number Diff line Loading @@ -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); Loading