Commit 224be092 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Russell King

[ARM] 5429/1: collie: start scoop converton to new api

Start converting scoop gpio access to new API instead of old
deprecated one.
Signed-off-by: default avatarDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent cf281a99
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/gpio.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -195,18 +196,34 @@ static struct mtd_partition collie_partitions[] = { ...@@ -195,18 +196,34 @@ static struct mtd_partition collie_partitions[] = {
} }
}; };
static int collie_flash_init(void)
{
int rc;
rc = gpio_request(COLLIE_GPIO_VPEN, "flash Vpp enable");
if (rc)
return rc;
rc = gpio_direction_output(COLLIE_GPIO_VPEN, 1);
if (rc)
gpio_free(COLLIE_GPIO_VPEN);
return rc;
}
static void collie_set_vpp(int vpp) static void collie_set_vpp(int vpp)
{ {
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN); gpio_set_value(COLLIE_GPIO_VPEN, vpp);
if (vpp)
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN);
else
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
} }
static void collie_flash_exit(void)
{
gpio_free(COLLIE_GPIO_VPEN);
}
static struct flash_platform_data collie_flash_data = { static struct flash_platform_data collie_flash_data = {
.map_name = "cfi_probe", .map_name = "cfi_probe",
.init = collie_flash_init,
.set_vpp = collie_set_vpp, .set_vpp = collie_set_vpp,
.exit = collie_flash_exit,
.parts = collie_partitions, .parts = collie_partitions,
.nr_parts = ARRAY_SIZE(collie_partitions), .nr_parts = ARRAY_SIZE(collie_partitions),
}; };
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#define __ASM_ARCH_COLLIE_H #define __ASM_ARCH_COLLIE_H
#define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1)
#define COLLIE_SCP_CHARGE_ON SCOOP_GPCR_PA11 #define COLLIE_SCP_CHARGE_ON SCOOP_GPCR_PA11
#define COLLIE_SCP_DIAG_BOOT1 SCOOP_GPCR_PA12 #define COLLIE_SCP_DIAG_BOOT1 SCOOP_GPCR_PA12
#define COLLIE_SCP_DIAG_BOOT2 SCOOP_GPCR_PA13 #define COLLIE_SCP_DIAG_BOOT2 SCOOP_GPCR_PA13
...@@ -21,13 +22,13 @@ ...@@ -21,13 +22,13 @@
#define COLLIE_SCP_MUTE_R SCOOP_GPCR_PA15 #define COLLIE_SCP_MUTE_R SCOOP_GPCR_PA15
#define COLLIE_SCP_5VON SCOOP_GPCR_PA16 #define COLLIE_SCP_5VON SCOOP_GPCR_PA16
#define COLLIE_SCP_AMP_ON SCOOP_GPCR_PA17 #define COLLIE_SCP_AMP_ON SCOOP_GPCR_PA17
#define COLLIE_SCP_VPEN SCOOP_GPCR_PA18 #define COLLIE_GPIO_VPEN (COLLIE_SCOOP_GPIO_BASE + 7)
#define COLLIE_SCP_LB_VOL_CHG SCOOP_GPCR_PA19 #define COLLIE_SCP_LB_VOL_CHG SCOOP_GPCR_PA19
#define COLLIE_SCOOP_IO_DIR ( COLLIE_SCP_CHARGE_ON | COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \ #define COLLIE_SCOOP_IO_DIR ( COLLIE_SCP_CHARGE_ON | COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \
COLLIE_SCP_5VON | COLLIE_SCP_AMP_ON | COLLIE_SCP_VPEN | \ COLLIE_SCP_5VON | COLLIE_SCP_AMP_ON | \
COLLIE_SCP_LB_VOL_CHG ) COLLIE_SCP_LB_VOL_CHG )
#define COLLIE_SCOOP_IO_OUT ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | COLLIE_SCP_VPEN | \ #define COLLIE_SCOOP_IO_OUT ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \
COLLIE_SCP_CHARGE_ON ) COLLIE_SCP_CHARGE_ON )
/* GPIOs for which the generic definition doesn't say much */ /* GPIOs for which the generic definition doesn't say much */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment