[PATCH 1/2] ARM: S3C64XX: Fix the memory mapped GPIOs on Cragganmore
Kukjin Kim
kgene.kim at samsung.com
Wed Dec 28 23:00:04 EST 2011
Mark Brown wrote:
>
> Rather than letting them get allocated dynamically where we don't know
> where they are, and also name the data line resource as gpio-generic
> requires that. Without these changes the GPIOs are useless.
>
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
> arch/arm/mach-s3c64xx/include/mach/crag6410.h | 1 +
> arch/arm/mach-s3c64xx/mach-crag6410.c | 3 ++-
> 2 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-s3c64xx/include/mach/crag6410.h
> b/arch/arm/mach-s3c64xx/include/mach/crag6410.h
> index 5d55ab0..4cb2f951 100644
> --- a/arch/arm/mach-s3c64xx/include/mach/crag6410.h
> +++ b/arch/arm/mach-s3c64xx/include/mach/crag6410.h
> @@ -21,5 +21,6 @@
> #define CODEC_GPIO_BASE (GPIO_BOARD_START + 8)
> #define GLENFARCLAS_PMIC_GPIO_BASE (GPIO_BOARD_START + 32)
> #define BANFF_PMIC_GPIO_BASE (GPIO_BOARD_START + 64)
> +#define MMGPIO_GPIO_BASE (GPIO_BOARD_START + 96)
>
> #endif
> diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-
> s3c64xx/mach-crag6410.c
> index 2e699b9..d0308f0 100644
> --- a/arch/arm/mach-s3c64xx/mach-crag6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
> @@ -261,6 +261,7 @@ static struct platform_device crag6410_dm9k_device = {
>
> static struct resource crag6410_mmgpio_resource[] = {
> [0] = {
> + .name = "dat",
> .start = S3C64XX_PA_XM0CSN4 + 1,
> .end = S3C64XX_PA_XM0CSN4 + 1,
> .flags = IORESOURCE_MEM,
> @@ -273,7 +274,7 @@ static struct platform_device crag6410_mmgpio = {
> .resource = crag6410_mmgpio_resource,
> .num_resources = ARRAY_SIZE(crag6410_mmgpio_resource),
> .dev.platform_data = &(struct bgpio_pdata) {
> - .base = -1,
> + .base = MMGPIO_GPIO_BASE,
> },
> };
>
> --
> 1.7.7.3
Looks ok to me, will apply.
And Mark, how about using DEFINE_RES_XXX() like following?
---
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c
b/arch/arm/mach-s3c64xx/mach-crag6410.c
index d04b654..2dadf92 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
@@ -17,6 +17,8 @@
#include <linux/platform_device.h>
#include <linux/fb.h>
#include <linux/io.h>
+#include <linux/ioport.h>
+
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/delay.h>
@@ -225,21 +227,9 @@ static struct platform_device crag6410_gpio_keydev = {
};
static struct resource crag6410_dm9k_resource[] = {
- [0] = {
- .start = S3C64XX_PA_XM0CSN5,
- .end = S3C64XX_PA_XM0CSN5 + 1,
- .flags = IORESOURCE_MEM,
- },
- [1] = {
- .start = S3C64XX_PA_XM0CSN5 + (1 << 8),
- .end = S3C64XX_PA_XM0CSN5 + (1 << 8) + 1,
- .flags = IORESOURCE_MEM,
- },
- [2] = {
- .start = S3C_EINT(17),
- .end = S3C_EINT(17),
- .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
- },
+ [0] = DEFINE_RES_MEM(S3C64XX_PA_XM0CSN5, 2),
+ [1] = DEFINE_RES_MEM(S3C64XX_PA_XM0CSN5 + (1 << 8), 2),
+ [2] = DEFINE_RES_NAMED(S3C_EINT(17), 1, NULL, IORESOURCE_IRQ |
IRQRESOURCE_IRQ_HIGHLEVEL),
};
static struct dm9000_plat_data mini6410_dm9k_pdata = {
@@ -255,11 +245,7 @@ static struct platform_device crag6410_dm9k_device = {
};
static struct resource crag6410_mmgpio_resource[] = {
- [0] = {
- .start = S3C64XX_PA_XM0CSN4 + 1,
- .end = S3C64XX_PA_XM0CSN4 + 1,
- .flags = IORESOURCE_MEM,
- },
+ [0] = DEFINE_RES_MEM(S3C64XX_PA_XM0CSN4, 2),
};
static struct platform_device crag6410_mmgpio = {
---
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
More information about the linux-arm-kernel
mailing list