diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-28 13:19:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-28 13:19:03 -0400 |
commit | 043f275d78bce6737545dcaeb6c0c6d0c35f652f (patch) | |
tree | 3d26bf05a0d0cd1d8fb6fad0fd9491d3a3af2a64 /Documentation | |
parent | 72da3bc0cb3e82bd95f278a0c5c988e506e56d13 (diff) | |
parent | 5d66ceee78f74ca52661634f6f822a99cf406974 (diff) |
Merge branch 'for-linus/2635-updates' of git://git.fluff.org/bjdooks/linux
* 'for-linus/2635-updates' of git://git.fluff.org/bjdooks/linux:
ARM: S5PV210: serial: Fix section mismatch warning
ARM: s3c2410_defconfig: Add new machines
ARM: s3c6400_defconfig: Add framebuffer and basic LCD
ARM: s3c6400_defconfig: Add RTC driver support
ARM: s3c6400_defconfig: Enable USB host side
ARM: s3c6400_defconfig: Add SPI driver
ARM: s3c6400_defconfig: Update compiled machines
ARM: S5P: Regoster clk_xusbxti clock for hsotg driver
ARM: S3C64XX: Add USB OTG HCLK to the list of clocks
ARM: SAMSUNG: gpio-cfg.h: update documentation
ARM: SAMSUNG: Documentation: add documentation on GPIO code
ARM: SAMSUNG: Fix documentation for s3c_gpio_cfgpin()
ARM: S3C24XX: Documentation: add section on gpiolib changes
ARM: S3C24XX: Documentation: update GPIO documentation
ARM: S3C24XX: Documentation: update documentation overview
ARM: SAMSUNG: Documentation: update directory layout
ARM: SAMSUNG: Documentation: update the list of SoCs supported
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/arm/Samsung-S3C24XX/GPIO.txt | 81 | ||||
-rw-r--r-- | Documentation/arm/Samsung-S3C24XX/Overview.txt | 15 | ||||
-rw-r--r-- | Documentation/arm/Samsung/GPIO.txt | 42 | ||||
-rw-r--r-- | Documentation/arm/Samsung/Overview.txt | 33 |
4 files changed, 158 insertions, 13 deletions
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/Samsung-S3C24XX/GPIO.txt index 2af2cf39915f..816d6071669e 100644 --- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt +++ b/Documentation/arm/Samsung-S3C24XX/GPIO.txt | |||
@@ -12,6 +12,8 @@ Introduction | |||
12 | of the s3c2410 GPIO system, please read the Samsung provided | 12 | of the s3c2410 GPIO system, please read the Samsung provided |
13 | data-sheet/users manual to find out the complete list. | 13 | data-sheet/users manual to find out the complete list. |
14 | 14 | ||
15 | See Documentation/arm/Samsung/GPIO.txt for the core implemetation. | ||
16 | |||
15 | 17 | ||
16 | GPIOLIB | 18 | GPIOLIB |
17 | ------- | 19 | ------- |
@@ -24,8 +26,60 @@ GPIOLIB | |||
24 | listed below will be removed (they may be marked as __deprecated | 26 | listed below will be removed (they may be marked as __deprecated |
25 | in the near future). | 27 | in the near future). |
26 | 28 | ||
27 | - s3c2410_gpio_getpin | 29 | The following functions now either have a s3c_ specific variant |
28 | - s3c2410_gpio_setpin | 30 | or are merged into gpiolib. See the definitions in |
31 | arch/arm/plat-samsung/include/plat/gpio-cfg.h: | ||
32 | |||
33 | s3c2410_gpio_setpin() gpio_set_value() or gpio_direction_output() | ||
34 | s3c2410_gpio_getpin() gpio_get_value() or gpio_direction_input() | ||
35 | s3c2410_gpio_getirq() gpio_to_irq() | ||
36 | s3c2410_gpio_cfgpin() s3c_gpio_cfgpin() | ||
37 | s3c2410_gpio_getcfg() s3c_gpio_getcfg() | ||
38 | s3c2410_gpio_pullup() s3c_gpio_setpull() | ||
39 | |||
40 | |||
41 | GPIOLIB conversion | ||
42 | ------------------ | ||
43 | |||
44 | If you need to convert your board or driver to use gpiolib from the exiting | ||
45 | s3c2410 api, then here are some notes on the process. | ||
46 | |||
47 | 1) If your board is exclusively using an GPIO, say to control peripheral | ||
48 | power, then it will require to claim the gpio with gpio_request() before | ||
49 | it can use it. | ||
50 | |||
51 | It is recommended to check the return value, with at least WARN_ON() | ||
52 | during initialisation. | ||
53 | |||
54 | 2) The s3c2410_gpio_cfgpin() can be directly replaced with s3c_gpio_cfgpin() | ||
55 | as they have the same arguments, and can either take the pin specific | ||
56 | values, or the more generic special-function-number arguments. | ||
57 | |||
58 | 3) s3c2410_gpio_pullup() changs have the problem that whilst the | ||
59 | s3c2410_gpio_pullup(x, 1) can be easily translated to the | ||
60 | s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0) | ||
61 | are not so easy. | ||
62 | |||
63 | The s3c2410_gpio_pullup(x, 0) case enables the pull-up (or in the case | ||
64 | of some of the devices, a pull-down) and as such the new API distinguishes | ||
65 | between the UP and DOWN case. There is currently no 'just turn on' setting | ||
66 | which may be required if this becomes a problem. | ||
67 | |||
68 | 4) s3c2410_gpio_setpin() can be replaced by gpio_set_value(), the old call | ||
69 | does not implicitly configure the relevant gpio to output. The gpio | ||
70 | direction should be changed before using gpio_set_value(). | ||
71 | |||
72 | 5) s3c2410_gpio_getpin() is replaceable by gpio_get_value() if the pin | ||
73 | has been set to input. It is currently unknown what the behaviour is | ||
74 | when using gpio_get_value() on an output pin (s3c2410_gpio_getpin | ||
75 | would return the value the pin is supposed to be outputting). | ||
76 | |||
77 | 6) s3c2410_gpio_getirq() should be directly replacable with the | ||
78 | gpio_to_irq() call. | ||
79 | |||
80 | The s3c2410_gpio and gpio_ calls have always operated on the same gpio | ||
81 | numberspace, so there is no problem with converting the gpio numbering | ||
82 | between the calls. | ||
29 | 83 | ||
30 | 84 | ||
31 | Headers | 85 | Headers |
@@ -54,6 +108,11 @@ PIN Numbers | |||
54 | eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell | 108 | eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell |
55 | the GPIO functions which pin is to be used. | 109 | the GPIO functions which pin is to be used. |
56 | 110 | ||
111 | With the conversion to gpiolib, there is no longer a direct conversion | ||
112 | from gpio pin number to register base address as in earlier kernels. This | ||
113 | is due to the number space required for newer SoCs where the later | ||
114 | GPIOs are not contiguous. | ||
115 | |||
57 | 116 | ||
58 | Configuring a pin | 117 | Configuring a pin |
59 | ----------------- | 118 | ----------------- |
@@ -71,6 +130,8 @@ Configuring a pin | |||
71 | which would turn GPA(0) into the lowest Address line A0, and set | 130 | which would turn GPA(0) into the lowest Address line A0, and set |
72 | GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line. | 131 | GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line. |
73 | 132 | ||
133 | The s3c_gpio_cfgpin() call is a functional replacement for this call. | ||
134 | |||
74 | 135 | ||
75 | Reading the current configuration | 136 | Reading the current configuration |
76 | --------------------------------- | 137 | --------------------------------- |
@@ -82,6 +143,9 @@ Reading the current configuration | |||
82 | The return value will be from the same set of values which can be | 143 | The return value will be from the same set of values which can be |
83 | passed to s3c2410_gpio_cfgpin(). | 144 | passed to s3c2410_gpio_cfgpin(). |
84 | 145 | ||
146 | The s3c_gpio_getcfg() call should be a functional replacement for | ||
147 | this call. | ||
148 | |||
85 | 149 | ||
86 | Configuring a pull-up resistor | 150 | Configuring a pull-up resistor |
87 | ------------------------------ | 151 | ------------------------------ |
@@ -95,6 +159,10 @@ Configuring a pull-up resistor | |||
95 | Where the to value is zero to set the pull-up off, and 1 to enable | 159 | Where the to value is zero to set the pull-up off, and 1 to enable |
96 | the specified pull-up. Any other values are currently undefined. | 160 | the specified pull-up. Any other values are currently undefined. |
97 | 161 | ||
162 | The s3c_gpio_setpull() offers similar functionality, but with the | ||
163 | ability to encode whether the pull is up or down. Currently there | ||
164 | is no 'just on' state, so up or down must be selected. | ||
165 | |||
98 | 166 | ||
99 | Getting the state of a PIN | 167 | Getting the state of a PIN |
100 | -------------------------- | 168 | -------------------------- |
@@ -106,6 +174,9 @@ Getting the state of a PIN | |||
106 | This will return either zero or non-zero. Do not count on this | 174 | This will return either zero or non-zero. Do not count on this |
107 | function returning 1 if the pin is set. | 175 | function returning 1 if the pin is set. |
108 | 176 | ||
177 | This call is now implemented by the relevant gpiolib calls, convert | ||
178 | your board or driver to use gpiolib. | ||
179 | |||
109 | 180 | ||
110 | Setting the state of a PIN | 181 | Setting the state of a PIN |
111 | -------------------------- | 182 | -------------------------- |
@@ -117,6 +188,9 @@ Setting the state of a PIN | |||
117 | Which sets the given pin to the value. Use 0 to write 0, and 1 to | 188 | Which sets the given pin to the value. Use 0 to write 0, and 1 to |
118 | set the output to 1. | 189 | set the output to 1. |
119 | 190 | ||
191 | This call is now implemented by the relevant gpiolib calls, convert | ||
192 | your board or driver to use gpiolib. | ||
193 | |||
120 | 194 | ||
121 | Getting the IRQ number associated with a PIN | 195 | Getting the IRQ number associated with a PIN |
122 | -------------------------------------------- | 196 | -------------------------------------------- |
@@ -128,6 +202,9 @@ Getting the IRQ number associated with a PIN | |||
128 | 202 | ||
129 | Note, not all pins have an IRQ. | 203 | Note, not all pins have an IRQ. |
130 | 204 | ||
205 | This call is now implemented by the relevant gpiolib calls, convert | ||
206 | your board or driver to use gpiolib. | ||
207 | |||
131 | 208 | ||
132 | Authour | 209 | Authour |
133 | ------- | 210 | ------- |
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt index 081892df4fda..c12bfc1a00c9 100644 --- a/Documentation/arm/Samsung-S3C24XX/Overview.txt +++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt | |||
@@ -8,10 +8,16 @@ Introduction | |||
8 | 8 | ||
9 | The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported | 9 | The Samsung S3C24XX range of ARM9 System-on-Chip CPUs are supported |
10 | by the 's3c2410' architecture of ARM Linux. Currently the S3C2410, | 10 | by the 's3c2410' architecture of ARM Linux. Currently the S3C2410, |
11 | S3C2412, S3C2413, S3C2440, S3C2442 and S3C2443 devices are supported. | 11 | S3C2412, S3C2413, S3C2416 S3C2440, S3C2442, S3C2443 and S3C2450 devices |
12 | are supported. | ||
12 | 13 | ||
13 | Support for the S3C2400 and S3C24A0 series are in progress. | 14 | Support for the S3C2400 and S3C24A0 series are in progress. |
14 | 15 | ||
16 | The S3C2416 and S3C2450 devices are very similar and S3C2450 support is | ||
17 | included under the arch/arm/mach-s3c2416 directory. Note, whilst core | ||
18 | support for these SoCs is in, work on some of the extra peripherals | ||
19 | and extra interrupts is still ongoing. | ||
20 | |||
15 | 21 | ||
16 | Configuration | 22 | Configuration |
17 | ------------- | 23 | ------------- |
@@ -209,6 +215,13 @@ GPIO | |||
209 | Newer kernels carry GPIOLIB, and support is being moved towards | 215 | Newer kernels carry GPIOLIB, and support is being moved towards |
210 | this with some of the older support in line to be removed. | 216 | this with some of the older support in line to be removed. |
211 | 217 | ||
218 | As of v2.6.34, the move towards using gpiolib support is almost | ||
219 | complete, and very little of the old calls are left. | ||
220 | |||
221 | See Documentation/arm/Samsung-S3C24XX/GPIO.txt for the S3C24XX specific | ||
222 | support and Documentation/arm/Samsung/GPIO.txt for the core Samsung | ||
223 | implementation. | ||
224 | |||
212 | 225 | ||
213 | Clock Management | 226 | Clock Management |
214 | ---------------- | 227 | ---------------- |
diff --git a/Documentation/arm/Samsung/GPIO.txt b/Documentation/arm/Samsung/GPIO.txt new file mode 100644 index 000000000000..05850c62abeb --- /dev/null +++ b/Documentation/arm/Samsung/GPIO.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | Samsung GPIO implementation | ||
2 | =========================== | ||
3 | |||
4 | Introduction | ||
5 | ------------ | ||
6 | |||
7 | This outlines the Samsung GPIO implementation and the architecture | ||
8 | specfic calls provided alongisde the drivers/gpio core. | ||
9 | |||
10 | |||
11 | S3C24XX (Legacy) | ||
12 | ---------------- | ||
13 | |||
14 | See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information | ||
15 | about these devices. Their implementation is being brought into line | ||
16 | with the core samsung implementation described in this document. | ||
17 | |||
18 | |||
19 | GPIOLIB integration | ||
20 | ------------------- | ||
21 | |||
22 | The gpio implementation uses gpiolib as much as possible, only providing | ||
23 | specific calls for the items that require Samsung specific handling, such | ||
24 | as pin special-function or pull resistor control. | ||
25 | |||
26 | GPIO numbering is synchronised between the Samsung and gpiolib system. | ||
27 | |||
28 | |||
29 | PIN configuration | ||
30 | ----------------- | ||
31 | |||
32 | Pin configuration is specific to the Samsung architecutre, with each SoC | ||
33 | registering the necessary information for the core gpio configuration | ||
34 | implementation to configure pins as necessary. | ||
35 | |||
36 | The s3c_gpio_cfgpin() and s3c_gpio_setpull() provide the means for a | ||
37 | driver or machine to change gpio configuration. | ||
38 | |||
39 | See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information | ||
40 | on these functions. | ||
41 | |||
42 | |||
diff --git a/Documentation/arm/Samsung/Overview.txt b/Documentation/arm/Samsung/Overview.txt index 7cced1fea9c3..c3094ea51aa7 100644 --- a/Documentation/arm/Samsung/Overview.txt +++ b/Documentation/arm/Samsung/Overview.txt | |||
@@ -13,9 +13,10 @@ Introduction | |||
13 | 13 | ||
14 | - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list | 14 | - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list |
15 | - S3C64XX: S3C6400 and S3C6410 | 15 | - S3C64XX: S3C6400 and S3C6410 |
16 | - S5PC6440 | 16 | - S5P6440 |
17 | 17 | - S5P6442 | |
18 | S5PC100 and S5PC110 support is currently being merged | 18 | - S5PC100 |
19 | - S5PC110 / S5PV210 | ||
19 | 20 | ||
20 | 21 | ||
21 | S3C24XX Systems | 22 | S3C24XX Systems |
@@ -35,7 +36,10 @@ Configuration | |||
35 | unifying all the SoCs into one kernel. | 36 | unifying all the SoCs into one kernel. |
36 | 37 | ||
37 | s5p6440_defconfig - S5P6440 specific default configuration | 38 | s5p6440_defconfig - S5P6440 specific default configuration |
39 | s5p6442_defconfig - S5P6442 specific default configuration | ||
38 | s5pc100_defconfig - S5PC100 specific default configuration | 40 | s5pc100_defconfig - S5PC100 specific default configuration |
41 | s5pc110_defconfig - S5PC110 specific default configuration | ||
42 | s5pv210_defconfig - S5PV210 specific default configuration | ||
39 | 43 | ||
40 | 44 | ||
41 | Layout | 45 | Layout |
@@ -50,18 +54,27 @@ Layout | |||
50 | specific information. It contains the base clock, GPIO and device definitions | 54 | specific information. It contains the base clock, GPIO and device definitions |
51 | to get the system running. | 55 | to get the system running. |
52 | 56 | ||
53 | plat-s3c is the s3c24xx/s3c64xx platform directory, although it is currently | ||
54 | involved in other builds this will be phased out once the relevant code is | ||
55 | moved elsewhere. | ||
56 | |||
57 | plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs. | 57 | plat-s3c24xx is for s3c24xx specific builds, see the S3C24XX docs. |
58 | 58 | ||
59 | plat-s3c64xx is for the s3c64xx specific bits, see the S3C24XX docs. | 59 | plat-s5p is for s5p specific builds, and contains common support for the |
60 | S5P specific systems. Not all S5Ps use all the features in this directory | ||
61 | due to differences in the hardware. | ||
62 | |||
63 | |||
64 | Layout changes | ||
65 | -------------- | ||
66 | |||
67 | The old plat-s3c and plat-s5pc1xx directories have been removed, with | ||
68 | support moved to either plat-samsung or plat-s5p as necessary. These moves | ||
69 | where to simplify the include and dependency issues involved with having | ||
70 | so many different platform directories. | ||
60 | 71 | ||
61 | plat-s5p is for s5p specific builds, more to be added. | 72 | It was decided to remove plat-s5pc1xx as some of the support was already |
73 | in plat-s5p or plat-samsung, with the S5PC110 support added with S5PV210 | ||
74 | the only user was the S5PC100. The S5PC100 specific items where moved to | ||
75 | arch/arm/mach-s5pc100. | ||
62 | 76 | ||
63 | 77 | ||
64 | [ to finish ] | ||
65 | 78 | ||
66 | 79 | ||
67 | Port Contributors | 80 | Port Contributors |