summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/configs/omap3_h1_defconfig60
-rw-r--r--arch/arm/mach-omap2/board-omap3h1.c87
2 files changed, 97 insertions, 50 deletions
diff --git a/arch/arm/configs/omap3_h1_defconfig b/arch/arm/configs/omap3_h1_defconfig
index 0c4a8c2cf6a..e5f57b8f2c4 100644
--- a/arch/arm/configs/omap3_h1_defconfig
+++ b/arch/arm/configs/omap3_h1_defconfig
@@ -188,7 +188,7 @@ CONFIG_MODULES=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
CONFIG_BLOCK=y
-CONFIG_LBDAF=y
+# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
@@ -282,7 +282,7 @@ CONFIG_ARCH_MULTI_V6_V7=y
#
# OMAP Feature Selections
#
-# CONFIG_POWER_AVS_OMAP is not set
+CONFIG_POWER_AVS_OMAP=y
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MUX=y
CONFIG_OMAP_MUX_DEBUG=y
@@ -464,7 +464,34 @@ CONFIG_AUTO_ZRELADDR=y
#
# CPU Frequency scaling
#
-# CONFIG_CPU_FREQ is not set
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
+
+#
+# ARM CPU frequency scaling drivers
+#
+# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set
+# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set
+# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set
+# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set
+# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
# CONFIG_CPU_IDLE is not set
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
@@ -499,14 +526,12 @@ CONFIG_SUSPEND_FREEZER=y
CONFIG_HAS_WAKELOCK=y
CONFIG_WAKELOCK=y
CONFIG_PM_SLEEP=y
-# CONFIG_PM_AUTOSLEEP is not set
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_WAKELOCKS is not set
CONFIG_PM_RUNTIME=y
CONFIG_PM=y
CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_PM_ADVANCED_DEBUG=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_APM_EMULATION is not set
@@ -1262,7 +1287,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=y
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
@@ -1339,10 +1364,12 @@ CONFIG_DEVKMEM=y
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_KGDB_NMI is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_CONSOLE_POLL=y
CONFIG_SERIAL_OMAP=y
CONFIG_SERIAL_OMAP_CONSOLE=y
# CONFIG_SERIAL_SCCNXP is not set
@@ -1533,7 +1560,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_SBS is not set
CONFIG_BATTERY_BQ27x00=y
CONFIG_BATTERY_BQ27X00_I2C=y
-CONFIG_BATTERY_BQ27X00_PLATFORM=y
+# CONFIG_BATTERY_BQ27X00_PLATFORM is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_MAX8903 is not set
@@ -2279,7 +2306,6 @@ CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
@@ -2430,7 +2456,7 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_KERNEL=y
# CONFIG_TOUCHSCREEN_DEBUG is not set
# CONFIG_DEBUG_SHIRQ is not set
@@ -2441,8 +2467,8 @@ CONFIG_PANIC_ON_OOPS=y
CONFIG_PANIC_ON_OOPS_VALUE=1
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
@@ -2534,7 +2560,11 @@ CONFIG_DYNAMIC_DEBUG=y
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
+CONFIG_KGDB=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
diff --git a/arch/arm/mach-omap2/board-omap3h1.c b/arch/arm/mach-omap2/board-omap3h1.c
index df83b4dae6b..311910b52e8 100644
--- a/arch/arm/mach-omap2/board-omap3h1.c
+++ b/arch/arm/mach-omap2/board-omap3h1.c
@@ -140,6 +140,9 @@ static int __init omap3h1_spi_init(void) {
return 0;
}
+
+
+
static struct mpu_platform_data mpu_data = {
.int_config = 0x00,
.level_shifter = 0,
@@ -164,13 +167,15 @@ static struct lm3530_platform_data omap3h1_backlight_platform_data = {
.brt_val = 0x64, /* initial brightness */
};
+
+
static struct mxt_platform_data mxt_data = {
.irqflags = IRQF_TRIGGER_FALLING,
};
static struct platform_device bcm20702_bluetooth_device = {
.name = "bcm20702_bluetooth",
- .id = -1,
+ .id = -1,
};
static struct regulator_init_data omap3h1_vbat_data = {
@@ -179,13 +184,13 @@ static struct regulator_init_data omap3h1_vbat_data = {
static struct fixed_voltage_config omap3h1_vbat_pdata = {
.supply_name = "VBAT",
- .microvolts = 3800000,
- .init_data = &omap3h1_vbat_data,
- .gpio = -EINVAL,
+ .microvolts = 3800000,
+ .init_data = &omap3h1_vbat_data,
+ .gpio = -EINVAL,
};
static struct platform_device omap3h1_vbat = {
- .name = "reg-fixed-voltage",
+ .name = "reg-fixed-voltage",
.id = -1,
.dev = {
.platform_data = &omap3h1_vbat_pdata,
@@ -194,7 +199,7 @@ static struct platform_device omap3h1_vbat = {
static struct regulator_init_data tps65910_dummy = {
.supply_regulator = "VBAT",
- .constraints.always_on = true,
+ .constraints.always_on = true,
};
static struct regulator_init_data tps65910_3v3 = {
@@ -202,10 +207,10 @@ static struct regulator_init_data tps65910_3v3 = {
.constraints = {
.min_uV = 3300000,
.max_uV = 3300000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
- .always_on = true,
- .apply_uV = true,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .always_on = true,
+ .apply_uV = true,
},
};
@@ -214,10 +219,10 @@ static struct regulator_init_data tps65910_1v8 = {
.constraints = {
.min_uV = 1800000,
.max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
- .always_on = true,
- .apply_uV = true,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ .always_on = true,
+ .apply_uV = true,
},
};
@@ -228,14 +233,15 @@ static struct regulator_consumer_supply tps65910_vdd1_supply[] = {
static struct regulator_init_data tps65910_vdd1 = {
.supply_regulator = "VBAT",
.constraints = {
+ .name = "vdd_mpu",
.min_uV = 900000,
.max_uV = 1350000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
- //.always_on = 1,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ //.always_on = 1,
},
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd1_supply),
- .consumer_supplies = tps65910_vdd1_supply,
+ .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd1_supply),
+ .consumer_supplies = tps65910_vdd1_supply,
};
static struct regulator_consumer_supply tps65910_vdd2_supply[] = {
@@ -245,33 +251,34 @@ static struct regulator_consumer_supply tps65910_vdd2_supply[] = {
static struct regulator_init_data tps65910_vdd2 = {
.supply_regulator = "VBAT",
.constraints = {
+ .name = "vdd_core",
.min_uV = 900000,
.max_uV = 1200000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
- //.always_on = 1,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL,
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ //.always_on = 1,
},
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd2_supply),
- .consumer_supplies = tps65910_vdd2_supply,
+ .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd2_supply),
+ .consumer_supplies = tps65910_vdd2_supply,
};
static struct tps65910_board omap3h1_tps65910_pdata = {
.irq = 7 + OMAP_INTC_START,
.en_ck32k_xtal = true,
- .tps65910_pmic_init_data[TPS65910_REG_VRTC] = &tps65910_dummy,
- .tps65910_pmic_init_data[TPS65910_REG_VIO] = &tps65910_1v8,
- .tps65910_pmic_init_data[TPS65910_REG_VDD1] = &tps65910_vdd1,
- .tps65910_pmic_init_data[TPS65910_REG_VDD2] = &tps65910_vdd2,
- .tps65910_pmic_init_data[TPS65910_REG_VDD3] = &tps65910_dummy,
+ .tps65910_pmic_init_data[TPS65910_REG_VRTC] = &tps65910_dummy,
+ .tps65910_pmic_init_data[TPS65910_REG_VIO] = &tps65910_1v8,
+ .tps65910_pmic_init_data[TPS65910_REG_VDD1] = &tps65910_vdd1,
+ .tps65910_pmic_init_data[TPS65910_REG_VDD2] = &tps65910_vdd2,
+ .tps65910_pmic_init_data[TPS65910_REG_VDD3] = &tps65910_dummy,
.tps65910_pmic_init_data[TPS65910_REG_VDIG1] = &tps65910_1v8,
.tps65910_pmic_init_data[TPS65910_REG_VDIG2] = &tps65910_dummy,
- .tps65910_pmic_init_data[TPS65910_REG_VPLL] = &tps65910_1v8,
- .tps65910_pmic_init_data[TPS65910_REG_VDAC] = &tps65910_dummy,
+ .tps65910_pmic_init_data[TPS65910_REG_VPLL] = &tps65910_1v8,
+ .tps65910_pmic_init_data[TPS65910_REG_VDAC] = &tps65910_dummy,
.tps65910_pmic_init_data[TPS65910_REG_VAUX1] = &tps65910_dummy,
.tps65910_pmic_init_data[TPS65910_REG_VAUX2] = &tps65910_3v3,
- .tps65910_pmic_init_data[TPS65910_REG_VAUX33] = &tps65910_3v3,
- .tps65910_pmic_init_data[TPS65910_REG_VMMC] = &tps65910_3v3,
+ .tps65910_pmic_init_data[TPS65910_REG_VAUX33] = &tps65910_3v3,
+ .tps65910_pmic_init_data[TPS65910_REG_VMMC] = &tps65910_3v3,
};
static struct i2c_board_info __initdata omap3h1_i2c1_board_info[] = {
@@ -281,8 +288,8 @@ static struct i2c_board_info __initdata omap3h1_i2c1_board_info[] = {
},
{
I2C_BOARD_INFO("mpu6515", 0x68),
- // This is needed for the interrupt wake. IH_GPIO_BASE changed in 3.10 kernel
- //.irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
+ // This is needed for the interrupt wake. IH_GPIO_BASE changed in 3.10
+ // .irq = (IH_GPIO_BASE + MPUIRQ_GPIO),
.platform_data = &mpu_data,
},
{
@@ -306,9 +313,19 @@ static struct i2c_board_info __initdata omap3h1_i2c3_board_info[] = {
static int __init omap3_h1_i2c_init(void)
{
+ /* Ugly hack: 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
+ * must be done at runtime. In other words, here.
+ */
+
gpio_request_one(ATMEL_MXT_GPIO, GPIOF_IN, "atmel_mxt_ts CHG");
omap3h1_i2c1_board_info[3].irq = gpio_to_irq(ATMEL_MXT_GPIO);
+ gpio_request_one(MPUIRQ_GPIO, GPIOF_IN, "mpu6515 gpio CHG");
+ omap3h1_i2c1_board_info[1].irq = gpio_to_irq(MPUIRQ_GPIO);
+
+ /* Register buses */
+
omap_register_i2c_bus(1, 400, omap3h1_i2c1_board_info, ARRAY_SIZE(omap3h1_i2c1_board_info));
omap_register_i2c_bus(3, 400, omap3h1_i2c3_board_info, ARRAY_SIZE(omap3h1_i2c3_board_info));
return 0;