mmc: host: Add gpio support for mask & match debug feature

Add gpio support for mask & match debug feature.

Change-Id: I61b464cb86faafdc1daff7839ccc20c6b695ba8b
Signed-off-by: Ram Prakash Gupta <rampraka@codeaurora.org>
This commit is contained in:
Ram Prakash Gupta 2020-04-14 21:58:43 +05:30
parent 2f081dc11e
commit ad39ad449e
2 changed files with 29 additions and 0 deletions

View file

@ -163,6 +163,8 @@
#define INVALID_TUNING_PHASE -1
#define sdhci_is_valid_gpio_wakeup_int(_h) ((_h)->pdata->sdiowakeup_irq >= 0)
#define sdhci_is_valid_gpio_testbus_trigger_int(_h) \
((_h)->pdata->testbus_trigger_irq >= 0)
#define NUM_TUNING_PHASES 16
#define MAX_DRV_TYPES_SUPPORTED_HS200 4
@ -2969,6 +2971,16 @@ static void sdhci_msm_cfg_sdiowakeup_gpio_irq(struct sdhci_host *host,
msm_host->is_sdiowakeup_enabled = enable;
}
static irqreturn_t sdhci_msm_testbus_trigger_irq(int irq, void *data)
{
struct sdhci_host *host = (struct sdhci_host *)data;
pr_info("%s: match happened against mask\n",
mmc_hostname(host->mmc));
return IRQ_HANDLED;
}
static irqreturn_t sdhci_msm_sdiowakeup_irq(int irq, void *data)
{
struct sdhci_host *host = (struct sdhci_host *)data;
@ -5672,6 +5684,22 @@ static int sdhci_msm_probe(struct platform_device *pdev)
}
}
msm_host->pdata->testbus_trigger_irq = platform_get_irq_byname(pdev,
"tb_trig_irq");
if (sdhci_is_valid_gpio_testbus_trigger_int(msm_host)) {
dev_info(&pdev->dev, "%s: testbus_trigger_irq = %d\n", __func__,
msm_host->pdata->testbus_trigger_irq);
ret = request_irq(msm_host->pdata->testbus_trigger_irq,
sdhci_msm_testbus_trigger_irq,
IRQF_SHARED | IRQF_TRIGGER_RISING,
"sdhci-msm tb_trig", host);
if (ret) {
dev_err(&pdev->dev, "%s: request tb_trig IRQ %d: failed: %d\n",
__func__, msm_host->pdata->testbus_trigger_irq,
ret);
}
}
if (of_device_is_compatible(node, "qcom,sdhci-msm-cqe")) {
dev_dbg(&pdev->dev, "node with qcom,sdhci-msm-cqe\n");
ret = sdhci_msm_cqe_add_host(host, pdev);

View file

@ -207,6 +207,7 @@ struct sdhci_msm_pltfm_data {
u32 *sup_clk_table;
unsigned char sup_clk_cnt;
int sdiowakeup_irq;
int testbus_trigger_irq;
struct sdhci_msm_pm_qos_data pm_qos_data;
u32 *bus_clk_table;
unsigned char bus_clk_cnt;