linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms
@ 2017-01-09 19:43 Suman Anna
  2017-01-09 19:43 ` [PATCH 1/5] ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER Suman Anna
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna

Hi Santosh,

This patch adds the reset controller nodes and the corresponding
reset data for TI Keystone 66AK2H, 66AK2L and 66AK2E SoCs. These
resets are for the DSPs on these SoCs, and are the last dependencies
before the keystone remoteproc driver can be added.

All these SoCs will use the ti-syscon-reset driver which is already
part of mainline kernel. The bindings for the same can be found in
Documentation/devicetree/bindings/reset/ti-syscon-reset.txt file.
Note that the other Keystone 66AK2G SoC will use a different TI-SCI
based reset driver, so will be submitted separately once the TI-SCI
dependencies make it into mainline.

Patches are based on top of 4.10-rc1 plus the MSM-RAM DT node series
that you have already picked up. Patch 1 enable the Reset Framework
for Keystone platforms, and remaining patches add the required DT
nodes.

regards
Suman


Suman Anna (5):
  ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER
  ARM: dts: keystone: Add PSC node
  ARM: dts: keystone-k2hk: Add PSC reset controller node
  ARM: dts: keystone-k2l: Add PSC reset controller node
  ARM: dts: keystone-k2e: Add PSC reset controller node

 arch/arm/boot/dts/keystone-k2e.dtsi  | 13 +++++++++++++
 arch/arm/boot/dts/keystone-k2hk.dtsi | 20 ++++++++++++++++++++
 arch/arm/boot/dts/keystone-k2l.dtsi  | 16 ++++++++++++++++
 arch/arm/boot/dts/keystone.dtsi      |  5 +++++
 arch/arm/mach-keystone/Kconfig       |  1 +
 5 files changed, 55 insertions(+)

-- 
2.10.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
@ 2017-01-09 19:43 ` Suman Anna
  2017-01-09 19:43 ` [PATCH 2/5] ARM: dts: keystone: Add PSC node Suman Anna
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna,
	Nishanth Menon

The Keystone 2 family of SoCs will use various Reset Controller
drivers for managing the resets of remote processor devices like
DSPs on the SoC, so select the ARCH_HAS_RESET_CONTROLLER option
by default to enable the Reset framework.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
---
 arch/arm/mach-keystone/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
index 24bd64dabdfc..554357035f30 100644
--- a/arch/arm/mach-keystone/Kconfig
+++ b/arch/arm/mach-keystone/Kconfig
@@ -4,6 +4,7 @@ config ARCH_KEYSTONE
 	select ARM_GIC
 	select HAVE_ARM_ARCH_TIMER
 	select KEYSTONE_TIMER
+	select ARCH_HAS_RESET_CONTROLLER
 	select ARM_ERRATA_798181 if SMP
 	select COMMON_CLK_KEYSTONE
 	select ARCH_SUPPORTS_BIG_ENDIAN
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/5] ARM: dts: keystone: Add PSC node
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
  2017-01-09 19:43 ` [PATCH 1/5] ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER Suman Anna
@ 2017-01-09 19:43 ` Suman Anna
  2017-01-09 19:43 ` [PATCH 3/5] ARM: dts: keystone-k2hk: Add PSC reset controller node Suman Anna
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna, Dave Gerlach

The Power Sleep Controller (PSC) module is responsible
for the power and clock management for each of the peripherals
present on the SoC. Represent this as a syscon node so that
multiple users can leverage it for various functionalities.

Signed-off-by: Suman Anna <s-anna@ti.com>
[afd@ti.com: add simple-mfd compatible]
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
---
 arch/arm/boot/dts/keystone.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
index 02708ba2d4f4..ec203d0a673d 100644
--- a/arch/arm/boot/dts/keystone.dtsi
+++ b/arch/arm/boot/dts/keystone.dtsi
@@ -83,6 +83,11 @@
 			reg = <0x02310000 0x200>;
 		};
 
+		psc: power-sleep-controller@02350000 {
+			compatible = "syscon", "simple-mfd";
+			reg = <0x02350000 0x1000>;
+		};
+
 		devctrl: device-state-control@02620000 {
 			compatible = "ti,keystone-devctrl", "syscon";
 			reg = <0x02620000 0x1000>;
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/5] ARM: dts: keystone-k2hk: Add PSC reset controller node
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
  2017-01-09 19:43 ` [PATCH 1/5] ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER Suman Anna
  2017-01-09 19:43 ` [PATCH 2/5] ARM: dts: keystone: Add PSC node Suman Anna
@ 2017-01-09 19:43 ` Suman Anna
  2017-01-09 19:43 ` [PATCH 4/5] ARM: dts: keystone-k2l: " Suman Anna
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna

The Power Sleep Controller (PSC) module contains specific
memory-mapped registers that can be used to perform reset
management using specific bits for the DSPs available on the
SoC. The PSC is defined using a syscon node, and the reset
functionality is defined using a child syscon reset controller
node.

Add this syscon reset controller node as well as the reset
control data for the resets it supports for the 66AK2H SoCs.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/keystone-k2hk.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/boot/dts/keystone-k2hk.dtsi b/arch/arm/boot/dts/keystone-k2hk.dtsi
index e0780f111537..a833db72fc61 100644
--- a/arch/arm/boot/dts/keystone-k2hk.dtsi
+++ b/arch/arm/boot/dts/keystone-k2hk.dtsi
@@ -8,6 +8,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/reset/ti-syscon.h>
+
 / {
 	compatible = "ti,k2hk", "ti,keystone";
 	model = "Texas Instruments Keystone 2 Kepler/Hawking SoC";
@@ -58,6 +60,24 @@
 			};
 		};
 
+		psc: power-sleep-controller@02350000 {
+			pscrst: psc-reset-controller {
+				compatible = "ti,k2hk-pscrst", "ti,syscon-reset";
+				#reset-cells = <1>;
+
+				ti,reset-bits = <
+					0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
+					0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
+					0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
+					0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
+					0xa4c 8 0xa4c 8 0x84c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 4: dsp4 */
+					0xa50 8 0xa50 8 0x850 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 5: dsp5 */
+					0xa54 8 0xa54 8 0x854 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 6: dsp6 */
+					0xa58 8 0xa58 8 0x858 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 7: dsp7 */
+				>;
+			};
+		};
+
 		dspgpio0: keystone_dsp_gpio@02620240 {
 			compatible = "ti,keystone-dsp-gpio";
 			gpio-controller;
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/5] ARM: dts: keystone-k2l: Add PSC reset controller node
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
                   ` (2 preceding siblings ...)
  2017-01-09 19:43 ` [PATCH 3/5] ARM: dts: keystone-k2hk: Add PSC reset controller node Suman Anna
@ 2017-01-09 19:43 ` Suman Anna
  2017-01-09 19:43 ` [PATCH 5/5] ARM: dts: keystone-k2e: " Suman Anna
  2017-01-09 20:08 ` [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Santosh Shilimkar
  5 siblings, 0 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna

The Power Sleep Controller (PSC) module contains specific
memory-mapped registers that can be used to perform reset
management using specific bits for the DSPs available on the
SoC. The PSC is defined using a syscon node, and the reset
functionality is defined using a child syscon reset controller
node.

Add this syscon reset controller node as well as the reset
control data for the resets it supports for the 66AK2L SoCs.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/keystone-k2l.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/boot/dts/keystone-k2l.dtsi b/arch/arm/boot/dts/keystone-k2l.dtsi
index b58015737a35..4fa368f9ba52 100644
--- a/arch/arm/boot/dts/keystone-k2l.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l.dtsi
@@ -8,6 +8,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/reset/ti-syscon.h>
+
 / {
 	compatible = "ti,k2l", "ti,keystone";
 	model = "Texas Instruments Keystone 2 Lamarr SoC";
@@ -216,6 +218,20 @@
 			};
 		};
 
+		psc: power-sleep-controller@02350000 {
+			pscrst: psc-reset-controller {
+				compatible = "ti,k2l-pscrst", "ti,syscon-reset";
+				#reset-cells = <1>;
+
+				ti,reset-bits = <
+					0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
+					0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
+					0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
+					0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
+				>;
+			};
+		};
+
 		dspgpio0: keystone_dsp_gpio@02620240 {
 			compatible = "ti,keystone-dsp-gpio";
 			gpio-controller;
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/5] ARM: dts: keystone-k2e: Add PSC reset controller node
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
                   ` (3 preceding siblings ...)
  2017-01-09 19:43 ` [PATCH 4/5] ARM: dts: keystone-k2l: " Suman Anna
@ 2017-01-09 19:43 ` Suman Anna
  2017-01-09 20:08 ` [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Santosh Shilimkar
  5 siblings, 0 replies; 7+ messages in thread
From: Suman Anna @ 2017-01-09 19:43 UTC (permalink / raw)
  To: Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis, Suman Anna

The Power Sleep Controller (PSC) module contains specific
memory-mapped registers that can be used to perform reset
management using specific bits for the DSPs available on the
SoC. The PSC is defined using a syscon node, and the reset
functionality is defined using a child syscon reset controller
node.

Add this syscon reset controller node as well as the reset
control data for the resets it supports for the 66AK2E SoCs.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/keystone-k2e.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/keystone-k2e.dtsi b/arch/arm/boot/dts/keystone-k2e.dtsi
index 9d1d8a64d10e..c5983418c42c 100644
--- a/arch/arm/boot/dts/keystone-k2e.dtsi
+++ b/arch/arm/boot/dts/keystone-k2e.dtsi
@@ -8,6 +8,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <dt-bindings/reset/ti-syscon.h>
+
 / {
 	compatible = "ti,k2e", "ti,keystone";
 	model = "Texas Instruments Keystone 2 Edison SoC";
@@ -94,6 +96,17 @@
 			};
 		};
 
+		psc: power-sleep-controller@02350000 {
+			pscrst: psc-reset-controller {
+				compatible = "ti,k2e-pscrst", "ti,syscon-reset";
+				#reset-cells = <1>;
+
+				ti,reset-bits = <
+					0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
+				>;
+			};
+		};
+
 		dspgpio0: keystone_dsp_gpio@02620240 {
 			compatible = "ti,keystone-dsp-gpio";
 			gpio-controller;
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms
  2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
                   ` (4 preceding siblings ...)
  2017-01-09 19:43 ` [PATCH 5/5] ARM: dts: keystone-k2e: " Suman Anna
@ 2017-01-09 20:08 ` Santosh Shilimkar
  5 siblings, 0 replies; 7+ messages in thread
From: Santosh Shilimkar @ 2017-01-09 20:08 UTC (permalink / raw)
  To: Suman Anna, Santosh Shilimkar
  Cc: Philipp Zabel, Rob Herring, Russell King, linux-arm-kernel,
	devicetree, linux-kernel, Andrew Davis

On 1/9/2017 11:43 AM, Suman Anna wrote:
> Hi Santosh,
>
> This patch adds the reset controller nodes and the corresponding
> reset data for TI Keystone 66AK2H, 66AK2L and 66AK2E SoCs. These
> resets are for the DSPs on these SoCs, and are the last dependencies
> before the keystone remoteproc driver can be added.
>
> All these SoCs will use the ti-syscon-reset driver which is already
> part of mainline kernel. The bindings for the same can be found in
> Documentation/devicetree/bindings/reset/ti-syscon-reset.txt file.
> Note that the other Keystone 66AK2G SoC will use a different TI-SCI
> based reset driver, so will be submitted separately once the TI-SCI
> dependencies make it into mainline.
>
> Patches are based on top of 4.10-rc1 plus the MSM-RAM DT node series
> that you have already picked up. Patch 1 enable the Reset Framework
> for Keystone platforms, and remaining patches add the required DT
> nodes.
>
Ok. I will let this series be on list for a week or so for any
comments. After that will pick this up and push it out to next.

Regards,
Santosh

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-01-09 20:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-09 19:43 [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Suman Anna
2017-01-09 19:43 ` [PATCH 1/5] ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER Suman Anna
2017-01-09 19:43 ` [PATCH 2/5] ARM: dts: keystone: Add PSC node Suman Anna
2017-01-09 19:43 ` [PATCH 3/5] ARM: dts: keystone-k2hk: Add PSC reset controller node Suman Anna
2017-01-09 19:43 ` [PATCH 4/5] ARM: dts: keystone-k2l: " Suman Anna
2017-01-09 19:43 ` [PATCH 5/5] ARM: dts: keystone-k2e: " Suman Anna
2017-01-09 20:08 ` [PATCH 0/5] Reset Controller Nodes for TI Keystone platforms Santosh Shilimkar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).