Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 91253
b: refs/heads/master
c: 2cb4734
h: refs/heads/master
i:
  91251: fc52b36
v: v3
  • Loading branch information
Dmitry Baryshkov authored and Russell King committed Apr 19, 2008
1 parent 3d44a1e commit c7bb9bd
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 43 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 64c1dd3bbf67c958992c098d5d464a014df3fa46
refs/heads/master: 2cb4734232e62ee95c1f7dafdc032b652eef49d7
151 changes: 109 additions & 42 deletions trunk/arch/arm/mach-pxa/tosa.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <asm/system.h>
#include <asm/arch/pxa-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/mmc.h>
#include <asm/arch/udc.h>
Expand All @@ -48,6 +48,110 @@
#include "generic.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
*/
Expand Down Expand Up @@ -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 = {
.devs = &tosa_pcmcia_scoop[0],
.num_devs = 2,
.pcmcia_init = tosa_pcmcia_init,
};

/*
Expand Down Expand Up @@ -176,11 +258,6 @@ static int tosa_mci_init(struct device *dev, irq_handler_t tosa_detect_int, void
{
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);

err = request_irq(TOSA_IRQ_GPIO_nSD_DETECT, tosa_detect_int,
Expand Down Expand Up @@ -228,10 +305,7 @@ static void tosa_irda_transceiver_mode(struct device *dev, int mode)
{
if (mode & IR_OFF) {
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 {
pxa_gpio_mode(GPIO47_STTXD_MD);
set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN);
}
}
Expand Down Expand Up @@ -327,20 +401,13 @@ static void tosa_restart(char mode)

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;
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;

/* enable batt_fault */
Expand Down

0 comments on commit c7bb9bd

Please sign in to comment.