aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/platform_data/c2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/platform_data/c2c.h')
-rw-r--r--include/linux/platform_data/c2c.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/include/linux/platform_data/c2c.h b/include/linux/platform_data/c2c.h
new file mode 100644
index 0000000..ebb210b
--- /dev/null
+++ b/include/linux/platform_data/c2c.h
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2010 Google, Inc.
+ * Copyright (C) 2010 Samsung Electronics.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/delay.h>
+
+#define C2C_CP_RGN_ADDR 0x60000000
+#define C2C_CP_RGN_SIZE 0x03800000 // 56 MB
+#define C2C_SH_RGN_ADDR (C2C_CP_RGN_ADDR + C2C_SH_RGN_ADDR)
+#define C2C_SH_RGN_SIZE 0x00800000 // 8 MB
+
+
+#define DPRAM_INTR_PORT_SIZE 2
+#define DPRAM_MAGIC_CODE_SIZE 2
+#define DPRAM_ACCESS_CODE_SIZE 2
+#define DP_HEAD_SIZE 0x2
+#define DP_TAIL_SIZE 0x2
+#define DP_MAGIC_CODE 0xAA
+/*
+ Total size = magic_code + access_enable +
+ fmt_tx_head + fmt_tx_tail + fmt_tx_buff +
+ raw_tx_head + raw_tx_tail + raw_tx_buff +
+ fmt_rx_head + fmt_rx_tail + fmt_rx_buff +
+ raw_rx_head + raw_rx_tail + raw_rx_buff +
+ padding +
+ mbx_ap2cp + mbx_cp2ap
+ = 2 + 2 +
+ 2 + 2 + 2044 +
+ 2 + 2 + 6128 +
+ 2 + 2 + 2044 +
+ 2 + 2 + 6128 +
+ 16 +
+ 2 + 2
+ = 16384
+*/
+
+#define TRUE 1
+#define FALSE 0
+
+/* interrupt masks.*/
+#define INT_MASK_VALID 0x0080
+#define INT_MASK_CMD 0x0040
+#define INT_MASK_REQ_ACK_F 0x0020
+#define INT_MASK_REQ_ACK_R 0x0010
+#define INT_MASK_RES_ACK_F 0x0008
+#define INT_MASK_RES_ACK_R 0x0004
+#define INT_MASK_SEND_F 0x0002
+#define INT_MASK_SEND_R 0x0001
+
+#define INT_CMD_INIT_START 0x0001
+#define INT_CMD_INIT_END 0x0002
+#define INT_CMD_REQ_ACTIVE 0x0003
+#define INT_CMD_RES_ACTIVE 0x0004
+#define INT_CMD_REQ_TIME_SYNC 0x0005
+#define INT_CMD_PHONE_START 0x0008
+#define INT_CMD_ERR_DISPLAY 0x0009
+#define INT_CMD_PHONE_DEEP_SLEEP 0x000A
+#define INT_CMD_NV_REBUILDING 0x000B
+#define INT_CMD_EMER_DOWN 0x000C
+#define INT_CMD_PIF_INIT_DONE 0x000D
+#define INT_CMD_SILENT_NV_REBUILDING 0x000E
+#define INT_CMD_NORMAL_POWER_OFF 0x000F
+
+#define INT_CMD(x) (INT_MASK_VALID | INT_MASK_CMD | x)
+#define INT_NON_CMD(x) (INT_MASK_VALID | x)
+
+/* special interrupt cmd indicating modem boot failure. */
+#define INT_POWERSAFE_FAIL 0xDEAD
+
+#define FMT_IDX 0
+#define RAW_IDX 1
+#define MAX_IDX 2
+
+#define GPIO_DPRAM_INT_N 62
+#define IRQ_DPRAM_INT_N gpio_to_irq(GPIO_DPRAM_INT_N)
+
+#define GPIO_PHONE_ACTIVE 120
+
+#define HDLC_START 0x7F
+#define HDLC_END 0x7E
+#define SIZE_OF_HDLC_START 1
+#define SIZE_OF_HDLC_END 1
+
+/* ioctl command definitions. */
+#define IOC_MZ_MAGIC ('o')
+#define DPRAM_PHONE_POWON _IO(IOC_MZ_MAGIC, 0xd0)
+#define DPRAM_PHONEIMG_LOAD _IO(IOC_MZ_MAGIC, 0xd1)
+#define DPRAM_NVDATA_LOAD _IO(IOC_MZ_MAGIC, 0xd2)
+#define DPRAM_PHONE_BOOTSTART _IO(IOC_MZ_MAGIC, 0xd3)
+
+/*related GPMC*/
+#define OMAP44XX_GPMC_CS1_SIZE 0xC /* 64M */
+#define OMAP44XX_GPMC_CS1_MAP 0x04000000
+#define DPRAM_GPMC_CONFIG1 0x00001201
+#define DPRAM_GPMC_CONFIG2 0x000f1200
+#define DPRAM_GPMC_CONFIG3 0x44040400
+#define DPRAM_GPMC_CONFIG4 0x0e05f155
+#define DPRAM_GPMC_CONFIG5 0x000e1016
+#define DPRAM_GPMC_CONFIG6 0x060603c3
+#define DPRAM_GPMC_CONFIG7 0x00000F44
+
+#define GPMC_CONFIG1 (0x00)
+#define GPMC_CONFIG2 (0x04)
+#define GPMC_CONFIG3 (0x08)
+#define GPMC_CONFIG4 (0x0C)
+#define GPMC_CONFIG5 (0x10)
+#define GPMC_CONFIG6 (0x14)
+#define GPMC_CONFIG7 (0x18)
+#define GPMC_CONFIG_CS1 (OMAP44XX_GPMC_BASE+0x90)
+#define GPMC_CONFIG_WIDTH (0x30)
+
+#define REG32(A) (*(volatile unsigned long *)(A))
+#define GPMC_CONTROL_BASE_ADDR 0x50000000
+#define GPMC_CONFIG1_1 (GPMC_CONTROL_BASE_ADDR + 0x90)
+#define GPMC_CONFIG2_1 (GPMC_CONTROL_BASE_ADDR + 0x94)
+#define GPMC_CONFIG3_1 (GPMC_CONTROL_BASE_ADDR + 0x98)
+#define GPMC_CONFIG4_1 (GPMC_CONTROL_BASE_ADDR + 0x9C)
+#define GPMC_CONFIG5_1 (GPMC_CONTROL_BASE_ADDR + 0xA0)
+#define GPMC_CONFIG6_1 (GPMC_CONTROL_BASE_ADDR + 0xA4)
+#define GPMC_CONFIG7_1 (GPMC_CONTROL_BASE_ADDR + 0xA8)