Root/
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) (struct nsc_gpio_ops *amp, unsigned iminor); |
26 | int (*gpio_get) (unsigned iminor); |
27 | void (*gpio_set) (unsigned iminor, int state); |
28 | void (*gpio_change) (unsigned iminor); |
29 | int (*gpio_current) (unsigned iminor); |
30 | struct device* dev; /* for dev_dbg() support, set in init */ |
31 | }; |
32 | |
33 | extern ssize_t nsc_gpio_write(struct file *file, const char __user *data, |
34 | size_t len, loff_t *ppos); |
35 | |
36 | extern ssize_t nsc_gpio_read(struct file *file, char __user *buf, |
37 | size_t len, loff_t *ppos); |
38 | |
39 | extern void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned index); |
40 | |
41 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9