Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
89de3820
Commit
89de3820
authored
Apr 06, 2009
by
Russell King
Committed by
Russell King
Apr 06, 2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'devel' of
git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6
parents
3ef48fac
80748fb8
Changes
27
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
849 additions
and
82 deletions
+849
-82
MAINTAINERS
MAINTAINERS
+1
-1
arch/arm/configs/magician_defconfig
arch/arm/configs/magician_defconfig
+5
-1
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/Kconfig
+9
-0
arch/arm/mach-pxa/Makefile
arch/arm/mach-pxa/Makefile
+1
-0
arch/arm/mach-pxa/cm-x2xx.c
arch/arm/mach-pxa/cm-x2xx.c
+1
-1
arch/arm/mach-pxa/colibri-pxa300.c
arch/arm/mach-pxa/colibri-pxa300.c
+6
-5
arch/arm/mach-pxa/colibri-pxa320.c
arch/arm/mach-pxa/colibri-pxa320.c
+5
-5
arch/arm/mach-pxa/colibri-pxa3xx.c
arch/arm/mach-pxa/colibri-pxa3xx.c
+35
-0
arch/arm/mach-pxa/csb701.c
arch/arm/mach-pxa/csb701.c
+5
-0
arch/arm/mach-pxa/e740.c
arch/arm/mach-pxa/e740.c
+2
-0
arch/arm/mach-pxa/e750.c
arch/arm/mach-pxa/e750.c
+2
-0
arch/arm/mach-pxa/e800.c
arch/arm/mach-pxa/e800.c
+2
-0
arch/arm/mach-pxa/em-x270.c
arch/arm/mach-pxa/em-x270.c
+78
-8
arch/arm/mach-pxa/include/mach/colibri.h
arch/arm/mach-pxa/include/mach/colibri.h
+7
-0
arch/arm/mach-pxa/include/mach/magician.h
arch/arm/mach-pxa/include/mach/magician.h
+2
-2
arch/arm/mach-pxa/include/mach/palmld.h
arch/arm/mach-pxa/include/mach/palmld.h
+1
-0
arch/arm/mach-pxa/include/mach/palmt5.h
arch/arm/mach-pxa/include/mach/palmt5.h
+1
-0
arch/arm/mach-pxa/include/mach/palmte2.h
arch/arm/mach-pxa/include/mach/palmte2.h
+68
-0
arch/arm/mach-pxa/include/mach/palmtx.h
arch/arm/mach-pxa/include/mach/palmtx.h
+2
-0
arch/arm/mach-pxa/magician.c
arch/arm/mach-pxa/magician.c
+41
-43
arch/arm/mach-pxa/mioa701.c
arch/arm/mach-pxa/mioa701.c
+2
-4
arch/arm/mach-pxa/palmld.c
arch/arm/mach-pxa/palmld.c
+32
-4
arch/arm/mach-pxa/palmt5.c
arch/arm/mach-pxa/palmt5.c
+31
-4
arch/arm/mach-pxa/palmte2.c
arch/arm/mach-pxa/palmte2.c
+466
-0
arch/arm/mach-pxa/palmtx.c
arch/arm/mach-pxa/palmtx.c
+31
-4
arch/arm/mach-pxa/tosa.c
arch/arm/mach-pxa/tosa.c
+2
-0
arch/arm/mm/mmu.c
arch/arm/mm/mmu.c
+11
-0
No files found.
MAINTAINERS
View file @
89de3820
...
...
@@ -636,7 +636,7 @@ P: Dirk Opfer
M: dirk@opfer-online.de
S: Maintained
ARM/PALMTX,PALMT5,PALMLD SUPPORT
ARM/PALMTX,PALMT5,PALMLD
,PALMTE2
SUPPORT
P: Marek Vasut
M: marek.vasut@gmail.com
W: http://hackndev.com
...
...
arch/arm/configs/magician_defconfig
View file @
89de3820
...
...
@@ -1183,7 +1183,11 @@ CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_SA1100=y
# CONFIG_RTC_DRV_PXA is not set
# CONFIG_DMADEVICES is not set
# CONFIG_REGULATOR is not set
CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
CONFIG_REGULATOR_BQ24022=y
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
...
...
arch/arm/mach-pxa/Kconfig
View file @
89de3820
...
...
@@ -343,6 +343,15 @@ config ARCH_PXA_PALM
bool "PXA based Palm PDAs"
select HAVE_PWM
config MACH_PALMTE2
bool "Palm Tungsten|E2"
default y
depends on ARCH_PXA_PALM
select PXA25x
help
Say Y here if you intend to run this kernel on a Palm Tungsten|E2
handheld computer.
config MACH_PALMT5
bool "Palm Tungsten|T5"
default y
...
...
arch/arm/mach-pxa/Makefile
View file @
89de3820
...
...
@@ -57,6 +57,7 @@ obj-$(CONFIG_MACH_E740) += e740.o
obj-$(CONFIG_MACH_E750)
+=
e750.o
obj-$(CONFIG_MACH_E400)
+=
e400.o
obj-$(CONFIG_MACH_E800)
+=
e800.o
obj-$(CONFIG_MACH_PALMTE2)
+=
palmte2.o
obj-$(CONFIG_MACH_PALMT5)
+=
palmt5.o
obj-$(CONFIG_MACH_PALMTX)
+=
palmtx.o
obj-$(CONFIG_MACH_PALMLD)
+=
palmld.o
...
...
arch/arm/mach-pxa/cm-x2xx.c
View file @
89de3820
...
...
@@ -121,7 +121,7 @@ static inline void cmx2xx_init_dm9000(void) {}
/* UCB1400 touchscreen controller */
#if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
static
struct
platform_device
cmx2xx_ts_device
=
{
.
name
=
"ucb1400_
ts
"
,
.
name
=
"ucb1400_
core
"
,
.
id
=
-
1
,
};
...
...
arch/arm/mach-pxa/colibri-pxa300.c
View file @
89de3820
...
...
@@ -15,7 +15,7 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <
net/ax88796
.h>
#include <
linux/interrupt
.h>
#include <asm/mach-types.h>
#include <asm/sizes.h>
...
...
@@ -32,12 +32,13 @@
#if defined(CONFIG_AX88796)
#define COLIBRI_ETH_IRQ_GPIO mfp_to_gpio(GPIO26_GPIO)
/*
* Asix AX88796 Ethernet
*/
static
struct
ax_plat_data
colibri_asix_platdata
=
{
.
flags
=
AXFLG_MAC_FROMDEV
,
.
wordlength
=
2
.
flags
=
0
,
/* defined later */
.
wordlength
=
2
,
};
static
struct
resource
colibri_asix_resource
[]
=
{
...
...
@@ -49,7 +50,7 @@ static struct resource colibri_asix_resource[] = {
[
1
]
=
{
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
end
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
flags
=
IORESOURCE_IRQ
.
flags
=
IORESOURCE_IRQ
|
IRQF_TRIGGER_FALLING
,
}
};
...
...
@@ -70,8 +71,8 @@ static mfp_cfg_t colibri_pxa300_eth_pin_config[] __initdata = {
static
void
__init
colibri_pxa300_init_eth
(
void
)
{
colibri_pxa3xx_init_eth
(
&
colibri_asix_platdata
);
pxa3xx_mfp_config
(
ARRAY_AND_SIZE
(
colibri_pxa300_eth_pin_config
));
set_irq_type
(
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
IRQ_TYPE_EDGE_FALLING
);
platform_device_register
(
&
asix_device
);
}
#else
...
...
arch/arm/mach-pxa/colibri-pxa320.c
View file @
89de3820
...
...
@@ -15,7 +15,7 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <
net/ax88796
.h>
#include <
linux/interrupt
.h>
#include <asm/mach-types.h>
#include <asm/sizes.h>
...
...
@@ -38,8 +38,8 @@
* Asix AX88796 Ethernet
*/
static
struct
ax_plat_data
colibri_asix_platdata
=
{
.
flags
=
AXFLG_MAC_FROMDEV
,
.
wordlength
=
2
.
flags
=
0
,
/* defined later */
.
wordlength
=
2
,
};
static
struct
resource
colibri_asix_resource
[]
=
{
...
...
@@ -51,7 +51,7 @@ static struct resource colibri_asix_resource[] = {
[
1
]
=
{
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
end
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
flags
=
IORESOURCE_IRQ
.
flags
=
IORESOURCE_IRQ
|
IRQF_TRIGGER_FALLING
,
}
};
...
...
@@ -72,8 +72,8 @@ static mfp_cfg_t colibri_pxa320_eth_pin_config[] __initdata = {
static
void
__init
colibri_pxa320_init_eth
(
void
)
{
colibri_pxa3xx_init_eth
(
&
colibri_asix_platdata
);
pxa3xx_mfp_config
(
ARRAY_AND_SIZE
(
colibri_pxa320_eth_pin_config
));
set_irq_type
(
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
IRQ_TYPE_EDGE_FALLING
);
platform_device_register
(
&
asix_device
);
}
#else
...
...
arch/arm/mach-pxa/colibri-pxa3xx.c
View file @
89de3820
...
...
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/etherdevice.h>
#include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/sizes.h>
...
...
@@ -28,6 +29,40 @@
#include "generic.h"
#include "devices.h"
#if defined(CONFIG_AX88796)
#define ETHER_ADDR_LEN 6
static
u8
ether_mac_addr
[
ETHER_ADDR_LEN
];
void
__init
colibri_pxa3xx_init_eth
(
struct
ax_plat_data
*
plat_data
)
{
int
i
;
u64
serial
=
((
u64
)
system_serial_high
<<
32
)
|
system_serial_low
;
/*
* If the bootloader passed in a serial boot tag, which contains a
* valid ethernet MAC, pass it to the interface. Toradex ships the
* modules with their own bootloader which provides a valid MAC
* this way.
*/
for
(
i
=
0
;
i
<
ETHER_ADDR_LEN
;
i
++
)
{
ether_mac_addr
[
i
]
=
serial
&
0xff
;
serial
>>=
8
;
}
if
(
is_valid_ether_addr
(
ether_mac_addr
))
{
plat_data
->
flags
|=
AXFLG_MAC_FROMPLATFORM
;
plat_data
->
mac_addr
=
ether_mac_addr
;
printk
(
KERN_INFO
"%s(): taking MAC from serial boot tag
\n
"
,
__func__
);
}
else
{
plat_data
->
flags
|=
AXFLG_MAC_FROMDEV
;
printk
(
KERN_INFO
"%s(): no valid serial boot tag found, "
"taking MAC from device
\n
"
,
__func__
);
}
}
#endif
#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
static
int
mmc_detect_pin
;
...
...
arch/arm/mach-pxa/csb701.c
View file @
89de3820
...
...
@@ -5,6 +5,8 @@
#include <linux/input.h>
#include <linux/leds.h>
#include <asm/mach-types.h>
static
struct
gpio_keys_button
csb701_buttons
[]
=
{
{
.
code
=
0x7
,
...
...
@@ -54,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
static
int
__init
csb701_init
(
void
)
{
if
(
!
machine_is_csb726
())
return
-
ENODEV
;
return
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
}
...
...
arch/arm/mach-pxa/e740.c
View file @
89de3820
...
...
@@ -29,6 +29,7 @@
#include <mach/udc.h>
#include <mach/irda.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "eseries.h"
...
...
@@ -197,6 +198,7 @@ static void __init e740_init(void)
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
e7xx_irda_init
();
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
}
...
...
arch/arm/mach-pxa/e750.c
View file @
89de3820
...
...
@@ -28,6 +28,7 @@
#include <mach/udc.h>
#include <mach/irda.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "eseries.h"
...
...
@@ -198,6 +199,7 @@ static void __init e750_init(void)
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
e7xx_irda_init
();
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
}
...
...
arch/arm/mach-pxa/e800.c
View file @
89de3820
...
...
@@ -27,6 +27,7 @@
#include <mach/eseries-gpio.h>
#include <mach/udc.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "eseries.h"
...
...
@@ -199,6 +200,7 @@ static void __init e800_init(void)
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e800_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
}
MACHINE_START
(
E800
,
"Toshiba e800"
)
...
...
arch/arm/mach-pxa/em-x270.c
View file @
89de3820
...
...
@@ -25,8 +25,10 @@
#include <linux/regulator/machine.h>
#include <linux/spi/spi.h>
#include <linux/spi/tdo24m.h>
#include <linux/spi/libertas_spi.h>
#include <linux/power_supply.h>
#include <linux/apm-emulation.h>
#include <linux/delay.h>
#include <media/soc_camera.h>
...
...
@@ -62,6 +64,8 @@
#define GPIO93_CAM_RESET (93)
#define GPIO41_ETHIRQ (41)
#define EM_X270_ETHIRQ IRQ_GPIO(GPIO41_ETHIRQ)
#define GPIO115_WLAN_PWEN (115)
#define GPIO19_WLAN_STRAP (19)
static
int
mmc_cd
;
static
int
nand_rb
;
...
...
@@ -159,8 +163,8 @@ static unsigned long common_pin_config[] = {
GPIO57_SSP1_TXD
,
/* SSP2 */
GPIO19_
SSP2_SCLK
,
GPIO14_
SSP2_SFRM
,
GPIO19_
GPIO
,
/* SSP2 clock is used as GPIO for Libertas pin-strap */
GPIO14_
GPIO
,
GPIO89_SSP2_TXD
,
GPIO88_SSP2_RXD
,
...
...
@@ -648,20 +652,86 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
.
model
=
TDO35S
,
};
static
struct
pxa2xx_spi_master
em_x270_spi_2_info
=
{
.
num_chipselect
=
1
,
.
enable_dma
=
1
,
};
static
struct
pxa2xx_spi_chip
em_x270_libertas_chip
=
{
.
rx_threshold
=
1
,
.
tx_threshold
=
1
,
.
timeout
=
1000
,
};
static
unsigned
long
em_x270_libertas_pin_config
[]
=
{
/* SSP2 */
GPIO19_SSP2_SCLK
,
GPIO14_GPIO
,
GPIO89_SSP2_TXD
,
GPIO88_SSP2_RXD
,
};
static
int
em_x270_libertas_setup
(
struct
spi_device
*
spi
)
{
int
err
=
gpio_request
(
GPIO115_WLAN_PWEN
,
"WLAN PWEN"
);
if
(
err
)
return
err
;
gpio_direction_output
(
GPIO19_WLAN_STRAP
,
1
);
mdelay
(
100
);
pxa2xx_mfp_config
(
ARRAY_AND_SIZE
(
em_x270_libertas_pin_config
));
gpio_direction_output
(
GPIO115_WLAN_PWEN
,
0
);
mdelay
(
100
);
gpio_set_value
(
GPIO115_WLAN_PWEN
,
1
);
mdelay
(
100
);
spi
->
bits_per_word
=
16
;
spi_setup
(
spi
);
return
0
;
}
static
int
em_x270_libertas_teardown
(
struct
spi_device
*
spi
)
{
gpio_set_value
(
GPIO115_WLAN_PWEN
,
0
);
gpio_free
(
GPIO115_WLAN_PWEN
);
return
0
;
}
struct
libertas_spi_platform_data
em_x270_libertas_pdata
=
{
.
use_dummy_writes
=
1
,
.
gpio_cs
=
14
,
.
setup
=
em_x270_libertas_setup
,
.
teardown
=
em_x270_libertas_teardown
,
};
static
struct
spi_board_info
em_x270_spi_devices
[]
__initdata
=
{
{
.
modalias
=
"tdo24m"
,
.
max_speed_hz
=
1000000
,
.
bus_num
=
1
,
.
chip_select
=
0
,
.
controller_data
=
&
em_x270_tdo24m_chip
,
.
platform_data
=
&
em_x270_tdo24m_pdata
,
.
modalias
=
"tdo24m"
,
.
max_speed_hz
=
1000000
,
.
bus_num
=
1
,
.
chip_select
=
0
,
.
controller_data
=
&
em_x270_tdo24m_chip
,
.
platform_data
=
&
em_x270_tdo24m_pdata
,
},
{
.
modalias
=
"libertas_spi"
,
.
max_speed_hz
=
13000000
,
.
bus_num
=
2
,
.
irq
=
IRQ_GPIO
(
116
),
.
chip_select
=
0
,
.
controller_data
=
&
em_x270_libertas_chip
,
.
platform_data
=
&
em_x270_libertas_pdata
,
},
};
static
void
__init
em_x270_init_spi
(
void
)
{
pxa2xx_set_spi_info
(
1
,
&
em_x270_spi_info
);
pxa2xx_set_spi_info
(
2
,
&
em_x270_spi_2_info
);
spi_register_board_info
(
ARRAY_AND_SIZE
(
em_x270_spi_devices
));
}
#else
...
...
arch/arm/mach-pxa/include/mach/colibri.h
View file @
89de3820
#ifndef _COLIBRI_H_
#define _COLIBRI_H_
#include <net/ax88796.h>
/*
* common settings for all modules
*/
...
...
@@ -16,6 +19,10 @@ extern void colibri_pxa3xx_init_lcd(int bl_pin);
static
inline
void
colibri_pxa3xx_init_lcd
(
int
)
{}
#endif
#if defined(CONFIG_AX88796)
extern
void
colibri_pxa3xx_init_eth
(
struct
ax_plat_data
*
plat_data
);
#endif
/* physical memory regions */
#define COLIBRI_SDRAM_BASE 0xa0000000
/* SDRAM region */
...
...
arch/arm/mach-pxa/include/mach/magician.h
View file @
89de3820
...
...
@@ -27,7 +27,7 @@
#define GPIO22_MAGICIAN_VIBRA_EN 22
#define GPIO26_MAGICIAN_GSM_POWER 26
#define GPIO27_MAGICIAN_USBC_PUEN 27
#define GPIO30_MAGICIAN_
nCHARGE_EN
30
#define GPIO30_MAGICIAN_
BQ24022_nCHARGE_EN
30
#define GPIO37_MAGICIAN_KEY_HANGUP 37
#define GPIO38_MAGICIAN_KEY_CONTACTS 38
#define GPIO40_MAGICIAN_GSM_OUT2 40
...
...
@@ -98,7 +98,7 @@
#define EGPIO_MAGICIAN_UNKNOWN_WAVEDEV_DLL MAGICIAN_EGPIO(2, 2)
#define EGPIO_MAGICIAN_FLASH_VPP MAGICIAN_EGPIO(2, 3)
#define EGPIO_MAGICIAN_BL_POWER2 MAGICIAN_EGPIO(2, 4)
#define EGPIO_MAGICIAN_
CHARGE_EN
MAGICIAN_EGPIO(2, 5)
#define EGPIO_MAGICIAN_
BQ24022_ISET2
MAGICIAN_EGPIO(2, 5)
#define EGPIO_MAGICIAN_GSM_POWER MAGICIAN_EGPIO(2, 7)
/* input */
...
...
arch/arm/mach-pxa/include/mach/palmld.h
View file @
89de3820
...
...
@@ -87,6 +87,7 @@
#define PALMLD_IDE_SIZE 0x00100000
#define PALMLD_PHYS_IO_START 0x40000000
#define PALMLD_STR_BASE 0xa0200000
/* BATTERY */
#define PALMLD_BAT_MAX_VOLTAGE 4000
/* 4.00V maximum voltage */
...
...
arch/arm/mach-pxa/include/mach/palmt5.h
View file @
89de3820
...
...
@@ -59,6 +59,7 @@
/* Various addresses */
#define PALMT5_PHYS_RAM_START 0xa0000000
#define PALMT5_PHYS_IO_START 0x40000000
#define PALMT5_STR_BASE 0xa0200000
/* TOUCHSCREEN */
#define AC97_LINK_FRAME 21
...
...
arch/arm/mach-pxa/include/mach/palmte2.h
0 → 100644
View file @
89de3820
/*
* GPIOs and interrupts for Palm Tungsten|E2 Handheld Computer
*
* Author:
* Carlos Eduardo Medaglia Dyonisio <cadu@nerdfeliz.com>
*
* 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 _INCLUDE_PALMTE2_H_
#define _INCLUDE_PALMTE2_H_
/** HERE ARE GPIOs **/
/* GPIOs */
#define GPIO_NR_PALMTE2_POWER_DETECT 9
#define GPIO_NR_PALMTE2_HOTSYNC_BUTTON_N 4
#define GPIO_NR_PALMTE2_EARPHONE_DETECT 15
/* SD/MMC */
#define GPIO_NR_PALMTE2_SD_DETECT_N 10
#define GPIO_NR_PALMTE2_SD_POWER 55
#define GPIO_NR_PALMTE2_SD_READONLY 51
/* IRDA - disable GPIO connected to SD pin of tranceiver (TFBS4710?) ? */
#define GPIO_NR_PALMTE2_IR_DISABLE 48
/* USB */
#define GPIO_NR_PALMTE2_USB_DETECT_N 35
#define GPIO_NR_PALMTE2_USB_PULLUP 53
/* LCD/BACKLIGHT */
#define GPIO_NR_PALMTE2_BL_POWER 56
#define GPIO_NR_PALMTE2_LCD_POWER 37
/* KEYS */
#define GPIO_NR_PALMTE2_KEY_NOTES 5
#define GPIO_NR_PALMTE2_KEY_TASKS 7
#define GPIO_NR_PALMTE2_KEY_CALENDAR 11
#define GPIO_NR_PALMTE2_KEY_CONTACTS 13
#define GPIO_NR_PALMTE2_KEY_CENTER 14
#define GPIO_NR_PALMTE2_KEY_LEFT 19
#define GPIO_NR_PALMTE2_KEY_RIGHT 20
#define GPIO_NR_PALMTE2_KEY_DOWN 21
#define GPIO_NR_PALMTE2_KEY_UP 22
/** HERE ARE INIT VALUES **/
/* BACKLIGHT */
#define PALMTE2_MAX_INTENSITY 0xFE
#define PALMTE2_DEFAULT_INTENSITY 0x7E
#define PALMTE2_LIMIT_MASK 0x7F
#define PALMTE2_PRESCALER 0x3F
#define PALMTE2_PERIOD_NS 3500
/* BATTERY */
#define PALMTE2_BAT_MAX_VOLTAGE 4000
/* 4.00v current voltage */
#define PALMTE2_BAT_MIN_VOLTAGE 3550
/* 3.55v critical voltage */
#define PALMTE2_BAT_MAX_CURRENT 0
/* unknokn */
#define PALMTE2_BAT_MIN_CURRENT 0
/* unknown */
#define PALMTE2_BAT_MAX_CHARGE 1
/* unknown */
#define PALMTE2_BAT_MIN_CHARGE 1
/* unknown */
#define PALMTE2_MAX_LIFE_MINS 360
/* on-life in minutes */
#endif
arch/arm/mach-pxa/include/mach/palmtx.h
View file @
89de3820
...
...
@@ -78,6 +78,8 @@
#define PALMTX_PHYS_RAM_START 0xa0000000
#define PALMTX_PHYS_IO_START 0x40000000
#define PALMTX_STR_BASE 0xa0200000
#define PALMTX_PHYS_FLASH_START PXA_CS0_PHYS
/* ChipSelect 0 */
#define PALMTX_PHYS_NAND_START PXA_CS1_PHYS
/* ChipSelect 1 */
...
...
arch/arm/mach-pxa/magician.c
View file @
89de3820
...
...
@@ -25,6 +25,8 @@
#include <linux/mtd/physmap.h>
#include <linux/pda_power.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/bq24022.h>
#include <linux/regulator/machine.h>
#include <linux/usb/gpio_vbus.h>
#include <mach/hardware.h>
...
...
@@ -552,33 +554,7 @@ static struct platform_device gpio_vbus = {
static
int
power_supply_init
(
struct
device
*
dev
)
{
int
ret
;
ret
=
gpio_request
(
EGPIO_MAGICIAN_CABLE_STATE_AC
,
"CABLE_STATE_AC"
);
if
(
ret
)
goto
err_cs_ac
;
ret
=
gpio_request
(
EGPIO_MAGICIAN_CABLE_STATE_USB
,
"CABLE_STATE_USB"
);
if
(
ret
)
goto
err_cs_usb
;
ret
=
gpio_request
(
EGPIO_MAGICIAN_CHARGE_EN
,
"CHARGE_EN"
);
if
(
ret
)
goto
err_chg_en
;
ret
=
gpio_request
(
GPIO30_MAGICIAN_nCHARGE_EN
,
"nCHARGE_EN"
);
if
(
!
ret
)
ret
=
gpio_direction_output
(
GPIO30_MAGICIAN_nCHARGE_EN
,
0
);
if
(
ret
)
goto
err_nchg_en
;
return
0
;
err_nchg_en:
gpio_free
(
EGPIO_MAGICIAN_CHARGE_EN
);
err_chg_en:
gpio_free
(
EGPIO_MAGICIAN_CABLE_STATE_USB
);
err_cs_usb:
gpio_free
(
EGPIO_MAGICIAN_CABLE_STATE_AC
);
err_cs_ac:
return
ret
;
return
gpio_request
(
EGPIO_MAGICIAN_CABLE_STATE_AC
,
"CABLE_STATE_AC"
);
}
static
int
magician_is_ac_online
(
void
)
...
...
@@ -586,22 +562,8 @@ static int magician_is_ac_online(void)
return
gpio_get_value
(
EGPIO_MAGICIAN_CABLE_STATE_AC
);
}
static
int
magician_is_usb_online
(
void
)
{
return
gpio_get_value
(
EGPIO_MAGICIAN_CABLE_STATE_USB
);
}
static
void
magician_set_charge
(
int
flags
)
{
gpio_set_value
(
GPIO30_MAGICIAN_nCHARGE_EN
,
!
flags
);
gpio_set_value
(
EGPIO_MAGICIAN_CHARGE_EN
,
flags
);
}
static
void
power_supply_exit
(
struct
device
*
dev
)
{
gpio_free
(
GPIO30_MAGICIAN_nCHARGE_EN
);
gpio_free
(
EGPIO_MAGICIAN_CHARGE_EN
);
gpio_free
(
EGPIO_MAGICIAN_CABLE_STATE_USB
);
gpio_free
(
EGPIO_MAGICIAN_CABLE_STATE_AC
);
}
...
...
@@ -612,8 +574,6 @@ static char *magician_supplicants[] = {
static
struct
pda_power_pdata
power_supply_info
=
{
.
init
=
power_supply_init
,
.
is_ac_online
=
magician_is_ac_online
,
.
is_usb_online
=
magician_is_usb_online
,
.
set_charge
=
magician_set_charge
,
.
exit
=
power_supply_exit
,
.
supplied_to
=
magician_supplicants
,
.
num_supplicants
=
ARRAY_SIZE
(
magician_supplicants
),
...
...
@@ -646,6 +606,43 @@ static struct platform_device power_supply = {
.
num_resources
=
ARRAY_SIZE
(
power_supply_resources
),
};
/*
* Battery charger
*/
static
struct
regulator_consumer_supply
bq24022_consumers
[]
=
{
{
.
dev
=
&
gpio_vbus
.
dev
,
.
supply
=
"vbus_draw"
,
},
{
.
dev
=
&
power_supply
.
dev
,
.
supply
=
"ac_draw"
,
},
};
static
struct
regulator_init_data
bq24022_init_data
=
{
.
constraints
=
{
.
max_uA
=
500000
,
.
valid_ops_mask
=
REGULATOR_CHANGE_CURRENT
,
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
bq24022_consumers
),
.
consumer_supplies
=
bq24022_consumers
,
};
static
struct
bq24022_mach_info
bq24022_info
=
{
.
gpio_nce
=
GPIO30_MAGICIAN_BQ24022_nCHARGE_EN
,
.
gpio_iset2
=
EGPIO_MAGICIAN_BQ24022_ISET2
,
.
init_data
=
&
bq24022_init_data
,
};
static
struct
platform_device
bq24022
=
{
.
name
=
"bq24022"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
bq24022_info
,
},
};
/*
* MMC/SD
...
...
@@ -756,6 +753,7 @@ static struct platform_device *devices[] __initdata = {
&
egpio
,
&
backlight
,
&
pasic3
,
&
bq24022
,
&
gpio_vbus
,
&
power_supply
,
&
strataflash
,
...
...
arch/arm/mach-pxa/mioa701.c
View file @
89de3820
...
...
@@ -50,6 +50,7 @@
#include <mach/pxa27x-udc.h>
#include <mach/i2c.h>
#include <mach/camera.h>
#include <mach/audio.h>
#include <media/soc_camera.h>
#include <mach/mioa701.h>
...
...
@@ -763,8 +764,6 @@ MIO_PARENT_DEV(mioa701_backlight, "pwm-backlight", &pxa27x_device_pwm0.dev,
&
mioa701_backlight_data
);
MIO_SIMPLE_DEV
(
mioa701_led
,
"leds-gpio"
,
&
gpio_led_info
)
MIO_SIMPLE_DEV
(
pxa2xx_pcm
,
"pxa2xx-pcm"
,
NULL
)
MIO_SIMPLE_DEV
(
pxa2xx_ac97
,
"pxa2xx-ac97"
,
NULL
)
MIO_PARENT_DEV
(
mio_wm9713_codec
,
"wm9713-codec"
,
&
pxa2xx_ac97
.
dev
,
NULL
)
MIO_SIMPLE_DEV
(
mioa701_sound
,
"mioa701-wm9713"
,
NULL
)
MIO_SIMPLE_DEV
(
mioa701_board
,
"mioa701-board"
,
NULL
)
MIO_SIMPLE_DEV
(
gpio_vbus
,
"gpio-vbus"
,
&
gpio_vbus_data
);
...
...
@@ -774,8 +773,6 @@ static struct platform_device *devices[] __initdata = {
&
mioa701_backlight
,
&
mioa701_led
,
&
pxa2xx_pcm
,
&
pxa2xx_ac97
,
&
mio_wm9713_codec
,
&
mioa701_sound
,
&
power_dev
,
&
strataflash
,
...
...
@@ -818,6 +815,7 @@ static void __init mioa701_machine_init(void)
pxa_set_keypad_info
(
&
mioa701_keypad_info
);
wm97xx_bat_set_pdata
(
&
mioa701_battery_data
);
pxa_set_udc_info
(
&
mioa701_udc_info
);
pxa_set_ac97_info
(
NULL
);
pm_power_off
=
mioa701_poweroff
;
arm_pm_restart
=
mioa701_restart
;
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
...
...
arch/arm/mach-pxa/palmld.c
View file @
89de3820
...
...
@@ -24,6 +24,7 @@
#include <linux/gpio.h>
#include <linux/wm97xx_batt.h>
#include <linux/power_supply.h>
#include <linux/sysdev.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
...
...
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
GPIO47_FICP_TXD
,
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO101_KP_MKIN_1
,
GPIO102_KP_MKIN_2
,
GPIO97_KP_MKIN_3
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
...
...
@@ -506,6 +507,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
};
/******************************************************************************
* Power management - standby
******************************************************************************/
#ifdef CONFIG_PM
static
u32
*
addr
__initdata
;
static
u32
resume
[
3
]
__initdata
=
{
0xe3a00101
,
/* mov r0, #0x40000000 */
0xe380060f
,
/* orr r0, r0, #0x00f00000 */
0xe590f008
,
/* ldr pc, [r0, #0x08] */
};
static
int
__init
palmld_pm_init
(
void
)
{
int
i
;
/* this is where the bootloader jumps */
addr
=
phys_to_virt
(
PALMLD_STR_BASE
);
for
(
i
=
0
;
i
<
3
;
i
++
)
addr
[
i
]
=
resume
[
i
];
return
0
;
}
device_initcall
(
palmld_pm_init
);
#endif
/******************************************************************************
* Machine init
******************************************************************************/
...
...
arch/arm/mach-pxa/palmt5.c
View file @
89de3820
...
...
@@ -75,10 +75,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
GPIO95_GPIO
,
/* usb power */
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO101_KP_MKIN_1
,
GPIO102_KP_MKIN_2
,
GPIO97_KP_MKIN_3
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
...
...
@@ -449,6 +449,33 @@ static struct pxafb_mach_info palmt5_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
};
/******************************************************************************
* Power management - standby
******************************************************************************/
#ifdef CONFIG_PM
static
u32
*
addr
__initdata
;
static
u32
resume
[
3
]
__initdata
=
{
0xe3a00101
,
/* mov r0, #0x40000000 */
0xe380060f
,
/* orr r0, r0, #0x00f00000 */
0xe590f008
,
/* ldr pc, [r0, #0x08] */
};
static
int
__init
palmt5_pm_init
(
void
)
{
int
i
;
/* this is where the bootloader jumps */
addr
=
phys_to_virt
(
PALMT5_STR_BASE
);
for
(
i
=
0
;
i
<
3
;
i
++
)
addr
[
i
]
=
resume
[
i
];
return
0
;
}
device_initcall
(
palmt5_pm_init
);
#endif
/******************************************************************************
* Machine init
******************************************************************************/
...
...
arch/arm/mach-pxa/palmte2.c
0 → 100644
View file @
89de3820
This diff is collapsed.
Click to expand it.
arch/arm/mach-pxa/palmtx.c
View file @
89de3820
...
...
@@ -93,10 +93,10 @@ static unsigned long palmtx_pin_config[] __initdata = {
GPIO116_GPIO
,
/* wifi ready */
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO101_KP_MKIN_1
,
GPIO102_KP_MKIN_2
,
GPIO97_KP_MKIN_3
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
...
...
@@ -458,6 +458,33 @@ static struct pxafb_mach_info palmtx_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
};
/******************************************************************************
* Power management - standby
******************************************************************************/
#ifdef CONFIG_PM
static
u32
*
addr
__initdata
;
static
u32
resume
[
3
]
__initdata
=
{
0xe3a00101
,
/* mov r0, #0x40000000 */
0xe380060f
,
/* orr r0, r0, #0x00f00000 */
0xe590f008
,
/* ldr pc, [r0, #0x08] */
};
static
int
__init
palmtx_pm_init
(
void
)
{
int
i
;
/* this is where the bootloader jumps */
addr
=
phys_to_virt
(
PALMTX_STR_BASE
);
for
(
i
=
0
;
i
<
3
;
i
++
)
addr
[
i
]
=
resume
[
i
];
return
0
;
}
device_initcall
(
palmtx_pm_init
);
#endif
/******************************************************************************
* Machine init
******************************************************************************/
...
...
arch/arm/mach-pxa/tosa.c
View file @
89de3820
...
...
@@ -45,6 +45,7 @@
#include <mach/udc.h>
#include <mach/tosa_bt.h>
#include <mach/pxa2xx_spi.h>
#include <mach/audio.h>
#include <asm/mach/arch.h>
#include <mach/tosa.h>
...
...
@@ -914,6 +915,7 @@ static void __init tosa_init(void)
pxa_set_udc_info
(
&
udc_info
);
pxa_set_ficp_info
(
&
tosa_ficp_platform_data
);
pxa_set_i2c_info
(
NULL
);
pxa_set_ac97_info
(
NULL
);
platform_scoop_config
=
&
tosa_pcmcia_config
;
pxa2xx_set_spi_info
(
2
,
&
pxa_ssp_master_info
);
...
...
arch/arm/mm/mmu.c
View file @
89de3820
...
...
@@ -828,6 +828,17 @@ void __init reserve_node_zero(pg_data_t *pgdat)
BOOTMEM_DEFAULT
);
}
if
(
machine_is_palmld
()
||
machine_is_palmtx
())
{
reserve_bootmem_node
(
pgdat
,
0xa0000000
,
0x1000
,
BOOTMEM_EXCLUSIVE
);
reserve_bootmem_node
(
pgdat
,
0xa0200000
,
0x1000
,
BOOTMEM_EXCLUSIVE
);
}
if
(
machine_is_palmt5
())
reserve_bootmem_node
(
pgdat
,
0xa0200000
,
0x1000
,
BOOTMEM_EXCLUSIVE
);
#ifdef CONFIG_SA1111
/*
* Because of the SA1111 DMA bug, we want to preserve our
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment