summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorYan He <yanhe@codeaurora.org>2015-10-09 18:25:28 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:16:17 -0700
commita5ee9307d8081224a73ac8191d5e3db614984ff8 (patch)
tree4f32663797c7637d6d3bca6f7e60ee18d650de8c /include/linux
parent980cf128c7db5e2f6ad7f7922bfd9c7c7258958b (diff)
msm: ep_pcie: add the support of PCIe EP mode for mdmcalifornium
Add the support of PCIe Endpoint (EP) mode for mdmcalifornium. Change-Id: I55c85813e674810d865b444b7e19ce4157cea479 Signed-off-by: Yan He <yanhe@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/msm_ep_pcie.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/linux/msm_ep_pcie.h b/include/linux/msm_ep_pcie.h
index 6d02bdb628bc..489020097a69 100644
--- a/include/linux/msm_ep_pcie.h
+++ b/include/linux/msm_ep_pcie.h
@@ -29,6 +29,25 @@ enum ep_pcie_event {
EP_PCIE_EVENT_PM_RST_DEAST = 0x8,
EP_PCIE_EVENT_LINKDOWN = 0x10,
EP_PCIE_EVENT_LINKUP = 0x20,
+ EP_PCIE_EVENT_MHI_A7 = 0x40,
+ EP_PCIE_EVENT_MMIO_WRITE = 0x80,
+};
+
+enum ep_pcie_irq_event {
+ EP_PCIE_INT_EVT_LINK_DOWN = 1,
+ EP_PCIE_INT_EVT_BME,
+ EP_PCIE_INT_EVT_PM_TURNOFF,
+ EP_PCIE_INT_EVT_DEBUG,
+ EP_PCIE_INT_EVT_LTR,
+ EP_PCIE_INT_EVT_MHI_Q6,
+ EP_PCIE_INT_EVT_MHI_A7,
+ EP_PCIE_INT_EVT_DSTATE_CHANGE,
+ EP_PCIE_INT_EVT_L1SUB_TIMEOUT,
+ EP_PCIE_INT_EVT_MMIO_WRITE,
+ EP_PCIE_INT_EVT_CFG_WRITE,
+ EP_PCIE_INT_EVT_BRIDGE_FLUSH_N,
+ EP_PCIE_INT_EVT_LINK_UP,
+ EP_PCIE_INT_EVT_MAX = 13,
};
enum ep_pcie_trigger {
@@ -97,6 +116,8 @@ struct ep_pcie_hw {
int (*disable_endpoint)(void);
int (*config_db_routing)(struct ep_pcie_db_config chdb_cfg,
struct ep_pcie_db_config erdb_cfg);
+ int (*mask_irq_event)(enum ep_pcie_irq_event event,
+ bool enable);
};
/*
@@ -251,4 +272,18 @@ int ep_pcie_disable_endpoint(struct ep_pcie_hw *phandle);
int ep_pcie_config_db_routing(struct ep_pcie_hw *phandle,
struct ep_pcie_db_config chdb_cfg,
struct ep_pcie_db_config erdb_cfg);
+
+/*
+ * ep_pcie_mask_irq_event - enable and disable IRQ event.
+ * @phandle: PCIe endpoint HW driver handle
+ * @event: IRQ event
+ * @enable: true to enable that IRQ event and false to disable
+ *
+ * This function is to enable and disable IRQ event.
+ *
+ * Return: 0 on success, negative value on error
+ */
+int ep_pcie_mask_irq_event(struct ep_pcie_hw *phandle,
+ enum ep_pcie_irq_event event,
+ bool enable);
#endif