summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattis fjallstrom <mattis@acm.org>2015-07-01 22:31:45 -0700
committermattis fjallstrom <mattis@acm.org>2015-07-01 22:31:45 -0700
commita935b06ef32a95efb0d5ddb80d8e69cdefa575dd (patch)
treefc8e2283e47b8bcada604558bb91ab2602385c00
parentbfdede096b01a4e46df0140115b99b131574fbe9 (diff)
downloadolio-linux-3.10-a935b06ef32a95efb0d5ddb80d8e69cdefa575dd.tar.xz
olio-linux-3.10-a935b06ef32a95efb0d5ddb80d8e69cdefa575dd.zip
Sleep and wake almost functional in Android (weird crash during startup if accelerometer is included).
Change-Id: I8f7285d1517dd5aa1d2a0b063357664399a03535
-rw-r--r--arch/arm/boot/dts/omap3_h1.dts28
-rw-r--r--arch/arm/mach-omap2/board-omap3h1.c15
2 files changed, 18 insertions, 25 deletions
diff --git a/arch/arm/boot/dts/omap3_h1.dts b/arch/arm/boot/dts/omap3_h1.dts
index 235a7cbe377..e570db34a7c 100644
--- a/arch/arm/boot/dts/omap3_h1.dts
+++ b/arch/arm/boot/dts/omap3_h1.dts
@@ -58,24 +58,26 @@
/* Test code for the ACC input pin. Should be disabled when
* we're using the accelerometer.
*/
-
+
+ /*
gpio_buttons: gpio_buttons@0 {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
+ */
/*
interrupt-parent = <&gpio1>;
interrupts = <31>;
wakeup-source;
*/
-
+ /*
power {
label = "mattis_button";
linux,code = <116>;
gpios = <&gpio1 31 1>;
gpio-key,wakeup;
};
- };
+ };*/
pad-wkup {
@@ -103,18 +105,6 @@
<0x9f4 123 1>, /* BT host wake */
<0x1b0 23 1>; /* sys_nirq */
};
-
- /*
- gpio-keys {
- compatible = "gpio-keys";
-
- wkup-button {
- label = "wkup-debug-button";
- gpios = <&gpio1 31 1>;
- gpio-key,wakeup;
- linux,code = <169>;
- };
- };*/
};
&vc {
@@ -261,7 +251,7 @@
/* 0x024 0x4104 */ /* JTAG_EMU0, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
OMAP_PIN_OFF_WAKEUPENABLE */
/* Accelerometer interrupt */
- 0x026 0x410c /* JTAG_EMU1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
+ 0x026 0x410C /* JTAG_EMU1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT |
OMAP_PIN_OFF_WAKEUPENABLE */
>;
};
@@ -314,6 +304,8 @@
regulator-always-on;
};
+ /* Leave one and two on for reliable wake-up */
+
vdd1_reg: regulator@2 {
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
/*
@@ -324,7 +316,7 @@
regulator-name = "vdd_mpu_iva";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1350000>;
- ti,regulator-ext-sleep-control = <8>;
+ /* ti,regulator-ext-sleep-control = <8>; */
};
vdd2_reg: regulator@3 {
@@ -337,7 +329,7 @@
regulator-name = "vdd_core";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1200000>;
- ti,regulator-ext-sleep-control = <8>;
+ /* ti,regulator-ext-sleep-control = <8>; */
};
/* not used, I think */
diff --git a/arch/arm/mach-omap2/board-omap3h1.c b/arch/arm/mach-omap2/board-omap3h1.c
index 02369be990c..05dadc33c0f 100644
--- a/arch/arm/mach-omap2/board-omap3h1.c
+++ b/arch/arm/mach-omap2/board-omap3h1.c
@@ -72,7 +72,7 @@
#define NAND_CS 0
-// #define MPUIRQ_GPIO 31
+#define MPUIRQ_GPIO 31
#define ATMEL_MXT_GPIO 105
#define TPS_SYS_NIRQ 0
#define USB_IRQ 124
@@ -275,6 +275,7 @@ static struct i2c_board_info __initdata omap3h1_i2c2_board_info[] = {
I2C_BOARD_INFO("mpu6515", 0x68),
// This is needed for the interrupt wake. IH_GPIO_BASE changed in 3.10
// .irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
+ .irq = 0,
.platform_data = &mpu_data,
},
{
@@ -305,7 +306,7 @@ static struct i2c_board_info __initdata omap3h1_i2c3_board_info[] = {
static int __init omap3_h1_i2c_init(void)
{
- // int acc_irq;
+ int acc_irq;
/* In Linux 3.10 we need to request an IRQ through
* gpio_to_irq. This means it can't be set at compile time, and
@@ -313,13 +314,13 @@ static int __init omap3_h1_i2c_init(void)
*/
gpio_request_one(ATMEL_MXT_GPIO, GPIOF_IN, "atmel_mxt_ts CHG");
- // gpio_request_one(MPUIRQ_GPIO, GPIOF_IN, "mpu6515 IRQ pin");
+ gpio_request_one(MPUIRQ_GPIO, GPIOF_IN, "mpu6515 IRQ pin");
- // acc_irq = gpio_to_irq(MPUIRQ_GPIO);
+ acc_irq = gpio_to_irq(MPUIRQ_GPIO);
#ifdef CONFIG_MACH_OMAP3_H1_DVT2
omap3h1_i2c2_board_info[2].irq = gpio_to_irq(ATMEL_MXT_GPIO);
- // omap3h1_i2c2_board_info[0].irq = acc_irq;
+ omap3h1_i2c2_board_info[0].irq = acc_irq;
// ((struct tps65910_board *) (omap3h1_i2c1_board_info[0].platform_data))->irq =
// gpio_to_irq (TPS_SYS_NIRQ);
@@ -364,8 +365,8 @@ static void __init omap3_h1_init(void)
NAND_BUSWIDTH_16, NULL);
omap_sdrc_init(mt29c8g96_sdrc_params, mt29c8g96_sdrc_params);
-
- omap3_h1_i2c_init();
+
+ omap3_h1_i2c_init();
platform_add_devices(omap3h1_devices, ARRAY_SIZE(omap3h1_devices));