linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines
@ 2011-09-04  9:40 Thomas Abraham
  2011-09-04  9:53 ` Alan Cox
  2011-09-15  5:52 ` Kukjin Kim
  0 siblings, 2 replies; 4+ messages in thread
From: Thomas Abraham @ 2011-09-04  9:40 UTC (permalink / raw)
  To: linux-samsung-soc; +Cc: kgene.kim, linux-input, linux-arm-kernel

The keypad controller requires a external pull-up for all the keypad
row lines. Fix the incorrect pad configuration for keypad controller
row lines by enabling the pad pull-up for the all row lines of the
keypad controller.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
---
SMDKV310 board does not have pull-up resistors populated for the keypad
row lines (unlike the smdk boards for the previous Samsung SoC's). So
the pad pull-up for all keypad row lines should be enabled for
smdkv310 board.

The default requirement for the keypad controller is to enable the
pull-up for all the keypad row lines. If a exynos4 based board has
on-board pull-up's populated for keypad row lines, this patch would
cause no harm. And in such cases, if internal pad pull-up is to be
disabled (to reduce some power consumption), an alternative gpio
configuration function can be supplied that does not enable the
internal pad pull-up.
---
 arch/arm/mach-exynos4/setup-keypad.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-exynos4/setup-keypad.c b/arch/arm/mach-exynos4/setup-keypad.c
index 1ee0ebf..7862bfb 100644
--- a/arch/arm/mach-exynos4/setup-keypad.c
+++ b/arch/arm/mach-exynos4/setup-keypad.c
@@ -19,15 +19,16 @@ void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
 
 	if (rows > 8) {
 		/* Set all the necessary GPX2 pins: KP_ROW[0~7] */
-		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3));
+		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3),
+					S3C_GPIO_PULL_UP);
 
 		/* Set all the necessary GPX3 pins: KP_ROW[8~] */
-		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX3(0), (rows - 8),
-					 S3C_GPIO_SFN(3));
+		s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8),
+					 S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
 	} else {
 		/* Set all the necessary GPX2 pins: KP_ROW[x] */
-		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), rows,
-					 S3C_GPIO_SFN(3));
+		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3),
+					S3C_GPIO_PULL_UP);
 	}
 
 	/* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */
-- 
1.6.6.rc2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines
  2011-09-04  9:40 [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines Thomas Abraham
@ 2011-09-04  9:53 ` Alan Cox
  2011-09-04 10:37   ` Thomas Abraham
  2011-09-15  5:52 ` Kukjin Kim
  1 sibling, 1 reply; 4+ messages in thread
From: Alan Cox @ 2011-09-04  9:53 UTC (permalink / raw)
  To: Thomas Abraham
  Cc: kgene.kim, linux-samsung-soc, linux-arm-kernel, linux-input

> SMDKV310 board does not have pull-up resistors populated for the keypad
> row lines (unlike the smdk boards for the previous Samsung SoC's). So
> the pad pull-up for all keypad row lines should be enabled for
> smdkv310 board.

So does this change the behaviour of existing boards, and if so isn't it
the SMDKV310 that hould be providing the alternate gpio configuration
function ?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines
  2011-09-04  9:53 ` Alan Cox
@ 2011-09-04 10:37   ` Thomas Abraham
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Abraham @ 2011-09-04 10:37 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-samsung-soc, kgene.kim, linux-input, linux-arm-kernel

Hi Alan,

On 4 September 2011 15:23, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>> SMDKV310 board does not have pull-up resistors populated for the keypad
>> row lines (unlike the smdk boards for the previous Samsung SoC's). So
>> the pad pull-up for all keypad row lines should be enabled for
>> smdkv310 board.
>
> So does this change the behaviour of existing boards, and if so isn't it
> the SMDKV310 that hould be providing the alternate gpio configuration
> function ?

Among the boards based on the Exynos4 SoC, only the smdk boards use
the keypad controller for connecting the keys on the board. All other
boards either use gpio keys or use some other mechanism for keyboard
input. So this patch is applicable to only the existing exynos4 soc
based smdk boards.

A pull-up for all the row lines is the default requirement of the
keypad controller. So, in this patch, the default gpio and pad
configuration function for keypad controller enables the internal pad
pull-up. If a upcoming board based on exynos4 does populate pull-up
for row lines on the board of the keypad, this patch would still not
break anything. If required, such boards could provide another gpio
and pad configuration function that disables the internal pull-up.

This patch modifies only the exynos4 keypad gpio/pad configuration
setup function. All previous Samsung SoC's are not affected by this
patch.

Thanks,
Thomas.

>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines
  2011-09-04  9:40 [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines Thomas Abraham
  2011-09-04  9:53 ` Alan Cox
@ 2011-09-15  5:52 ` Kukjin Kim
  1 sibling, 0 replies; 4+ messages in thread
From: Kukjin Kim @ 2011-09-15  5:52 UTC (permalink / raw)
  To: 'Thomas Abraham', linux-samsung-soc; +Cc: linux-input, linux-arm-kernel

Thomas Abraham wrote:
> 
> The keypad controller requires a external pull-up for all the keypad
> row lines. Fix the incorrect pad configuration for keypad controller
> row lines by enabling the pad pull-up for the all row lines of the
> keypad controller.
> 
> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
> ---
> SMDKV310 board does not have pull-up resistors populated for the keypad
> row lines (unlike the smdk boards for the previous Samsung SoC's). So
> the pad pull-up for all keypad row lines should be enabled for
> smdkv310 board.
> 
> The default requirement for the keypad controller is to enable the
> pull-up for all the keypad row lines. If a exynos4 based board has
> on-board pull-up's populated for keypad row lines, this patch would
> cause no harm. And in such cases, if internal pad pull-up is to be
> disabled (to reduce some power consumption), an alternative gpio
> configuration function can be supplied that does not enable the
> internal pad pull-up.
> ---
>  arch/arm/mach-exynos4/setup-keypad.c |   11 ++++++-----
>  1 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos4/setup-keypad.c b/arch/arm/mach-
> exynos4/setup-keypad.c
> index 1ee0ebf..7862bfb 100644
> --- a/arch/arm/mach-exynos4/setup-keypad.c
> +++ b/arch/arm/mach-exynos4/setup-keypad.c
> @@ -19,15 +19,16 @@ void samsung_keypad_cfg_gpio(unsigned int rows,
> unsigned int cols)
> 
>  	if (rows > 8) {
>  		/* Set all the necessary GPX2 pins: KP_ROW[0~7] */
> -		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), 8,
> S3C_GPIO_SFN(3));
> +		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8,
> S3C_GPIO_SFN(3),
> +					S3C_GPIO_PULL_UP);
> 
>  		/* Set all the necessary GPX3 pins: KP_ROW[8~] */
> -		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX3(0), (rows - 8),
> -					 S3C_GPIO_SFN(3));
> +		s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8),
> +					 S3C_GPIO_SFN(3),
> S3C_GPIO_PULL_UP);
>  	} else {
>  		/* Set all the necessary GPX2 pins: KP_ROW[x] */
> -		s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), rows,
> -					 S3C_GPIO_SFN(3));
> +		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows,
> S3C_GPIO_SFN(3),
> +					S3C_GPIO_PULL_UP);
>  	}
> 
>  	/* Set all the necessary GPX1 pins to special-function 3: KP_COL[x]
*/
> --
> 1.6.6.rc2

Oops, you're right, applied.
Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-09-15  5:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-04  9:40 [PATCH] arm: exynos4: fix incorrect pad configuration for keypad row lines Thomas Abraham
2011-09-04  9:53 ` Alan Cox
2011-09-04 10:37   ` Thomas Abraham
2011-09-15  5:52 ` Kukjin Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).