From: Sowjanya Komatineni <skomatineni@nvidia.com> To: thierry.reding@gmail.com, jonathanh@nvidia.com, tglx@linutronix.de, jason@lakedaemon.net, marc.zyngier@arm.com, linus.walleij@linaro.org, stefan@agner.ch, mark.rutland@arm.com Cc: pdeschrijver@nvidia.com, pgaikwad@nvidia.com, sboyd@kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, jckuo@nvidia.com, josephl@nvidia.com, talho@nvidia.com, skomatineni@nvidia.com, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, mperttunen@nvidia.com, spatra@nvidia.com, robh+dt@kernel.org, digetx@gmail.com, devicetree@vger.kernel.org Subject: [PATCH v7 00/20] SC7 entry and exit support for Tegra210 Date: Tue, 30 Jul 2019 17:20:04 -0700 [thread overview] Message-ID: <1564532424-10449-1-git-send-email-skomatineni@nvidia.com> (raw) This patch series includes Tegra210 deepsleep (SC7) support with RTC alarm wake event. This series also includes save and restore of PLLs, clocks, OSC contexts for deepsleep exit to normal operation. This patch series doesn't support 100% suspend/resume to allow fully functional state upon resume and we are working on some more drivers suspend and resume implementations. [V7]: Changes between V6 & V7 are - V6 feedback fixes - Removed patch-0001 from V6 which keeps COP IRQ enabled. Looking more into ATF FW, it loads SC7 entry FW into IRAM and sets the COP reset vector to SC7 FW load address and resets COP. So, COP IRQ can be cleared during suspend. Note: Below patch is also needed for SC7 support as GPIO restore need to happen prior to pinctrl. https://patchwork.kernel.org/patch/11012077/ [V6]: Changes between V5 & V6 are - V5 feedback fixes - DFLL suspend and resume moved to DFLL clock driver - Add suspend and resume support for CPUFreq driver to explicitly switch source to safe source of PLLP and disable DFLL clock. - Fix to super clock driver to enable PLLP branch to CPU before source switch to PLLP. - Added save and restore support for super clock driver. [V5]: Changes between V4 & V5 are - V4 feedback fixes [V4]: Changes between V3 & V4 are - V3 feedback fixes - Removed park bits clear for EMMC pads in pinctrl-tegra driver function tegra_pinctrl_clear_parked_bits as based on V3 feedback parked_bit is updated to parked_bitmask to use with DRV_PINGROUP as well and thierry posted patch series for this. - Implemented all peripheral clocks save and restore through their corresponding clk_ops save_context and restore_context and removed all direct registers store and restore in clk-tegra210 driver. - Created separate patch for fence_delay update during PLLU init based on V3 feedback. - Added more comments in tegra210_clk_resume regarding dfll restore sequence and its dependency on peripheral clocks restore. [V3]: Changes between V2 & V3 are - V2 feedback fixes - GPIO restore should happen prior to Pinctrl restore to prevent glitch on GPIO lines. So using resume_noirq for gpio tegra to allow gpio resume prior to pinctrl resume. - Implemented save_context and restore_context callbacks for clock plls, pll outs and dividers in corresponding drivers. Note: Peripheral clocks and clock enable and reset need to be in Tegra210 clock suspend/resume as they need to be in proper sequence w.r.t DFLL resume for restoring CPU clock. - Removed gpio-tegra changes for hierarchical support to have PMC as parent to GPIOs for GPIO wake event support. Thierry is working on gpiolib for some cleanup before adding hierarchical support. So holding on to GPIO wake support for now. [V2] : V1 feedback fixes Patch 0002: This version still using syscore. Thierry suggest not to use syscore and waiting on suggestion from Linux Walleij for any better way of storing current state of pins before suspend entry and restoring them on resume at very early stage. So left this the same way as V1 and will address once I get more feedback on this. Also need to findout and implement proper way of forcing resume order between pinctrl and gpio driver. [V1]: Tegra210 SC7 entry and exit thru RTC wake and Power button GPIO wake using hierarchical IRQ with PMC as parent to GPIO. Sowjanya Komatineni (20): pinctrl: tegra: Add suspend and resume support pinctrl: tegra210: Add Tegra210 pinctrl pm ops clk: tegra: divider: Save and restore divider rate clk: tegra: pllout: Save and restore pllout context clk: tegra: pll: Save and restore pll context clk: tegra: Support for OSC context save and restore clk: tegra: clk-periph: Add save and restore support clk: tegra: clk-super: Fix to enable PLLP branches to CPU clk: tegra: clk-super: Add save and restore support clk: tegra: clk-dfll: Add suspend and resume support cpufreq: tegra124: Add suspend and resume support clk: tegra210: Use fence_udelay during PLLU init clk: tegra210: Add suspend and resume support soc/tegra: pmc: Allow to support more tegras wake soc/tegra: pmc: Add pmc wake support for tegra210 arm64: tegra: Enable wake from deep sleep on RTC alarm soc/tegra: pmc: Configure core power request polarity soc/tegra: pmc: Configure deep sleep control settings arm64: dts: tegra210-p2180: Jetson TX1 SC7 timings arm64: dts: tegra210-p3450: Jetson Nano SC7 timings arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 7 ++ arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 7 ++ arch/arm64/boot/dts/nvidia/tegra210.dtsi | 5 +- drivers/clk/tegra/clk-dfll.c | 56 +++++++++ drivers/clk/tegra/clk-dfll.h | 2 + drivers/clk/tegra/clk-divider.c | 11 ++ drivers/clk/tegra/clk-periph-fixed.c | 33 ++++++ drivers/clk/tegra/clk-periph-gate.c | 34 ++++++ drivers/clk/tegra/clk-periph.c | 37 ++++++ drivers/clk/tegra/clk-pll-out.c | 26 +++++ drivers/clk/tegra/clk-pll.c | 112 +++++++++++++----- drivers/clk/tegra/clk-sdmmc-mux.c | 28 +++++ drivers/clk/tegra/clk-super.c | 53 +++++++++ drivers/clk/tegra/clk-tegra-fixed.c | 15 +++ drivers/clk/tegra/clk-tegra-super-gen4.c | 2 +- drivers/clk/tegra/clk-tegra124-dfll-fcpu.c | 1 + drivers/clk/tegra/clk-tegra210.c | 86 ++++++++++++-- drivers/clk/tegra/clk.c | 14 +++ drivers/clk/tegra/clk.h | 26 +++++ drivers/cpufreq/tegra124-cpufreq.c | 60 ++++++++++ drivers/pinctrl/tegra/pinctrl-tegra.c | 59 ++++++++++ drivers/pinctrl/tegra/pinctrl-tegra.h | 3 + drivers/pinctrl/tegra/pinctrl-tegra210.c | 1 + drivers/soc/tegra/pmc.c | 129 ++++++++++++++++++++- 24 files changed, 759 insertions(+), 48 deletions(-) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Sowjanya Komatineni <skomatineni@nvidia.com> To: <thierry.reding@gmail.com>, <jonathanh@nvidia.com>, <tglx@linutronix.de>, <jason@lakedaemon.net>, <marc.zyngier@arm.com>, <linus.walleij@linaro.org>, <stefan@agner.ch>, <mark.rutland@arm.com> Cc: <pdeschrijver@nvidia.com>, <pgaikwad@nvidia.com>, <sboyd@kernel.org>, <linux-clk@vger.kernel.org>, <linux-gpio@vger.kernel.org>, <jckuo@nvidia.com>, <josephl@nvidia.com>, <talho@nvidia.com>, <skomatineni@nvidia.com>, <linux-tegra@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <mperttunen@nvidia.com>, <spatra@nvidia.com>, <robh+dt@kernel.org>, <digetx@gmail.com>, <devicetree@vger.kernel.org> Subject: [PATCH v7 00/20] SC7 entry and exit support for Tegra210 Date: Tue, 30 Jul 2019 17:20:04 -0700 [thread overview] Message-ID: <1564532424-10449-1-git-send-email-skomatineni@nvidia.com> (raw) This patch series includes Tegra210 deepsleep (SC7) support with RTC alarm wake event. This series also includes save and restore of PLLs, clocks, OSC contexts for deepsleep exit to normal operation. This patch series doesn't support 100% suspend/resume to allow fully functional state upon resume and we are working on some more drivers suspend and resume implementations. [V7]: Changes between V6 & V7 are - V6 feedback fixes - Removed patch-0001 from V6 which keeps COP IRQ enabled. Looking more into ATF FW, it loads SC7 entry FW into IRAM and sets the COP reset vector to SC7 FW load address and resets COP. So, COP IRQ can be cleared during suspend. Note: Below patch is also needed for SC7 support as GPIO restore need to happen prior to pinctrl. https://patchwork.kernel.org/patch/11012077/ [V6]: Changes between V5 & V6 are - V5 feedback fixes - DFLL suspend and resume moved to DFLL clock driver - Add suspend and resume support for CPUFreq driver to explicitly switch source to safe source of PLLP and disable DFLL clock. - Fix to super clock driver to enable PLLP branch to CPU before source switch to PLLP. - Added save and restore support for super clock driver. [V5]: Changes between V4 & V5 are - V4 feedback fixes [V4]: Changes between V3 & V4 are - V3 feedback fixes - Removed park bits clear for EMMC pads in pinctrl-tegra driver function tegra_pinctrl_clear_parked_bits as based on V3 feedback parked_bit is updated to parked_bitmask to use with DRV_PINGROUP as well and thierry posted patch series for this. - Implemented all peripheral clocks save and restore through their corresponding clk_ops save_context and restore_context and removed all direct registers store and restore in clk-tegra210 driver. - Created separate patch for fence_delay update during PLLU init based on V3 feedback. - Added more comments in tegra210_clk_resume regarding dfll restore sequence and its dependency on peripheral clocks restore. [V3]: Changes between V2 & V3 are - V2 feedback fixes - GPIO restore should happen prior to Pinctrl restore to prevent glitch on GPIO lines. So using resume_noirq for gpio tegra to allow gpio resume prior to pinctrl resume. - Implemented save_context and restore_context callbacks for clock plls, pll outs and dividers in corresponding drivers. Note: Peripheral clocks and clock enable and reset need to be in Tegra210 clock suspend/resume as they need to be in proper sequence w.r.t DFLL resume for restoring CPU clock. - Removed gpio-tegra changes for hierarchical support to have PMC as parent to GPIOs for GPIO wake event support. Thierry is working on gpiolib for some cleanup before adding hierarchical support. So holding on to GPIO wake support for now. [V2] : V1 feedback fixes Patch 0002: This version still using syscore. Thierry suggest not to use syscore and waiting on suggestion from Linux Walleij for any better way of storing current state of pins before suspend entry and restoring them on resume at very early stage. So left this the same way as V1 and will address once I get more feedback on this. Also need to findout and implement proper way of forcing resume order between pinctrl and gpio driver. [V1]: Tegra210 SC7 entry and exit thru RTC wake and Power button GPIO wake using hierarchical IRQ with PMC as parent to GPIO. Sowjanya Komatineni (20): pinctrl: tegra: Add suspend and resume support pinctrl: tegra210: Add Tegra210 pinctrl pm ops clk: tegra: divider: Save and restore divider rate clk: tegra: pllout: Save and restore pllout context clk: tegra: pll: Save and restore pll context clk: tegra: Support for OSC context save and restore clk: tegra: clk-periph: Add save and restore support clk: tegra: clk-super: Fix to enable PLLP branches to CPU clk: tegra: clk-super: Add save and restore support clk: tegra: clk-dfll: Add suspend and resume support cpufreq: tegra124: Add suspend and resume support clk: tegra210: Use fence_udelay during PLLU init clk: tegra210: Add suspend and resume support soc/tegra: pmc: Allow to support more tegras wake soc/tegra: pmc: Add pmc wake support for tegra210 arm64: tegra: Enable wake from deep sleep on RTC alarm soc/tegra: pmc: Configure core power request polarity soc/tegra: pmc: Configure deep sleep control settings arm64: dts: tegra210-p2180: Jetson TX1 SC7 timings arm64: dts: tegra210-p3450: Jetson Nano SC7 timings arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 7 ++ arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 7 ++ arch/arm64/boot/dts/nvidia/tegra210.dtsi | 5 +- drivers/clk/tegra/clk-dfll.c | 56 +++++++++ drivers/clk/tegra/clk-dfll.h | 2 + drivers/clk/tegra/clk-divider.c | 11 ++ drivers/clk/tegra/clk-periph-fixed.c | 33 ++++++ drivers/clk/tegra/clk-periph-gate.c | 34 ++++++ drivers/clk/tegra/clk-periph.c | 37 ++++++ drivers/clk/tegra/clk-pll-out.c | 26 +++++ drivers/clk/tegra/clk-pll.c | 112 +++++++++++++----- drivers/clk/tegra/clk-sdmmc-mux.c | 28 +++++ drivers/clk/tegra/clk-super.c | 53 +++++++++ drivers/clk/tegra/clk-tegra-fixed.c | 15 +++ drivers/clk/tegra/clk-tegra-super-gen4.c | 2 +- drivers/clk/tegra/clk-tegra124-dfll-fcpu.c | 1 + drivers/clk/tegra/clk-tegra210.c | 86 ++++++++++++-- drivers/clk/tegra/clk.c | 14 +++ drivers/clk/tegra/clk.h | 26 +++++ drivers/cpufreq/tegra124-cpufreq.c | 60 ++++++++++ drivers/pinctrl/tegra/pinctrl-tegra.c | 59 ++++++++++ drivers/pinctrl/tegra/pinctrl-tegra.h | 3 + drivers/pinctrl/tegra/pinctrl-tegra210.c | 1 + drivers/soc/tegra/pmc.c | 129 ++++++++++++++++++++- 24 files changed, 759 insertions(+), 48 deletions(-) -- 2.7.4
next reply other threads:[~2019-07-31 0:20 UTC|newest] Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-31 0:20 Sowjanya Komatineni [this message] 2019-07-31 0:20 ` [PATCH v7 00/20] SC7 entry and exit support for Tegra210 Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 01/20] pinctrl: tegra: Add suspend and resume support Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 02/20] pinctrl: tegra210: Add Tegra210 pinctrl pm ops Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 03/20] clk: tegra: divider: Save and restore divider rate Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 10:49 ` Dmitry Osipenko 2019-07-31 0:20 ` [PATCH v7 04/20] clk: tegra: pllout: Save and restore pllout context Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 05/20] clk: tegra: pll: Save and restore pll context Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 06/20] clk: tegra: Support for OSC context save and restore Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 11:11 ` Dmitry Osipenko 2019-07-31 21:04 ` Sowjanya Komatineni 2019-07-31 21:04 ` Sowjanya Komatineni 2019-08-01 10:53 ` Dmitry Osipenko 2019-08-01 18:06 ` Sowjanya Komatineni 2019-08-01 18:06 ` Sowjanya Komatineni 2019-08-01 18:42 ` Dmitry Osipenko 2019-07-31 0:20 ` [PATCH v7 07/20] clk: tegra: clk-periph: Add save and restore support Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 9:50 ` Dmitry Osipenko 2019-07-31 10:44 ` Dmitry Osipenko 2019-07-31 23:09 ` Sowjanya Komatineni 2019-07-31 23:09 ` Sowjanya Komatineni 2019-08-01 17:58 ` Sowjanya Komatineni 2019-08-01 17:58 ` Sowjanya Komatineni 2019-08-01 19:00 ` Dmitry Osipenko 2019-08-01 19:42 ` Sowjanya Komatineni 2019-08-01 19:42 ` Sowjanya Komatineni 2019-08-01 20:17 ` Dmitry Osipenko 2019-08-01 20:31 ` Sowjanya Komatineni 2019-08-01 20:31 ` Sowjanya Komatineni 2019-08-01 20:54 ` Dmitry Osipenko 2019-08-01 21:30 ` Sowjanya Komatineni 2019-08-01 21:30 ` Sowjanya Komatineni 2019-08-01 23:19 ` Sowjanya Komatineni 2019-08-01 23:19 ` Sowjanya Komatineni 2019-08-01 23:49 ` Sowjanya Komatineni 2019-08-01 23:49 ` Sowjanya Komatineni 2019-08-02 12:38 ` Dmitry Osipenko 2019-08-02 18:33 ` Sowjanya Komatineni 2019-08-02 18:33 ` Sowjanya Komatineni 2019-08-02 20:13 ` Dmitry Osipenko 2019-08-02 20:17 ` Dmitry Osipenko 2019-08-02 20:32 ` Sowjanya Komatineni 2019-08-02 20:32 ` Sowjanya Komatineni 2019-08-02 21:15 ` Dmitry Osipenko 2019-08-02 21:18 ` Sowjanya Komatineni 2019-08-02 21:18 ` Sowjanya Komatineni 2019-08-02 23:51 ` Sowjanya Komatineni 2019-08-02 23:51 ` Sowjanya Komatineni 2019-08-03 10:33 ` Dmitry Osipenko 2019-08-03 17:01 ` Sowjanya Komatineni 2019-08-03 17:01 ` Sowjanya Komatineni 2019-08-03 23:44 ` Sowjanya Komatineni 2019-08-03 23:44 ` Sowjanya Komatineni 2019-08-04 12:24 ` Dmitry Osipenko 2019-08-04 12:31 ` Dmitry Osipenko 2019-08-02 12:32 ` Dmitry Osipenko 2019-08-02 18:43 ` Sowjanya Komatineni 2019-08-02 18:43 ` Sowjanya Komatineni 2019-08-02 20:20 ` Dmitry Osipenko 2019-08-02 20:37 ` Sowjanya Komatineni 2019-08-02 20:37 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 08/20] clk: tegra: clk-super: Fix to enable PLLP branches to CPU Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 10:14 ` Dmitry Osipenko 2019-07-31 0:20 ` [PATCH v7 09/20] clk: tegra: clk-super: Add save and restore support Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 10/20] clk: tegra: clk-dfll: Add suspend and resume support Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 10:12 ` Dmitry Osipenko 2019-07-31 0:20 ` [PATCH v7 11/20] cpufreq: tegra124: " Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 10:23 ` Dmitry Osipenko 2019-07-31 11:14 ` Dmitry Osipenko 2019-07-31 21:05 ` Sowjanya Komatineni 2019-07-31 21:05 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 12/20] clk: tegra210: Use fence_udelay during PLLU init Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 13/20] clk: tegra210: Add suspend and resume support Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 14/20] soc/tegra: pmc: Allow to support more tegras wake Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 15/20] soc/tegra: pmc: Add pmc wake support for tegra210 Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 16/20] arm64: tegra: Enable wake from deep sleep on RTC alarm Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 11:04 ` Dmitry Osipenko 2019-07-31 21:08 ` Sowjanya Komatineni 2019-07-31 21:08 ` Sowjanya Komatineni 2019-08-01 10:43 ` Dmitry Osipenko 2019-08-01 17:56 ` Sowjanya Komatineni 2019-08-01 17:56 ` Sowjanya Komatineni 2019-08-01 18:39 ` Dmitry Osipenko 2019-07-31 0:20 ` [PATCH v7 17/20] soc/tegra: pmc: Configure core power request polarity Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 18/20] soc/tegra: pmc: Configure deep sleep control settings Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 19/20] arm64: dts: tegra210-p2180: Jetson TX1 SC7 timings Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 0:20 ` [PATCH v7 20/20] arm64: dts: tegra210-p3450: Jetson Nano " Sowjanya Komatineni 2019-07-31 0:20 ` Sowjanya Komatineni 2019-07-31 21:10 [PATCH v7 00/20] SC7 entry and exit support for Tegra210 Sowjanya Komatineni 2019-07-31 21:10 ` Sowjanya Komatineni
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1564532424-10449-1-git-send-email-skomatineni@nvidia.com \ --to=skomatineni@nvidia.com \ --cc=devicetree@vger.kernel.org \ --cc=digetx@gmail.com \ --cc=jason@lakedaemon.net \ --cc=jckuo@nvidia.com \ --cc=jonathanh@nvidia.com \ --cc=josephl@nvidia.com \ --cc=linus.walleij@linaro.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=mark.rutland@arm.com \ --cc=mperttunen@nvidia.com \ --cc=pdeschrijver@nvidia.com \ --cc=pgaikwad@nvidia.com \ --cc=robh+dt@kernel.org \ --cc=sboyd@kernel.org \ --cc=spatra@nvidia.com \ --cc=stefan@agner.ch \ --cc=talho@nvidia.com \ --cc=tglx@linutronix.de \ --cc=thierry.reding@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.