Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eda6f6ec authored by Robert Jarzmik's avatar Robert Jarzmik Committed by Russell King
Browse files

[ARM] 5202/1: pxa: Added Mitac Mio A701 smartphone support.



The Mio A701 support features :
 - GSM support
 - Bluetooth support
 - GPS support
 - LED/Vibrator support
 - Suspend/Resume support (very dependant on Mio FlashRam)
 - Screen/Backlight support
 - Keys/Keyboard support
 - USB udc support
 - MMC/SDIO support
 - Flash Memory support
 - Battery/AC plugin support

Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b8e6c91c
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -216,6 +216,18 @@ config MACH_MAGICIAN
	select PXA27x
	select PXA27x
	select IWMMXT
	select IWMMXT


config MACH_MIOA701
	bool "Mitac Mio A701 Support"
	select PXA27x
	select IWMMXT
	select LEDS_GPIO
	select HAVE_PWM
	select GPIO_SYSFS
	help
	  Say Y here if you intend to run this kernel on a
	  MIO A701. Currently there is only basic support
	  for this PDA.

config MACH_PCM027
config MACH_PCM027
	bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
	bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
	select PXA27x
	select PXA27x
+1 −0
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
obj-$(CONFIG_MACH_TOSA)		+= tosa.o
obj-$(CONFIG_MACH_TOSA)		+= tosa.o
obj-$(CONFIG_MACH_EM_X270)	+= em-x270.o
obj-$(CONFIG_MACH_EM_X270)	+= em-x270.o
obj-$(CONFIG_MACH_MAGICIAN)	+= magician.o
obj-$(CONFIG_MACH_MAGICIAN)	+= magician.o
obj-$(CONFIG_MACH_MIOA701)	+= mioa701.o mioa701_bootresume.o
obj-$(CONFIG_ARCH_PXA_ESERIES)	+= eseries.o eseries_udc.o
obj-$(CONFIG_ARCH_PXA_ESERIES)	+= eseries.o eseries_udc.o
obj-$(CONFIG_MACH_E740)		+= e740_lcd.o
obj-$(CONFIG_MACH_E740)		+= e740_lcd.o
obj-$(CONFIG_MACH_E750)		+= e750_lcd.o
obj-$(CONFIG_MACH_E750)		+= e750_lcd.o
+67 −0
Original line number Original line Diff line number Diff line
#ifndef _MIOA701_H_
#define _MIOA701_H_

#define MIO_CFG_IN(pin, af)		\
	((MFP_CFG_DEFAULT & ~(MFP_AF_MASK | MFP_DIR_MASK)) |\
	 (MFP_PIN(pin) | MFP_##af | MFP_DIR_IN))

#define MIO_CFG_OUT(pin, af, state)	\
	((MFP_CFG_DEFAULT & ~(MFP_AF_MASK | MFP_DIR_MASK | MFP_LPM_STATE_MASK)) |\
	 (MFP_PIN(pin) | MFP_##af | MFP_DIR_OUT | MFP_LPM_##state))

/* Global GPIOs */
#define GPIO9_CHARGE_nEN			9
#define GPIO18_POWEROFF				18
#define GPIO87_LCD_POWER			87

/* USB */
#define GPIO13_USB_DETECT			13
#define GPIO22_USB_ENABLE			22

/* SDIO bits */
#define GPIO78_SDIO_RO				78
#define GPIO15_SDIO_INSERT			15
#define GPIO91_SDIO_EN				91

/* Bluetooth */
#define GPIO83_BT_ON				83

/* GPS */
#define GPIO23_GPS_UNKNOWN1			23
#define GPIO26_GPS_ON				26
#define GPIO27_GPS_RESET			27
#define GPIO106_GPS_UNKNOWN2			106
#define GPIO107_GPS_UNKNOWN3			107

/* GSM */
#define GPIO24_GSM_MOD_RESET_CMD		24
#define GPIO88_GSM_nMOD_ON_CMD			88
#define GPIO90_GSM_nMOD_OFF_CMD			90
#define GPIO114_GSM_nMOD_DTE_UART_STATE 	114
#define GPIO25_GSM_MOD_ON_STATE			25
#define GPIO113_GSM_EVENT			113

/* SOUND */
#define GPIO12_HPJACK_INSERT			12

/* LEDS */
#define GPIO10_LED_nCharging			10
#define GPIO97_LED_nBlue			97
#define GPIO98_LED_nOrange			98
#define GPIO82_LED_nVibra			82
#define GPIO115_LED_nKeyboard			115

/* Keyboard */
#define GPIO0_KEY_POWER				0
#define GPIO93_KEY_VOLUME_UP			93
#define GPIO94_KEY_VOLUME_DOWN			94

extern struct input_dev *mioa701_evdev;
extern void mioa701_gpio_lpm_set(unsigned long mfp_pin);

/* Assembler externals mioa701_bootresume.S */
extern u32 mioa701_bootstrap;
extern u32 mioa701_jumpaddr;
extern u32 mioa701_bootstrap_lg;

#endif /* _MIOA701_H */
+905 −0

File added.

Preview size limit exceeded, changes collapsed.

+36 −0
Original line number Original line Diff line number Diff line
/* Bootloader to resume MIO A701
 *
 * 2007-1-12 Robert Jarzmik
 *
 * This code is licenced under the GPLv2.
*/

#include <linux/linkage.h>
#include <asm/assembler.h>

/*
 * Note: Yes, part of the following code is located into the .data section.
 *       This is to allow jumpaddr to be accessed with a relative load
 *       while we can't rely on any MMU translation.  We could have put
 *       sleep_save_sp in the .text section as well, but some setups might
 *       insist on it to be truly read-only.
 */
	.data
ENTRY(mioa701_bootstrap)
0:
	b	1f
ENTRY(mioa701_jumpaddr)
	.word	0x40f00008		@ PSPR in no-MMU mode
1:
	mov	r0,     #0xa0000000	@ Don't suppose memory access works
	orr	r0, r0, #0x00200000	@ even if it's supposed to
	mov	r1, #0
	str	r1, [r0]		@ Early disable resume for next boot
	ldr	r0, mioa701_jumpaddr	@ (Murphy's Law)
	ldr	r0, [r0]
	mov	pc, r0
2:

ENTRY(mioa701_bootstrap_lg)
	.data
	.word	2b-0b