]>
Commit | Line | Data |
---|---|---|
fe3a168a JC |
1 | /** |
2 | nsc_gpio.c | |
3 | ||
4 | National Semiconductor GPIO common access methods. | |
5 | ||
6 | struct nsc_gpio_ops abstracts the low-level access | |
7 | operations for the GPIO units on 2 NSC chip families; the GEODE | |
8 | integrated CPU, and the PC-8736[03456] integrated PC-peripheral | |
9 | chips. | |
10 | ||
11 | The GPIO units on these chips have the same pin architecture, but | |
12 | the access methods differ. Thus, scx200_gpio and pc8736x_gpio | |
13 | implement their own versions of these routines; and use the common | |
14 | file-operations routines implemented in nsc_gpio module. | |
15 | ||
16 | Copyright (c) 2005 Jim Cromie <jim.cromie@gmail.com> | |
17 | ||
18 | NB: this work was tested on the Geode SC-1100 and PC-87366 chips. | |
19 | NSC sold the GEODE line to AMD, and the PC-8736x line to Winbond. | |
20 | */ | |
21 | ||
22 | struct nsc_gpio_ops { | |
23 | struct module* owner; | |
24 | u32 (*gpio_config) (unsigned iminor, u32 mask, u32 bits); | |
25 | void (*gpio_dump) (unsigned iminor); | |
26 | int (*gpio_get) (unsigned iminor); | |
27 | void (*gpio_set) (unsigned iminor, int state); | |
28 | void (*gpio_set_high)(unsigned iminor); | |
29 | void (*gpio_set_low) (unsigned iminor); | |
30 | void (*gpio_change) (unsigned iminor); | |
31 | int (*gpio_current) (unsigned iminor); | |
32 | }; | |
33 |