diff options
| author | Ben Dooks <ben-linux@fluff.org> | 2010-05-23 22:23:53 -0400 |
|---|---|---|
| committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-28 06:31:31 -0400 |
| commit | 0639b93d00812dc6a7c925a41ce3610d28f73d4e (patch) | |
| tree | 98404517092f5b1959967d4d86c46d339d65d252 | |
| parent | 70f5c9a4ddcbce3e6d7d54ec890a4bca19b4fc7a (diff) | |
ARM: S3C24XX: Documentation: add section on gpiolib changes
Add section to the S3C24XX GPIO documentation on the recent changes
to move towards gpiolib integration.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| -rw-r--r-- | Documentation/arm/Samsung-S3C24XX/GPIO.txt | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/Samsung-S3C24XX/GPIO.txt index 9fe5feac212d..228ecb61d2fd 100644 --- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt +++ b/Documentation/arm/Samsung-S3C24XX/GPIO.txt | |||
| @@ -36,6 +36,50 @@ GPIOLIB | |||
| 36 | s3c2410_gpio_pullup() s3c_gpio_setpull() | 36 | s3c2410_gpio_pullup() s3c_gpio_setpull() |
| 37 | 37 | ||
| 38 | 38 | ||
| 39 | GPIOLIB conversion | ||
| 40 | ------------------ | ||
| 41 | |||
| 42 | If you need to convert your board or driver to use gpiolib from the exiting | ||
| 43 | s3c2410 api, then here are some notes on the process. | ||
| 44 | |||
| 45 | 1) If your board is exclusively using an GPIO, say to control peripheral | ||
| 46 | power, then it will require to claim the gpio with gpio_request() before | ||
| 47 | it can use it. | ||
| 48 | |||
| 49 | It is recommended to check the return value, with at least WARN_ON() | ||
| 50 | during initialisation. | ||
| 51 | |||
| 52 | 2) The s3c2410_gpio_cfgpin() can be directly replaced with s3c_gpio_cfgpin() | ||
| 53 | as they have the same arguments, and can either take the pin specific | ||
| 54 | values, or the more generic special-function-number arguments. | ||
| 55 | |||
| 56 | 3) s3c2410_gpio_pullup() changs have the problem that whilst the | ||
| 57 | s3c2410_gpio_pullup(x, 1) can be easily translated to the | ||
| 58 | s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0) | ||
| 59 | are not so easy. | ||
| 60 | |||
| 61 | The s3c2410_gpio_pullup(x, 0) case enables the pull-up (or in the case | ||
| 62 | of some of the devices, a pull-down) and as such the new API distinguishes | ||
| 63 | between the UP and DOWN case. There is currently no 'just turn on' setting | ||
| 64 | which may be required if this becomes a problem. | ||
| 65 | |||
| 66 | 4) s3c2410_gpio_setpin() can be replaced by gpio_set_value(), the old call | ||
| 67 | does not implicitly configure the relevant gpio to output. The gpio | ||
| 68 | direction should be changed before using gpio_set_value(). | ||
| 69 | |||
| 70 | 5) s3c2410_gpio_getpin() is replaceable by gpio_get_value() if the pin | ||
| 71 | has been set to input. It is currently unknown what the behaviour is | ||
| 72 | when using gpio_get_value() on an output pin (s3c2410_gpio_getpin | ||
| 73 | would return the value the pin is supposed to be outputting). | ||
| 74 | |||
| 75 | 6) s3c2410_gpio_getirq() should be directly replacable with the | ||
| 76 | gpio_to_irq() call. | ||
| 77 | |||
| 78 | The s3c2410_gpio and gpio_ calls have always operated on the same gpio | ||
| 79 | numberspace, so there is no problem with converting the gpio numbering | ||
| 80 | between the calls. | ||
| 81 | |||
| 82 | |||
| 39 | Headers | 83 | Headers |
| 40 | ------- | 84 | ------- |
| 41 | 85 | ||
