// Initialize DEX registers
int init_dex_comm()
{
	unsigned long flags;
	printk(KERN_INFO "%s: WinCE DEX init.\n", __func__);

	printk(KERN_INFO "%s: WinCE DEX init.\n", __func__);

	if(machine_is_htcleo())
		base = (unsigned)(MSM_SHARED_RAM_BASE + 0xefe00);
	else
		base = (unsigned)(MSM_SHARED_RAM_BASE + 0xfc100);

	setup_irq(INT_A9_M2A_4, &dex_callback_irq);

	spin_lock_irqsave(&dex_comm_lock, flags);

	writel(0, base + PC_DATA);
	writel(0, base + PC_DATA_RESULT);
	writel(0, base + PC_SERIAL);
	writel(0, base + PC_SERIAL_CHECK);
	writel(0, base + PC_STATUS);

	spin_unlock_irqrestore(&dex_comm_lock, flags);
	printk(KERN_INFO "%s: WinCE DEX initialized.\n", __func__);

	dump_debug_stuff();

	return 0;
}
// Initialize PCOM registers
int msm_proc_comm_wince_init()
{
	unsigned base = (unsigned)(MSM_SHARED_RAM_BASE + 0xfc100);
	unsigned long flags;

	setup_irq(INT_A9_M2A_4, &dex_callback_irq);
	
	spin_lock_irqsave(&proc_comm_lock, flags);

	writel(0, base + PC_DATA);
	writel(0, base + PC_DATA_RESULT);
	writel(0, base + PC_SERIAL);
	writel(0, base + PC_SERIAL_CHECK);
	writel(0, base + PC_STATUS);

	spin_unlock_irqrestore(&proc_comm_lock, flags);
	register_early_suspend(&early_suspend);

	printk(KERN_INFO "%s: WinCE PCOM initialized.\n", __func__);

	dump_debug_stuff();

	return 0;
}