Samsung GPIO updates
Subsystems (3)
This is the current contents of next-samsung-gpio1, which contains the Kukjin moves for supporting common gpio code and the s5p6440 updates which have already been on the list.
Also contains my moves to get the common gpio code and gpio-pm code into plat-samsung.
PATCH 1/1 ARM: SAMSUNG: Move GPIO common functions to plat-samsung
From: Kukjin Kim <[email protected]>
This patch moves GPIO common functions (from plat-s3c64xx) into plat-samsung. and adds the config option to build the plat-samsung/gpiolib for Samsung SoCs.
--- arch/arm/plat-s3c/include/plat/gpio-core.h | 3 + arch/arm/plat-s3c64xx/Kconfig | 1 + arch/arm/plat-s3c64xx/gpiolib.c | 162 +---------------------- arch/arm/plat-samsung/Kconfig | 7 + arch/arm/plat-samsung/Makefile | 1 + arch/arm/plat-samsung/gpiolib.c | 202 ++++++++++++++++++++++++++++ 6 files changed, 216 insertions(+), 160 deletions(-) create mode 100644 arch/arm/plat-samsung/gpiolib.c
arch/arm/plat-s3c/include/plat/gpio-core.h +3 -0
@@ -80,6 +80,9 @@ extern void s3c_gpiolib_add(struct s3c_gpio_chip *chip);* and any other necessary functions. */ +extern void samsung_gpiolib_add_4bit (struct s3c_gpio_chip *chip); +extern void samsung_gpiolib_add_4bit2 (struct s3c_gpio_chip *chip); +#ifdef CONFIG_S3C_GPIO_TRACK extern struct s3c_gpio_chip *s3c_gpios[S3C_GPIO_END ];
arch/arm/plat-s3c64xx/Kconfig +1 -0
@@ -22,6 +22,7 @@ config PLAT_S3C64XX select S3C_GPIO_CFG_S3C64XX select S3C_DEV_NAND select USB_ARCH_HAS_OHCI + select SAMSUNG_GPIOLIB help Base platform code for any Samsung S3C64XX device
arch/arm/plat-s3c64xx/gpiolib.c +2 -160
182 lines not on this page · raw message
arch/arm/plat-samsung/Kconfig +7 -0
@@ -33,6 +33,13 @@ config SAMSUNG_IRQ_UART # options for gpio configuration support +config SAMSUNG_GPIOLIB + bool + help + GPIOlib file contains the 4 bit modification functions for gpio + configuration. GPIOlib shall be compiled only for S3C64XX and S5P + series of processors. + config S3C_GPIO_CFG_S3C24XX bool help
arch/arm/plat-samsung/Makefile +1 -0
@@ -15,6 +15,7 @@ obj-y += clock.o obj-y += pwm-clock.o obj-y += gpio-config.o +obj-$(CONFIG_SAMSUNG_GPIOLIB) += gpiolib.o obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o obj-$(CONFIG_SAMSUNG_IRQ_UART) += irq-uart.o
arch/arm/plat-samsung/gpiolib.c new file +202 -0
202 lines not on this page · raw message
Signature · 1 line
1.6.0.4
PATCH 1/1 ARM: S5P6440: Add S5P6440 GPIO support
In reply to Ben DooksFrom: Kukjin Kim <[email protected]>
This patch adds Samsung's S5P6440 GPIO support.
--- arch/arm/mach-s5p6440/Makefile | 2 +- arch/arm/mach-s5p6440/include/mach/gpio-core.h | 40 +++ arch/arm/mach-s5p6440/include/mach/regs-gpio.h | 54 ++++ arch/arm/mach-s5p6440/s5p6440-gpio.c | 325 ++++++++++++++++++++++++ arch/arm/plat-s5p/Kconfig | 4 + 5 files changed, 424 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-s5p6440/include/mach/regs-gpio.h create mode 100644 arch/arm/mach-s5p6440/s5p6440-gpio.c
arch/arm/mach-s5p6440/Makefile +1 -1
@@ -12,7 +12,7 @@ obj- := # Core support for S5P6440 system -obj-$(CONFIG_CPU_S5P6440) += cpu.o +obj-$(CONFIG_CPU_S5P6440) += cpu.o s5p6440-gpio.o # machine support
arch/arm/mach-s5p6440/include/mach/gpio-core.h +40 -0
@@ -16,4 +16,44 @@/* currently we just include the platform support */ #include <plat/gpio-core.h> +#define con_4bit_shift (__off) ((__off) * 4) + +/* various helper functions added which are specific to PLAT_S5P platform */ + +/** +* s5p6440_gpiolib_set_cfg - S5P style GPIO configuration +* @chip: The gpio chip that is being configured. +* @nr_chips: no of chips (gpio ports) for the GPIO being configured. +*/ +extern void s5p6440_gpiolib_set_cfg (struct s3c_gpio_cfg *chipcfg,int nr_chips); + +/** +* samsung_gpiolib_add_4bit_chips - 4bit single register GPIO config. +* @chip: The gpio chip that is being configured. +* @nr_chips: The no of chips (gpio ports) for the GPIO being configured. +* +* This helper deal with the GPIO cases where the control register has 4 bits +* of control per GPIO, generally in the form of: +* 0000 = Input +* 0001 = Output +* others = Special functions (dependant on bank) +* +* Note, since the code to deal with the case where there are two control +* registers instead of one, we do not have a seperate set of function +* (samsung_gpiolib_add_4bit2_chips)for each case. +*/ +extern void samsung_gpiolib_add_4bit_chips (struct s3c_gpio_chip *chip, +int nr_chips); +extern void samsung_gpiolib_add_4bit2_chips (struct s3c_gpio_chip *chip, +int nr_chips); + +/** +* s5p6440_gpio_setcfg_4bit_rbank - S5P64XX 4bit single register GPIO config. +* @chip: The gpio chip that is being configured (always R). +* @off: The offset for the GPIO being configured. +* @cfg: The configuration value to set. +* +*/ +extern int s5p6440_gpio_setcfg_4bit_rbank (struct s3c_gpio_chip *chip, +unsigned int off,unsigned int cfg);#endif /* __ASM_ARCH_GPIO_CORE_H */
arch/arm/mach-s5p6440/include/mach/regs-gpio.h new file +54 -0
54 lines not on this page · raw message
arch/arm/mach-s5p6440/s5p6440-gpio.c new file +325 -0
325 lines not on this page · raw message
arch/arm/plat-s5p/Kconfig +4 -0
@@ -14,6 +14,10 @@ config PLAT_S5P select NO_IOPORT select ARCH_REQUIRE_GPIOLIB select S3C_GPIO_TRACK + select SAMSUNG_GPIOLIB + select S3C_GPIO_CFG_S3C64XX + select S3C_GPIO_PULL_UPDOWN + select S3C_GPIO_CFG_S3C24XX select PLAT_SAMSUNG select SAMSUNG_CLKSRC select SAMSUNG_IRQ_VIC_TIMER
Signature · 1 line
1.6.0.4
PATCH 1/1 ARM: S5P6440: Add S5P6440 GPIO support
Quoted 41 lines · Ben Dooks
From: Kukjin Kim <[email protected]>
This patch adds Samsung's S5P6440 GPIO support.
Signed-off-by Adityapratap Sharma <[email protected]>Signed-off-by Atul Dahiya <[email protected]>Signed-off-by Kukjin Kim <[email protected]>[ben-linux at fluff.org: remove changelog comments from internal dev][ben-linux at fluff.org: fix aditya's email address]Signed-off-by Ben Dooks <[email protected]>--- arch/arm/mach-s5p6440/Makefile | 2 +- arch/arm/mach-s5p6440/include/mach/gpio-core.h | 40 +++ arch/arm/mach-s5p6440/include/mach/regs-gpio.h | 54 ++++ arch/arm/mach-s5p6440/s5p6440-gpio.c | 325 ++++++++++++++++++++++++ arch/arm/plat-s5p/Kconfig | 4 + 5 files changed, 424 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-s5p6440/include/mach/regs-gpio.h create mode 100644 arch/arm/mach-s5p6440/s5p6440-gpio.carch/arm/mach-s5p6440/Makefile +1
-1@@ -12,7 +12,7 @@ obj- := # Core support for S5P6440 system -obj-$(CONFIG_CPU_S5P6440) += cpu.o +obj-$(CONFIG_CPU_S5P6440) += cpu.o s5p6440-gpio.o # machine supportarch/arm/mach-s5p6440/include/mach/gpio-core.h +0
-0@@ -16,4 +16,44 @@/* currently we just include the platform support */ #include <plat/gpio-core.h>
arch/arm/mach-s5p6440/include/mach/gpio-core.h line 28
Quoted 10 lines
arch/arm/mach-s5p6440/include/mach/gpio-core.h +10
-0+#define con_4bit_shift (__off) ((__off) * 4) + +/* various helper functions added which are specific to PLAT_S5P platform */ + +/** +* s5p6440_gpiolib_set_cfg - S5P style GPIO configuration +* @chip: The gpio chip that is being configured. +* @nr_chips: no of chips (gpio ports) for the GPIO being configured. +*/ +extern void s5p6440_gpiolib_set_cfg (struct s3c_gpio_cfg *chipcfg,int nr_chips);
this doesn't seem to get outside of arch/arm/mach-s5p6440/s5p6440-gpio.c so could do with not being added to this header.
Quoted 9 lines
arch/arm/mach-s5p6440/include/mach/gpio-core.h +9
-0+/** +* samsung_gpiolib_add_4bit_chips - 4bit single register GPIO config. +* @chip: The gpio chip that is being configured. +* @nr_chips: The no of chips (gpio ports) for the GPIO being configured. +* +* This helper deal with the GPIO cases where the control register has 4 bits +* of control per GPIO, generally in the form of: +* 0000 = Input +* 0001 = Output
arch/arm/mach-s5p6440/include/mach/gpio-core.h line 48
Quoted 10 lines
arch/arm/mach-s5p6440/include/mach/gpio-core.h +10
-0+* others = Special functions (dependant on bank) +* +* Note, since the code to deal with the case where there are two control +* registers instead of one, we do not have a seperate set of function +* (samsung_gpiolib_add_4bit2_chips)for each case. +*/ +extern void samsung_gpiolib_add_4bit_chips (struct s3c_gpio_chip *chip, +int nr_chips); +extern void samsung_gpiolib_add_4bit2_chips (struct s3c_gpio_chip *chip, +int nr_chips);
Should have been added to the previous patch moving the code to the common directory and also should have been in plat-s3c/include/plat/gpio-core.h instead of here.
arch/arm/mach-s5p6440/include/mach/gpio-core.h line 59
Quoted 10 lines
arch/arm/mach-s5p6440/include/mach/gpio-core.h +9
-0+/** +* s5p6440_gpio_setcfg_4bit_rbank - S5P64XX 4bit single register GPIO config. +* @chip: The gpio chip that is being configured (always R). +* @off: The offset for the GPIO being configured. +* @cfg: The configuration value to set. +* +*/ +extern int s5p6440_gpio_setcfg_4bit_rbank (struct s3c_gpio_chip *chip, +unsigned int off,unsigned int cfg);#endif /* __ASM_ARCH_GPIO_CORE_H */
If we can find a new place for this definition we can elimiante all users of <mach/gpio-core.h> and just use <plat/gpio-core.h> instead.
Since it is just the one definition it could go into <plat/gpio-core.h>
Quoted 80 lines
arch/arm/mach-s5p6440/include/mach/regs-gpio.h new file +54
-0@@ -0,0 +1,54 @@ +/* linux/arch/arm/mach-s5p6440/include/mach/regs-gpio.h +* +* Copyright (c) 2009 Samsung Electronics Co., Ltd. +* http://www.samsung.com/ +* +* S5P6440 - GPIO register definitions +* +* 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. +*/ + +#ifndef __ASM_ARCH_REGS_GPIO_H +#define __ASM_ARCH_REGS_GPIO_H __FILE__ + +#include <mach/map.h> + +/* Base addresses for each of the banks */ +#define S5P6440_GPA_BASE (S5P_VA_GPIO + 0x0000) +#define S5P6440_GPB_BASE (S5P_VA_GPIO + 0x0020) +#define S5P6440_GPC_BASE (S5P_VA_GPIO + 0x0040) +#define S5P6440_GPF_BASE (S5P_VA_GPIO + 0x00A0) +#define S5P6440_GPG_BASE (S5P_VA_GPIO + 0x00C0) +#define S5P6440_GPH_BASE (S5P_VA_GPIO + 0x00E0) +#define S5P6440_GPI_BASE (S5P_VA_GPIO + 0x0100) +#define S5P6440_GPJ_BASE (S5P_VA_GPIO + 0x0120) +#define S5P6440_GPN_BASE (S5P_VA_GPIO + 0x0830) +#define S5P6440_GPP_BASE (S5P_VA_GPIO + 0x0160) +#define S5P6440_GPR_BASE (S5P_VA_GPIO + 0x0290) +#define S5P6440_EINT0CON0 (S5P_VA_GPIO + 0x900) +#define S5P6440_EINT0FLTCON0 (S5P_VA_GPIO + 0x910) +#define S5P6440_EINT0FLTCON1 (S5P_VA_GPIO + 0x914) +#define S5P6440_EINT0MASK (S5P_VA_GPIO + 0x920) +#define S5P6440_EINT0PEND (S5P_VA_GPIO + 0x924) + +/* for LCD */ +#define S5P6440_SPCON_LCD_SEL_RGB (1 << 0) +#define S5P6440_SPCON_LCD_SEL_MASK (3 << 0) + +/* These set of macros are not really useful for the +* GPF/GPI/GPJ/GPN/GPP, +* useful for others set of GPIO's (4 bit) +*/ +#define S5P6440_GPIO_CONMASK (__gpio) (0xf << ((__gpio) * 4)) +#define S5P6440_GPIO_INPUT (__gpio) (0x0 << ((__gpio) * 4)) +#define S5P6440_GPIO_OUTPUT (__gpio) (0x1 << ((__gpio) * 4)) + +/* Use these macros for GPF/GPI/GPJ/GPN/GPP set of GPIO (2 bit) +* */ +#define S5P6440_GPIO2_CONMASK (__gpio) (0x3 << ((__gpio) * 2)) +#define S5P6440_GPIO2_INPUT (__gpio) (0x0 << ((__gpio) * 2)) +#define S5P6440_GPIO2_OUTPUT (__gpio) (0x1 << ((__gpio) * 2)) + +#endif /* __ASM_ARCH_REGS_GPIO_H */ arch/arm/mach-s5p6440/s5p6440-gpio.c new file +14
-0@@ -0,0 +1,325 @@ +/* arch/arm/mach-s5p6440/s5p6440-gpio.c +* +* Copyright (c) 2009 Samsung Electronics Co., Ltd. +* http://www.samsung.com/ +* +* S5P6440 - GPIOlib 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. +*/ + +#include <linux/kernel.h> +#include <linux/irq.h>
arch/arm/mach-s5p6440/s5p6440-gpio.c line 24
Quoted 10 lines
arch/arm/mach-s5p6440/s5p6440-gpio.c new file +10
-0+#include <linux/io.h> +#include <mach/map.h> +#include <mach/gpio.h> +#include <mach/gpio-core.h> +#include <mach/regs-gpio.h> +#include <plat/gpio-cfg.h> +#include <plat/gpio-cfg-helpers.h> + +#define GPIODAT_OFF (0x04) +#define con_4bit_shift (__off) ((__off) * 4)
That should have already come from the header file.
Quoted 318 lines
arch/arm/mach-s5p6440/s5p6440-gpio.c new file +300
-0+/* GPIO bank summary: +* +* Bank GPIOs Style SlpCon ExtInt Group +* A 6 4Bit Yes 1 +* B 7 4Bit Yes 1 +* C 8 4Bit Yes 2 +* F 2 2Bit Yes 4 [1] +* G 7 4Bit Yes 5 +* H 10 4Bit[2] Yes 6 +* I 16 2Bit Yes None +* J 12 2Bit Yes None +* N 16 2Bit No IRQ_EINT +* P 8 2Bit Yes 8 +* R 15 4Bit[2] Yes 8 +* +* [1] BANKF pins 14,15 do not form part of the external interrupt sources +* [2] BANK has two control registers, GPxCON0 and GPxCON1 +*/ + +static int s5p6440_gpiolib_rbank_4bit2_input (struct gpio_chip *chip, +unsigned int offset) +{ +struct s3c_gpio_chip *ourchip =to_s3c_gpio (chip); +void __iomem *base = ourchip->base; +void __iomem *regcon = base; +unsigned long con; + +switch (offset) { +case 6 : + offset +=1 ; +case 0 : +case 1 : +case 2 : +case 3 : +case 4 : +case 5 : + regcon -=4 ; +break ; +default : + offset -=7 ; +break ; + } + + con =__raw_readl (regcon); + con &= ~(0xf <<con_4bit_shift (offset)); +__raw_writel (con, regcon); + +return 0 ; +} + +static int s5p6440_gpiolib_rbank_4bit2_output (struct gpio_chip *chip, +unsigned int offset,int value) +{ +struct s3c_gpio_chip *ourchip =to_s3c_gpio (chip); +void __iomem *base = ourchip->base; +void __iomem *regcon = base; +unsigned long con; +unsigned long dat; +unsigned con_offset = offset; + +switch (con_offset) { +case 6 : + con_offset +=1 ; +case 0 : +case 1 : +case 2 : +case 3 : +case 4 : +case 5 : + regcon -=4 ; +break ; +default : + con_offset -=7 ; +break ; + } + + con =__raw_readl (regcon); + con &= ~(0xf <<con_4bit_shift (con_offset)); + con |=0x1 <<con_4bit_shift (con_offset); + + dat =__raw_readl (base +GPIODAT_OFF ); +if (value) + dat |=1 << offset; +else + dat &= ~(1 << offset); + +__raw_writel (con, regcon); +__raw_writel (dat, base +GPIODAT_OFF ); + +return 0 ; +} + +int s5p6440_gpio_setcfg_4bit_rbank (struct s3c_gpio_chip *chip, +unsigned int off,unsigned int cfg) +{ +void __iomem *reg = chip->base; +unsigned int shift; +u32 con; + +switch (off) { +case 0 : +case 1 : +case 2 : +case 3 : +case 4 : +case 5 : + shift = (off &7 ) *4 ; + reg -=4 ; +break ; +case 6 : + shift = ((off +1 ) &7 ) *4 ; + reg -=4 ; +default : + shift = ((off +1 ) &7 ) *4 ; +break ; + } + +if (s3c_gpio_is_cfg_special (cfg)) { + cfg &=0xf ; + cfg <<= shift; + } + + con =__raw_readl (reg); + con &= ~(0xf << shift); + con |= cfg; +__raw_writel (con, reg); + +return 0 ; +} + +static struct s3c_gpio_cfg s5p6440_gpio_cfgs[] = { + { + .cfg_eint =0 , + }, { + .cfg_eint =7 , + }, { + .cfg_eint =3 , + .set_config = s5p6440_gpio_setcfg_4bit_rbank, + }, { + .cfg_eint =0 , + .set_config = s3c_gpio_setcfg_s3c24xx, + }, { + .cfg_eint =2 , + .set_config = s3c_gpio_setcfg_s3c24xx, + }, { + .cfg_eint =3 , + .set_config = s3c_gpio_setcfg_s3c24xx, + }, +}; + +static struct s3c_gpio_chip s5p6440_gpio_4bit[] = { + { + .base =S5P6440_GPA_BASE , + .config = &s5p6440_gpio_cfgs[1 ], + .chip = { + .base =S5P6440_GPA (0 ), + .ngpio =S5P6440_GPIO_A_NR , + .label ="GPA" , + }, + }, { + .base =S5P6440_GPB_BASE , + .config = &s5p6440_gpio_cfgs[1 ], + .chip = { + .base =S5P6440_GPB (0 ), + .ngpio =S5P6440_GPIO_B_NR , + .label ="GPB" , + }, + }, { + .base =S5P6440_GPC_BASE , + .config = &s5p6440_gpio_cfgs[1 ], + .chip = { + .base =S5P6440_GPC (0 ), + .ngpio =S5P6440_GPIO_C_NR , + .label ="GPC" , + }, + }, { + .base =S5P6440_GPG_BASE , + .config = &s5p6440_gpio_cfgs[1 ], + .chip = { + .base =S5P6440_GPG (0 ), + .ngpio =S5P6440_GPIO_G_NR , + .label ="GPG" , + }, + }, +}; + +static struct s3c_gpio_chip s5p6440_gpio_4bit2[] = { + { + .base =S5P6440_GPH_BASE +0x4 , + .config = &s5p6440_gpio_cfgs[1 ], + .chip = { + .base =S5P6440_GPH (0 ), + .ngpio =S5P6440_GPIO_H_NR , + .label ="GPH" , + }, + }, +}; + +static struct s3c_gpio_chip gpio_rbank_4bit2[] = { + { + .base =S5P6440_GPR_BASE +0x4 , + .config = &s5p6440_gpio_cfgs[2 ], + .chip = { + .base =S5P6440_GPR (0 ), + .ngpio =S5P6440_GPIO_R_NR , + .label ="GPR" , + }, + }, +}; + +static struct s3c_gpio_chip s5p6440_gpio_2bit[] = { + { + .base =S5P6440_GPF_BASE , + .config = &s5p6440_gpio_cfgs[5 ], + .chip = { + .base =S5P6440_GPF (0 ), + .ngpio =S5P6440_GPIO_F_NR , + .label ="GPF" , + }, + }, { + .base =S5P6440_GPI_BASE , + .config = &s5p6440_gpio_cfgs[3 ], + .chip = { + .base =S5P6440_GPI (0 ), + .ngpio =S5P6440_GPIO_I_NR , + .label ="GPI" , + }, + }, { + .base =S5P6440_GPJ_BASE , + .config = &s5p6440_gpio_cfgs[3 ], + .chip = { + .base =S5P6440_GPJ (0 ), + .ngpio =S5P6440_GPIO_J_NR , + .label ="GPJ" , + }, + }, { + .base =S5P6440_GPN_BASE , + .config = &s5p6440_gpio_cfgs[4 ], + .chip = { + .base =S5P6440_GPN (0 ), + .ngpio =S5P6440_GPIO_N_NR , + .label ="GPN" , + }, + }, { + .base =S5P6440_GPP_BASE , + .config = &s5p6440_gpio_cfgs[5 ], + .chip = { + .base =S5P6440_GPP (0 ), + .ngpio =S5P6440_GPIO_P_NR , + .label ="GPP" , + }, + }, +}; + +void __init s5p6440_gpiolib_set_cfg (struct s3c_gpio_cfg *chipcfg,int nr_chips) +{ +for (; nr_chips >0 ; nr_chips--, chipcfg++) { +if (!chipcfg->set_config) + chipcfg->set_config = s3c_gpio_setcfg_s3c64xx_4bit; +if (!chipcfg->set_pull) + chipcfg->set_pull = s3c_gpio_setpull_updown; +if (!chipcfg->get_pull) + chipcfg->get_pull = s3c_gpio_getpull_updown; + } +} + +static void __init s5p6440_gpio_add_rbank_4bit2 (struct s3c_gpio_chip *chip, +int nr_chips) +{ +for (; nr_chips >0 ; nr_chips--, chip++) { + chip->chip.direction_input = s5p6440_gpiolib_rbank_4bit2_input; + chip->chip.direction_output = + s5p6440_gpiolib_rbank_4bit2_output; +s3c_gpiolib_add (chip); + } +} + +static int __init s5p6440_gpiolib_init (void ) +{ +struct s3c_gpio_chip *chips = s5p6440_gpio_2bit; +int nr_chips =ARRAY_SIZE (s5p6440_gpio_2bit); + +s5p6440_gpiolib_set_cfg (s5p6440_gpio_cfgs, +ARRAY_SIZE (s5p6440_gpio_cfgs)); + +for (; nr_chips >0 ; nr_chips--, chips++) +s3c_gpiolib_add (chips); + +samsung_gpiolib_add_4bit_chips (s5p6440_gpio_4bit, +ARRAY_SIZE (s5p6440_gpio_4bit)); + +samsung_gpiolib_add_4bit2_chips (s5p6440_gpio_4bit2, +ARRAY_SIZE (s5p6440_gpio_4bit2)); + +s5p6440_gpio_add_rbank_4bit2 (gpio_rbank_4bit2, +ARRAY_SIZE (gpio_rbank_4bit2)); + +return 0 ; +} +arch_initcall (s5p6440_gpiolib_init);arch/arm/plat-s5p/Kconfig +4
-0@@ -14,6 +14,10 @@ config PLAT_S5P select NO_IOPORT select ARCH_REQUIRE_GPIOLIB select S3C_GPIO_TRACK + select SAMSUNG_GPIOLIB + select S3C_GPIO_CFG_S3C64XX + select S3C_GPIO_PULL_UPDOWN + select S3C_GPIO_CFG_S3C24XX select PLAT_SAMSUNG select SAMSUNG_CLKSRC select SAMSUNG_IRQ_VIC_TIMERSignature · 1 line
1.6.0.4
Signature · 5 lines
-- Ben Q: What's a light-year? A: One-third less calories than a regular year.
PATCH 1/1 ARM: SAMSUNG: Move pm-gpio into plat-samsung
In reply to Ben DooksMove the pm-gpio code into plat-samsung.
Note, this should be changed later to properly compile the 4bit code if the 4bit settings are enabled.
---
arch/arm/plat-s3c/Makefile | 1 -
arch/arm/plat-samsung/Makefile | 4 ++++
arch/arm/{plat-s3c => plat-samsung}/pm-gpio.c | 0
3 files changed, 4 insertions(+), 1 deletions(-)
rename arch/arm/{plat-s3c => plat-samsung}/pm-gpio.c (100%)arch/arm/plat-s3c/Makefile +0 -1
@@ -22,7 +22,6 @@ obj-$(CONFIG_S3C_DMA) += dma.o # PM support obj-$(CONFIG_PM) += pm.o -obj-$(CONFIG_PM) += pm-gpio.o obj-$(CONFIG_S3C2410_PM_CHECK) += pm-check.o # PWM support
arch/arm/plat-samsung/Makefile +4 -0
@@ -36,3 +36,7 @@ obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o obj-$(CONFIG_S3C_DEV_NAND) += dev-nand.o + +# PM support + +obj-$(CONFIG_PM) += pm-gpio.o
arch/arm/plat-samsung/pm-gpio.c renamed from arch/arm/plat-s3c/pm-gpio.c +0 -0
Signature · 1 line
1.6.0.4
PATCH 1/1 ARM: SAMSUNG: Move gpiolib support in gpio.c to plat-samsung
In reply to Ben DooksMove the gpio.c code containing the core gpiolib and GPIO support to plat-samsung from plat-s3c as it is used by all current Samsung SoCs.
Note, we didn't move this to gpiolib.c as it contains code that is not strictly for gpiolib support and the 4bit code is already called gpiolib.c so make the change easier by not renaming both files in one go.
---
arch/arm/plat-s3c/Makefile | 1 -
arch/arm/plat-samsung/Makefile | 1 +
arch/arm/{plat-s3c => plat-samsung}/gpio.c | 0
3 files changed, 1 insertions(+), 1 deletions(-)
rename arch/arm/{plat-s3c => plat-samsung}/gpio.c (100%)arch/arm/plat-s3c/Makefile +0 -1
@@ -13,7 +13,6 @@ obj- := obj-y += init.o obj-y += time.o -obj-y += gpio.o # DMA support
arch/arm/plat-samsung/Makefile +1 -0
@@ -13,6 +13,7 @@ obj- := obj-y += clock.o obj-y += pwm-clock.o +obj-y += gpio.o obj-y += gpio-config.o obj-$(CONFIG_SAMSUNG_GPIOLIB) += gpiolib.o
arch/arm/plat-samsung/gpio.c renamed from arch/arm/plat-s3c/gpio.c +0 -0
Signature · 1 line
1.6.0.4