2013-09-11 08:54:15

by José Miguel Gonçalves

[permalink] [raw]
Subject: [PATCH] ARM: S3C24XX: Fix configuration of gpio port sizes on S3C24XX.

Some GPIO line limits are incorrectly set which, for instance,
does not allow nRTS1 (GPH11) configuration on a S3C2416 chip.

Signed-off-by: José Miguel Gonçalves <[email protected]>
---
arch/arm/mach-s3c24xx/include/mach/gpio.h | 10 +++++-----
drivers/gpio/gpio-samsung.c | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-s3c24xx/include/mach/gpio.h b/arch/arm/mach-s3c24xx/include/mach/gpio.h
index 1459156..a1435bc 100644
--- a/arch/arm/mach-s3c24xx/include/mach/gpio.h
+++ b/arch/arm/mach-s3c24xx/include/mach/gpio.h
@@ -31,17 +31,17 @@
* 2410 2412 2440 2443 2416
* 2442
* ---- ---- ---- ---- ----
- * A 23 22 25 16 25
- * B 11 11 11 11 9
- * C 16 15 16 16 16
+ * A 23 22 25 16 27
+ * B 11 11 11 11 11
+ * C 16 16 16 16 16
* D 16 16 16 16 16
* E 16 16 16 16 16
* F 8 8 8 8 8
* G 16 16 16 16 8
- * H 11 11 9 15 15
+ * H 11 11 11 15 15
* J -- -- 13 16 --
* K -- -- -- -- 16
- * L -- -- -- 15 7
+ * L -- -- -- 15 14
* M -- -- -- 2 2
*/

diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
index 358a21c..29c428b 100644
--- a/drivers/gpio/gpio-samsung.c
+++ b/drivers/gpio/gpio-samsung.c
@@ -1053,7 +1053,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
.base = S3C2410_GPA(0),
.owner = THIS_MODULE,
.label = "GPIOA",
- .ngpio = 24,
+ .ngpio = 27,
.direction_input = s3c24xx_gpiolib_banka_input,
.direction_output = s3c24xx_gpiolib_banka_output,
},
@@ -1062,7 +1062,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
.base = S3C2410_GPB(0),
.owner = THIS_MODULE,
.label = "GPIOB",
- .ngpio = 16,
+ .ngpio = 11,
},
}, {
.chip = {
@@ -1107,7 +1107,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
.base = S3C2410_GPH(0),
.owner = THIS_MODULE,
.label = "GPIOH",
- .ngpio = 11,
+ .ngpio = 15,
},
},
/* GPIOS for the S3C2443 and later devices. */
--
1.7.10.4


2013-09-11 16:27:26

by Heiko Stübner

[permalink] [raw]
Subject: Re: [PATCH] ARM: S3C24XX: Fix configuration of gpio port sizes on S3C24XX.

Am Mittwoch, 11. September 2013, 10:46:13 schrieb José Miguel Gonçalves:
> Some GPIO line limits are incorrectly set which, for instance,
> does not allow nRTS1 (GPH11) configuration on a S3C2416 chip.
>
> Signed-off-by: José Miguel Gonçalves <[email protected]>

I thumbed thru the SoC manuals of s3c2410, s3c2416, s3c2440 and s3c2443 and
these number look correct.

It would be interesting to know where the old number 16 for GPIOB did come
from, as _all_ S3C SoCs only have the 11 pins in this bank.


Reviewed-by: Heiko Stuebner <[email protected]>


> ---
> arch/arm/mach-s3c24xx/include/mach/gpio.h | 10 +++++-----
> drivers/gpio/gpio-samsung.c | 6 +++---
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/mach-s3c24xx/include/mach/gpio.h
> b/arch/arm/mach-s3c24xx/include/mach/gpio.h index 1459156..a1435bc 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/gpio.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/gpio.h
> @@ -31,17 +31,17 @@
> * 2410 2412 2440 2443 2416
> * 2442
> * ---- ---- ---- ---- ----
> - * A 23 22 25 16 25
> - * B 11 11 11 11 9
> - * C 16 15 16 16 16
> + * A 23 22 25 16 27
> + * B 11 11 11 11 11
> + * C 16 16 16 16 16
> * D 16 16 16 16 16
> * E 16 16 16 16 16
> * F 8 8 8 8 8
> * G 16 16 16 16 8
> - * H 11 11 9 15 15
> + * H 11 11 11 15 15
> * J -- -- 13 16 --
> * K -- -- -- -- 16
> - * L -- -- -- 15 7
> + * L -- -- -- 15 14
> * M -- -- -- 2 2
> */
>
> diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
> index 358a21c..29c428b 100644
> --- a/drivers/gpio/gpio-samsung.c
> +++ b/drivers/gpio/gpio-samsung.c
> @@ -1053,7 +1053,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
> .base = S3C2410_GPA(0),
> .owner = THIS_MODULE,
> .label = "GPIOA",
> - .ngpio = 24,
> + .ngpio = 27,
> .direction_input = s3c24xx_gpiolib_banka_input,
> .direction_output = s3c24xx_gpiolib_banka_output,
> },
> @@ -1062,7 +1062,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
> .base = S3C2410_GPB(0),
> .owner = THIS_MODULE,
> .label = "GPIOB",
> - .ngpio = 16,
> + .ngpio = 11,
> },
> }, {
> .chip = {
> @@ -1107,7 +1107,7 @@ struct samsung_gpio_chip s3c24xx_gpios[] = {
> .base = S3C2410_GPH(0),
> .owner = THIS_MODULE,
> .label = "GPIOH",
> - .ngpio = 11,
> + .ngpio = 15,
> },
> },
> /* GPIOS for the S3C2443 and later devices. */

2013-09-27 14:17:52

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] ARM: S3C24XX: Fix configuration of gpio port sizes on S3C24XX.

On Wed, Sep 11, 2013 at 10:46 AM, Jos? Miguel Gon?alves
<[email protected]> wrote:

> Some GPIO line limits are incorrectly set which, for instance,
> does not allow nRTS1 (GPH11) configuration on a S3C2416 chip.
>
> Signed-off-by: Jos? Miguel Gon?alves <[email protected]>
> ---
> arch/arm/mach-s3c24xx/include/mach/gpio.h | 10 +++++-----

OK but grrrr!

What needs to happen to the s3c24xx is to get rid of this file.

- Define ARCH_NR_GPIOS in arch/arm/Kconfig entry
ARCH_NR_GPIO like everyone else

- Get rid of the config symbol NEED_MACH_GPIO_H

- Move this file down into arch/arm/mach-s3c24xx/s3c24xx-gpio.h
or whatever and make it local...

I will try to do this myself if noone else helps out, so I'd like to
carry this patch in the GPIO tree provided I can get an ACK from
the S3C24xx maintainer. Tomasz, is that you or Kukjin?

(BTW the above maybe goes for S3c64xx as well .. and S5P
oh well I will get to it.)

Yours,
Linus Walleij

2014-01-02 12:53:05

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] ARM: S3C24XX: Fix configuration of gpio port sizes on S3C24XX.

On Wed, Sep 11, 2013 at 10:46 AM, Jos? Miguel Gon?alves
<[email protected]> wrote:

> Some GPIO line limits are incorrectly set which, for instance,
> does not allow nRTS1 (GPH11) configuration on a S3C2416 chip.
>
> Signed-off-by: Jos? Miguel Gon?alves <[email protected]>

Patch applied with Kukjin's ACK and Heiko's review tag.

Yours,
Linus Walleij