2 * Coldfire generic GPIO support
4 * (C) Copyright 2009, Steven King <sfking@fdwdc.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
16 #include <linux/kernel.h>
17 #include <linux/init.h>
19 #include <asm/coldfire.h>
20 #include <asm/mcfsim.h>
21 #include <asm/mcfgpio.h>
23 static struct mcf_gpio_chip mcf_gpio_chips
[] = {
27 .request
= mcf_gpio_request
,
28 .free
= mcf_gpio_free
,
29 .direction_input
= mcf_gpio_direction_input
,
30 .direction_output
= mcf_gpio_direction_output
,
31 .get
= mcf_gpio_get_value
,
32 .set
= mcf_gpio_set_value
,
35 .pddr
= (void __iomem
*) MCFSIM2_GPIOENABLE
,
36 .podr
= (void __iomem
*) MCFSIM2_GPIOWRITE
,
37 .ppdr
= (void __iomem
*) MCFSIM2_GPIOREAD
,
42 .request
= mcf_gpio_request
,
43 .free
= mcf_gpio_free
,
44 .direction_input
= mcf_gpio_direction_input
,
45 .direction_output
= mcf_gpio_direction_output
,
46 .get
= mcf_gpio_get_value
,
47 .set
= mcf_gpio_set_value
,
51 .pddr
= (void __iomem
*) MCFSIM2_GPIO1ENABLE
,
52 .podr
= (void __iomem
*) MCFSIM2_GPIO1WRITE
,
53 .ppdr
= (void __iomem
*) MCFSIM2_GPIO1READ
,
57 static int __init
mcf_gpio_init(void)
60 while (i
< ARRAY_SIZE(mcf_gpio_chips
))
61 (void)gpiochip_add((struct gpio_chip
*)&mcf_gpio_chips
[i
++]);
65 core_initcall(mcf_gpio_init
);