Currently the {set,get}_pull callbacks of the s3c24xx_gpiocfg_default structure are initalized via s3c_gpio_{get,set}pull_1up. This results in a linker error when only CONFIG_CPU_S3C2442 is selected: arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f4): undefined reference to `s3c_gpio_getpull_1up' arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f8): undefined reference to `s3c_gpio_setpull_1up' The s3c2442 has pulldowns instead of pullups compared to the s3c2440. The method of controlling them is the same though. So this patch modifies the existing s3c_gpio_{get,set}pull_1up helper functions to take an additional parameter deciding whether the pin has a pullup or pulldown. The s3c_gpio_{get,set}pull_1{down,up} functions then wrap that functions passing either S3C_GPIO_PULL_UP or S3C_GPIO_PULL_DOWN. Furthermore this patch sets up the s3c24xx_gpiocfg_default.{get,set}_pull fields in the s3c244{0,2}_map_io function to the new pulldown helper functions. Based on patch from "Lars-Peter Clausen" <lars@metafoo.de> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
43 lines
996 B
C
43 lines
996 B
C
/* linux/arch/arm/plat-s3c24xx/include/plat/s3c244x.h
|
|
*
|
|
* Copyright (c) 2004-2005 Simtec Electronics
|
|
* Ben Dooks <ben@simtec.co.uk>
|
|
*
|
|
* Header file for S3C2440 and S3C2442 cpu support
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
|
|
|
|
extern void s3c244x_map_io(void);
|
|
|
|
extern void s3c244x_init_uarts(struct s3c2410_uartcfg *cfg, int no);
|
|
|
|
extern void s3c244x_init_clocks(int xtal);
|
|
|
|
#else
|
|
#define s3c244x_init_clocks NULL
|
|
#define s3c244x_init_uarts NULL
|
|
#endif
|
|
|
|
#ifdef CONFIG_CPU_S3C2440
|
|
extern int s3c2440_init(void);
|
|
|
|
extern void s3c2440_map_io(void);
|
|
#else
|
|
#define s3c2440_init NULL
|
|
#define s3c2440_map_io NULL
|
|
#endif
|
|
|
|
#ifdef CONFIG_CPU_S3C2442
|
|
extern int s3c2442_init(void);
|
|
|
|
extern void s3c2442_map_io(void);
|
|
#else
|
|
#define s3c2442_init NULL
|
|
#define s3c2442_map_io NULL
|
|
#endif
|