From patchwork Fri Aug 17 19:10:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lina Iyer X-Patchwork-Id: 10569301 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F25D81390 for ; Fri, 17 Aug 2018 19:11:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E29D02BD87 for ; Fri, 17 Aug 2018 19:11:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D3BBF2BDB9; Fri, 17 Aug 2018 19:11:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5CE6E2BD87 for ; Fri, 17 Aug 2018 19:11:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727950AbeHQWQL (ORCPT ); Fri, 17 Aug 2018 18:16:11 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36494 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728210AbeHQWPL (ORCPT ); Fri, 17 Aug 2018 18:15:11 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 6D22762589; Fri, 17 Aug 2018 19:10:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533037; bh=C5JaBqR4HXSX6Nz6LQ9CchmYdKUhr+ne7FvXeOwBfTM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O8USqfUWJy8oSYO/jsee7gDXTGAc3dM2i6rMg4gIjXUQBMsnYX8bNIsf4OFvkl0bX Dde8z2zcKFNDnM7G9fhC+g/m51nAAt3Wbgdq0eBMTrJIiyym9rduUqvC19+yuPV5XE dCZhrMn5MfgCHZ1p+jGdgXav2L3v+P1jKO776dB0= Received: from codeaurora.org (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 937EF6256A; Fri, 17 Aug 2018 19:10:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533036; bh=C5JaBqR4HXSX6Nz6LQ9CchmYdKUhr+ne7FvXeOwBfTM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hVXOgDDGb3wfGIWQHSBgjM0gVoXVv+DjltHg24dzqcP9x0Zu31ZigKSjbi0mppZYu r4haE5SMo5bYQaHLdSJeMvUkBbAGNmrkHHMqIoQiW8xI5+FhDsDVwq+qa1nxovzy8U EeBiqXDKcCNkGntUl6mA2I/Om9WAVMijyp5l5ric= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 937EF6256A Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org From: Lina Iyer To: marc.zyngier@arm.com, bjorn.andersson@linaro.org, sboyd@kernel.org, evgreen@chromium.org, linus.walleij@linaro.org Cc: rplsssn@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, devicetree@vger.kernel.org, andy.gross@linaro.org, dianders@chromium.org, Lina Iyer Subject: [PATCH RESEND v1 1/5] dt-bindings: pinctrl: add wakeup capable GPIOs for SDM845 Date: Fri, 17 Aug 2018 13:10:22 -0600 Message-Id: <20180817191026.32245-2-ilina@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180817191026.32245-1-ilina@codeaurora.org> References: <20180817191026.32245-1-ilina@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Update the documentation to use interrupts-extended format for specifying the TLMM summary IRQ line that is requested from GIC and the PDC interrupts corresponding to the wakeup capable GPIOs. Update the example to show PDC interrupts for the wakeup capable GPIOs for SDM845. Cc: devicetree@vger.kernel.org Signed-off-by: Lina Iyer Reviewed-by: Rob Herring --- .../bindings/pinctrl/qcom,sdm845-pinctrl.txt | 58 ++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt index 665aadb5ea28..d7408cc74e01 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt @@ -13,10 +13,21 @@ SDM845 platform. Value type: Definition: the base address and size of the TLMM register space. -- interrupts: +- interrupts-extended: Usage: required Value type: - Definition: should specify the TLMM summary IRQ. + Definition: should specify the TLMM summary IRQ as the first + interrupt. Optionally, wake up capable GPIOs may list + their corresponding PDC interrupts here. + +- interrupt-names: + Usage: required + Value type: + Definition: the names matching the interrupt definition in the + interrupts-extended property. The first interrupt name + must be "summary-irq" for the TLMM summary IRQ. PDC + interrupts must be described by "gpioN", where N is the + GPIO line corresponding to the PDC IRQ. - interrupt-controller: Usage: required @@ -155,11 +166,52 @@ Example: tlmm: pinctrl@3400000 { compatible = "qcom,sdm845-pinctrl"; reg = <0x03400000 0xc00000>; - interrupts = ; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; + interrupts-extended = <&intc GIC_SPI 208 0>, + <&pdc 510 0>, <&pdc 511 0>, <&pdc 512 0>, <&pdc 513 0>, + <&pdc 514 0>, <&pdc 515 0>, <&pdc 516 0>, <&pdc 517 0>, + <&pdc 518 0>, <&pdc 519 0>, <&pdc 632 0>, <&pdc 639 0>, + <&pdc 521 0>, <&pdc 522 0>, <&pdc 523 0>, <&pdc 524 0>, + <&pdc 525 0>, <&pdc 526 0>, <&pdc 527 0>, <&pdc 630 0>, + <&pdc 637 0>, <&pdc 529 0>, <&pdc 530 0>, <&pdc 531 0>, + <&pdc 532 0>, <&pdc 633 0>, <&pdc 640 0>, <&pdc 534 0>, + <&pdc 535 0>, <&pdc 536 0>, <&pdc 537 0>, <&pdc 538 0>, + <&pdc 539 0>, <&pdc 540 0>, <&pdc 541 0>, <&pdc 542 0>, + <&pdc 543 0>, <&pdc 544 0>, <&pdc 545 0>, <&pdc 546 0>, + <&pdc 547 0>, <&pdc 548 0>, <&pdc 549 0>, <&pdc 550 0>, + <&pdc 551 0>, <&pdc 552 0>, <&pdc 553 0>, <&pdc 554 0>, + <&pdc 555 0>, <&pdc 556 0>, <&pdc 557 0>, <&pdc 631 0>, + <&pdc 638 0>, <&pdc 559 0>, <&pdc 560 0>, <&pdc 561 0>, + <&pdc 562 0>, <&pdc 563 0>, <&pdc 564 0>, <&pdc 565 0>, + <&pdc 566 0>, <&pdc 570 0>, <&pdc 571 0>, <&pdc 572 0>, + <&pdc 573 0>, <&pdc 609 0>, <&pdc 610 0>, <&pdc 611 0>, + <&pdc 612 0>, <&pdc 613 0>, <&pdc 614 0>, <&pdc 615 0>, + <&pdc 617 0>, <&pdc 618 0>, <&pdc 619 0>, <&pdc 620 0>, + <&pdc 621 0>, <&pdc 622 0>, <&pdc 623 0>; + interrupt-names = "summary-irq", + "gpio1", "gpio3", "gpio5", "gpio10", + "gpio11", "gpio20", "gpio22", "gpio24", + "gpio26", "gpio30", "gpio31", "gpio31", + "gpio32", "gpio34", "gpio36", "gpio37", + "gpio38", "gpio39", "gpio40", "gpio41", + "gpio41", "gpio43", "gpio44", "gpio46", + "gpio48", "gpio49", "gpio49", "gpio52", + "gpio53", "gpio54", "gpio56", "gpio57", + "gpio58", "gpio59", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", "gpio66", + "gpio68", "gpio71", "gpio73", "gpio77", + "gpio78", "gpio79", "gpio80", "gpio84", + "gpio85", "gpio86", "gpio88", "gpio89", + "gpio89", "gpio91", "gpio92", "gpio95", + "gpio96", "gpio97", "gpio101", "gpio103", + "gpio104", "gpio115", "gpio116", "gpio117", + "gpio118", "gpio119", "gpio120", "gpio121", + "gpio122", "gpio123", "gpio124", "gpio125", + "gpio127", "gpio128", "gpio129", "gpio130", + "gpio132", "gpio133", "gpio145"; qup9_active: qup9-active { mux { From patchwork Fri Aug 17 19:10:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lina Iyer X-Patchwork-Id: 10569309 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 59C4813B6 for ; Fri, 17 Aug 2018 19:12:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B73D2BDB9 for ; Fri, 17 Aug 2018 19:12:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3FBE72BE15; Fri, 17 Aug 2018 19:12:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B9D4F2BDB9 for ; Fri, 17 Aug 2018 19:12:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728236AbeHQWQL (ORCPT ); Fri, 17 Aug 2018 18:16:11 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36562 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728213AbeHQWPL (ORCPT ); Fri, 17 Aug 2018 18:15:11 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 679DD6256A; Fri, 17 Aug 2018 19:10:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533038; bh=ENAVc3R5FTrYnDKyvx6U7tW772rhwQ86OJD8wGGgBIE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IyGopoFZsWHjOn7pRafak4FySrUX/G5X1GoBmixRlz83nC2iOr5Qwrki5lqJ0xhkB IBGVSJk9GgmtvR2IBW5QtE5++T71mLV/n5nVQdV38xWsI7zVo33XoZDZNYbtzz0/nI q8HNTBQzYSKV2NBZ5aXdZeGWAP4pMjcuM/GodEpA= Received: from codeaurora.org (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id D2AAB62578; Fri, 17 Aug 2018 19:10:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533037; bh=ENAVc3R5FTrYnDKyvx6U7tW772rhwQ86OJD8wGGgBIE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XX+bhLB5VRFM1u5UXDjthDxsWXpUcvSQ29LfWGigoSdF19tG6k7dfwfnmUR4Lp9BX T96bcxqR8klnOgrXPBuguI9YX3LOcq97Do6NVcpuFIKHtK5VAmk4yzCirZGmtHAnV8 pUjYRXSrDDH2tbrBPG7umSO9qoQ97AAoveS3+zQ8= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D2AAB62578 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org From: Lina Iyer To: marc.zyngier@arm.com, bjorn.andersson@linaro.org, sboyd@kernel.org, evgreen@chromium.org, linus.walleij@linaro.org Cc: rplsssn@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, devicetree@vger.kernel.org, andy.gross@linaro.org, dianders@chromium.org, Lina Iyer Subject: [PATCH RESEND v1 2/5] drivers: pinctrl: msm: enable PDC interrupt only during suspend Date: Fri, 17 Aug 2018 13:10:23 -0600 Message-Id: <20180817191026.32245-3-ilina@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180817191026.32245-1-ilina@codeaurora.org> References: <20180817191026.32245-1-ilina@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP During suspend the system may power down some of the system rails. As a result, the TLMM hw block may not be operational anymore and wakeup capable GPIOs will not be detected. The PDC however will be operational and the GPIOs that are routed to the PDC as IRQs can wake the system up. To avoid being interrupted twice (for TLMM and once for PDC IRQ) when a GPIO trips, use TLMM for active and switch to PDC for suspend. When entering suspend, disable the TLMM wakeup interrupt and instead enable the PDC IRQ and revert upon resume. Signed-off-by: Lina Iyer --- drivers/pinctrl/qcom/pinctrl-msm.c | 60 +++++++++++++++++++++++++++++- drivers/pinctrl/qcom/pinctrl-msm.h | 3 ++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c index 03ef1d29d078..17e541f8f09d 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -37,6 +37,7 @@ #include "../pinctrl-utils.h" #define MAX_NR_GPIO 300 +#define MAX_PDC_IRQ 1024 #define PS_HOLD_OFFSET 0x820 /** @@ -51,6 +52,7 @@ * @enabled_irqs: Bitmap of currently enabled irqs. * @dual_edge_irqs: Bitmap of irqs that need sw emulated dual edge * detection. + * @pdc_irqs: Bitmap of wakeup capable irqs. * @soc; Reference to soc_data of platform specific data. * @regs: Base address for the TLMM register map. */ @@ -68,11 +70,14 @@ struct msm_pinctrl { DECLARE_BITMAP(dual_edge_irqs, MAX_NR_GPIO); DECLARE_BITMAP(enabled_irqs, MAX_NR_GPIO); + DECLARE_BITMAP(pdc_irqs, MAX_PDC_IRQ); const struct msm_pinctrl_soc_data *soc; void __iomem *regs; }; +static bool in_suspend; + static int msm_get_groups_count(struct pinctrl_dev *pctldev) { struct msm_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); @@ -787,8 +792,11 @@ static int msm_gpio_irq_set_wake(struct irq_data *d, unsigned int on) raw_spin_lock_irqsave(&pctrl->lock, flags); - if (pdc_irqd) + if (pdc_irqd && !in_suspend) { irq_set_irq_wake(pdc_irqd->irq, on); + on ? set_bit(pdc_irqd->irq, pctrl->pdc_irqs) : + clear_bit(pdc_irqd->irq, pctrl->pdc_irqs); + } irq_set_irq_wake(pctrl->irq, on); @@ -920,6 +928,8 @@ static int msm_gpio_pdc_pin_request(struct irq_data *d) } irq_set_handler_data(d->irq, irq_get_irq_data(irq)); + irq_set_handler_data(irq, d); + irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY); disable_irq(irq); return 0; @@ -1070,6 +1080,54 @@ static void msm_pinctrl_setup_pm_reset(struct msm_pinctrl *pctrl) } } +int __maybe_unused msm_pinctrl_suspend_late(struct device *dev) +{ + struct msm_pinctrl *pctrl = dev_get_drvdata(dev); + struct irq_data *irqd; + int i; + + in_suspend = true; + for_each_set_bit(i, pctrl->pdc_irqs, MAX_PDC_IRQ) { + irqd = irq_get_handler_data(i); + /* + * We don't know if the TLMM will be functional + * or not, during the suspend. If its functional, + * we do not want duplicate interrupts from PDC. + * Hence disable the GPIO IRQ and enable PDC IRQ. + */ + if (irqd_is_wakeup_set(irqd)) { + irq_set_irq_wake(irqd->irq, false); + disable_irq(irqd->irq); + enable_irq(i); + } + } + + return 0; +} + +int __maybe_unused msm_pinctrl_resume_late(struct device *dev) +{ + struct msm_pinctrl *pctrl = dev_get_drvdata(dev); + struct irq_data *irqd; + int i; + + for_each_set_bit(i, pctrl->pdc_irqs, MAX_PDC_IRQ) { + irqd = irq_get_handler_data(i); + /* + * The TLMM will be operational now, so disable + * the PDC IRQ. + */ + if (irqd_is_wakeup_set(irq_get_irq_data(i))) { + disable_irq_nosync(i); + irq_set_irq_wake(irqd->irq, true); + enable_irq(irqd->irq); + } + } + in_suspend = false; + + return 0; +} + int msm_pinctrl_probe(struct platform_device *pdev, const struct msm_pinctrl_soc_data *soc_data) { diff --git a/drivers/pinctrl/qcom/pinctrl-msm.h b/drivers/pinctrl/qcom/pinctrl-msm.h index 9b9feea540ff..21b56fb5dae9 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.h +++ b/drivers/pinctrl/qcom/pinctrl-msm.h @@ -123,4 +123,7 @@ int msm_pinctrl_probe(struct platform_device *pdev, const struct msm_pinctrl_soc_data *soc_data); int msm_pinctrl_remove(struct platform_device *pdev); +int msm_pinctrl_suspend_late(struct device *dev); +int msm_pinctrl_resume_late(struct device *dev); + #endif From patchwork Fri Aug 17 19:10:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lina Iyer X-Patchwork-Id: 10569307 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9FD2513B6 for ; Fri, 17 Aug 2018 19:12:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 927C22BDB9 for ; Fri, 17 Aug 2018 19:12:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 870772BE15; Fri, 17 Aug 2018 19:12:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 369A12BDB9 for ; Fri, 17 Aug 2018 19:12:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728251AbeHQWQL (ORCPT ); Fri, 17 Aug 2018 18:16:11 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36682 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727997AbeHQWPN (ORCPT ); Fri, 17 Aug 2018 18:15:13 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id B350B62586; Fri, 17 Aug 2018 19:10:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533039; bh=6flkeC8VwR0A6QppwkUCI0AsDYsAguhrxydU1eExRqk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bFvKNG1UBp4/e/uLf278mrDIYNZvMKBbFC9t4FpQctUk1MjuhCbsCbR61j+HoBDU2 klMzAJ0uyYx35pnR/P9AtJnRyjrpfgTL5LY3sEgCOa0h0hn7oMHUK6tTHhqtG5L36M J54G3fHDnwLWtM4dbf8MIca4YSxfi1dcM/X2aDVo= Received: from codeaurora.org (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 25AD262586; Fri, 17 Aug 2018 19:10:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533039; bh=6flkeC8VwR0A6QppwkUCI0AsDYsAguhrxydU1eExRqk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bFvKNG1UBp4/e/uLf278mrDIYNZvMKBbFC9t4FpQctUk1MjuhCbsCbR61j+HoBDU2 klMzAJ0uyYx35pnR/P9AtJnRyjrpfgTL5LY3sEgCOa0h0hn7oMHUK6tTHhqtG5L36M J54G3fHDnwLWtM4dbf8MIca4YSxfi1dcM/X2aDVo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 25AD262586 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org From: Lina Iyer To: marc.zyngier@arm.com, bjorn.andersson@linaro.org, sboyd@kernel.org, evgreen@chromium.org, linus.walleij@linaro.org Cc: rplsssn@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, devicetree@vger.kernel.org, andy.gross@linaro.org, dianders@chromium.org, Lina Iyer Subject: [PATCH RESEND v1 3/5] drivers: pinctrl: qcom: sdm845: support GPIO wakeup from suspend Date: Fri, 17 Aug 2018 13:10:24 -0600 Message-Id: <20180817191026.32245-4-ilina@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180817191026.32245-1-ilina@codeaurora.org> References: <20180817191026.32245-1-ilina@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP --- drivers/pinctrl/qcom/pinctrl-sdm845.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/pinctrl/qcom/pinctrl-sdm845.c b/drivers/pinctrl/qcom/pinctrl-sdm845.c index 2ab7a8885757..cc333b8afb99 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdm845.c +++ b/drivers/pinctrl/qcom/pinctrl-sdm845.c @@ -1297,10 +1297,16 @@ static const struct of_device_id sdm845_pinctrl_of_match[] = { { }, }; +static const struct dev_pm_ops msm_pinctrl_dev_pm_ops = { + SET_LATE_SYSTEM_SLEEP_PM_OPS(msm_pinctrl_suspend_late, + msm_pinctrl_resume_late) +}; + static struct platform_driver sdm845_pinctrl_driver = { .driver = { .name = "sdm845-pinctrl", .of_match_table = sdm845_pinctrl_of_match, + .pm = &msm_pinctrl_dev_pm_ops, }, .probe = sdm845_pinctrl_probe, .remove = msm_pinctrl_remove, From patchwork Fri Aug 17 19:10:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lina Iyer X-Patchwork-Id: 10569303 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B740B1390 for ; Fri, 17 Aug 2018 19:12:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A8BC12BDB9 for ; Fri, 17 Aug 2018 19:12:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9CE222BE15; Fri, 17 Aug 2018 19:12:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 253642BDB9 for ; Fri, 17 Aug 2018 19:12:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728297AbeHQWQM (ORCPT ); Fri, 17 Aug 2018 18:16:12 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36764 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728214AbeHQWPP (ORCPT ); Fri, 17 Aug 2018 18:15:15 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 67A07625AA; Fri, 17 Aug 2018 19:10:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533041; bh=bQETiLhZqSKTJmg/844rsftxBCVPpj2SQb/j29Mvqxo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jjOgUmzz+ALzAMf9KdkqpLr8MCfs3g5jG+8M3FJ/vZDjEFOwMFOA1QVkOaSv7Qw4T ZpOSpR7PMyIx+wTMiFijJ/e5L33IQ7eYZDiEB7ZxK/Nc/ECJNkUMvfZalDJ+zapP6U 8iwj7hzqVwz8RrjXVCZidP0LFXPKWVysVI81y7Lw= Received: from codeaurora.org (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 67138625AA; Fri, 17 Aug 2018 19:10:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533040; bh=bQETiLhZqSKTJmg/844rsftxBCVPpj2SQb/j29Mvqxo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LH3zCQgVw9WchAZoQMytQMEsl5nAs5sadxvpyInqB81n55HznV3aZcW8FOxJnPR6F qNh0j+F7JZLZZ1L8cnXT6hvvnospLNOSGYTNxRO2nZxx9/U56uHr5ig1p4Y+WYkDDd vfAMI1MzSa9Z5gz010L/ayWwY5HLDtLxlydvq5bE= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 67138625AA Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org From: Lina Iyer To: marc.zyngier@arm.com, bjorn.andersson@linaro.org, sboyd@kernel.org, evgreen@chromium.org, linus.walleij@linaro.org Cc: rplsssn@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, devicetree@vger.kernel.org, andy.gross@linaro.org, dianders@chromium.org, Lina Iyer Subject: [PATCH RESEND v1 4/5] arm64: dts: qcom: add wake up interrupts for GPIOs for SDM845 Date: Fri, 17 Aug 2018 13:10:25 -0600 Message-Id: <20180817191026.32245-5-ilina@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180817191026.32245-1-ilina@codeaurora.org> References: <20180817191026.32245-1-ilina@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP GPIOs that are wakeup capable have interrupt lines that are routed to the always-on interrupt controller (PDC) in parallel to the pinctrl. The interrupts listed here are the wake up lines corresponding to GPIOs. Signed-off-by: Lina Iyer --- Changes in v1: - Use interrupt-extended for all TLMM interrupts - Define GPIO-PDC map using interrupt-names --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 57 +++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index 87ffc32dc597..2379684373d3 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -712,11 +712,66 @@ tlmm: pinctrl@3400000 { compatible = "qcom,sdm845-pinctrl"; reg = <0x03400000 0xc00000>; - interrupts = ; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; + interrupts-extended = <&intc GIC_SPI 208 0>, + <&pdc 510 0>, <&pdc 511 0>, <&pdc 512 0>, + <&pdc 513 0>, <&pdc 514 0>, <&pdc 515 0>, + <&pdc 516 0>, <&pdc 517 0>, <&pdc 518 0>, + <&pdc 519 0>, <&pdc 632 0>, <&pdc 639 0>, + <&pdc 521 0>, <&pdc 522 0>, <&pdc 523 0>, + <&pdc 524 0>, <&pdc 525 0>, <&pdc 526 0>, + <&pdc 527 0>, <&pdc 630 0>, <&pdc 637 0>, + <&pdc 529 0>, <&pdc 530 0>, <&pdc 531 0>, + <&pdc 532 0>, <&pdc 633 0>, <&pdc 640 0>, + <&pdc 534 0>, <&pdc 535 0>, <&pdc 536 0>, + <&pdc 537 0>, <&pdc 538 0>, <&pdc 539 0>, + <&pdc 540 0>, <&pdc 541 0>, <&pdc 542 0>, + <&pdc 543 0>, <&pdc 544 0>, <&pdc 545 0>, + <&pdc 546 0>, <&pdc 547 0>, <&pdc 548 0>, + <&pdc 549 0>, <&pdc 550 0>, <&pdc 551 0>, + <&pdc 552 0>, <&pdc 553 0>, <&pdc 554 0>, + <&pdc 555 0>, <&pdc 556 0>, <&pdc 557 0>, + <&pdc 631 0>, <&pdc 638 0>, <&pdc 559 0>, + <&pdc 560 0>, <&pdc 561 0>, <&pdc 562 0>, + <&pdc 563 0>, <&pdc 564 0>, <&pdc 565 0>, + <&pdc 566 0>, <&pdc 570 0>, <&pdc 571 0>, + <&pdc 572 0>, <&pdc 573 0>, <&pdc 609 0>, + <&pdc 610 0>, <&pdc 611 0>, <&pdc 612 0>, + <&pdc 613 0>, <&pdc 614 0>, <&pdc 615 0>, + <&pdc 617 0>, <&pdc 618 0>, <&pdc 619 0>, + <&pdc 620 0>, <&pdc 621 0>, <&pdc 622 0>, + <&pdc 623 0>; + interrupt-names = "summary-irq", + "gpio1", "gpio3", "gpio5", + "gpio10", "gpio11", "gpio20", + "gpio22", "gpio24", "gpio26", + "gpio30", "gpio31", "gpio31", + "gpio32", "gpio34", "gpio36", + "gpio37", "gpio38", "gpio39", + "gpio40", "gpio41", "gpio41", + "gpio43", "gpio44", "gpio46", + "gpio48", "gpio49", "gpio49", + "gpio52", "gpio53", "gpio54", + "gpio56", "gpio57", "gpio58", + "gpio59", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio66", "gpio68", "gpio71", + "gpio73", "gpio77", "gpio78", + "gpio79", "gpio80", "gpio84", + "gpio85", "gpio86", "gpio88", + "gpio89", "gpio89", "gpio91", + "gpio92", "gpio95", "gpio96", + "gpio97", "gpio101", "gpio103", + "gpio104", "gpio115", "gpio116", + "gpio117", "gpio118", "gpio119", + "gpio120", "gpio121", "gpio122", + "gpio123", "gpio124", "gpio125", + "gpio127", "gpio128", "gpio129", + "gpio130", "gpio132", "gpio133", + "gpio145"; qup_i2c0_default: qup-i2c0-default { pinmux { From patchwork Fri Aug 17 19:10:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lina Iyer X-Patchwork-Id: 10569305 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C77DC1390 for ; Fri, 17 Aug 2018 19:12:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B79D22BDB9 for ; Fri, 17 Aug 2018 19:12:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ABA592BE15; Fri, 17 Aug 2018 19:12:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4CEC52BDB9 for ; Fri, 17 Aug 2018 19:12:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728269AbeHQWQM (ORCPT ); Fri, 17 Aug 2018 18:16:12 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36804 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728216AbeHQWPP (ORCPT ); Fri, 17 Aug 2018 18:15:15 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 0E08C625B6; Fri, 17 Aug 2018 19:10:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533042; bh=A1m7dwJP0HaSMmBsNDShWpIcs+BVZ/gRO/YlBTgCbDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KIpjLjmi7wR9F3MZpiyDv+3K7R93Ogj4ezML9aS1afdMtTMj8o3vpG2MDzpRY1SVt EhzgkMsCyLwdn/TtuGpAGDI3qFq8X7CGgbBucjYn7WuBymVMogllEuoc23WuLGYDqZ oEa6RhiFcG6X51U2j3iH31HmthdECZXUtRQjGBIY= Received: from codeaurora.org (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: ilina@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id B3D8B62572; Fri, 17 Aug 2018 19:10:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1534533041; bh=A1m7dwJP0HaSMmBsNDShWpIcs+BVZ/gRO/YlBTgCbDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X19HZdfIbp0jq8yV3XQ2kmdRBE2XfXkJVG4DDKzGIDKsq3et6xJhoUjjU5f6KQqPa 6UxU2ZFHADtHvC9waAZYaOQDHkuSe27nA6G2QiJ7k4caH8iaad55cB7ldP/3IF6Yf+ JTMcTaluoEQh59fyMqGwuTEMiU65W3lp251jeqiU= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org B3D8B62572 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=ilina@codeaurora.org From: Lina Iyer To: marc.zyngier@arm.com, bjorn.andersson@linaro.org, sboyd@kernel.org, evgreen@chromium.org, linus.walleij@linaro.org Cc: rplsssn@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, rnayak@codeaurora.org, devicetree@vger.kernel.org, andy.gross@linaro.org, dianders@chromium.org Subject: [PATCH RESEND v1 5/5] irqchip/gic-v3: Allow interrupt to be configured as wake-up sources Date: Fri, 17 Aug 2018 13:10:26 -0600 Message-Id: <20180817191026.32245-6-ilina@codeaurora.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180817191026.32245-1-ilina@codeaurora.org> References: <20180817191026.32245-1-ilina@codeaurora.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Marc Zyngier Although GICv3 doesn't directly offers support for wake-up interrupts and relies on external HW for this, it shouldn't prevent the driver for such HW from doing it work. Let's set the required flags on the irq_chip structures. Reported-by: Lina Iyer Signed-off-by: Marc Zyngier --- drivers/irqchip/irq-gic-v3.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index 76ea56d779a1..2d71c79bc698 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -861,7 +861,9 @@ static struct irq_chip gic_chip = { .irq_set_affinity = gic_set_affinity, .irq_get_irqchip_state = gic_irq_get_irqchip_state, .irq_set_irqchip_state = gic_irq_set_irqchip_state, - .flags = IRQCHIP_SET_TYPE_MASKED, + .flags = IRQCHIP_SET_TYPE_MASKED | + IRQCHIP_SKIP_SET_WAKE | + IRQCHIP_MASK_ON_SUSPEND, }; static struct irq_chip gic_eoimode1_chip = { @@ -874,7 +876,9 @@ static struct irq_chip gic_eoimode1_chip = { .irq_get_irqchip_state = gic_irq_get_irqchip_state, .irq_set_irqchip_state = gic_irq_set_irqchip_state, .irq_set_vcpu_affinity = gic_irq_set_vcpu_affinity, - .flags = IRQCHIP_SET_TYPE_MASKED, + .flags = IRQCHIP_SET_TYPE_MASKED | + IRQCHIP_SKIP_SET_WAKE | + IRQCHIP_MASK_ON_SUSPEND, }; #define GIC_ID_NR (1U << gic_data.rdists.id_bits)