summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/board-omap3h1.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/board-omap3h1.c')
-rw-r--r--arch/arm/mach-omap2/board-omap3h1.c872
1 files changed, 9 insertions, 863 deletions
diff --git a/arch/arm/mach-omap2/board-omap3h1.c b/arch/arm/mach-omap2/board-omap3h1.c
index 54cf6126f10..9c161fb4678 100644
--- a/arch/arm/mach-omap2/board-omap3h1.c
+++ b/arch/arm/mach-omap2/board-omap3h1.c
@@ -88,12 +88,12 @@
#define LCD_RESET_GPIO 122
#endif
-static struct accelerometer_wake {
- int awake;
- struct wake_lock lock;
- char lock_name[100];
- int user_pid;
-} acc_wake;
+static struct of_device_id omap_dt_match_table[] __initdata = {
+ { .compatible = "olio,omap3-h1", },
+ { .compatible = "simple-bus", },
+ { .compatible = "ti,omap-infra", },
+ { }
+};
static struct mtd_partition omap3h1_nand_partitions[] = {
/* All the partition sizes are listed in terms of NAND block size */
@@ -259,492 +259,6 @@ static struct platform_device nop_phy_device = {
/* }; */
-/* --------------------------------------------------------------------------- */
-/* REGULATOR - Fixed first
- */
-
-static struct regulator_init_data omap3h1_vbat_data = {
- .constraints.always_on = true,
- .constraints.valid_modes_mask = REGULATOR_MODE_NORMAL,
- .constraints.valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
-};
-
-static struct fixed_voltage_config omap3h1_vbat_pdata = {
- .supply_name = "VBAT",
- .microvolts = 3800000,
- .init_data = &omap3h1_vbat_data,
- .gpio = -EINVAL,
-};
-
-static struct platform_device omap3h1_vbat = {
- .name = "reg-fixed-voltage",
- .id = -1,
- .dev = {
- .platform_data = &omap3h1_vbat_pdata,
- },
-};
-
-
-/* --------------------------------------------------------------------------- */
-
-static struct regulator_init_data tps65910_dummy = {
- .supply_regulator = "VBAT",
- .constraints.always_on = false,
- .constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS,
-};
-
-/* --------------------------------------------------------------------------- */
-/* This one is required for the display to work.
- */
-
-static struct regulator_consumer_supply tps65910_touch3_supply[] = {
- REGULATOR_SUPPLY("avdd", "2-004a"),
- REGULATOR_SUPPLY("vdd", "spi1.1"),
-};
-
-static struct regulator_init_data tps65910_touch3 = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 3300000,
- .max_uV = 3300000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_STATUS | REGULATOR_CHANGE_MODE,
- .always_on = false,
- .apply_uV = true,
-
- .state_mem = {
- .uV = 0,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_disk = {
- .uV = 0,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_standby = {
- .uV = 0,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- },
-
- .num_consumer_supplies = ARRAY_SIZE(tps65910_touch3_supply),
- .consumer_supplies = tps65910_touch3_supply,
-};
-
-/* --------------------------------------------------------------------------- */
-/* This regulator is for the vibrator. We currently lack a way of enabling /
- * disabling this since we lack a driver for the vibrator (we're just accessing
- * it's registers through the i2c bus).
- *
- * Hence, it's always on.
- */
-
-static struct regulator_consumer_supply tps65910_vibrator_supply[] = {
- REGULATOR_SUPPLY("vaux2", "drv2605"),
-};
-
-static struct regulator_init_data tps65910_vibrator = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 3300000,
- .max_uV = 3300000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE,
- .always_on = false,
- .apply_uV = true,
-
- .state_mem = {
- .disabled = 1,
- },
- .state_disk = {
- .disabled = 1,
- },
- .state_standby = {
- .disabled = 1,
- },
- },
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vibrator_supply),
- .consumer_supplies = tps65910_vibrator_supply,
-};
-
-
-
-/* --------------------------------------------------------------------------- */
-/* Seems like this one has to be on. It doesn't have any "official" consumers
- * ... but it's definitely needed. Bluetooth relies on it.
- */
-
-/*
-static struct regulator_consumer_supply tps65910_bluetooth_3v3[] = {
- REGULATOR_SUPPLY("clk32ksys", 0),
-};
-*/
-
-static struct regulator_init_data tps65910_3v3 = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 3300000,
- .max_uV = 3300000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE |
- REGULATOR_CHANGE_STATUS,
- .always_on = true,
- .apply_uV = true,
-
- .state_mem = {
- .disabled = 1,
- },
- .state_disk = {
- .disabled = 1,
- },
- .state_standby = {
- .disabled = 1,
- },
- },
-
-};
-
-
-/* --------------------------------------------------------------------------- */
-/* This is the OMAP display subsystem. Part of the OMAP processor OCP stuff.
- * USB also depends on this, so if you want to transfer files it has to be
- * always on.
- * NAND flash and UART3 (which we don't use) requires it
- * as well. And the i2c bus, and lots of other stuff.
- *
- * Setting always_on to "false" resulted in almost no power savings, at
- * least in the current setting.
- */
-
-static struct regulator_consumer_supply tps65910_1v8_supply[] = {
- REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
-};
-
-static struct regulator_init_data tps65910_1v8 = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_IDLE | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE,
- .always_on = true,
- .apply_uV = true,
- },
- .num_consumer_supplies = ARRAY_SIZE(tps65910_1v8_supply),
- .consumer_supplies = tps65910_1v8_supply,
-};
-
-/* --------------------------------------------------------------------------- */
-/* There's no driver explicitly using this one, but it goes to VDDA_DPLL_PER
- * on the OMAP chip. So it's used internally by the DPLL devices in PER, I think.
- */
-
-static struct regulator_consumer_supply tps65910_vpll_supply[] = {
-
-};
-
-static struct regulator_init_data tps65910_vpll = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
- .always_on = true,
- .apply_uV = true,
- },
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vpll_supply),
- .consumer_supplies = tps65910_vpll_supply,
-};
-
-
-/* --------------------------------------------------------------------------- */
-/* Touch power supply part 2.
- */
-
-static struct regulator_consumer_supply tps65910_touch_supply[] = {
- REGULATOR_SUPPLY("vdd", "2-004a" ),
-};
-
-static struct regulator_init_data tps65910_touch = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
- .always_on = false,
- .apply_uV = true,
-
- .state_mem = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_disk = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_standby = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
-
- },
- .num_consumer_supplies = ARRAY_SIZE(tps65910_touch_supply),
- .consumer_supplies = tps65910_touch_supply,
-};
-
-/* =========================================================================== */
-
-/* --------------------------------------------------------------------------- */
-
-/* This one only works if 'always_on' is set to true. Do I need to do something
- * special otherwise to turn it on? Maybe the driver doesn't enable it.
- *
- * The accelerometer driver isn't using regulators properly, hence this needs to
- * be always on.
- */
-
-static struct regulator_consumer_supply tps65910_accel_supply[] = {
- REGULATOR_SUPPLY("vdd", "mpu6515"),
-};
-
-static struct regulator_init_data tps65910_accel = {
- .supply_regulator = "VBAT",
- .constraints = {
- .min_uV = 1800000,
- .max_uV = 1800000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_IDLE | REGULATOR_MODE_STANDBY,
- .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
- .always_on = true,
- .apply_uV = true,
-
- .state_mem = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_disk = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- .state_standby = {
- .uV = 1,
- .mode = REGULATOR_MODE_STANDBY,
- .disabled = 1,
- },
- },
- .num_consumer_supplies = ARRAY_SIZE(tps65910_accel_supply),
- .consumer_supplies = tps65910_accel_supply,
-};
-
-/* --------------------------------------------------------------------------- */
-/* Supplies the MPU PD and friends.
- */
-
-static struct regulator_consumer_supply tps65910_vdd1_supply[] = {
- REGULATOR_SUPPLY("vcc", "cpu0"),
-};
-
-static struct regulator_init_data tps65910_vdd1 = {
- .supply_regulator = "VBAT",
- .constraints = {
- .name = "vdd_mpu_iva",
- .min_uV = 900000,
- .max_uV = 1350000,
- .valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_FAST,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
- .always_on = false,
-
- .state_mem = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- .state_disk = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- .state_standby = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- },
-
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd1_supply),
- .consumer_supplies = tps65910_vdd1_supply,
-};
-
-/* --------------------------------------------------------------------------- */
-/* I seem to need always on, but the TWL code gets by without it. So...
- */
-
-static struct regulator_consumer_supply tps65910_vdd2_supply[] = {
- REGULATOR_SUPPLY("vdd_core", "l3_main.0"),
-};
-
-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 | REGULATOR_MODE_FAST,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,
- .always_on = false,
-
- .state_mem = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- .state_disk = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- .state_standby = {
- .mode = REGULATOR_MODE_STANDBY,
- .enabled = 1,
- .disabled = 0,
- },
- },
-
- .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd2_supply),
- .consumer_supplies = tps65910_vdd2_supply,
-};
-
-/* --------------------------------------------------------------------------- */
-
-/* The clock has to be ON, probably because we're not enabling it properly. */
-/* If I set i2chs_keepon to 6, UBIfs fails to mount (!?). Again, probably
- * not enabling it properly.
- *
- * And even with therm set, the screen acts weird (looking really dark during
- * boot, touch not working when up).
- */
-
-/*
-static struct tps65910_sleep_keepon_data olio_slp_keepon = {
- .therm_keepon = 0,
- .clkout32k_keepon = 0,
- .i2chs_keepon = 1,
- };*/
-
-
-
-static struct tps65910_board omap3h1_tps65910_pdata = {
- /* .irq = 7 + OMAP_INTC_START, */ /* Getting this at runtime instead. */
- .en_ck32k_xtal = true,
- /* .en_dev_slp = true, */
-
- /* .slp_keepon = &olio_slp_keepon, */
-
- .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_VDIG1] = &tps65910_accel,
- .tps65910_pmic_init_data[TPS65910_REG_VDIG2] = &tps65910_touch,
- .tps65910_pmic_init_data[TPS65910_REG_VPLL] = &tps65910_vpll,
-
- .tps65910_pmic_init_data[TPS65910_REG_VMMC] = &tps65910_touch3,
- .tps65910_pmic_init_data[TPS65910_REG_VAUX2] = &tps65910_vibrator,
-
- /* This one is connected to BT ... maybe more? */
-
- .tps65910_pmic_init_data[TPS65910_REG_VAUX33] = &tps65910_3v3,
-
- /* not actually used */
-
- .tps65910_pmic_init_data[TPS65910_REG_VRTC] = &tps65910_dummy,
- .tps65910_pmic_init_data[TPS65910_REG_VDAC] = &tps65910_dummy,
- .tps65910_pmic_init_data[TPS65910_REG_VAUX1] = &tps65910_dummy, /* 2v85 */
- .tps65910_pmic_init_data[TPS65910_REG_VDD3] = &tps65910_dummy,
-
- .pm_off = true,
-};
-
-
-/* ====================================================================== */
-/* Voltage domain settings */
-
-
-#define OMAP3_SRI2C_SLAVE_ADDR 0x12
-#define OMAP3_VDD_MPU_SR_CONTROL_REG 0x00
-#define OMAP3_VDD_CORE_SR_CONTROL_REG 0x01
-#define OMAP3_VP_CONFIG_ERROROFFSET 0x00
-#define OMAP3_VP_VSTEPMIN_VSTEPMIN 0x1
-#define OMAP3_VP_VSTEPMAX_VSTEPMAX 0x04
-#define OMAP3_VP_VLIMITTO_TIMEOUT_US 200
-
-
-static unsigned long olio_vsel_to_uv(const u8 vsel)
-{
- return (((vsel * 125) + 6000)) * 100;
-}
-
-static u8 olio_uv_to_vsel(unsigned long uv)
-{
- return DIV_ROUND_UP(uv - 600000, 12500);
-}
-
-
-static struct omap_voltdm_pmic omap3_mpu_pmic = {
- .slew_rate = 12500,
- .step_size = 12500,
- .vp_erroroffset = OMAP3_VP_CONFIG_ERROROFFSET,
- .vp_vstepmin = OMAP3_VP_VSTEPMIN_VSTEPMIN,
- .vp_vstepmax = OMAP3_VP_VSTEPMAX_VSTEPMAX,
- .vddmin = 900000,
- .vddmax = 1350000,
- .vp_timeout_us = OMAP3_VP_VLIMITTO_TIMEOUT_US,
- .i2c_slave_addr = OMAP3_SRI2C_SLAVE_ADDR,
- .volt_reg_addr = OMAP3_VDD_MPU_SR_CONTROL_REG,
- .i2c_high_speed = true,
- .vsel_to_uv = olio_vsel_to_uv,
- .uv_to_vsel = olio_uv_to_vsel,
-};
-
-static struct omap_voltdm_pmic omap3_core_pmic = {
- .slew_rate = 12500,
- .step_size = 12500,
- .vp_erroroffset = OMAP3_VP_CONFIG_ERROROFFSET,
- .vp_vstepmin = OMAP3_VP_VSTEPMIN_VSTEPMIN,
- .vp_vstepmax = OMAP3_VP_VSTEPMAX_VSTEPMAX,
- .vddmin = 900000,
- .vddmax = 1200000,
- .vp_timeout_us = OMAP3_VP_VLIMITTO_TIMEOUT_US,
- .i2c_slave_addr = OMAP3_SRI2C_SLAVE_ADDR,
- .volt_reg_addr = OMAP3_VDD_CORE_SR_CONTROL_REG,
- .i2c_high_speed = true,
- .vsel_to_uv = olio_vsel_to_uv,
- .uv_to_vsel = olio_uv_to_vsel,
-};
-
-int __init omap3_voltdm_init(void)
-{
- struct voltagedomain *voltdm;
-
- if (!cpu_is_omap34xx())
- return -ENODEV;
-
- voltdm = voltdm_lookup("mpu_iva");
- omap_voltage_register_pmic(voltdm, &omap3_mpu_pmic);
-
- voltdm = voltdm_lookup("core");
- omap_voltage_register_pmic(voltdm, &omap3_core_pmic);
-
- return 0;
-}
-
/* ====================================================================== */
@@ -752,8 +266,6 @@ int __init omap3_voltdm_init(void)
static struct i2c_board_info __initdata omap3h1_i2c1_board_info[] = {
{
- I2C_BOARD_INFO("tps65910", 0x2d),
- .platform_data = &omap3h1_tps65910_pdata,
},
#ifdef CONFIG_MACH_OMAP3_H1_DVT2
};
@@ -786,274 +298,6 @@ static struct i2c_board_info __initdata omap3h1_i2c3_board_info[] = {
},
};
-#ifdef ONLY_KEEPING_THIS_STUFF_FOR_NOSTALGIC_REASONS
-
-/* --------------------------------------------------------------------------- */
-/* Create debugfs entry
- *
- * We need to have this so that our wake-up thread can tell us it's PID.
- * That PID will then be used when waking the system up.
- */
-
-struct dentry * pidfile;
-
-#define SIG_OLIO_WAKE 44 // we choose 44 as our signal number (real-time signals are in the range of 33 to 64)
-
-static ssize_t write_pid(struct file *file,
- const char __user *buf,
- size_t count,
- loff_t *ppos)
-{
- char mybuf[10];
- int pid = 0;
-
- /* read the value from user space */
-
- if(count > 10)
- return -EINVAL;
- if (copy_from_user(mybuf, buf, count) != 0) {
- /* nothing read?? */
- printk ("OLIO: write_pid: Error??\n");
- return 0;
- }
-
- sscanf(mybuf, "%d", &pid);
-
- printk("pid read = %d\n", pid);
-
- acc_wake.user_pid = pid;
-
- return count;
-}
-
-static ssize_t send_wake_signal (void) {
- int ret;
- struct siginfo info;
- struct task_struct *t;
-
- /* send the signal */
-
- printk ("Now sending signal!\n");
-
- memset(&info, 0, sizeof(struct siginfo));
-
- /* this is bit of a trickery: SI_QUEUE is normally used by sigqueue from user space,
- * and kernel space should use SI_KERNEL. But if SI_KERNEL is used the real_time data
- * is not delivered to the user space signal handler function.
- */
-
- info.si_signo = SIG_OLIO_WAKE;
- info.si_code = SI_QUEUE;
-
- /* real time signals may have 32 bits of data. */
-
- info.si_int = 1234;
-
- rcu_read_lock();
-
- t = pid_task(find_pid_ns(acc_wake.user_pid, &init_pid_ns), PIDTYPE_PID);
-
- if(t == NULL){
- rcu_read_unlock();
- printk("no such pid\n");
- return -ENODEV;
- }
-
- rcu_read_unlock();
-
- /* send the signal */
-
- ret = send_sig_info(SIG_OLIO_WAKE, &info, t);
-
- if (ret < 0) {
- printk("error sending signal\n");
- }
- return ret;
-}
-
-static const struct file_operations h1_fops = {
- .write = write_pid,
-};
-
-
-/***************************************************************************
- * acc_irq_handler - handle interrupt from accelerometer
- *
- * This routine gets called when an interrupt from the accelerometer
- * happens. Time out is in milliseconds.
- *
- * TODO: BREAK this all out, place it in it's own kernel driver together
- * with the configuration stuff for the accelerometer (the low power sleep
- * mode stuff).
- */
-
-#define OLIO_DOUBLE_TAP 500
-#define OLIO_ONE_SECOND 1000
-#define OLIO_DT_WAIT 3000
-
-static unsigned long previous;
-static unsigned long previous_double;
-
-static irqreturn_t acc_irq_handler_thr(int irq, void * omap3h1_d) {
- /* struct platform_device** omap3h1_devs = (struct platform_device **) omap3h1_d; */
-
- int ret = 99;
- unsigned long now;
-
- printk (KERN_DEBUG "acc_irq_handler_thr: Entered!\n");
-
- now = jiffies;
-
- if (jiffies_to_msecs(now - previous) < OLIO_DOUBLE_TAP) {
-
- /* ignore double clicks that happens too soon from the previous one -
- * filters out inadvertent wake-ups
- */
-
- if (jiffies_to_msecs (now - previous_double) < OLIO_DT_WAIT)
- {
- previous = 0;
- return IRQ_HANDLED;
- }
-
- printk (KERN_DEBUG "Double tap detected!\n");
-
- /* We want to wake up. Take wake lock (and send signal to user space?)
- * BT driver only takes wake lock, then lets higher levels handle
- * everything ... but what if there's nothing there to take the lock?
- */
-
- send_wake_signal();
-
- wake_lock_timeout (&acc_wake.lock, msecs_to_jiffies (20 * OLIO_ONE_SECOND));
-
- previous_double = now;
- previous = 0;
- } else {
- previous = now;
- }
-
- printk (KERN_DEBUG "acc_irq_handler_thr: Leaving! (ret = %d)\n", ret);
-
- return IRQ_HANDLED;
-}
-
-static irqreturn_t acc_irq_handler(int irq, void * omap3h1_d) {
- printk (KERN_DEBUG "acc_irq_handler: Entered!\n");
-
- /* nothing to do, other than wake the main thread */
-
- printk (KERN_DEBUG "acc_irq_handler: Leaving!\n");
- return IRQ_WAKE_THREAD;
-}
-
-static int __init omap3_acc_irq_init (int irq, void * dev_id) {
- irq_set_irq_wake(irq, 1);
-
- if (request_threaded_irq (irq, acc_irq_handler,
- acc_irq_handler_thr,
- IRQF_SHARED | IRQF_TRIGGER_RISING,
- "acc_wake",
- dev_id)) {
- printk (KERN_DEBUG "Couldn't register handler for accelerometer IRQ\n");
- }
-
- /* Should check the return value ... but if it fails, what do we do? */
-
- return 0;
-}
-
-static int __init omap3_wake_init (void) {
- pidfile = debugfs_create_file("wake_signal_pid", 0200, NULL, NULL, &h1_fops);
- acc_wake.user_pid = 0; /* No user thread yet */
-
- snprintf(acc_wake.lock_name, sizeof(acc_wake.lock_name),
- "Accelerometer");
- wake_lock_init(&acc_wake.lock, WAKE_LOCK_SUSPEND,
- acc_wake.lock_name);
- return 0;
-}
-
-
-#endif /* ONLY_KEEPING_THIS_STUFF_FOR_NOSTALGIC_REASONS */
-
-
-/***************************************************************************
- * omap_uart data
- */
-
-/* Some notes:
- .dma_enabled = false,
- .dma_rx_buf_size = DEFAULT_RXDMA_BUFSIZE,
- .dma_rx_poll_rate = DEFAULT_RXDMA_POLLRATE,
- .dma_rx_timeout = DEFAULT_RXDMA_TIMEOUT,
- .autosuspend_timeout = DEFAULT_AUTOSUSPEND_DELAY, ( -1 or X ms. )
-
- .wakelock_timeout - for minnow, this is 150 (BT) or 50 (M4 debug).
- Can be left out.
-
- .DTR_* -> can be left out. I can't find anyone using it.
-
- int DTR_gpio;
- int DTR_inverted;
- int DTR_present;
- bool wakeup_capable;
-
- bool open_close_pm; - Minnow uses this for c55 only
- unsigned int rx_trig; Minnow, BT & debug only
-*/
-
-static struct omap_uart_port_info omap_uart_ports[] = {
- {
- .dma_enabled = false, /* To specify DMA Mode */
- .dma_rx_buf_size = DEFAULT_RXDMA_BUFSIZE,
- .dma_rx_timeout = DEFAULT_RXDMA_TIMEOUT,
- .dma_rx_poll_rate = DEFAULT_RXDMA_POLLRATE,
- .autosuspend_timeout = 5000,
- .wakeup_capable = false,
- },
- {
- .dma_enabled = false, /* To specify DMA Mode */
- .dma_rx_buf_size = DEFAULT_RXDMA_BUFSIZE,
- .dma_rx_timeout = DEFAULT_RXDMA_TIMEOUT,
- .dma_rx_poll_rate = DEFAULT_RXDMA_POLLRATE,
- .autosuspend_timeout = 5000,
- .wakeup_capable = false,
- },
- {
- .dma_enabled = false, /* To specify DMA Mode */
- .dma_rx_buf_size = DEFAULT_RXDMA_BUFSIZE,
- .dma_rx_timeout = DEFAULT_RXDMA_TIMEOUT,
- .dma_rx_poll_rate = DEFAULT_RXDMA_POLLRATE,
- .autosuspend_timeout = -1,
- .wakeup_capable = true,
- },
- {
- .dma_enabled = false, /* To specify DMA Mode */
- .dma_rx_buf_size = DEFAULT_RXDMA_BUFSIZE,
- .dma_rx_timeout = DEFAULT_RXDMA_TIMEOUT,
- .dma_rx_poll_rate = DEFAULT_RXDMA_POLLRATE,
- .autosuspend_timeout = 5000,
- .wakeup_capable = false,
- },
-};
-
-
-/***************************************************************************
- * DEVICE TREE STUFF
- *
- * Trying to include some DT stuff with our board file. Not sure how this
- * will work out...
- */
-
-static struct of_device_id omap_dt_match_table[] __initdata = {
- { .compatible = "olio,omap3-h1", },
- { .compatible = "simple-bus", },
- { .compatible = "ti,omap-infra", },
- { }
-};
-
-
/***************************************************************************
* omap3_h1_i2c_init - init the i2c buses
*
@@ -1077,8 +321,8 @@ static int __init omap3_h1_i2c_init(void)
omap3h1_i2c2_board_info[2].irq = gpio_to_irq(ATMEL_MXT_GPIO);
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);
+ // ((struct tps65910_board *) (omap3h1_i2c1_board_info[0].platform_data))->irq =
+ // gpio_to_irq (TPS_SYS_NIRQ);
#else
omap3h1_i2c1_board_info[3].irq = gpio_to_irq(ATMEL_MXT_GPIO);
omap3h1_i2c1_board_info[1].irq = acc_irq;
@@ -1088,7 +332,7 @@ static int __init omap3_h1_i2c_init(void)
/* Register buses */
- omap_register_i2c_bus(1, 400, omap3h1_i2c1_board_info, ARRAY_SIZE(omap3h1_i2c1_board_info));
+ // omap_register_i2c_bus(1, 400, omap3h1_i2c1_board_info, ARRAY_SIZE(omap3h1_i2c1_board_info));
#ifdef CONFIG_MACH_OMAP3_H1_DVT2
omap_register_i2c_bus(2, 400, omap3h1_i2c2_board_info, ARRAY_SIZE(omap3h1_i2c2_board_info));
#else
@@ -1104,84 +348,11 @@ static int __init omap3_h1_i2c_init(void)
static struct platform_device *omap3h1_devices[] __initdata = {
- &omap3h1_vbat,
&bcm20702_bluetooth_device,
&nop_phy_device,
&omap3h1_dmic_codec,
};
-
-#ifdef CONFIG_OMAP_MUX
-static struct omap_board_mux board_mux[] __initdata = {
-
-#if defined(CONFIG_MACH_OMAP3_H1_DVT1) || defined(CONFIG_MACH_OMAP3_H1_DVT2)
- OMAP3_MUX(CAM_HS, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-#else
- OMAP3_MUX(HSUSB0_DIR, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
-#endif
- OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA9, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA10, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA11, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA12, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA13, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA14, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
-
- OMAP3_MUX(MCSPI1_CLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(MCSPI1_SIMO, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
- OMAP3_MUX(MCSPI1_SOMI, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP),
- OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT),
-
- /* TOUCH_RESET */
-
- OMAP3_MUX(CAM_D6, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
-
-#if defined(CONFIG_MACH_OMAP3_H1_DVT1) || defined(CONFIG_MACH_OMAP3_H1_DVT2)
- /* USB pin settings (mUSB) */
-
- OMAP3_MUX(HSUSB0_CLK, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA0, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA1, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA2, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA3, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA4, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA5, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA6, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DATA7, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_DIR, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_NXT, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
- OMAP3_MUX(HSUSB0_STP, (OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT)),
-#endif /* CONFIG_MACH_OMAP3_H1_DVT */
-
- /* accelerometer */
-
- OMAP3_MUX(JTAG_EMU1, (OMAP_MUX_MODE4 | OMAP_PIN_INPUT
- | OMAP_PIN_OFF_WAKEUPENABLE)),
-
- /* USB on */
-
- OMAP3_MUX(ETK_D7, (OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT)),
-
- OMAP3_MUX(SYS_NIRQ, (OMAP_MUX_MODE0 | OMAP_PIN_INPUT)),
-
- { .reg_offset = OMAP_MUX_TERMINATOR },
-};
-#endif
-
static void __init omap3_h1_init(void)
{
/* Read what we can from the device tree */
@@ -1194,42 +365,17 @@ static void __init omap3_h1_init(void)
omap_sdrc_init(mt29c8g96_sdrc_params, mt29c8g96_sdrc_params);
- /* This is done in our device tree file now */
- /* omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); */
-
omap3_h1_i2c_init();
- /* Set up the voltage domains */
- omap3_voltdm_init();
-
platform_add_devices(omap3h1_devices, ARRAY_SIZE(omap3h1_devices));
omap3h1_spi_init();
-#if 0
- omap_serial_board_init(omap_uart_ports);
-#endif
-
omap_display_init(&omap3h1_dss_data);
usb_bind_phy("musb-hdrc.0.auto", 0, "nop_usb_xceiv"); /* "tusb-usb-h1" */
usb_musb_init(&musb_board_data);
-
-#ifdef ONLY_KEEPING_THIS_STUFF_FOR_NOSTALGIC_REASONS
-
- /* For handling interrupts from the accelerometer */
-
- previous = jiffies;
-
- /* Init the code that handles wake ups */
-
- omap3_wake_init();
-
- omap3_acc_irq_init(omap3h1_i2c2_board_info[0].irq, (void *) &omap3h1_devices);
-
-#endif /* ONLY_KEEPING_THIS_STUFF_FOR_NOSTALGIC_REASONS */
-
}
static const char *omap3_h1_boards_compat[] __initdata = {