Merge remote branch 'origin/develop_xbw_update-SDCard' into develop
[firefly-linux-kernel-4.4.55.git] / drivers / misc / rk29_modem / rk29_modem.h
1 #include <linux/platform_device.h>\r
2 \r
3 /* Modem states */\r
4 #define MODEM_DISABLE       0\r
5 #define MODEM_ENABLE        1\r
6 #define MODEM_SLEEP         2\r
7 #define MODEM_WAKEUP        3\r
8 #define MODEM_MAX_STATUS    4\r
9 \r
10 struct rk29_io_t {\r
11     unsigned long io_addr;\r
12     unsigned long enable;\r
13     unsigned long disable;\r
14 };\r
15 \r
16 struct rk29_irq_t {\r
17     unsigned long irq_addr;\r
18     unsigned long irq_trigger;\r
19 };\r
20 \r
21 struct rk29_modem_t {\r
22     struct platform_driver *driver;\r
23     // ¿ØÖÆmodemµçÔ´µÄIO\r
24     struct rk29_io_t *modem_power;\r
25     // µ±AP¾ÍÐ÷»òÕßδ¾ÍÐ÷ʱ£¬Í¨¹ý ap_ready Õâ¸öIOÀ´Í¨ÖªBP¡£\r
26     struct rk29_io_t *ap_ready;\r
27     // µ±BP½ÓÊÕµ½¶ÌÐÅ»òÕßÀ´µçʱ£¬Í¨¹ý bp_wakeup_ap Õâ¸öIRQÀ´»½ÐÑAP\r
28     struct rk29_irq_t *bp_wakeup_ap;\r
29     // µ±Ç°modem״̬£¬Ä¿Ç°Ö»Óõ½MODEM_ENABLE(Éϵç)¡¢MODEM_DISABLE(ϵç)\r
30     // Í¬Ê±£¬statusµÄ³õʼֵҲ¾ö¶¨¿ª»úʱµÄmodemÊÇ·ñÉϵç\r
31     int status;\r
32     struct wake_lock wakelock_bbwakeupap;\r
33 \r
34     // É豸³õʼ»¯º¯Êý, Ö÷ÒªÉèÖø÷¸öGPIOÒÔ¼°IRQµÄÉêÇëµÈ\r
35     int (*dev_init)(struct rk29_modem_t *driver);\r
36     int (*dev_uninit)(struct rk29_modem_t *driver);\r
37     irqreturn_t (*irq_handler)(int irq, void *dev_id);\r
38     int (*suspend)(struct platform_device *pdev, pm_message_t state);\r
39     int (*resume)(struct platform_device *pdev);\r
40 \r
41     int (*enable)(struct rk29_modem_t *driver);\r
42     int (*disable)(struct rk29_modem_t *driver);\r
43     int (*sleep)(struct rk29_modem_t *driver);\r
44     int (*wakeup)(struct rk29_modem_t *driver);\r
45 };\r
46 \r
47 void rk29_modem_exit(void);\r
48 int rk29_modem_init(struct rk29_modem_t *rk29_modem);\r
49 int rk29_modem_suspend(struct platform_device *pdev, pm_message_t state);\r
50 int rk29_modem_resume(struct platform_device *pdev);\r
51 \r