16 #include <linux/kernel.h>
17 #include <linux/module.h>
19 #include <linux/device.h>
28 return mcfgpio_read(__mcfgpio_ppdr(gpio)) &
mcfgpio_bit(gpio);
36 MCFGPIO_PORTTYPE
data;
39 data = mcfgpio_read(__mcfgpio_podr(gpio));
44 mcfgpio_write(data, __mcfgpio_podr(gpio));
63 dir = mcfgpio_read(__mcfgpio_pddr(gpio));
65 mcfgpio_write(dir, __mcfgpio_pddr(gpio));
75 MCFGPIO_PORTTYPE
data;
78 data = mcfgpio_read(__mcfgpio_pddr(gpio));
83 mcfgpio_write(data, __mcfgpio_pddr(gpio));
87 data = mcfgpio_read(__mcfgpio_podr(gpio));
92 mcfgpio_write(data, __mcfgpio_podr(gpio));
118 #ifdef CONFIG_GPIOLIB
120 int mcfgpio_direction_input(
struct gpio_chip *
chip,
unsigned offset)
125 int mcfgpio_get_value(
struct gpio_chip *
chip,
unsigned offset)
130 int mcfgpio_direction_output(
struct gpio_chip *
chip,
unsigned offset,
int value)
135 void mcfgpio_set_value(
struct gpio_chip *
chip,
unsigned offset,
int value)
140 int mcfgpio_request(
struct gpio_chip *
chip,
unsigned offset)
145 void mcfgpio_free(
struct gpio_chip *
chip,
unsigned offset)
155 static struct gpio_chip mcfgpio_chip = {
157 .request = mcfgpio_request,
158 .free = mcfgpio_free,
159 .direction_input = mcfgpio_direction_input,
160 .direction_output = mcfgpio_direction_output,
161 .get = mcfgpio_get_value,
162 .set = mcfgpio_set_value,
167 static int __init mcfgpio_sysinit(
void)