Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
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
Show 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
...
@@ -636,7 +636,7 @@ P: Dirk Opfer
M: dirk@opfer-online.de
M: dirk@opfer-online.de
S: Maintained
S: Maintained
ARM/PALMTX,PALMT5,PALMLD SUPPORT
ARM/PALMTX,PALMT5,PALMLD
,PALMTE2
SUPPORT
P: Marek Vasut
P: Marek Vasut
M: marek.vasut@gmail.com
M: marek.vasut@gmail.com
W: http://hackndev.com
W: http://hackndev.com
...
...
arch/arm/configs/magician_defconfig
View file @
89de3820
...
@@ -1183,7 +1183,11 @@ CONFIG_RTC_INTF_DEV=y
...
@@ -1183,7 +1183,11 @@ CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_SA1100=y
CONFIG_RTC_DRV_SA1100=y
# CONFIG_RTC_DRV_PXA is not set
# CONFIG_RTC_DRV_PXA is not set
# CONFIG_DMADEVICES 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_UIO is not set
# CONFIG_STAGING is not set
# CONFIG_STAGING is not set
...
...
arch/arm/mach-pxa/Kconfig
View file @
89de3820
...
@@ -343,6 +343,15 @@ config ARCH_PXA_PALM
...
@@ -343,6 +343,15 @@ config ARCH_PXA_PALM
bool "PXA based Palm PDAs"
bool "PXA based Palm PDAs"
select HAVE_PWM
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
config MACH_PALMT5
bool "Palm Tungsten|T5"
bool "Palm Tungsten|T5"
default y
default y
...
...
arch/arm/mach-pxa/Makefile
View file @
89de3820
...
@@ -57,6 +57,7 @@ obj-$(CONFIG_MACH_E740) += e740.o
...
@@ -57,6 +57,7 @@ obj-$(CONFIG_MACH_E740) += e740.o
obj-$(CONFIG_MACH_E750)
+=
e750.o
obj-$(CONFIG_MACH_E750)
+=
e750.o
obj-$(CONFIG_MACH_E400)
+=
e400.o
obj-$(CONFIG_MACH_E400)
+=
e400.o
obj-$(CONFIG_MACH_E800)
+=
e800.o
obj-$(CONFIG_MACH_E800)
+=
e800.o
obj-$(CONFIG_MACH_PALMTE2)
+=
palmte2.o
obj-$(CONFIG_MACH_PALMT5)
+=
palmt5.o
obj-$(CONFIG_MACH_PALMT5)
+=
palmt5.o
obj-$(CONFIG_MACH_PALMTX)
+=
palmtx.o
obj-$(CONFIG_MACH_PALMTX)
+=
palmtx.o
obj-$(CONFIG_MACH_PALMLD)
+=
palmld.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) {}
...
@@ -121,7 +121,7 @@ static inline void cmx2xx_init_dm9000(void) {}
/* UCB1400 touchscreen controller */
/* UCB1400 touchscreen controller */
#if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
#if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
static
struct
platform_device
cmx2xx_ts_device
=
{
static
struct
platform_device
cmx2xx_ts_device
=
{
.
name
=
"ucb1400_
ts
"
,
.
name
=
"ucb1400_
core
"
,
.
id
=
-
1
,
.
id
=
-
1
,
};
};
...
...
arch/arm/mach-pxa/colibri-pxa300.c
View file @
89de3820
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <
net/ax88796
.h>
#include <
linux/interrupt
.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/sizes.h>
#include <asm/sizes.h>
...
@@ -32,12 +32,13 @@
...
@@ -32,12 +32,13 @@
#if defined(CONFIG_AX88796)
#if defined(CONFIG_AX88796)
#define COLIBRI_ETH_IRQ_GPIO mfp_to_gpio(GPIO26_GPIO)
#define COLIBRI_ETH_IRQ_GPIO mfp_to_gpio(GPIO26_GPIO)
/*
/*
* Asix AX88796 Ethernet
* Asix AX88796 Ethernet
*/
*/
static
struct
ax_plat_data
colibri_asix_platdata
=
{
static
struct
ax_plat_data
colibri_asix_platdata
=
{
.
flags
=
AXFLG_MAC_FROMDEV
,
.
flags
=
0
,
/* defined later */
.
wordlength
=
2
.
wordlength
=
2
,
};
};
static
struct
resource
colibri_asix_resource
[]
=
{
static
struct
resource
colibri_asix_resource
[]
=
{
...
@@ -49,7 +50,7 @@ static struct resource colibri_asix_resource[] = {
...
@@ -49,7 +50,7 @@ static struct resource colibri_asix_resource[] = {
[
1
]
=
{
[
1
]
=
{
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
end
=
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 = {
...
@@ -70,8 +71,8 @@ static mfp_cfg_t colibri_pxa300_eth_pin_config[] __initdata = {
static
void
__init
colibri_pxa300_init_eth
(
void
)
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
));
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
);
platform_device_register
(
&
asix_device
);
}
}
#else
#else
...
...
arch/arm/mach-pxa/colibri-pxa320.c
View file @
89de3820
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <
net/ax88796
.h>
#include <
linux/interrupt
.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/sizes.h>
#include <asm/sizes.h>
...
@@ -38,8 +38,8 @@
...
@@ -38,8 +38,8 @@
* Asix AX88796 Ethernet
* Asix AX88796 Ethernet
*/
*/
static
struct
ax_plat_data
colibri_asix_platdata
=
{
static
struct
ax_plat_data
colibri_asix_platdata
=
{
.
flags
=
AXFLG_MAC_FROMDEV
,
.
flags
=
0
,
/* defined later */
.
wordlength
=
2
.
wordlength
=
2
,
};
};
static
struct
resource
colibri_asix_resource
[]
=
{
static
struct
resource
colibri_asix_resource
[]
=
{
...
@@ -51,7 +51,7 @@ static struct resource colibri_asix_resource[] = {
...
@@ -51,7 +51,7 @@ static struct resource colibri_asix_resource[] = {
[
1
]
=
{
[
1
]
=
{
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
start
=
gpio_to_irq
(
COLIBRI_ETH_IRQ_GPIO
),
.
end
=
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 = {
...
@@ -72,8 +72,8 @@ static mfp_cfg_t colibri_pxa320_eth_pin_config[] __initdata = {
static
void
__init
colibri_pxa320_init_eth
(
void
)
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
));
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
);
platform_device_register
(
&
asix_device
);
}
}
#else
#else
...
...
arch/arm/mach-pxa/colibri-pxa3xx.c
View file @
89de3820
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <linux/etherdevice.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <mach/hardware.h>
#include <mach/hardware.h>
#include <asm/sizes.h>
#include <asm/sizes.h>
...
@@ -28,6 +29,40 @@
...
@@ -28,6 +29,40 @@
#include "generic.h"
#include "generic.h"
#include "devices.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)
#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
static
int
mmc_detect_pin
;
static
int
mmc_detect_pin
;
...
...
arch/arm/mach-pxa/csb701.c
View file @
89de3820
...
@@ -5,6 +5,8 @@
...
@@ -5,6 +5,8 @@
#include <linux/input.h>
#include <linux/input.h>
#include <linux/leds.h>
#include <linux/leds.h>
#include <asm/mach-types.h>
static
struct
gpio_keys_button
csb701_buttons
[]
=
{
static
struct
gpio_keys_button
csb701_buttons
[]
=
{
{
{
.
code
=
0x7
,
.
code
=
0x7
,
...
@@ -54,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
...
@@ -54,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
static
int
__init
csb701_init
(
void
)
static
int
__init
csb701_init
(
void
)
{
{
if
(
!
machine_is_csb726
())
return
-
ENODEV
;
return
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
return
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
}
}
...
...
arch/arm/mach-pxa/e740.c
View file @
89de3820
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include <mach/udc.h>
#include <mach/udc.h>
#include <mach/irda.h>
#include <mach/irda.h>
#include <mach/irqs.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "generic.h"
#include "eseries.h"
#include "eseries.h"
...
@@ -197,6 +198,7 @@ static void __init e740_init(void)
...
@@ -197,6 +198,7 @@ static void __init e740_init(void)
eseries_get_tmio_gpios
();
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
e7xx_irda_init
();
e7xx_irda_init
();
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
}
}
...
...
arch/arm/mach-pxa/e750.c
View file @
89de3820
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include <mach/udc.h>
#include <mach/udc.h>
#include <mach/irda.h>
#include <mach/irda.h>
#include <mach/irqs.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "generic.h"
#include "eseries.h"
#include "eseries.h"
...
@@ -198,6 +199,7 @@ static void __init e750_init(void)
...
@@ -198,6 +199,7 @@ static void __init e750_init(void)
eseries_get_tmio_gpios
();
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_udc_info
(
&
e7xx_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
e7xx_irda_init
();
e7xx_irda_init
();
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
pxa_set_ficp_info
(
&
e7xx_ficp_platform_data
);
}
}
...
...
arch/arm/mach-pxa/e800.c
View file @
89de3820
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <mach/eseries-gpio.h>
#include <mach/eseries-gpio.h>
#include <mach/udc.h>
#include <mach/udc.h>
#include <mach/irqs.h>
#include <mach/irqs.h>
#include <mach/audio.h>
#include "generic.h"
#include "generic.h"
#include "eseries.h"
#include "eseries.h"
...
@@ -199,6 +200,7 @@ static void __init e800_init(void)
...
@@ -199,6 +200,7 @@ static void __init e800_init(void)
eseries_get_tmio_gpios
();
eseries_get_tmio_gpios
();
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
pxa_set_udc_info
(
&
e800_udc_mach_info
);
pxa_set_udc_info
(
&
e800_udc_mach_info
);
pxa_set_ac97_info
(
NULL
);
}
}
MACHINE_START
(
E800
,
"Toshiba e800"
)
MACHINE_START
(
E800
,
"Toshiba e800"
)
...
...
arch/arm/mach-pxa/em-x270.c
View file @
89de3820
...
@@ -25,8 +25,10 @@
...
@@ -25,8 +25,10 @@
#include <linux/regulator/machine.h>
#include <linux/regulator/machine.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi.h>
#include <linux/spi/tdo24m.h>
#include <linux/spi/tdo24m.h>
#include <linux/spi/libertas_spi.h>
#include <linux/power_supply.h>
#include <linux/power_supply.h>
#include <linux/apm-emulation.h>
#include <linux/apm-emulation.h>
#include <linux/delay.h>
#include <media/soc_camera.h>
#include <media/soc_camera.h>
...
@@ -62,6 +64,8 @@
...
@@ -62,6 +64,8 @@
#define GPIO93_CAM_RESET (93)
#define GPIO93_CAM_RESET (93)
#define GPIO41_ETHIRQ (41)
#define GPIO41_ETHIRQ (41)
#define EM_X270_ETHIRQ IRQ_GPIO(GPIO41_ETHIRQ)
#define EM_X270_ETHIRQ IRQ_GPIO(GPIO41_ETHIRQ)
#define GPIO115_WLAN_PWEN (115)
#define GPIO19_WLAN_STRAP (19)
static
int
mmc_cd
;
static
int
mmc_cd
;
static
int
nand_rb
;
static
int
nand_rb
;
...
@@ -159,8 +163,8 @@ static unsigned long common_pin_config[] = {
...
@@ -159,8 +163,8 @@ static unsigned long common_pin_config[] = {
GPIO57_SSP1_TXD
,
GPIO57_SSP1_TXD
,
/* SSP2 */
/* SSP2 */
GPIO19_
SSP2_SCLK
,
GPIO19_
GPIO
,
/* SSP2 clock is used as GPIO for Libertas pin-strap */
GPIO14_
SSP2_SFRM
,
GPIO14_
GPIO
,
GPIO89_SSP2_TXD
,
GPIO89_SSP2_TXD
,
GPIO88_SSP2_RXD
,
GPIO88_SSP2_RXD
,
...
@@ -648,6 +652,62 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
...
@@ -648,6 +652,62 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
.
model
=
TDO35S
,
.
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
=
{
static
struct
spi_board_info
em_x270_spi_devices
[]
__initdata
=
{
{
{
.
modalias
=
"tdo24m"
,
.
modalias
=
"tdo24m"
,
...
@@ -657,11 +717,21 @@ static struct spi_board_info em_x270_spi_devices[] __initdata = {
...
@@ -657,11 +717,21 @@ static struct spi_board_info em_x270_spi_devices[] __initdata = {
.
controller_data
=
&
em_x270_tdo24m_chip
,
.
controller_data
=
&
em_x270_tdo24m_chip
,
.
platform_data
=
&
em_x270_tdo24m_pdata
,
.
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
)
static
void
__init
em_x270_init_spi
(
void
)
{
{
pxa2xx_set_spi_info
(
1
,
&
em_x270_spi_info
);
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
));
spi_register_board_info
(
ARRAY_AND_SIZE
(
em_x270_spi_devices
));
}
}
#else
#else
...
...
arch/arm/mach-pxa/include/mach/colibri.h
View file @
89de3820
#ifndef _COLIBRI_H_
#ifndef _COLIBRI_H_
#define _COLIBRI_H_
#define _COLIBRI_H_
#include <net/ax88796.h>
/*
/*
* common settings for all modules
* common settings for all modules
*/
*/
...
@@ -16,6 +19,10 @@ extern void colibri_pxa3xx_init_lcd(int bl_pin);
...
@@ -16,6 +19,10 @@ extern void colibri_pxa3xx_init_lcd(int bl_pin);
static
inline
void
colibri_pxa3xx_init_lcd
(
int
)
{}
static
inline
void
colibri_pxa3xx_init_lcd
(
int
)
{}
#endif
#endif
#if defined(CONFIG_AX88796)
extern
void
colibri_pxa3xx_init_eth
(
struct
ax_plat_data
*
plat_data
);
#endif
/* physical memory regions */
/* physical memory regions */
#define COLIBRI_SDRAM_BASE 0xa0000000
/* SDRAM region */
#define COLIBRI_SDRAM_BASE 0xa0000000
/* SDRAM region */
...
...
arch/arm/mach-pxa/include/mach/magician.h
View file @
89de3820
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
#define GPIO22_MAGICIAN_VIBRA_EN 22
#define GPIO22_MAGICIAN_VIBRA_EN 22
#define GPIO26_MAGICIAN_GSM_POWER 26
#define GPIO26_MAGICIAN_GSM_POWER 26
#define GPIO27_MAGICIAN_USBC_PUEN 27
#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 GPIO37_MAGICIAN_KEY_HANGUP 37
#define GPIO38_MAGICIAN_KEY_CONTACTS 38
#define GPIO38_MAGICIAN_KEY_CONTACTS 38
#define GPIO40_MAGICIAN_GSM_OUT2 40
#define GPIO40_MAGICIAN_GSM_OUT2 40
...
@@ -98,7 +98,7 @@
...
@@ -98,7 +98,7 @@
#define EGPIO_MAGICIAN_UNKNOWN_WAVEDEV_DLL MAGICIAN_EGPIO(2, 2)
#define EGPIO_MAGICIAN_UNKNOWN_WAVEDEV_DLL MAGICIAN_EGPIO(2, 2)
#define EGPIO_MAGICIAN_FLASH_VPP MAGICIAN_EGPIO(2, 3)
#define EGPIO_MAGICIAN_FLASH_VPP MAGICIAN_EGPIO(2, 3)
#define EGPIO_MAGICIAN_BL_POWER2 MAGICIAN_EGPIO(2, 4)
#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)
#define EGPIO_MAGICIAN_GSM_POWER MAGICIAN_EGPIO(2, 7)
/* input */
/* input */
...
...
arch/arm/mach-pxa/include/mach/palmld.h
View file @
89de3820
...
@@ -87,6 +87,7 @@
...
@@ -87,6 +87,7 @@
#define PALMLD_IDE_SIZE 0x00100000
#define PALMLD_IDE_SIZE 0x00100000
#define PALMLD_PHYS_IO_START 0x40000000
#define PALMLD_PHYS_IO_START 0x40000000
#define PALMLD_STR_BASE 0xa0200000
/* BATTERY */
/* BATTERY */
#define PALMLD_BAT_MAX_VOLTAGE 4000
/* 4.00V maximum voltage */
#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 @@
...
@@ -59,6 +59,7 @@
/* Various addresses */
/* Various addresses */
#define PALMT5_PHYS_RAM_START 0xa0000000
#define PALMT5_PHYS_RAM_START 0xa0000000
#define PALMT5_PHYS_IO_START 0x40000000
#define PALMT5_PHYS_IO_START 0x40000000
#define PALMT5_STR_BASE 0xa0200000
/* TOUCHSCREEN */
/* TOUCHSCREEN */
#define AC97_LINK_FRAME 21
#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 @@
...
@@ -78,6 +78,8 @@
#define PALMTX_PHYS_RAM_START 0xa0000000
#define PALMTX_PHYS_RAM_START 0xa0000000
#define PALMTX_PHYS_IO_START 0x40000000
#define PALMTX_PHYS_IO_START 0x40000000
#define PALMTX_STR_BASE 0xa0200000
#define PALMTX_PHYS_FLASH_START PXA_CS0_PHYS
/* ChipSelect 0 */
#define PALMTX_PHYS_FLASH_START PXA_CS0_PHYS
/* ChipSelect 0 */
#define PALMTX_PHYS_NAND_START PXA_CS1_PHYS
/* ChipSelect 1 */
#define PALMTX_PHYS_NAND_START PXA_CS1_PHYS
/* ChipSelect 1 */
...
...
arch/arm/mach-pxa/magician.c
View file @
89de3820
...
@@ -25,6 +25,8 @@
...
@@ -25,6 +25,8 @@
#include <linux/mtd/physmap.h>
#include <linux/mtd/physmap.h>
#include <linux/pda_power.h>
#include <linux/pda_power.h>
#include <linux/pwm_backlight.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/bq24022.h>
#include <linux/regulator/machine.h>
#include <linux/usb/gpio_vbus.h>
#include <linux/usb/gpio_vbus.h>
#include <mach/hardware.h>
#include <mach/hardware.h>
...
@@ -552,33 +554,7 @@ static struct platform_device gpio_vbus = {
...
@@ -552,33 +554,7 @@ static struct platform_device gpio_vbus = {
static
int
power_supply_init
(
struct
device
*
dev
)
static
int
power_supply_init
(
struct
device
*
dev
)
{
{
int
ret
;
return
gpio_request
(
EGPIO_MAGICIAN_CABLE_STATE_AC
,
"CABLE_STATE_AC"
);
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
;
}
}
static
int
magician_is_ac_online
(
void
)
static
int
magician_is_ac_online
(
void
)
...
@@ -586,22 +562,8 @@ 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
);
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
)
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
);
gpio_free
(
EGPIO_MAGICIAN_CABLE_STATE_AC
);
}
}
...
@@ -612,8 +574,6 @@ static char *magician_supplicants[] = {
...
@@ -612,8 +574,6 @@ static char *magician_supplicants[] = {
static
struct
pda_power_pdata
power_supply_info
=
{
static
struct
pda_power_pdata
power_supply_info
=
{
.
init
=
power_supply_init
,
.
init
=
power_supply_init
,
.
is_ac_online
=
magician_is_ac_online
,
.
is_ac_online
=
magician_is_ac_online
,
.
is_usb_online
=
magician_is_usb_online
,
.
set_charge
=
magician_set_charge
,
.
exit
=
power_supply_exit
,
.
exit
=
power_supply_exit
,
.
supplied_to
=
magician_supplicants
,
.
supplied_to
=
magician_supplicants
,
.
num_supplicants
=
ARRAY_SIZE
(
magician_supplicants
),
.
num_supplicants
=
ARRAY_SIZE
(
magician_supplicants
),
...
@@ -646,6 +606,43 @@ static struct platform_device power_supply = {
...
@@ -646,6 +606,43 @@ static struct platform_device power_supply = {
.
num_resources
=
ARRAY_SIZE
(
power_supply_resources
),
.
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
* MMC/SD
...
@@ -756,6 +753,7 @@ static struct platform_device *devices[] __initdata = {
...
@@ -756,6 +753,7 @@ static struct platform_device *devices[] __initdata = {
&
egpio
,
&
egpio
,
&
backlight
,
&
backlight
,
&
pasic3
,
&
pasic3
,
&
bq24022
,
&
gpio_vbus
,
&
gpio_vbus
,
&
power_supply
,
&
power_supply
,
&
strataflash
,
&
strataflash
,
...
...
arch/arm/mach-pxa/mioa701.c
View file @
89de3820
...
@@ -50,6 +50,7 @@
...
@@ -50,6 +50,7 @@
#include <mach/pxa27x-udc.h>
#include <mach/pxa27x-udc.h>
#include <mach/i2c.h>
#include <mach/i2c.h>
#include <mach/camera.h>
#include <mach/camera.h>
#include <mach/audio.h>
#include <media/soc_camera.h>
#include <media/soc_camera.h>
#include <mach/mioa701.h>
#include <mach/mioa701.h>
...
@@ -763,8 +764,6 @@ MIO_PARENT_DEV(mioa701_backlight, "pwm-backlight", &pxa27x_device_pwm0.dev,
...
@@ -763,8 +764,6 @@ MIO_PARENT_DEV(mioa701_backlight, "pwm-backlight", &pxa27x_device_pwm0.dev,
&
mioa701_backlight_data
);
&
mioa701_backlight_data
);
MIO_SIMPLE_DEV
(
mioa701_led
,
"leds-gpio"
,
&
gpio_led_info
)
MIO_SIMPLE_DEV
(
mioa701_led
,
"leds-gpio"
,
&
gpio_led_info
)
MIO_SIMPLE_DEV
(
pxa2xx_pcm
,
"pxa2xx-pcm"
,
NULL
)
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_sound
,
"mioa701-wm9713"
,
NULL
)
MIO_SIMPLE_DEV
(
mioa701_board
,
"mioa701-board"
,
NULL
)
MIO_SIMPLE_DEV
(
mioa701_board
,
"mioa701-board"
,
NULL
)
MIO_SIMPLE_DEV
(
gpio_vbus
,
"gpio-vbus"
,
&
gpio_vbus_data
);
MIO_SIMPLE_DEV
(
gpio_vbus
,
"gpio-vbus"
,
&
gpio_vbus_data
);
...
@@ -774,8 +773,6 @@ static struct platform_device *devices[] __initdata = {
...
@@ -774,8 +773,6 @@ static struct platform_device *devices[] __initdata = {
&
mioa701_backlight
,
&
mioa701_backlight
,
&
mioa701_led
,
&
mioa701_led
,
&
pxa2xx_pcm
,
&
pxa2xx_pcm
,
&
pxa2xx_ac97
,
&
mio_wm9713_codec
,
&
mioa701_sound
,
&
mioa701_sound
,
&
power_dev
,
&
power_dev
,
&
strataflash
,
&
strataflash
,
...
@@ -818,6 +815,7 @@ static void __init mioa701_machine_init(void)
...
@@ -818,6 +815,7 @@ static void __init mioa701_machine_init(void)
pxa_set_keypad_info
(
&
mioa701_keypad_info
);
pxa_set_keypad_info
(
&
mioa701_keypad_info
);
wm97xx_bat_set_pdata
(
&
mioa701_battery_data
);
wm97xx_bat_set_pdata
(
&
mioa701_battery_data
);
pxa_set_udc_info
(
&
mioa701_udc_info
);
pxa_set_udc_info
(
&
mioa701_udc_info
);
pxa_set_ac97_info
(
NULL
);
pm_power_off
=
mioa701_poweroff
;
pm_power_off
=
mioa701_poweroff
;
arm_pm_restart
=
mioa701_restart
;
arm_pm_restart
=
mioa701_restart
;
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
...
...
arch/arm/mach-pxa/palmld.c
View file @
89de3820
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <linux/wm97xx_batt.h>
#include <linux/wm97xx_batt.h>
#include <linux/power_supply.h>
#include <linux/power_supply.h>
#include <linux/sysdev.h>
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>
...
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
...
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
GPIO47_FICP_TXD
,
GPIO47_FICP_TXD
,
/* MATRIX KEYPAD */
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
GPIO105_KP_MKOUT_2
,
...
@@ -506,6 +507,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
...
@@ -506,6 +507,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
.
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
* Machine init
******************************************************************************/
******************************************************************************/
...
...
arch/arm/mach-pxa/palmt5.c
View file @
89de3820
...
@@ -75,10 +75,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
...
@@ -75,10 +75,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
GPIO95_GPIO
,
/* usb power */
GPIO95_GPIO
,
/* usb power */
/* MATRIX KEYPAD */
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
GPIO105_KP_MKOUT_2
,
...
@@ -449,6 +449,33 @@ static struct pxafb_mach_info palmt5_lcd_screen = {
...
@@ -449,6 +449,33 @@ static struct pxafb_mach_info palmt5_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
.
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
* Machine init
******************************************************************************/
******************************************************************************/
...
...
arch/arm/mach-pxa/palmte2.c
0 → 100644
View file @
89de3820
/*
* Hardware definitions for Palm Tungsten|E2
*
* Author:
* Carlos Eduardo Medaglia Dyonisio <cadu@nerdfeliz.com>
*
* Rewrite for mainline:
* Marek Vasut <marek.vasut@gmail.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.
*
* (find more info at www.hackndev.com)
*
*/
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <linux/pda_power.h>
#include <linux/pwm_backlight.h>
#include <linux/gpio.h>
#include <linux/wm97xx_batt.h>
#include <linux/power_supply.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/audio.h>
#include <mach/palmte2.h>
#include <mach/mmc.h>
#include <mach/pxafb.h>
#include <mach/mfp-pxa25x.h>
#include <mach/irda.h>
#include <mach/udc.h>
#include "generic.h"
#include "devices.h"
/******************************************************************************
* Pin configuration
******************************************************************************/
static
unsigned
long
palmte2_pin_config
[]
__initdata
=
{
/* MMC */
GPIO6_MMC_CLK
,
GPIO8_MMC_CS0
,
GPIO10_GPIO
,
/* SD detect */
GPIO55_GPIO
,
/* SD power */
GPIO51_GPIO
,
/* SD r/o switch */
/* AC97 */
GPIO28_AC97_BITCLK
,
GPIO29_AC97_SDATA_IN_0
,
GPIO30_AC97_SDATA_OUT
,
GPIO31_AC97_SYNC
,
/* PWM */
GPIO16_PWM0_OUT
,
/* USB */
GPIO15_GPIO
,
/* usb detect */
GPIO53_GPIO
,
/* usb power */
/* IrDA */
GPIO48_GPIO
,
/* ir disable */
GPIO46_FICP_RXD
,
GPIO47_FICP_TXD
,
/* LCD */
GPIO58_LCD_LDD_0
,
GPIO59_LCD_LDD_1
,
GPIO60_LCD_LDD_2
,
GPIO61_LCD_LDD_3
,
GPIO62_LCD_LDD_4
,
GPIO63_LCD_LDD_5
,
GPIO64_LCD_LDD_6
,
GPIO65_LCD_LDD_7
,
GPIO66_LCD_LDD_8
,
GPIO67_LCD_LDD_9
,
GPIO68_LCD_LDD_10
,
GPIO69_LCD_LDD_11
,
GPIO70_LCD_LDD_12
,
GPIO71_LCD_LDD_13
,
GPIO72_LCD_LDD_14
,
GPIO73_LCD_LDD_15
,
GPIO74_LCD_FCLK
,
GPIO75_LCD_LCLK
,
GPIO76_LCD_PCLK
,
GPIO77_LCD_BIAS
,
/* GPIO KEYS */
GPIO5_GPIO
,
/* notes */
GPIO7_GPIO
,
/* tasks */
GPIO11_GPIO
,
/* calendar */
GPIO13_GPIO
,
/* contacts */
GPIO14_GPIO
,
/* center */
GPIO19_GPIO
,
/* left */
GPIO20_GPIO
,
/* right */
GPIO21_GPIO
,
/* down */
GPIO22_GPIO
,
/* up */
/* MISC */
GPIO1_RST
,
/* reset */
GPIO4_GPIO
,
/* Hotsync button */
GPIO9_GPIO
,
/* power detect */
GPIO37_GPIO
,
/* LCD power */
GPIO56_GPIO
,
/* Backlight power */
};
/******************************************************************************
* SD/MMC card controller
******************************************************************************/
static
int
palmte2_mci_init
(
struct
device
*
dev
,
irq_handler_t
palmte2_detect_int
,
void
*
data
)
{
int
err
=
0
;
/* Setup an interrupt for detecting card insert/remove events */
err
=
gpio_request
(
GPIO_NR_PALMTE2_SD_DETECT_N
,
"SD IRQ"
);
if
(
err
)
goto
err
;
err
=
gpio_direction_input
(
GPIO_NR_PALMTE2_SD_DETECT_N
);
if
(
err
)
goto
err2
;
err
=
request_irq
(
gpio_to_irq
(
GPIO_NR_PALMTE2_SD_DETECT_N
),
palmte2_detect_int
,
IRQF_DISABLED
|
IRQF_SAMPLE_RANDOM
|
IRQF_TRIGGER_FALLING
|
IRQF_TRIGGER_RISING
,
"SD/MMC card detect"
,
data
);
if
(
err
)
{
printk
(
KERN_ERR
"%s: cannot request SD/MMC card detect IRQ
\n
"
,
__func__
);
goto
err2
;
}
err
=
gpio_request
(
GPIO_NR_PALMTE2_SD_POWER
,
"SD_POWER"
);
if
(
err
)
goto
err3
;
err
=
gpio_direction_output
(
GPIO_NR_PALMTE2_SD_POWER
,
0
);
if
(
err
)
goto
err4
;
err
=
gpio_request
(
GPIO_NR_PALMTE2_SD_READONLY
,
"SD_READONLY"
);
if
(
err
)
goto
err4
;
err
=
gpio_direction_input
(
GPIO_NR_PALMTE2_SD_READONLY
);
if
(
err
)
goto
err5
;
printk
(
KERN_DEBUG
"%s: irq registered
\n
"
,
__func__
);
return
0
;
err5:
gpio_free
(
GPIO_NR_PALMTE2_SD_READONLY
);
err4:
gpio_free
(
GPIO_NR_PALMTE2_SD_POWER
);
err3:
free_irq
(
gpio_to_irq
(
GPIO_NR_PALMTE2_SD_DETECT_N
),
data
);
err2:
gpio_free
(
GPIO_NR_PALMTE2_SD_DETECT_N
);
err:
return
err
;
}
static
void
palmte2_mci_exit
(
struct
device
*
dev
,
void
*
data
)
{
gpio_free
(
GPIO_NR_PALMTE2_SD_READONLY
);
gpio_free
(
GPIO_NR_PALMTE2_SD_POWER
);
free_irq
(
gpio_to_irq
(
GPIO_NR_PALMTE2_SD_DETECT_N
),
data
);
gpio_free
(
GPIO_NR_PALMTE2_SD_DETECT_N
);
}
static
void
palmte2_mci_power
(
struct
device
*
dev
,
unsigned
int
vdd
)
{
struct
pxamci_platform_data
*
p_d
=
dev
->
platform_data
;
gpio_set_value
(
GPIO_NR_PALMTE2_SD_POWER
,
p_d
->
ocr_mask
&
(
1
<<
vdd
));
}
static
int
palmte2_mci_get_ro
(
struct
device
*
dev
)
{
return
gpio_get_value
(
GPIO_NR_PALMTE2_SD_READONLY
);
}
static
struct
pxamci_platform_data
palmte2_mci_platform_data
=
{
.
ocr_mask
=
MMC_VDD_32_33
|
MMC_VDD_33_34
,
.
setpower
=
palmte2_mci_power
,
.
get_ro
=
palmte2_mci_get_ro
,
.
init
=
palmte2_mci_init
,
.
exit
=
palmte2_mci_exit
,
};
/******************************************************************************
* GPIO keys
******************************************************************************/
static
struct
gpio_keys_button
palmte2_pxa_buttons
[]
=
{
{
KEY_F1
,
GPIO_NR_PALMTE2_KEY_CONTACTS
,
1
,
"Contacts"
},
{
KEY_F2
,
GPIO_NR_PALMTE2_KEY_CALENDAR
,
1
,
"Calendar"
},
{
KEY_F3
,
GPIO_NR_PALMTE2_KEY_TASKS
,
1
,
"Tasks"
},
{
KEY_F4
,
GPIO_NR_PALMTE2_KEY_NOTES
,
1
,
"Notes"
},
{
KEY_ENTER
,
GPIO_NR_PALMTE2_KEY_CENTER
,
1
,
"Center"
},
{
KEY_LEFT
,
GPIO_NR_PALMTE2_KEY_LEFT
,
1
,
"Left"
},
{
KEY_RIGHT
,
GPIO_NR_PALMTE2_KEY_RIGHT
,
1
,
"Right"
},
{
KEY_DOWN
,
GPIO_NR_PALMTE2_KEY_DOWN
,
1
,
"Down"
},
{
KEY_UP
,
GPIO_NR_PALMTE2_KEY_UP
,
1
,
"Up"
},
};
static
struct
gpio_keys_platform_data
palmte2_pxa_keys_data
=
{
.
buttons
=
palmte2_pxa_buttons
,
.
nbuttons
=
ARRAY_SIZE
(
palmte2_pxa_buttons
),
};
static
struct
platform_device
palmte2_pxa_keys
=
{
.
name
=
"gpio-keys"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmte2_pxa_keys_data
,
},
};
/******************************************************************************
* Backlight
******************************************************************************/
static
int
palmte2_backlight_init
(
struct
device
*
dev
)
{
int
ret
;
ret
=
gpio_request
(
GPIO_NR_PALMTE2_BL_POWER
,
"BL POWER"
);
if
(
ret
)
goto
err
;
ret
=
gpio_direction_output
(
GPIO_NR_PALMTE2_BL_POWER
,
0
);
if
(
ret
)
goto
err2
;
ret
=
gpio_request
(
GPIO_NR_PALMTE2_LCD_POWER
,
"LCD POWER"
);
if
(
ret
)
goto
err2
;
ret
=
gpio_direction_output
(
GPIO_NR_PALMTE2_LCD_POWER
,
0
);
if
(
ret
)
goto
err3
;
return
0
;
err3:
gpio_free
(
GPIO_NR_PALMTE2_LCD_POWER
);
err2:
gpio_free
(
GPIO_NR_PALMTE2_BL_POWER
);
err:
return
ret
;
}
static
int
palmte2_backlight_notify
(
int
brightness
)
{
gpio_set_value
(
GPIO_NR_PALMTE2_BL_POWER
,
brightness
);
gpio_set_value
(
GPIO_NR_PALMTE2_LCD_POWER
,
brightness
);
return
brightness
;
}
static
void
palmte2_backlight_exit
(
struct
device
*
dev
)
{
gpio_free
(
GPIO_NR_PALMTE2_BL_POWER
);
gpio_free
(
GPIO_NR_PALMTE2_LCD_POWER
);
}
static
struct
platform_pwm_backlight_data
palmte2_backlight_data
=
{
.
pwm_id
=
0
,
.
max_brightness
=
PALMTE2_MAX_INTENSITY
,
.
dft_brightness
=
PALMTE2_MAX_INTENSITY
,
.
pwm_period_ns
=
PALMTE2_PERIOD_NS
,
.
init
=
palmte2_backlight_init
,
.
notify
=
palmte2_backlight_notify
,
.
exit
=
palmte2_backlight_exit
,
};
static
struct
platform_device
palmte2_backlight
=
{
.
name
=
"pwm-backlight"
,
.
dev
=
{
.
parent
=
&
pxa25x_device_pwm0
.
dev
,
.
platform_data
=
&
palmte2_backlight_data
,
},
};
/******************************************************************************
* IrDA
******************************************************************************/
static
int
palmte2_irda_startup
(
struct
device
*
dev
)
{
int
err
;
err
=
gpio_request
(
GPIO_NR_PALMTE2_IR_DISABLE
,
"IR DISABLE"
);
if
(
err
)
goto
err
;
err
=
gpio_direction_output
(
GPIO_NR_PALMTE2_IR_DISABLE
,
1
);
if
(
err
)
gpio_free
(
GPIO_NR_PALMTE2_IR_DISABLE
);
err:
return
err
;
}
static
void
palmte2_irda_shutdown
(
struct
device
*
dev
)
{
gpio_free
(
GPIO_NR_PALMTE2_IR_DISABLE
);
}
static
void
palmte2_irda_transceiver_mode
(
struct
device
*
dev
,
int
mode
)
{
gpio_set_value
(
GPIO_NR_PALMTE2_IR_DISABLE
,
mode
&
IR_OFF
);
pxa2xx_transceiver_mode
(
dev
,
mode
);
}
static
struct
pxaficp_platform_data
palmte2_ficp_platform_data
=
{
.
startup
=
palmte2_irda_startup
,
.
shutdown
=
palmte2_irda_shutdown
,
.
transceiver_cap
=
IR_SIRMODE
|
IR_FIRMODE
|
IR_OFF
,
.
transceiver_mode
=
palmte2_irda_transceiver_mode
,
};
/******************************************************************************
* UDC
******************************************************************************/
static
struct
pxa2xx_udc_mach_info
palmte2_udc_info
__initdata
=
{
.
gpio_vbus
=
GPIO_NR_PALMTE2_USB_DETECT_N
,
.
gpio_vbus_inverted
=
1
,
.
gpio_pullup
=
GPIO_NR_PALMTE2_USB_PULLUP
,
.
gpio_pullup_inverted
=
0
,
};
/******************************************************************************
* Power supply
******************************************************************************/
static
int
power_supply_init
(
struct
device
*
dev
)
{
int
ret
;
ret
=
gpio_request
(
GPIO_NR_PALMTE2_POWER_DETECT
,
"CABLE_STATE_AC"
);
if
(
ret
)
goto
err1
;
ret
=
gpio_direction_input
(
GPIO_NR_PALMTE2_POWER_DETECT
);
if
(
ret
)
goto
err2
;
return
0
;
err2:
gpio_free
(
GPIO_NR_PALMTE2_POWER_DETECT
);
err1:
return
ret
;
}
static
int
palmte2_is_ac_online
(
void
)
{
return
gpio_get_value
(
GPIO_NR_PALMTE2_POWER_DETECT
);
}
static
void
power_supply_exit
(
struct
device
*
dev
)
{
gpio_free
(
GPIO_NR_PALMTE2_POWER_DETECT
);
}
static
char
*
palmte2_supplicants
[]
=
{
"main-battery"
,
};
static
struct
pda_power_pdata
power_supply_info
=
{
.
init
=
power_supply_init
,
.
is_ac_online
=
palmte2_is_ac_online
,
.
exit
=
power_supply_exit
,
.
supplied_to
=
palmte2_supplicants
,
.
num_supplicants
=
ARRAY_SIZE
(
palmte2_supplicants
),
};
static
struct
platform_device
power_supply
=
{
.
name
=
"pda-power"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
power_supply_info
,
},
};
/******************************************************************************
* WM97xx battery
******************************************************************************/
static
struct
wm97xx_batt_info
wm97xx_batt_pdata
=
{
.
batt_aux
=
WM97XX_AUX_ID3
,
.
temp_aux
=
WM97XX_AUX_ID2
,
.
charge_gpio
=
-
1
,
.
max_voltage
=
PALMTE2_BAT_MAX_VOLTAGE
,
.
min_voltage
=
PALMTE2_BAT_MIN_VOLTAGE
,
.
batt_mult
=
1000
,
.
batt_div
=
414
,
.
temp_mult
=
1
,
.
temp_div
=
1
,
.
batt_tech
=
POWER_SUPPLY_TECHNOLOGY_LIPO
,
.
batt_name
=
"main-batt"
,
};
/******************************************************************************
* Framebuffer
******************************************************************************/
static
struct
pxafb_mode_info
palmte2_lcd_modes
[]
=
{
{
.
pixclock
=
77757
,
.
xres
=
320
,
.
yres
=
320
,
.
bpp
=
16
,
.
left_margin
=
28
,
.
right_margin
=
7
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
4
,
.
vsync_len
=
1
,
},
};
static
struct
pxafb_mach_info
palmte2_lcd_screen
=
{
.
modes
=
palmte2_lcd_modes
,
.
num_modes
=
ARRAY_SIZE
(
palmte2_lcd_modes
),
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
};
/******************************************************************************
* Machine init
******************************************************************************/
static
struct
platform_device
*
devices
[]
__initdata
=
{
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
&
palmte2_pxa_keys
,
#endif
&
palmte2_backlight
,
&
power_supply
,
};
/* setup udc GPIOs initial state */
static
void
__init
palmte2_udc_init
(
void
)
{
if
(
!
gpio_request
(
GPIO_NR_PALMTE2_USB_PULLUP
,
"UDC Vbus"
))
{
gpio_direction_output
(
GPIO_NR_PALMTE2_USB_PULLUP
,
1
);
gpio_free
(
GPIO_NR_PALMTE2_USB_PULLUP
);
}
}
static
void
__init
palmte2_init
(
void
)
{
pxa2xx_mfp_config
(
ARRAY_AND_SIZE
(
palmte2_pin_config
));
set_pxa_fb_info
(
&
palmte2_lcd_screen
);
pxa_set_mci_info
(
&
palmte2_mci_platform_data
);
palmte2_udc_init
();
pxa_set_udc_info
(
&
palmte2_udc_info
);
pxa_set_ac97_info
(
NULL
);
pxa_set_ficp_info
(
&
palmte2_ficp_platform_data
);
wm97xx_bat_set_pdata
(
&
wm97xx_batt_pdata
);
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
}
MACHINE_START
(
PALMTE2
,
"Palm Tungsten|E2"
)
.
phys_io
=
0x40000000
,
.
io_pg_offst
=
(
io_p2v
(
0x40000000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0xa0000100
,
.
map_io
=
pxa_map_io
,
.
init_irq
=
pxa25x_init_irq
,
.
timer
=
&
pxa_timer
,
.
init_machine
=
palmte2_init
MACHINE_END
arch/arm/mach-pxa/palmtx.c
View file @
89de3820
...
@@ -93,10 +93,10 @@ static unsigned long palmtx_pin_config[] __initdata = {
...
@@ -93,10 +93,10 @@ static unsigned long palmtx_pin_config[] __initdata = {
GPIO116_GPIO
,
/* wifi ready */
GPIO116_GPIO
,
/* wifi ready */
/* MATRIX KEYPAD */
/* MATRIX KEYPAD */
GPIO100_KP_MKIN_0
,
GPIO100_KP_MKIN_0
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO101_KP_MKIN_1
,
GPIO101_KP_MKIN_1
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO102_KP_MKIN_2
,
GPIO102_KP_MKIN_2
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO97_KP_MKIN_3
,
GPIO97_KP_MKIN_3
|
WAKEUP_ON_LEVEL_HIGH
,
GPIO103_KP_MKOUT_0
,
GPIO103_KP_MKOUT_0
,
GPIO104_KP_MKOUT_1
,
GPIO104_KP_MKOUT_1
,
GPIO105_KP_MKOUT_2
,
GPIO105_KP_MKOUT_2
,
...
@@ -458,6 +458,33 @@ static struct pxafb_mach_info palmtx_lcd_screen = {
...
@@ -458,6 +458,33 @@ static struct pxafb_mach_info palmtx_lcd_screen = {
.
lcd_conn
=
LCD_COLOR_TFT_16BPP
|
LCD_PCLK_EDGE_FALL
,
.
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
* Machine init
******************************************************************************/
******************************************************************************/
...
...
arch/arm/mach-pxa/tosa.c
View file @
89de3820
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
#include <mach/udc.h>
#include <mach/udc.h>
#include <mach/tosa_bt.h>
#include <mach/tosa_bt.h>
#include <mach/pxa2xx_spi.h>
#include <mach/pxa2xx_spi.h>
#include <mach/audio.h>
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>
#include <mach/tosa.h>
#include <mach/tosa.h>
...
@@ -914,6 +915,7 @@ static void __init tosa_init(void)
...
@@ -914,6 +915,7 @@ static void __init tosa_init(void)
pxa_set_udc_info
(
&
udc_info
);
pxa_set_udc_info
(
&
udc_info
);
pxa_set_ficp_info
(
&
tosa_ficp_platform_data
);
pxa_set_ficp_info
(
&
tosa_ficp_platform_data
);
pxa_set_i2c_info
(
NULL
);
pxa_set_i2c_info
(
NULL
);
pxa_set_ac97_info
(
NULL
);
platform_scoop_config
=
&
tosa_pcmcia_config
;
platform_scoop_config
=
&
tosa_pcmcia_config
;
pxa2xx_set_spi_info
(
2
,
&
pxa_ssp_master_info
);
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)
...
@@ -828,6 +828,17 @@ void __init reserve_node_zero(pg_data_t *pgdat)
BOOTMEM_DEFAULT
);
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
#ifdef CONFIG_SA1111
/*
/*
* Because of the SA1111 DMA bug, we want to preserve our
* 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