From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Wed, 30 Aug 2017 08:25:59 +0000 Subject: Initial file dump from open source release --- .../char/modem_interface/modem_interface_driver.h | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 drivers/char/modem_interface/modem_interface_driver.h (limited to 'drivers/char/modem_interface/modem_interface_driver.h') diff --git a/drivers/char/modem_interface/modem_interface_driver.h b/drivers/char/modem_interface/modem_interface_driver.h new file mode 100644 index 00000000..786b81ae --- /dev/null +++ b/drivers/char/modem_interface/modem_interface_driver.h @@ -0,0 +1,84 @@ +#ifndef __MODEM_INTF_DRIVER_H__ +#define __MODEM_INTF_DRIVER_H__ +#include + + +#define MODEM_INTF_EVENT_ASSERT 0 +#define MODEM_INTF_EVENT_ALIVE 1 +#define MODEM_INTF_EVENT_CP_REQ_RESET 2 +#define MODEM_INTF_EVENT_SHUTDOWN 4 +#define MODEM_INTF_EVENT_FORCE_RESET 8 +#define MODEM_INTF_EVENT_WDG_RESET 16 + + + + + +enum TRAN_DIR_t{ + TRAN_DIR_IN, + TRAN_DIR_OUT, + TRAN_DIR_NONE, +}; + +enum MSG_SRC_type { + SRC_GPIO, + SRC_SPI, + SRC_MUX, + SRC_DLOADER, + SRC_USER +}; + +enum MODEM_MSG_type { + MODEM_TRANSFER_REQ, // high layer(mux /download driver) request to send. + MODEM_TRANSFER_END,// transfer complete + MODEM_SLAVE_RTS, // MODEM request to send data + MODEM_SLAVE_RDY, // indicate MODEM is ready to receive. + MODEM_SET_MODE, + MODEM_CTRL_GPIO_CHG, + MODEM_USER_REQ, + MODEM_BOOT_CMP, + MODEM_OPEN_DEVICE +}; + +enum MSG_CTRL_GPIO_TYPE { + GPIO_ALIVE = 0, + GPIO_RESET, + GPIO_WATCHDOG, + CTRL_GPIO_MAX +}; + + +struct modem_message_node{ + struct list_head link; + int buno; + enum MSG_SRC_type src; + enum MODEM_MSG_type type; + int parameter1; + int parameter2; +}; + +struct modem_device_operation { + enum MODEM_device_type dev; + int (*open) (void*para); + int (*write)(char *buffer, int size); + int (*read)(char *buffer, int size); +}; + +typedef struct modem_intf_device { + struct modem_intf_platform_data modem_config; + enum MODEM_Mode_type mode; + struct modem_device_operation *op; + struct modem_buffer send_buffer; + struct modem_buffer recv_buffer; + enum TRAN_DIR_t direction; + int buffer_index; + int status; + int out_transfering; + int out_transfer_pending; +} MODEM_DEV_T; + +extern void boot_protocol(struct modem_message_node *msg); +extern void normal_protocol(struct modem_message_node *msg); +extern void dump_memory_protocol(struct modem_message_node *msg); +extern char *modem_intf_msg_string(enum MODEM_MSG_type msg); +#endif -- cgit v1.3.1