20 #include <linux/kernel.h>
22 #include <asm/uaccess.h>
26 unsigned int port_mask,
unsigned int mode)
34 for (port = 0; port < 16; port++) {
35 if (!((1 << port) & port_mask))
38 ret &= (~(3 << (port << 1)));
39 ret |= ((mode & 3) << (port << 1));
47 for (port = 0; port < 16; port++) {
48 if (!((1 << (port + 16)) & port_mask))
60 static void solo_gpio_set(
struct solo_dev *solo_dev,
unsigned int value)
66 static void solo_gpio_clear(
struct solo_dev *solo_dev,
unsigned int value)
72 static void solo_gpio_config(
struct solo_dev *solo_dev)
75 solo_gpio_mode(solo_dev, 0x30, 1);
76 solo_gpio_clear(solo_dev, 0x30);
78 solo_gpio_set(solo_dev, 0x30);
83 solo_gpio_mode(solo_dev, 0x0f, 2);
86 solo_gpio_mode(solo_dev, 0xff00, 1);
89 solo_gpio_clear(solo_dev, 0xff00);
94 solo_gpio_config(solo_dev);
100 solo_gpio_clear(solo_dev, 0x30);
101 solo_gpio_config(solo_dev);