[ARM] 4960/1: Rewrite tosa pin configuration to use MFP tables.
Clean up all pins configuration to use currently proposed MFP table schema. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Acked-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
64c1dd3bbf
commit
2cb4734232
|
@ -32,7 +32,7 @@
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/arch/pxa-regs.h>
|
#include <asm/arch/pxa-regs.h>
|
||||||
#include <asm/arch/pxa2xx-regs.h>
|
#include <asm/arch/pxa2xx-regs.h>
|
||||||
#include <asm/arch/pxa2xx-gpio.h>
|
#include <asm/arch/mfp-pxa25x.h>
|
||||||
#include <asm/arch/irda.h>
|
#include <asm/arch/irda.h>
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
#include <asm/arch/udc.h>
|
#include <asm/arch/udc.h>
|
||||||
|
@ -48,6 +48,110 @@
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
|
|
||||||
|
static unsigned long tosa_pin_config[] = {
|
||||||
|
GPIO78_nCS_2, /* Scoop */
|
||||||
|
GPIO80_nCS_4, /* tg6393xb */
|
||||||
|
GPIO33_nCS_5, /* Scoop */
|
||||||
|
|
||||||
|
// GPIO76 CARD_VCC_ON1
|
||||||
|
|
||||||
|
GPIO19_GPIO, /* Reset out */
|
||||||
|
GPIO1_RST | WAKEUP_ON_EDGE_FALL,
|
||||||
|
|
||||||
|
GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* WAKE_UP */
|
||||||
|
GPIO2_GPIO | WAKEUP_ON_EDGE_BOTH, /* AC_IN */
|
||||||
|
GPIO3_GPIO | WAKEUP_ON_EDGE_FALL, /* RECORD */
|
||||||
|
GPIO4_GPIO | WAKEUP_ON_EDGE_FALL, /* SYNC */
|
||||||
|
GPIO20_GPIO, /* EAR_IN */
|
||||||
|
GPIO22_GPIO, /* On */
|
||||||
|
|
||||||
|
GPIO5_GPIO, /* USB_IN */
|
||||||
|
GPIO32_GPIO, /* Pen IRQ */
|
||||||
|
|
||||||
|
GPIO7_GPIO, /* Jacket Detect */
|
||||||
|
GPIO14_GPIO, /* BAT0_CRG */
|
||||||
|
GPIO12_GPIO, /* BAT1_CRG */
|
||||||
|
GPIO17_GPIO, /* BAT0_LOW */
|
||||||
|
GPIO84_GPIO, /* BAT1_LOW */
|
||||||
|
GPIO38_GPIO, /* BAT_LOCK */
|
||||||
|
|
||||||
|
GPIO11_3_6MHz,
|
||||||
|
GPIO15_GPIO, /* TC6393XB IRQ */
|
||||||
|
GPIO18_RDY,
|
||||||
|
GPIO27_GPIO, /* LCD Sync */
|
||||||
|
|
||||||
|
/* MMC */
|
||||||
|
GPIO6_MMC_CLK,
|
||||||
|
GPIO8_MMC_CS0,
|
||||||
|
GPIO9_GPIO, /* Detect */
|
||||||
|
// GPIO10 nSD_INT
|
||||||
|
|
||||||
|
/* CF */
|
||||||
|
GPIO13_GPIO, /* CD_IRQ */
|
||||||
|
GPIO21_GPIO, /* Main Slot IRQ */
|
||||||
|
GPIO36_GPIO, /* Jacket Slot IRQ */
|
||||||
|
GPIO48_nPOE,
|
||||||
|
GPIO49_nPWE,
|
||||||
|
GPIO50_nPIOR,
|
||||||
|
GPIO51_nPIOW,
|
||||||
|
GPIO52_nPCE_1,
|
||||||
|
GPIO53_nPCE_2,
|
||||||
|
GPIO54_nPSKTSEL,
|
||||||
|
GPIO55_nPREG,
|
||||||
|
GPIO56_nPWAIT,
|
||||||
|
GPIO57_nIOIS16,
|
||||||
|
|
||||||
|
/* AC97 */
|
||||||
|
GPIO31_AC97_SYNC,
|
||||||
|
GPIO30_AC97_SDATA_OUT,
|
||||||
|
GPIO28_AC97_BITCLK,
|
||||||
|
GPIO29_AC97_SDATA_IN_0,
|
||||||
|
// GPIO79 nAUD_IRQ
|
||||||
|
|
||||||
|
/* FFUART */
|
||||||
|
GPIO34_FFUART_RXD,
|
||||||
|
GPIO35_FFUART_CTS,
|
||||||
|
GPIO37_FFUART_DSR,
|
||||||
|
GPIO39_FFUART_TXD,
|
||||||
|
GPIO40_FFUART_DTR,
|
||||||
|
GPIO41_FFUART_RTS,
|
||||||
|
|
||||||
|
/* BTUART */
|
||||||
|
GPIO42_BTUART_RXD,
|
||||||
|
GPIO43_BTUART_TXD,
|
||||||
|
GPIO44_BTUART_CTS,
|
||||||
|
GPIO45_BTUART_RTS,
|
||||||
|
|
||||||
|
/* IrDA */
|
||||||
|
GPIO46_STUART_RXD,
|
||||||
|
GPIO47_STUART_TXD,
|
||||||
|
|
||||||
|
/* Keybd */
|
||||||
|
GPIO58_GPIO,
|
||||||
|
GPIO59_GPIO,
|
||||||
|
GPIO60_GPIO,
|
||||||
|
GPIO61_GPIO,
|
||||||
|
GPIO62_GPIO,
|
||||||
|
GPIO63_GPIO,
|
||||||
|
GPIO64_GPIO,
|
||||||
|
GPIO65_GPIO,
|
||||||
|
GPIO66_GPIO,
|
||||||
|
GPIO67_GPIO,
|
||||||
|
GPIO68_GPIO,
|
||||||
|
GPIO69_GPIO,
|
||||||
|
GPIO70_GPIO,
|
||||||
|
GPIO71_GPIO,
|
||||||
|
GPIO72_GPIO,
|
||||||
|
GPIO73_GPIO,
|
||||||
|
GPIO74_GPIO,
|
||||||
|
GPIO75_GPIO,
|
||||||
|
|
||||||
|
/* SPI */
|
||||||
|
GPIO81_SSP2_CLK_OUT,
|
||||||
|
GPIO82_SSP2_FRM_OUT,
|
||||||
|
GPIO83_SSP2_TXD,
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SCOOP Device
|
* SCOOP Device
|
||||||
*/
|
*/
|
||||||
|
@ -119,31 +223,9 @@ static struct scoop_pcmcia_dev tosa_pcmcia_scoop[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void tosa_pcmcia_init(void)
|
|
||||||
{
|
|
||||||
/* Setup default state of GPIO outputs
|
|
||||||
before we enable them as outputs. */
|
|
||||||
GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
|
|
||||||
GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) |
|
|
||||||
GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) |
|
|
||||||
GPIO_bit(GPIO53_nPCE_2);
|
|
||||||
|
|
||||||
pxa_gpio_mode(GPIO48_nPOE_MD);
|
|
||||||
pxa_gpio_mode(GPIO49_nPWE_MD);
|
|
||||||
pxa_gpio_mode(GPIO50_nPIOR_MD);
|
|
||||||
pxa_gpio_mode(GPIO51_nPIOW_MD);
|
|
||||||
pxa_gpio_mode(GPIO55_nPREG_MD);
|
|
||||||
pxa_gpio_mode(GPIO56_nPWAIT_MD);
|
|
||||||
pxa_gpio_mode(GPIO57_nIOIS16_MD);
|
|
||||||
pxa_gpio_mode(GPIO52_nPCE_1_MD);
|
|
||||||
pxa_gpio_mode(GPIO53_nPCE_2_MD);
|
|
||||||
pxa_gpio_mode(GPIO54_pSKTSEL_MD);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct scoop_pcmcia_config tosa_pcmcia_config = {
|
static struct scoop_pcmcia_config tosa_pcmcia_config = {
|
||||||
.devs = &tosa_pcmcia_scoop[0],
|
.devs = &tosa_pcmcia_scoop[0],
|
||||||
.num_devs = 2,
|
.num_devs = 2,
|
||||||
.pcmcia_init = tosa_pcmcia_init,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -176,11 +258,6 @@ static int tosa_mci_init(struct device *dev, irq_handler_t tosa_detect_int, void
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
/* setup GPIO for PXA25x MMC controller */
|
|
||||||
pxa_gpio_mode(GPIO6_MMCCLK_MD);
|
|
||||||
pxa_gpio_mode(GPIO8_MMCCS0_MD);
|
|
||||||
pxa_gpio_mode(TOSA_GPIO_nSD_DETECT | GPIO_IN);
|
|
||||||
|
|
||||||
tosa_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
tosa_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||||
|
|
||||||
err = request_irq(TOSA_IRQ_GPIO_nSD_DETECT, tosa_detect_int,
|
err = request_irq(TOSA_IRQ_GPIO_nSD_DETECT, tosa_detect_int,
|
||||||
|
@ -228,10 +305,7 @@ static void tosa_irda_transceiver_mode(struct device *dev, int mode)
|
||||||
{
|
{
|
||||||
if (mode & IR_OFF) {
|
if (mode & IR_OFF) {
|
||||||
reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN);
|
reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN);
|
||||||
pxa_gpio_mode(GPIO47_STTXD|GPIO_DFLT_LOW);
|
|
||||||
pxa_gpio_mode(GPIO47_STTXD|GPIO_OUT);
|
|
||||||
} else {
|
} else {
|
||||||
pxa_gpio_mode(GPIO47_STTXD_MD);
|
|
||||||
set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN);
|
set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -327,20 +401,13 @@ static void tosa_restart(char mode)
|
||||||
|
|
||||||
static void __init tosa_init(void)
|
static void __init tosa_init(void)
|
||||||
{
|
{
|
||||||
|
pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config));
|
||||||
|
gpio_set_wake(MFP_PIN_GPIO1, 1);
|
||||||
|
/* We can't pass to gpio-keys since it will drop the Reset altfunc */
|
||||||
|
|
||||||
pm_power_off = tosa_poweroff;
|
pm_power_off = tosa_poweroff;
|
||||||
arm_pm_restart = tosa_restart;
|
arm_pm_restart = tosa_restart;
|
||||||
|
|
||||||
pxa_gpio_mode(TOSA_GPIO_ON_RESET | GPIO_IN);
|
|
||||||
pxa_gpio_mode(TOSA_GPIO_TC6393_INT | GPIO_IN);
|
|
||||||
pxa_gpio_mode(TOSA_GPIO_USB_IN | GPIO_IN);
|
|
||||||
|
|
||||||
/* setup sleep mode values */
|
|
||||||
PWER = 0x00000002;
|
|
||||||
PFER = 0x00000000;
|
|
||||||
PRER = 0x00000002;
|
|
||||||
PGSR0 = 0x00000000;
|
|
||||||
PGSR1 = 0x00FF0002;
|
|
||||||
PGSR2 = 0x00014000;
|
|
||||||
PCFR |= PCFR_OPDE;
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
/* enable batt_fault */
|
/* enable batt_fault */
|
||||||
|
|
Loading…
Reference in New Issue