#endif
+#ifdef CONFIG_RK29_SUPPORT_MODEM
+
+#define RK30_MODEM_POWER RK30_PIN4_PD1
+#define RK30_MODEM_POWER_IOMUX rk29_mux_api_set(GPIO4D1_SMCDATA9_TRACEDATA9_NAME, GPIO4D_GPIO4D1)
+
+static int rk30_modem_io_init(void)
+{
+ printk("%s\n", __FUNCTION__);
+ RK30_MODEM_POWER_IOMUX;
+
+ return 0;
+}
+
+static struct rk29_io_t rk30_modem_io = {
+ .io_addr = RK30_MODEM_POWER,
+ .enable = GPIO_HIGH,
+ .disable = GPIO_LOW,
+ .io_init = rk30_modem_io_init,
+};
+
+static struct platform_device rk30_device_modem = {
+ .name = "rk30_modem",
+ .id = -1,
+ .dev = {
+ .platform_data = &rk30_modem_io,
+ }
+};
+#endif
+
/*MMA8452 gsensor*/
#if defined (CONFIG_GS_MMA8452)
#define MMA8452_INT_PIN RK30_PIN4_PC0
#ifdef CONFIG_BT
&rk29sdk_rfkill,
#endif
+#ifdef CONFIG_RK29_SUPPORT_MODEM
+ &rk30_device_modem,
+#endif
};
// i2c
\r
#include "rk29_modem.h"\r
\r
-static struct rk29_io_t demo_io_power = {\r
- .io_addr = RK30_PIN4_PD1, //RK29_PIN6_PB1, \r
- .enable = GPIO_HIGH,\r
- .disable = GPIO_LOW,\r
-};\r
+static int rk30_modem_probe(struct platform_device *pdev);\r
\r
static struct platform_driver demo_platform_driver = {\r
- .driver = {\r
- .name = "rk29_demo",\r
- },
+ .probe = rk30_modem_probe,\r
+ .driver = {\r
+ .name = "rk30_modem",\r
+ },\r
};\r
\r
static struct rk29_modem_t demo_driver = {\r
.driver = &demo_platform_driver,\r
- .modem_power = &demo_io_power,\r
+ .modem_power = NULL,//&demo_io_power,\r
.ap_ready = NULL,\r
.bp_wakeup_ap = NULL,\r
.status = MODEM_ENABLE,\r
.wakeup = NULL,\r
};\r
\r
+static int rk30_modem_probe(struct platform_device *pdev)\r
+{\r
+ int ret = 0;\r
+ struct rk29_io_t *rk29_io_info = pdev->dev.platform_data;\r
+\r
+ printk("%s\n", __FUNCTION__);\r
+ demo_driver.modem_power = rk29_io_info;\r
+ demo_driver.modem_power->io_init();\r
+\r
+ return 0;\r
+}\r
+\r
static int __init demo_init(void)\r
{\r
printk("%s[%d]: %s\n", __FILE__, __LINE__, __FUNCTION__);\r
module_init(demo_init);\r
module_exit(demo_exit);\r
\r
-MODULE_AUTHOR("lintao lintao@rock-chips.com");\r
+MODULE_AUTHOR("lintao lintao@rock-chips.com, cmy@rock-chips.com");\r
MODULE_DESCRIPTION("ROCKCHIP modem driver");\r
MODULE_LICENSE("GPL");\r
\r
#include <linux/platform_device.h>\r
+#include <mach/board.h>\r
\r
/* Modem states */\r
#define MODEM_DISABLE 0\r
#define MODEM_WAKEUP 3\r
#define MODEM_MAX_STATUS 4\r
\r
-struct rk29_io_t {\r
- unsigned long io_addr;\r
- unsigned long enable;\r
- unsigned long disable;\r
-};\r
-\r
struct rk29_irq_t {\r
unsigned long irq_addr;\r
unsigned long irq_trigger;\r