mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
gpio: sch311x: Slightly refactor sch311x_detect for better readability
Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
f604cf0919
commit
7e9fcc9d62
@ -327,14 +327,22 @@ static int __init sch311x_detect(int sio_config_port, unsigned short *addr)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
/* Check device ID. We currently know about:
|
/* Check device ID. */
|
||||||
* SCH3112 (0x7c), SCH3114 (0x7d), and SCH3116 (0x7f). */
|
|
||||||
reg = sch311x_sio_inb(sio_config_port, 0x20);
|
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;
|
err = -ENODEV;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
dev_id = reg == 0x7c ? 2 : reg == 0x7d ? 4 : 6;
|
|
||||||
|
|
||||||
/* Select logical device A (runtime registers) */
|
/* Select logical device A (runtime registers) */
|
||||||
sch311x_sio_outb(sio_config_port, 0x07, 0x0a);
|
sch311x_sio_outb(sio_config_port, 0x07, 0x0a);
|
||||||
|
Loading…
Reference in New Issue
Block a user