All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] OMAP: Add DT bindings to specify when devices should not be idled or reset
@ 2013-10-09 10:11 ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

Changes in v2:
* Patches are split in such a way that DT and hwmod changes are kept in
seperate patches so they can be pulled in by Benoit and Paul seperately.
* Binding names are slightly updated to address the concern from Tony and Benoit [1]
* Added a patch [5/5] to prevent GPIO reset on AM335x EVM-SK board, which
was also the original motivation of this series since the board fails to
boot from mainline despite support for AM335x and a am335x-evmsk.dts file
existing in mainline for quite a while.

We have devices like co-processors, SoC internal busses, memory controllers
etc which should not be idled or reset. In some cases erratas around IP blocks
prevent them from either being idled or reset. Have a way to pass this
information from Device tree, and get rid of similar information that
exists as part of the omap_hwmod data files for various DT only OMAP SoCs.

Boot tested on OMAP4 panda es, AM335x EVM and AM335x EVM-SK

[1] http://www.mail-archive.com/linux-omap@vger.kernel.org/msg94349.html

Rajendra Nayak (5):
  ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
  ARM: dts: omap: Add new bindings for OMAP
  ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
  ARM: OMAP2+: hwmod: Cleanup usage of HWMOD_INIT_NO_RESET and
    HWMOD_INIT_NO_IDLE
  ARM: dts: AM335x-evmsk: Do not reset gpio0

 .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
 arch/arm/boot/dts/am335x-evmsk.dts                 |    4 ++++
 arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
 arch/arm/boot/dts/omap4.dtsi                       |    3 +++
 arch/arm/boot/dts/omap5.dtsi                       |    2 ++
 arch/arm/mach-omap2/omap_hwmod.c                   |   23 ++++++++++++++------
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c         |   22 +++++++++----------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    6 ++---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c         |    4 +---
 9 files changed, 43 insertions(+), 26 deletions(-)

-- 
1.7.9.5


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

* [PATCH v2 0/5] OMAP: Add DT bindings to specify when devices should not be idled or reset
@ 2013-10-09 10:11 ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: linux-arm-kernel

Changes in v2:
* Patches are split in such a way that DT and hwmod changes are kept in
seperate patches so they can be pulled in by Benoit and Paul seperately.
* Binding names are slightly updated to address the concern from Tony and Benoit [1]
* Added a patch [5/5] to prevent GPIO reset on AM335x EVM-SK board, which
was also the original motivation of this series since the board fails to
boot from mainline despite support for AM335x and a am335x-evmsk.dts file
existing in mainline for quite a while.

We have devices like co-processors, SoC internal busses, memory controllers
etc which should not be idled or reset. In some cases erratas around IP blocks
prevent them from either being idled or reset. Have a way to pass this
information from Device tree, and get rid of similar information that
exists as part of the omap_hwmod data files for various DT only OMAP SoCs.

Boot tested on OMAP4 panda es, AM335x EVM and AM335x EVM-SK

[1] http://www.mail-archive.com/linux-omap at vger.kernel.org/msg94349.html

Rajendra Nayak (5):
  ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
  ARM: dts: omap: Add new bindings for OMAP
  ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
  ARM: OMAP2+: hwmod: Cleanup usage of HWMOD_INIT_NO_RESET and
    HWMOD_INIT_NO_IDLE
  ARM: dts: AM335x-evmsk: Do not reset gpio0

 .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
 arch/arm/boot/dts/am335x-evmsk.dts                 |    4 ++++
 arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
 arch/arm/boot/dts/omap4.dtsi                       |    3 +++
 arch/arm/boot/dts/omap5.dtsi                       |    2 ++
 arch/arm/mach-omap2/omap_hwmod.c                   |   23 ++++++++++++++------
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c         |   22 +++++++++----------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    6 ++---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c         |    4 +---
 9 files changed, 43 insertions(+), 26 deletions(-)

-- 
1.7.9.5

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

* [PATCH v2 1/5] ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
  2013-10-09 10:11 ` Rajendra Nayak
@ 2013-10-09 10:11   ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

For modules/IPs/hwmods which do not have
-1- sys->class->reset()
and
-2- hardreset lines
and
-3- No way to do an ocp reset (no sysc control)
the flag 'HWMOD_INIT_NO_RESET' is not much useful.

Cleanup all such instances across various hwmod data files.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c |   18 +++++++++---------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    6 +++---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c |    6 +++---
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 215894f..2815a91 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -52,7 +52,7 @@ static struct omap_hwmod am33xx_emif_hwmod = {
 	.name		= "emif",
 	.class		= &am33xx_emif_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_ddr_m2_div2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -74,7 +74,7 @@ static struct omap_hwmod am33xx_l3_main_hwmod = {
 	.name		= "l3_main",
 	.class		= &am33xx_l3_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -96,7 +96,7 @@ static struct omap_hwmod am33xx_l3_instr_hwmod = {
 	.name		= "l3_instr",
 	.class		= &am33xx_l3_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -119,7 +119,7 @@ static struct omap_hwmod am33xx_l4_ls_hwmod = {
 	.name		= "l4_ls",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4ls_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l4ls_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -134,7 +134,7 @@ static struct omap_hwmod am33xx_l4_hs_hwmod = {
 	.name		= "l4_hs",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4hs_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l4hs_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -150,7 +150,7 @@ static struct omap_hwmod am33xx_l4_wkup_hwmod = {
 	.name		= "l4_wkup",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4_wkup_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.prcm		= {
 		.omap4	= {
 			.clkctrl_offs	= AM33XX_CM_WKUP_L4WKUP_CLKCTRL_OFFSET,
@@ -170,7 +170,7 @@ static struct omap_hwmod am33xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &am33xx_mpu_hwmod_class,
 	.clkdm_name	= "mpu_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -450,7 +450,7 @@ static struct omap_hwmod am33xx_ocmcram_hwmod = {
 	.name		= "ocmcram",
 	.class		= &am33xx_ocmcram_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -532,7 +532,7 @@ static struct omap_hwmod am33xx_control_hwmod = {
 	.name		= "control",
 	.class		= &am33xx_control_hwmod_class,
 	.clkdm_name	= "l4_wkup_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_m4_div2_ck",
 	.prcm		= {
 		.omap4	= {
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 9c3b504..1e5b12c 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -914,7 +914,7 @@ static struct omap_hwmod omap44xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -930,7 +930,7 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -2193,7 +2193,7 @@ static struct omap_hwmod omap44xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &omap44xx_mpu_hwmod_class,
 	.clkdm_name	= "mpuss_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm = {
 		.omap4 = {
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index cde4155..e3caee1 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -352,7 +352,7 @@ static struct omap_hwmod omap54xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -368,7 +368,7 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -1135,7 +1135,7 @@ static struct omap_hwmod omap54xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &omap54xx_mpu_hwmod_class,
 	.clkdm_name	= "mpu_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm = {
 		.omap4 = {
-- 
1.7.9.5


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

* [PATCH v2 1/5] ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
@ 2013-10-09 10:11   ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: linux-arm-kernel

For modules/IPs/hwmods which do not have
-1- sys->class->reset()
and
-2- hardreset lines
and
-3- No way to do an ocp reset (no sysc control)
the flag 'HWMOD_INIT_NO_RESET' is not much useful.

Cleanup all such instances across various hwmod data files.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c |   18 +++++++++---------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    6 +++---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c |    6 +++---
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 215894f..2815a91 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -52,7 +52,7 @@ static struct omap_hwmod am33xx_emif_hwmod = {
 	.name		= "emif",
 	.class		= &am33xx_emif_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_ddr_m2_div2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -74,7 +74,7 @@ static struct omap_hwmod am33xx_l3_main_hwmod = {
 	.name		= "l3_main",
 	.class		= &am33xx_l3_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -96,7 +96,7 @@ static struct omap_hwmod am33xx_l3_instr_hwmod = {
 	.name		= "l3_instr",
 	.class		= &am33xx_l3_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -119,7 +119,7 @@ static struct omap_hwmod am33xx_l4_ls_hwmod = {
 	.name		= "l4_ls",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4ls_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l4ls_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -134,7 +134,7 @@ static struct omap_hwmod am33xx_l4_hs_hwmod = {
 	.name		= "l4_hs",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4hs_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l4hs_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -150,7 +150,7 @@ static struct omap_hwmod am33xx_l4_wkup_hwmod = {
 	.name		= "l4_wkup",
 	.class		= &am33xx_l4_hwmod_class,
 	.clkdm_name	= "l4_wkup_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.prcm		= {
 		.omap4	= {
 			.clkctrl_offs	= AM33XX_CM_WKUP_L4WKUP_CLKCTRL_OFFSET,
@@ -170,7 +170,7 @@ static struct omap_hwmod am33xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &am33xx_mpu_hwmod_class,
 	.clkdm_name	= "mpu_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -450,7 +450,7 @@ static struct omap_hwmod am33xx_ocmcram_hwmod = {
 	.name		= "ocmcram",
 	.class		= &am33xx_ocmcram_hwmod_class,
 	.clkdm_name	= "l3_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "l3_gclk",
 	.prcm		= {
 		.omap4	= {
@@ -532,7 +532,7 @@ static struct omap_hwmod am33xx_control_hwmod = {
 	.name		= "control",
 	.class		= &am33xx_control_hwmod_class,
 	.clkdm_name	= "l4_wkup_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_m4_div2_ck",
 	.prcm		= {
 		.omap4	= {
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 9c3b504..1e5b12c 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -914,7 +914,7 @@ static struct omap_hwmod omap44xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -930,7 +930,7 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -2193,7 +2193,7 @@ static struct omap_hwmod omap44xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &omap44xx_mpu_hwmod_class,
 	.clkdm_name	= "mpuss_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm = {
 		.omap4 = {
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index cde4155..e3caee1 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -352,7 +352,7 @@ static struct omap_hwmod omap54xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -368,7 +368,7 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -1135,7 +1135,7 @@ static struct omap_hwmod omap54xx_mpu_hwmod = {
 	.name		= "mpu",
 	.class		= &omap54xx_mpu_hwmod_class,
 	.clkdm_name	= "mpu_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_mpu_m2_ck",
 	.prcm = {
 		.omap4 = {
-- 
1.7.9.5

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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-09 10:11 ` Rajendra Nayak
@ 2013-10-09 10:11   ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

On OMAP we have co-processor IPs, memory controllers,
GPIOs which control regulators and power switches to
PMIC, and SoC internal Bus IPs, some or most of which
should either not be reset or idled or both at init.
(In some cases there are erratas which prevent an IP
from being reset)
Have a way to pass this information from DT.

Update the am33xx/omap4 and omap5 dtsi files with the
new bindings for modules which either should not be
idled. reset or both. A later patch would cleanup the
same information that exists today as part of the hwmod
data files.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
 arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
 arch/arm/boot/dts/omap4.dtsi                       |    3 +++
 arch/arm/boot/dts/omap5.dtsi                       |    2 ++
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 91b7049..808c154 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -21,7 +21,8 @@ Required properties:
 Optional properties:
 - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
   during suspend.
-
+- ti,no-reset-on-init: When present, the module should not be reset at init
+- ti,no-idle-on-init: When present, the module should not be idled at init
 
 Example:
 
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index f9c5da9..ec33ea0 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -607,6 +607,7 @@
 			reg = <0x44d00000 0x4000	/* M3 UMEM */
 			       0x44d80000 0x2000>;	/* M3 DMEM */
 			ti,hwmods = "wkup_m3";
+			ti,no-reset-on-init;
 		};
 
 		elm: elm@48080000 {
@@ -637,6 +638,7 @@
 		gpmc: gpmc@50000000 {
 			compatible = "ti,am3352-gpmc";
 			ti,hwmods = "gpmc";
+			ti,no-idle-on-init;
 			reg = <0x50000000 0x2000>;
 			interrupts = <100>;
 			gpmc,num-cs = <7>;
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 22d9f2b..e8fe797 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -214,6 +214,7 @@
 			gpmc,num-cs = <8>;
 			gpmc,num-waitpins = <4>;
 			ti,hwmods = "gpmc";
+			ti,no-idle-on-init;
 		};
 
 		uart1: serial@4806a000 {
@@ -492,6 +493,7 @@
 			reg = <0x4c000000 0x100>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "emif1";
+			ti,no-idle-on-init;
 			phy-type = <1>;
 			hw-caps-read-idle-ctrl;
 			hw-caps-ll-interface;
@@ -503,6 +505,7 @@
 			reg = <0x4d000000 0x100>;
 			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "emif2";
+			ti,no-idle-on-init;
 			phy-type = <1>;
 			hw-caps-read-idle-ctrl;
 			hw-caps-ll-interface;
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 7cdea1b..a9d49df 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -607,6 +607,7 @@
 		emif1: emif@0x4c000000 {
 			compatible	= "ti,emif-4d5";
 			ti,hwmods	= "emif1";
+			ti,no-idle-on-init;
 			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
 			reg = <0x4c000000 0x400>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -618,6 +619,7 @@
 		emif2: emif@0x4d000000 {
 			compatible	= "ti,emif-4d5";
 			ti,hwmods	= "emif2";
+			ti,no-idle-on-init;
 			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
 			reg = <0x4d000000 0x400>;
 			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-- 
1.7.9.5


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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-09 10:11   ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: linux-arm-kernel

On OMAP we have co-processor IPs, memory controllers,
GPIOs which control regulators and power switches to
PMIC, and SoC internal Bus IPs, some or most of which
should either not be reset or idled or both at init.
(In some cases there are erratas which prevent an IP
from being reset)
Have a way to pass this information from DT.

Update the am33xx/omap4 and omap5 dtsi files with the
new bindings for modules which either should not be
idled. reset or both. A later patch would cleanup the
same information that exists today as part of the hwmod
data files.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
 arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
 arch/arm/boot/dts/omap4.dtsi                       |    3 +++
 arch/arm/boot/dts/omap5.dtsi                       |    2 ++
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 91b7049..808c154 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -21,7 +21,8 @@ Required properties:
 Optional properties:
 - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
   during suspend.
-
+- ti,no-reset-on-init: When present, the module should not be reset at init
+- ti,no-idle-on-init: When present, the module should not be idled at init
 
 Example:
 
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index f9c5da9..ec33ea0 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -607,6 +607,7 @@
 			reg = <0x44d00000 0x4000	/* M3 UMEM */
 			       0x44d80000 0x2000>;	/* M3 DMEM */
 			ti,hwmods = "wkup_m3";
+			ti,no-reset-on-init;
 		};
 
 		elm: elm at 48080000 {
@@ -637,6 +638,7 @@
 		gpmc: gpmc at 50000000 {
 			compatible = "ti,am3352-gpmc";
 			ti,hwmods = "gpmc";
+			ti,no-idle-on-init;
 			reg = <0x50000000 0x2000>;
 			interrupts = <100>;
 			gpmc,num-cs = <7>;
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 22d9f2b..e8fe797 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -214,6 +214,7 @@
 			gpmc,num-cs = <8>;
 			gpmc,num-waitpins = <4>;
 			ti,hwmods = "gpmc";
+			ti,no-idle-on-init;
 		};
 
 		uart1: serial at 4806a000 {
@@ -492,6 +493,7 @@
 			reg = <0x4c000000 0x100>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "emif1";
+			ti,no-idle-on-init;
 			phy-type = <1>;
 			hw-caps-read-idle-ctrl;
 			hw-caps-ll-interface;
@@ -503,6 +505,7 @@
 			reg = <0x4d000000 0x100>;
 			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
 			ti,hwmods = "emif2";
+			ti,no-idle-on-init;
 			phy-type = <1>;
 			hw-caps-read-idle-ctrl;
 			hw-caps-ll-interface;
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 7cdea1b..a9d49df 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -607,6 +607,7 @@
 		emif1: emif at 0x4c000000 {
 			compatible	= "ti,emif-4d5";
 			ti,hwmods	= "emif1";
+			ti,no-idle-on-init;
 			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
 			reg = <0x4c000000 0x400>;
 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -618,6 +619,7 @@
 		emif2: emif at 0x4d000000 {
 			compatible	= "ti,emif-4d5";
 			ti,hwmods	= "emif2";
+			ti,no-idle-on-init;
 			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
 			reg = <0x4d000000 0x400>;
 			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-- 
1.7.9.5

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

* [PATCH v2 3/5] ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
  2013-10-09 10:11 ` Rajendra Nayak
@ 2013-10-09 10:11   ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

Now that we have DT bindings to specify which devices should not
be reset and idled during init, make hwmod extract the information
(and store them in internal flags) from Device tree.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index d9ee0ff..b55923a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2363,11 +2363,11 @@ static struct device_node *of_dev_hwmod_lookup(struct device_node *np,
  * are part of the device's address space can be ioremapped properly.
  * No return value.
  */
-static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
+static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
+				     struct device_node *np)
 {
 	struct omap_hwmod_addr_space *mem;
 	void __iomem *va_start = NULL;
-	struct device_node *np;
 
 	if (!oh)
 		return;
@@ -2383,12 +2383,10 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
 			 oh->name);
 
 		/* Extract the IO space from device tree blob */
-		if (!of_have_populated_dt())
+		if (!np)
 			return;
 
-		np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
-		if (np)
-			va_start = of_iomap(np, oh->mpu_rt_idx);
+		va_start = of_iomap(np, oh->mpu_rt_idx);
 	} else {
 		va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
 	}
@@ -2420,12 +2418,16 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
 static int __init _init(struct omap_hwmod *oh, void *data)
 {
 	int r;
+	struct device_node *np = NULL;
 
 	if (oh->_state != _HWMOD_STATE_REGISTERED)
 		return 0;
 
+	if (of_have_populated_dt())
+		np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
+
 	if (oh->class->sysc)
-		_init_mpu_rt_base(oh, NULL);
+		_init_mpu_rt_base(oh, NULL, np);
 
 	r = _init_clocks(oh, NULL);
 	if (r < 0) {
@@ -2433,6 +2435,13 @@ static int __init _init(struct omap_hwmod *oh, void *data)
 		return -EINVAL;
 	}
 
+	if (np) {
+		if (of_find_property(np, "ti,no-reset-on-init", NULL))
+			oh->flags |= HWMOD_INIT_NO_RESET;
+		if (of_find_property(np, "ti,no-idle-on-init", NULL))
+			oh->flags |= HWMOD_INIT_NO_IDLE;
+	}
+
 	oh->_state = _HWMOD_STATE_INITIALIZED;
 
 	return 0;
-- 
1.7.9.5


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

* [PATCH v2 3/5] ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
@ 2013-10-09 10:11   ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:11 UTC (permalink / raw)
  To: linux-arm-kernel

Now that we have DT bindings to specify which devices should not
be reset and idled during init, make hwmod extract the information
(and store them in internal flags) from Device tree.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index d9ee0ff..b55923a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2363,11 +2363,11 @@ static struct device_node *of_dev_hwmod_lookup(struct device_node *np,
  * are part of the device's address space can be ioremapped properly.
  * No return value.
  */
-static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
+static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
+				     struct device_node *np)
 {
 	struct omap_hwmod_addr_space *mem;
 	void __iomem *va_start = NULL;
-	struct device_node *np;
 
 	if (!oh)
 		return;
@@ -2383,12 +2383,10 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
 			 oh->name);
 
 		/* Extract the IO space from device tree blob */
-		if (!of_have_populated_dt())
+		if (!np)
 			return;
 
-		np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
-		if (np)
-			va_start = of_iomap(np, oh->mpu_rt_idx);
+		va_start = of_iomap(np, oh->mpu_rt_idx);
 	} else {
 		va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
 	}
@@ -2420,12 +2418,16 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
 static int __init _init(struct omap_hwmod *oh, void *data)
 {
 	int r;
+	struct device_node *np = NULL;
 
 	if (oh->_state != _HWMOD_STATE_REGISTERED)
 		return 0;
 
+	if (of_have_populated_dt())
+		np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
+
 	if (oh->class->sysc)
-		_init_mpu_rt_base(oh, NULL);
+		_init_mpu_rt_base(oh, NULL, np);
 
 	r = _init_clocks(oh, NULL);
 	if (r < 0) {
@@ -2433,6 +2435,13 @@ static int __init _init(struct omap_hwmod *oh, void *data)
 		return -EINVAL;
 	}
 
+	if (np) {
+		if (of_find_property(np, "ti,no-reset-on-init", NULL))
+			oh->flags |= HWMOD_INIT_NO_RESET;
+		if (of_find_property(np, "ti,no-idle-on-init", NULL))
+			oh->flags |= HWMOD_INIT_NO_IDLE;
+	}
+
 	oh->_state = _HWMOD_STATE_INITIALIZED;
 
 	return 0;
-- 
1.7.9.5

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

* [PATCH v2 4/5] ARM: OMAP2+: hwmod: Cleanup usage of HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE
  2013-10-09 10:11 ` Rajendra Nayak
@ 2013-10-09 10:12   ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:12 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

With DT bindings to specify which devices should not be idled and reset
at init being in place, and the corresponding dtsi files for am33xx/omap4
and omap5 updated using those bindings, we can now clean up hwmod internal
flags for HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE which were infact used
to specify the exact same information.

For GPMC, the HWMOD_INIT_NO_RESET flag seems to be added in hwmod not due to
any errata around the GPMC IP, but rather because any timings
set by the bootloader are not being correctly programmed by the kernel.
This seems like something that needs to be fixed as part of GPMC driver
in the kernel, and hence the flag is left as is in hwmod, which can be
removed once the driver does what its expected to.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c |    4 ++--
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    4 +---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c |    2 --
 3 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 2815a91..e8dc72d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -198,7 +198,7 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
 	.class		= &am33xx_wkup_m3_hwmod_class,
 	.clkdm_name	= "l4_wkup_aon_clkdm",
 	/* Keep hardreset asserted */
-	.flags		= HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST,
+	.flags		= HWMOD_NO_IDLEST,
 	.main_clk	= "dpll_core_m4_div2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -932,7 +932,7 @@ static struct omap_hwmod am33xx_gpmc_hwmod = {
 	.name		= "gpmc",
 	.class		= &am33xx_gpmc_hwmod_class,
 	.clkdm_name	= "l3s_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_RESET,
 	.main_clk	= "l3s_gclk",
 	.prcm		= {
 		.omap4	= {
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 1e5b12c..a507a70 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -914,7 +914,6 @@ static struct omap_hwmod omap44xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -930,7 +929,6 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -1184,7 +1182,7 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = {
 	 * the kernel from the board file or DT data.
 	 * HWMOD_INIT_NO_RESET should be removed ASAP.
 	 */
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_RESET,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET,
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index e3caee1..e47f24d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -352,7 +352,6 @@ static struct omap_hwmod omap54xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -368,7 +367,6 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
-- 
1.7.9.5


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

* [PATCH v2 4/5] ARM: OMAP2+: hwmod: Cleanup usage of HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE
@ 2013-10-09 10:12   ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:12 UTC (permalink / raw)
  To: linux-arm-kernel

With DT bindings to specify which devices should not be idled and reset
at init being in place, and the corresponding dtsi files for am33xx/omap4
and omap5 updated using those bindings, we can now clean up hwmod internal
flags for HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE which were infact used
to specify the exact same information.

For GPMC, the HWMOD_INIT_NO_RESET flag seems to be added in hwmod not due to
any errata around the GPMC IP, but rather because any timings
set by the bootloader are not being correctly programmed by the kernel.
This seems like something that needs to be fixed as part of GPMC driver
in the kernel, and hence the flag is left as is in hwmod, which can be
removed once the driver does what its expected to.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_33xx_data.c |    4 ++--
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    4 +---
 arch/arm/mach-omap2/omap_hwmod_54xx_data.c |    2 --
 3 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
index 2815a91..e8dc72d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
@@ -198,7 +198,7 @@ static struct omap_hwmod am33xx_wkup_m3_hwmod = {
 	.class		= &am33xx_wkup_m3_hwmod_class,
 	.clkdm_name	= "l4_wkup_aon_clkdm",
 	/* Keep hardreset asserted */
-	.flags		= HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST,
+	.flags		= HWMOD_NO_IDLEST,
 	.main_clk	= "dpll_core_m4_div2_ck",
 	.prcm		= {
 		.omap4	= {
@@ -932,7 +932,7 @@ static struct omap_hwmod am33xx_gpmc_hwmod = {
 	.name		= "gpmc",
 	.class		= &am33xx_gpmc_hwmod_class,
 	.clkdm_name	= "l3s_clkdm",
-	.flags		= (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
+	.flags		= HWMOD_INIT_NO_RESET,
 	.main_clk	= "l3s_gclk",
 	.prcm		= {
 		.omap4	= {
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 1e5b12c..a507a70 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -914,7 +914,6 @@ static struct omap_hwmod omap44xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -930,7 +929,6 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap44xx_emif_hwmod_class,
 	.clkdm_name	= "l3_emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "ddrphy_ck",
 	.prcm = {
 		.omap4 = {
@@ -1184,7 +1182,7 @@ static struct omap_hwmod omap44xx_gpmc_hwmod = {
 	 * the kernel from the board file or DT data.
 	 * HWMOD_INIT_NO_RESET should be removed ASAP.
 	 */
-	.flags		= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET,
+	.flags		= HWMOD_INIT_NO_RESET,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET,
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index e3caee1..e47f24d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -352,7 +352,6 @@ static struct omap_hwmod omap54xx_emif1_hwmod = {
 	.name		= "emif1",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
@@ -368,7 +367,6 @@ static struct omap_hwmod omap54xx_emif2_hwmod = {
 	.name		= "emif2",
 	.class		= &omap54xx_emif_hwmod_class,
 	.clkdm_name	= "emif_clkdm",
-	.flags		= HWMOD_INIT_NO_IDLE,
 	.main_clk	= "dpll_core_h11x2_ck",
 	.prcm = {
 		.omap4 = {
-- 
1.7.9.5

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

* [PATCH v2 5/5] ARM: dts: AM335x-evmsk: Do not reset gpio0
  2013-10-09 10:11 ` Rajendra Nayak
@ 2013-10-09 10:12   ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:12 UTC (permalink / raw)
  To: bcousson, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc, Rajendra Nayak

Do not reset GPIO0 at  boot-up because GPIO0 is used
on AM335x EVM-SK to control VTT regulators on DDR3.

Without this EVM-SK boards fail to boot-up because
of DDR3 corruption.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/boot/dts/am335x-evmsk.dts |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 4f339fa..0e44d29 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -419,3 +419,7 @@
 	phy_id = <&davinci_mdio>, <1>;
 	phy-mode = "rgmii-txid";
 };
+
+&gpio0 {
+	ti,no-reset-on-init;
+};
-- 
1.7.9.5


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

* [PATCH v2 5/5] ARM: dts: AM335x-evmsk: Do not reset gpio0
@ 2013-10-09 10:12   ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 10:12 UTC (permalink / raw)
  To: linux-arm-kernel

Do not reset GPIO0 at  boot-up because GPIO0 is used
on AM335x EVM-SK to control VTT regulators on DDR3.

Without this EVM-SK boards fail to boot-up because
of DDR3 corruption.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
---
 arch/arm/boot/dts/am335x-evmsk.dts |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 4f339fa..0e44d29 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -419,3 +419,7 @@
 	phy_id = <&davinci_mdio>, <1>;
 	phy-mode = "rgmii-txid";
 };
+
+&gpio0 {
+	ti,no-reset-on-init;
+};
-- 
1.7.9.5

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

* Re: [PATCH v2 1/5] ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
  2013-10-09 10:11   ` Rajendra Nayak
@ 2013-10-09 14:55     ` Paul Walmsley
  -1 siblings, 0 replies; 36+ messages in thread
From: Paul Walmsley @ 2013-10-09 14:55 UTC (permalink / raw)
  To: Rajendra Nayak
  Cc: bcousson, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc

On Wed, 9 Oct 2013, Rajendra Nayak wrote:

> For modules/IPs/hwmods which do not have
> -1- sys->class->reset()
> and
> -2- hardreset lines
> and
> -3- No way to do an ocp reset (no sysc control)
> the flag 'HWMOD_INIT_NO_RESET' is not much useful.
> 
> Cleanup all such instances across various hwmod data files.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>

Thanks, queued.


- Paul

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

* [PATCH v2 1/5] ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage
@ 2013-10-09 14:55     ` Paul Walmsley
  0 siblings, 0 replies; 36+ messages in thread
From: Paul Walmsley @ 2013-10-09 14:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Oct 2013, Rajendra Nayak wrote:

> For modules/IPs/hwmods which do not have
> -1- sys->class->reset()
> and
> -2- hardreset lines
> and
> -3- No way to do an ocp reset (no sysc control)
> the flag 'HWMOD_INIT_NO_RESET' is not much useful.
> 
> Cleanup all such instances across various hwmod data files.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>

Thanks, queued.


- Paul

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

* Re: [PATCH v2 3/5] ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
  2013-10-09 10:11   ` Rajendra Nayak
@ 2013-10-09 14:55     ` Paul Walmsley
  -1 siblings, 0 replies; 36+ messages in thread
From: Paul Walmsley @ 2013-10-09 14:55 UTC (permalink / raw)
  To: Rajendra Nayak
  Cc: bcousson, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc

On Wed, 9 Oct 2013, Rajendra Nayak wrote:

> Now that we have DT bindings to specify which devices should not
> be reset and idled during init, make hwmod extract the information
> (and store them in internal flags) from Device tree.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>

Thanks, queued.

- Paul

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

* [PATCH v2 3/5] ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
@ 2013-10-09 14:55     ` Paul Walmsley
  0 siblings, 0 replies; 36+ messages in thread
From: Paul Walmsley @ 2013-10-09 14:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Oct 2013, Rajendra Nayak wrote:

> Now that we have DT bindings to specify which devices should not
> be reset and idled during init, make hwmod extract the information
> (and store them in internal flags) from Device tree.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>

Thanks, queued.

- Paul

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

* Re: [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-09 10:11   ` Rajendra Nayak
@ 2013-10-09 15:13     ` Benoit Cousson
  -1 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-09 15:13 UTC (permalink / raw)
  To: Rajendra Nayak, paul, tony
  Cc: linux-omap, linux-arm-kernel, devicetree, linux-doc

Hi Rajendra,

On 09/10/2013 12:11, Rajendra Nayak wrote:
> On OMAP we have co-processor IPs, memory controllers,
> GPIOs which control regulators and power switches to
> PMIC, and SoC internal Bus IPs, some or most of which
> should either not be reset or idled or both at init.
> (In some cases there are erratas which prevent an IP
> from being reset)
> Have a way to pass this information from DT.

Did you get some acked-by from the DT maintainers?
Every new bindings must be carefully reviewed now.

Regards,
Benoit

>
> Update the am33xx/omap4 and omap5 dtsi files with the
> new bindings for modules which either should not be
> idled. reset or both. A later patch would cleanup the
> same information that exists today as part of the hwmod
> data files.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> ---
>   .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>   arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>   arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>   arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>   4 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
> index 91b7049..808c154 100644
> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
> @@ -21,7 +21,8 @@ Required properties:
>   Optional properties:
>   - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>     during suspend.
> -
> +- ti,no-reset-on-init: When present, the module should not be reset at init
> +- ti,no-idle-on-init: When present, the module should not be idled at init
>
>   Example:
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index f9c5da9..ec33ea0 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -607,6 +607,7 @@
>   			reg = <0x44d00000 0x4000	/* M3 UMEM */
>   			       0x44d80000 0x2000>;	/* M3 DMEM */
>   			ti,hwmods = "wkup_m3";
> +			ti,no-reset-on-init;
>   		};
>
>   		elm: elm@48080000 {
> @@ -637,6 +638,7 @@
>   		gpmc: gpmc@50000000 {
>   			compatible = "ti,am3352-gpmc";
>   			ti,hwmods = "gpmc";
> +			ti,no-idle-on-init;
>   			reg = <0x50000000 0x2000>;
>   			interrupts = <100>;
>   			gpmc,num-cs = <7>;
> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
> index 22d9f2b..e8fe797 100644
> --- a/arch/arm/boot/dts/omap4.dtsi
> +++ b/arch/arm/boot/dts/omap4.dtsi
> @@ -214,6 +214,7 @@
>   			gpmc,num-cs = <8>;
>   			gpmc,num-waitpins = <4>;
>   			ti,hwmods = "gpmc";
> +			ti,no-idle-on-init;
>   		};
>
>   		uart1: serial@4806a000 {
> @@ -492,6 +493,7 @@
>   			reg = <0x4c000000 0x100>;
>   			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>   			ti,hwmods = "emif1";
> +			ti,no-idle-on-init;
>   			phy-type = <1>;
>   			hw-caps-read-idle-ctrl;
>   			hw-caps-ll-interface;
> @@ -503,6 +505,7 @@
>   			reg = <0x4d000000 0x100>;
>   			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>   			ti,hwmods = "emif2";
> +			ti,no-idle-on-init;
>   			phy-type = <1>;
>   			hw-caps-read-idle-ctrl;
>   			hw-caps-ll-interface;
> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
> index 7cdea1b..a9d49df 100644
> --- a/arch/arm/boot/dts/omap5.dtsi
> +++ b/arch/arm/boot/dts/omap5.dtsi
> @@ -607,6 +607,7 @@
>   		emif1: emif@0x4c000000 {
>   			compatible	= "ti,emif-4d5";
>   			ti,hwmods	= "emif1";
> +			ti,no-idle-on-init;
>   			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
>   			reg = <0x4c000000 0x400>;
>   			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
> @@ -618,6 +619,7 @@
>   		emif2: emif@0x4d000000 {
>   			compatible	= "ti,emif-4d5";
>   			ti,hwmods	= "emif2";
> +			ti,no-idle-on-init;
>   			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
>   			reg = <0x4d000000 0x400>;
>   			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>


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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-09 15:13     ` Benoit Cousson
  0 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-09 15:13 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Rajendra,

On 09/10/2013 12:11, Rajendra Nayak wrote:
> On OMAP we have co-processor IPs, memory controllers,
> GPIOs which control regulators and power switches to
> PMIC, and SoC internal Bus IPs, some or most of which
> should either not be reset or idled or both at init.
> (In some cases there are erratas which prevent an IP
> from being reset)
> Have a way to pass this information from DT.

Did you get some acked-by from the DT maintainers?
Every new bindings must be carefully reviewed now.

Regards,
Benoit

>
> Update the am33xx/omap4 and omap5 dtsi files with the
> new bindings for modules which either should not be
> idled. reset or both. A later patch would cleanup the
> same information that exists today as part of the hwmod
> data files.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> ---
>   .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>   arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>   arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>   arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>   4 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
> index 91b7049..808c154 100644
> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
> @@ -21,7 +21,8 @@ Required properties:
>   Optional properties:
>   - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>     during suspend.
> -
> +- ti,no-reset-on-init: When present, the module should not be reset at init
> +- ti,no-idle-on-init: When present, the module should not be idled at init
>
>   Example:
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index f9c5da9..ec33ea0 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -607,6 +607,7 @@
>   			reg = <0x44d00000 0x4000	/* M3 UMEM */
>   			       0x44d80000 0x2000>;	/* M3 DMEM */
>   			ti,hwmods = "wkup_m3";
> +			ti,no-reset-on-init;
>   		};
>
>   		elm: elm at 48080000 {
> @@ -637,6 +638,7 @@
>   		gpmc: gpmc at 50000000 {
>   			compatible = "ti,am3352-gpmc";
>   			ti,hwmods = "gpmc";
> +			ti,no-idle-on-init;
>   			reg = <0x50000000 0x2000>;
>   			interrupts = <100>;
>   			gpmc,num-cs = <7>;
> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
> index 22d9f2b..e8fe797 100644
> --- a/arch/arm/boot/dts/omap4.dtsi
> +++ b/arch/arm/boot/dts/omap4.dtsi
> @@ -214,6 +214,7 @@
>   			gpmc,num-cs = <8>;
>   			gpmc,num-waitpins = <4>;
>   			ti,hwmods = "gpmc";
> +			ti,no-idle-on-init;
>   		};
>
>   		uart1: serial at 4806a000 {
> @@ -492,6 +493,7 @@
>   			reg = <0x4c000000 0x100>;
>   			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>   			ti,hwmods = "emif1";
> +			ti,no-idle-on-init;
>   			phy-type = <1>;
>   			hw-caps-read-idle-ctrl;
>   			hw-caps-ll-interface;
> @@ -503,6 +505,7 @@
>   			reg = <0x4d000000 0x100>;
>   			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>   			ti,hwmods = "emif2";
> +			ti,no-idle-on-init;
>   			phy-type = <1>;
>   			hw-caps-read-idle-ctrl;
>   			hw-caps-ll-interface;
> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
> index 7cdea1b..a9d49df 100644
> --- a/arch/arm/boot/dts/omap5.dtsi
> +++ b/arch/arm/boot/dts/omap5.dtsi
> @@ -607,6 +607,7 @@
>   		emif1: emif at 0x4c000000 {
>   			compatible	= "ti,emif-4d5";
>   			ti,hwmods	= "emif1";
> +			ti,no-idle-on-init;
>   			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
>   			reg = <0x4c000000 0x400>;
>   			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
> @@ -618,6 +619,7 @@
>   		emif2: emif at 0x4d000000 {
>   			compatible	= "ti,emif-4d5";
>   			ti,hwmods	= "emif2";
> +			ti,no-idle-on-init;
>   			phy-type	= <2>; /* DDR PHY type: Intelli PHY */
>   			reg = <0x4d000000 0x400>;
>   			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>

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

* Re: [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-09 15:13     ` Benoit Cousson
@ 2013-10-09 16:41       ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 16:41 UTC (permalink / raw)
  To: Benoit Cousson
  Cc: paul, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc

On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
> Hi Rajendra,
> 
> On 09/10/2013 12:11, Rajendra Nayak wrote:
>> On OMAP we have co-processor IPs, memory controllers,
>> GPIOs which control regulators and power switches to
>> PMIC, and SoC internal Bus IPs, some or most of which
>> should either not be reset or idled or both at init.
>> (In some cases there are erratas which prevent an IP
>> from being reset)
>> Have a way to pass this information from DT.
> 
> Did you get some acked-by from the DT maintainers?
> Every new bindings must be carefully reviewed now.

Nope, I haven't. The patches are on the list for a couple
of months now.

> 
> Regards,
> Benoit
> 
>>
>> Update the am33xx/omap4 and omap5 dtsi files with the
>> new bindings for modules which either should not be
>> idled. reset or both. A later patch would cleanup the
>> same information that exists today as part of the hwmod
>> data files.
>>
>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>> ---
>>   .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>   arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>   arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>   arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>   4 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
>> index 91b7049..808c154 100644
>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>> @@ -21,7 +21,8 @@ Required properties:
>>   Optional properties:
>>   - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>>     during suspend.
>> -
>> +- ti,no-reset-on-init: When present, the module should not be reset at init
>> +- ti,no-idle-on-init: When present, the module should not be idled at init
>>
>>   Example:
>>
>> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
>> index f9c5da9..ec33ea0 100644
>> --- a/arch/arm/boot/dts/am33xx.dtsi
>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>> @@ -607,6 +607,7 @@
>>               reg = <0x44d00000 0x4000    /* M3 UMEM */
>>                      0x44d80000 0x2000>;    /* M3 DMEM */
>>               ti,hwmods = "wkup_m3";
>> +            ti,no-reset-on-init;
>>           };
>>
>>           elm: elm@48080000 {
>> @@ -637,6 +638,7 @@
>>           gpmc: gpmc@50000000 {
>>               compatible = "ti,am3352-gpmc";
>>               ti,hwmods = "gpmc";
>> +            ti,no-idle-on-init;
>>               reg = <0x50000000 0x2000>;
>>               interrupts = <100>;
>>               gpmc,num-cs = <7>;
>> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
>> index 22d9f2b..e8fe797 100644
>> --- a/arch/arm/boot/dts/omap4.dtsi
>> +++ b/arch/arm/boot/dts/omap4.dtsi
>> @@ -214,6 +214,7 @@
>>               gpmc,num-cs = <8>;
>>               gpmc,num-waitpins = <4>;
>>               ti,hwmods = "gpmc";
>> +            ti,no-idle-on-init;
>>           };
>>
>>           uart1: serial@4806a000 {
>> @@ -492,6 +493,7 @@
>>               reg = <0x4c000000 0x100>;
>>               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>               ti,hwmods = "emif1";
>> +            ti,no-idle-on-init;
>>               phy-type = <1>;
>>               hw-caps-read-idle-ctrl;
>>               hw-caps-ll-interface;
>> @@ -503,6 +505,7 @@
>>               reg = <0x4d000000 0x100>;
>>               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>               ti,hwmods = "emif2";
>> +            ti,no-idle-on-init;
>>               phy-type = <1>;
>>               hw-caps-read-idle-ctrl;
>>               hw-caps-ll-interface;
>> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
>> index 7cdea1b..a9d49df 100644
>> --- a/arch/arm/boot/dts/omap5.dtsi
>> +++ b/arch/arm/boot/dts/omap5.dtsi
>> @@ -607,6 +607,7 @@
>>           emif1: emif@0x4c000000 {
>>               compatible    = "ti,emif-4d5";
>>               ti,hwmods    = "emif1";
>> +            ti,no-idle-on-init;
>>               phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>               reg = <0x4c000000 0x400>;
>>               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>> @@ -618,6 +619,7 @@
>>           emif2: emif@0x4d000000 {
>>               compatible    = "ti,emif-4d5";
>>               ti,hwmods    = "emif2";
>> +            ti,no-idle-on-init;
>>               phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>               reg = <0x4d000000 0x400>;
>>               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>
> 


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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-09 16:41       ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-09 16:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
> Hi Rajendra,
> 
> On 09/10/2013 12:11, Rajendra Nayak wrote:
>> On OMAP we have co-processor IPs, memory controllers,
>> GPIOs which control regulators and power switches to
>> PMIC, and SoC internal Bus IPs, some or most of which
>> should either not be reset or idled or both at init.
>> (In some cases there are erratas which prevent an IP
>> from being reset)
>> Have a way to pass this information from DT.
> 
> Did you get some acked-by from the DT maintainers?
> Every new bindings must be carefully reviewed now.

Nope, I haven't. The patches are on the list for a couple
of months now.

> 
> Regards,
> Benoit
> 
>>
>> Update the am33xx/omap4 and omap5 dtsi files with the
>> new bindings for modules which either should not be
>> idled. reset or both. A later patch would cleanup the
>> same information that exists today as part of the hwmod
>> data files.
>>
>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>> ---
>>   .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>   arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>   arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>   arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>   4 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
>> index 91b7049..808c154 100644
>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>> @@ -21,7 +21,8 @@ Required properties:
>>   Optional properties:
>>   - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>>     during suspend.
>> -
>> +- ti,no-reset-on-init: When present, the module should not be reset at init
>> +- ti,no-idle-on-init: When present, the module should not be idled at init
>>
>>   Example:
>>
>> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
>> index f9c5da9..ec33ea0 100644
>> --- a/arch/arm/boot/dts/am33xx.dtsi
>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>> @@ -607,6 +607,7 @@
>>               reg = <0x44d00000 0x4000    /* M3 UMEM */
>>                      0x44d80000 0x2000>;    /* M3 DMEM */
>>               ti,hwmods = "wkup_m3";
>> +            ti,no-reset-on-init;
>>           };
>>
>>           elm: elm at 48080000 {
>> @@ -637,6 +638,7 @@
>>           gpmc: gpmc at 50000000 {
>>               compatible = "ti,am3352-gpmc";
>>               ti,hwmods = "gpmc";
>> +            ti,no-idle-on-init;
>>               reg = <0x50000000 0x2000>;
>>               interrupts = <100>;
>>               gpmc,num-cs = <7>;
>> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
>> index 22d9f2b..e8fe797 100644
>> --- a/arch/arm/boot/dts/omap4.dtsi
>> +++ b/arch/arm/boot/dts/omap4.dtsi
>> @@ -214,6 +214,7 @@
>>               gpmc,num-cs = <8>;
>>               gpmc,num-waitpins = <4>;
>>               ti,hwmods = "gpmc";
>> +            ti,no-idle-on-init;
>>           };
>>
>>           uart1: serial at 4806a000 {
>> @@ -492,6 +493,7 @@
>>               reg = <0x4c000000 0x100>;
>>               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>               ti,hwmods = "emif1";
>> +            ti,no-idle-on-init;
>>               phy-type = <1>;
>>               hw-caps-read-idle-ctrl;
>>               hw-caps-ll-interface;
>> @@ -503,6 +505,7 @@
>>               reg = <0x4d000000 0x100>;
>>               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>               ti,hwmods = "emif2";
>> +            ti,no-idle-on-init;
>>               phy-type = <1>;
>>               hw-caps-read-idle-ctrl;
>>               hw-caps-ll-interface;
>> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
>> index 7cdea1b..a9d49df 100644
>> --- a/arch/arm/boot/dts/omap5.dtsi
>> +++ b/arch/arm/boot/dts/omap5.dtsi
>> @@ -607,6 +607,7 @@
>>           emif1: emif at 0x4c000000 {
>>               compatible    = "ti,emif-4d5";
>>               ti,hwmods    = "emif1";
>> +            ti,no-idle-on-init;
>>               phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>               reg = <0x4c000000 0x400>;
>>               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>> @@ -618,6 +619,7 @@
>>           emif2: emif at 0x4d000000 {
>>               compatible    = "ti,emif-4d5";
>>               ti,hwmods    = "emif2";
>> +            ti,no-idle-on-init;
>>               phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>               reg = <0x4d000000 0x400>;
>>               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>
> 

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

* Re: [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-09 16:41       ` Rajendra Nayak
@ 2013-10-09 16:45         ` Benoit Cousson
  -1 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-09 16:45 UTC (permalink / raw)
  To: Rajendra Nayak
  Cc: paul, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc,
	Mark Rutland, rob.herring

+ A couple of DT maintainers

On 09/10/2013 18:41, Rajendra Nayak wrote:
> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>> Hi Rajendra,
>>
>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>> On OMAP we have co-processor IPs, memory controllers,
>>> GPIOs which control regulators and power switches to
>>> PMIC, and SoC internal Bus IPs, some or most of which
>>> should either not be reset or idled or both at init.
>>> (In some cases there are erratas which prevent an IP
>>> from being reset)
>>> Have a way to pass this information from DT.
>>
>> Did you get some acked-by from the DT maintainers?
>> Every new bindings must be carefully reviewed now.
>
> Nope, I haven't. The patches are on the list for a couple
> of months now.

Let's see if Mark and Rob are OK with that.

Thanks,
Benoit

>
>>
>> Regards,
>> Benoit
>>
>>>
>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>> new bindings for modules which either should not be
>>> idled. reset or both. A later patch would cleanup the
>>> same information that exists today as part of the hwmod
>>> data files.
>>>
>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>> ---
>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> index 91b7049..808c154 100644
>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> @@ -21,7 +21,8 @@ Required properties:
>>>    Optional properties:
>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>>>      during suspend.
>>> -
>>> +- ti,no-reset-on-init: When present, the module should not be reset at init
>>> +- ti,no-idle-on-init: When present, the module should not be idled at init
>>>
>>>    Example:
>>>
>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
>>> index f9c5da9..ec33ea0 100644
>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>> @@ -607,6 +607,7 @@
>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>                ti,hwmods = "wkup_m3";
>>> +            ti,no-reset-on-init;
>>>            };
>>>
>>>            elm: elm@48080000 {
>>> @@ -637,6 +638,7 @@
>>>            gpmc: gpmc@50000000 {
>>>                compatible = "ti,am3352-gpmc";
>>>                ti,hwmods = "gpmc";
>>> +            ti,no-idle-on-init;
>>>                reg = <0x50000000 0x2000>;
>>>                interrupts = <100>;
>>>                gpmc,num-cs = <7>;
>>> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
>>> index 22d9f2b..e8fe797 100644
>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>> @@ -214,6 +214,7 @@
>>>                gpmc,num-cs = <8>;
>>>                gpmc,num-waitpins = <4>;
>>>                ti,hwmods = "gpmc";
>>> +            ti,no-idle-on-init;
>>>            };
>>>
>>>            uart1: serial@4806a000 {
>>> @@ -492,6 +493,7 @@
>>>                reg = <0x4c000000 0x100>;
>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>                ti,hwmods = "emif1";
>>> +            ti,no-idle-on-init;
>>>                phy-type = <1>;
>>>                hw-caps-read-idle-ctrl;
>>>                hw-caps-ll-interface;
>>> @@ -503,6 +505,7 @@
>>>                reg = <0x4d000000 0x100>;
>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>                ti,hwmods = "emif2";
>>> +            ti,no-idle-on-init;
>>>                phy-type = <1>;
>>>                hw-caps-read-idle-ctrl;
>>>                hw-caps-ll-interface;
>>> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
>>> index 7cdea1b..a9d49df 100644
>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>> @@ -607,6 +607,7 @@
>>>            emif1: emif@0x4c000000 {
>>>                compatible    = "ti,emif-4d5";
>>>                ti,hwmods    = "emif1";
>>> +            ti,no-idle-on-init;
>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>                reg = <0x4c000000 0x400>;
>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>> @@ -618,6 +619,7 @@
>>>            emif2: emif@0x4d000000 {
>>>                compatible    = "ti,emif-4d5";
>>>                ti,hwmods    = "emif2";
>>> +            ti,no-idle-on-init;
>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>                reg = <0x4d000000 0x400>;
>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>
>>
>


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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-09 16:45         ` Benoit Cousson
  0 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-09 16:45 UTC (permalink / raw)
  To: linux-arm-kernel

+ A couple of DT maintainers

On 09/10/2013 18:41, Rajendra Nayak wrote:
> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>> Hi Rajendra,
>>
>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>> On OMAP we have co-processor IPs, memory controllers,
>>> GPIOs which control regulators and power switches to
>>> PMIC, and SoC internal Bus IPs, some or most of which
>>> should either not be reset or idled or both at init.
>>> (In some cases there are erratas which prevent an IP
>>> from being reset)
>>> Have a way to pass this information from DT.
>>
>> Did you get some acked-by from the DT maintainers?
>> Every new bindings must be carefully reviewed now.
>
> Nope, I haven't. The patches are on the list for a couple
> of months now.

Let's see if Mark and Rob are OK with that.

Thanks,
Benoit

>
>>
>> Regards,
>> Benoit
>>
>>>
>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>> new bindings for modules which either should not be
>>> idled. reset or both. A later patch would cleanup the
>>> same information that exists today as part of the hwmod
>>> data files.
>>>
>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>> ---
>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> index 91b7049..808c154 100644
>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>> @@ -21,7 +21,8 @@ Required properties:
>>>    Optional properties:
>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module
>>>      during suspend.
>>> -
>>> +- ti,no-reset-on-init: When present, the module should not be reset at init
>>> +- ti,no-idle-on-init: When present, the module should not be idled at init
>>>
>>>    Example:
>>>
>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
>>> index f9c5da9..ec33ea0 100644
>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>> @@ -607,6 +607,7 @@
>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>                ti,hwmods = "wkup_m3";
>>> +            ti,no-reset-on-init;
>>>            };
>>>
>>>            elm: elm at 48080000 {
>>> @@ -637,6 +638,7 @@
>>>            gpmc: gpmc at 50000000 {
>>>                compatible = "ti,am3352-gpmc";
>>>                ti,hwmods = "gpmc";
>>> +            ti,no-idle-on-init;
>>>                reg = <0x50000000 0x2000>;
>>>                interrupts = <100>;
>>>                gpmc,num-cs = <7>;
>>> diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
>>> index 22d9f2b..e8fe797 100644
>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>> @@ -214,6 +214,7 @@
>>>                gpmc,num-cs = <8>;
>>>                gpmc,num-waitpins = <4>;
>>>                ti,hwmods = "gpmc";
>>> +            ti,no-idle-on-init;
>>>            };
>>>
>>>            uart1: serial at 4806a000 {
>>> @@ -492,6 +493,7 @@
>>>                reg = <0x4c000000 0x100>;
>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>                ti,hwmods = "emif1";
>>> +            ti,no-idle-on-init;
>>>                phy-type = <1>;
>>>                hw-caps-read-idle-ctrl;
>>>                hw-caps-ll-interface;
>>> @@ -503,6 +505,7 @@
>>>                reg = <0x4d000000 0x100>;
>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>                ti,hwmods = "emif2";
>>> +            ti,no-idle-on-init;
>>>                phy-type = <1>;
>>>                hw-caps-read-idle-ctrl;
>>>                hw-caps-ll-interface;
>>> diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
>>> index 7cdea1b..a9d49df 100644
>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>> @@ -607,6 +607,7 @@
>>>            emif1: emif at 0x4c000000 {
>>>                compatible    = "ti,emif-4d5";
>>>                ti,hwmods    = "emif1";
>>> +            ti,no-idle-on-init;
>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>                reg = <0x4c000000 0x400>;
>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>> @@ -618,6 +619,7 @@
>>>            emif2: emif at 0x4d000000 {
>>>                compatible    = "ti,emif-4d5";
>>>                ti,hwmods    = "emif2";
>>> +            ti,no-idle-on-init;
>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>                reg = <0x4d000000 0x400>;
>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>
>>
>

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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
  2013-10-09 10:11 ` Rajendra Nayak
  (?)
@ 2013-10-10 16:44   ` Nishanth Menon
  -1 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 16:44 UTC (permalink / raw)
  To: Benoît Cousson, Rajendra Nayak
  Cc: linux-omap, devicetree, linux-arm-kernel, linux-kernel, Nishanth Menon

Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
supplies VDD_MPU.

Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
MPU voltage switches over to VSET0 voltage value (boot voltage) which
is not sufficient to operate the device at OPP100.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2

GPIO1 reset causes PandaBoard-ES to stop functioning.
This depends on Patch series from Rajendra:
http://marc.info/?l=linux-doc&m=138131355520116&w=2
Applies on Benoit's for_13/dts branch:
https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts

Tested on PandaBoard-ES without the u-boot uenv hack

 arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index 56c4354..816d1c9 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -62,3 +62,7 @@
 		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 	};
 };
+
+&gpio1 {
+	 ti,no-reset-on-init;
+};
-- 
1.7.9.5


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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-10 16:44   ` Nishanth Menon
  0 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 16:44 UTC (permalink / raw)
  To: Benoît Cousson, Rajendra Nayak
  Cc: Nishanth Menon, devicetree, linux-omap, linux-kernel, linux-arm-kernel

Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
supplies VDD_MPU.

Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
MPU voltage switches over to VSET0 voltage value (boot voltage) which
is not sufficient to operate the device at OPP100.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2

GPIO1 reset causes PandaBoard-ES to stop functioning.
This depends on Patch series from Rajendra:
http://marc.info/?l=linux-doc&m=138131355520116&w=2
Applies on Benoit's for_13/dts branch:
https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts

Tested on PandaBoard-ES without the u-boot uenv hack

 arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index 56c4354..816d1c9 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -62,3 +62,7 @@
 		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 	};
 };
+
+&gpio1 {
+	 ti,no-reset-on-init;
+};
-- 
1.7.9.5

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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-10 16:44   ` Nishanth Menon
  0 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 16:44 UTC (permalink / raw)
  To: linux-arm-kernel

Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
supplies VDD_MPU.

Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
MPU voltage switches over to VSET0 voltage value (boot voltage) which
is not sufficient to operate the device at OPP100.

Signed-off-by: Nishanth Menon <nm@ti.com>
---
As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2

GPIO1 reset causes PandaBoard-ES to stop functioning.
This depends on Patch series from Rajendra:
http://marc.info/?l=linux-doc&m=138131355520116&w=2
Applies on Benoit's for_13/dts branch:
https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts

Tested on PandaBoard-ES without the u-boot uenv hack

 arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
index 56c4354..816d1c9 100644
--- a/arch/arm/boot/dts/omap4-panda-es.dts
+++ b/arch/arm/boot/dts/omap4-panda-es.dts
@@ -62,3 +62,7 @@
 		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 	};
 };
+
+&gpio1 {
+	 ti,no-reset-on-init;
+};
-- 
1.7.9.5

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

* Re: [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
  2013-10-10 16:44   ` Nishanth Menon
@ 2013-10-10 16:47     ` Tony Lindgren
  -1 siblings, 0 replies; 36+ messages in thread
From: Tony Lindgren @ 2013-10-10 16:47 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Benoît Cousson, Rajendra Nayak, linux-omap, devicetree,
	linux-arm-kernel, linux-kernel

* Nishanth Menon <nm@ti.com> [131010 09:53]:
> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
> supplies VDD_MPU.
> 
> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
> MPU voltage switches over to VSET0 voltage value (boot voltage) which
> is not sufficient to operate the device at OPP100.

Is this needs as a fix for the -rc series?

Tony
 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2
> 
> GPIO1 reset causes PandaBoard-ES to stop functioning.
> This depends on Patch series from Rajendra:
> http://marc.info/?l=linux-doc&m=138131355520116&w=2
> Applies on Benoit's for_13/dts branch:
> https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts
> 
> Tested on PandaBoard-ES without the u-boot uenv hack
> 
>  arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
> index 56c4354..816d1c9 100644
> --- a/arch/arm/boot/dts/omap4-panda-es.dts
> +++ b/arch/arm/boot/dts/omap4-panda-es.dts
> @@ -62,3 +62,7 @@
>  		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
>  	};
>  };
> +
> +&gpio1 {
> +	 ti,no-reset-on-init;
> +};
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-10 16:47     ` Tony Lindgren
  0 siblings, 0 replies; 36+ messages in thread
From: Tony Lindgren @ 2013-10-10 16:47 UTC (permalink / raw)
  To: linux-arm-kernel

* Nishanth Menon <nm@ti.com> [131010 09:53]:
> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
> supplies VDD_MPU.
> 
> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
> MPU voltage switches over to VSET0 voltage value (boot voltage) which
> is not sufficient to operate the device at OPP100.

Is this needs as a fix for the -rc series?

Tony
 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2
> 
> GPIO1 reset causes PandaBoard-ES to stop functioning.
> This depends on Patch series from Rajendra:
> http://marc.info/?l=linux-doc&m=138131355520116&w=2
> Applies on Benoit's for_13/dts branch:
> https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts
> 
> Tested on PandaBoard-ES without the u-boot uenv hack
> 
>  arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
> index 56c4354..816d1c9 100644
> --- a/arch/arm/boot/dts/omap4-panda-es.dts
> +++ b/arch/arm/boot/dts/omap4-panda-es.dts
> @@ -62,3 +62,7 @@
>  		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
>  	};
>  };
> +
> +&gpio1 {
> +	 ti,no-reset-on-init;
> +};
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

* Re: [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
  2013-10-10 16:47     ` Tony Lindgren
  (?)
@ 2013-10-10 19:01       ` Nishanth Menon
  -1 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 19:01 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Benoît Cousson, Rajendra Nayak, linux-omap, devicetree,
	linux-arm-kernel, linux-kernel

On 10/10/2013 11:47 AM, Tony Lindgren wrote:
> * Nishanth Menon <nm@ti.com> [131010 09:53]:
>> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
>> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
>> supplies VDD_MPU.
>>
>> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
>> MPU voltage switches over to VSET0 voltage value (boot voltage) which
>> is not sufficient to operate the device at OPP100.
> 
> Is this needs as a fix for the -rc series?

Nope, this is not a regression recently introduced, has been in since
day one of Panda-ES support. Further, we still have decision pending
on the dependent series from Rajendra[1] - will be good to see it go
in along with AM335x-EVM.


[1] http://marc.info/?t=138131368300005&r=1&w=2

-- 
Regards,
Nishanth Menon

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

* Re: [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-10 19:01       ` Nishanth Menon
  0 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 19:01 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: devicetree, Rajendra Nayak, linux-kernel, Benoît Cousson,
	linux-omap, linux-arm-kernel

On 10/10/2013 11:47 AM, Tony Lindgren wrote:
> * Nishanth Menon <nm@ti.com> [131010 09:53]:
>> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
>> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
>> supplies VDD_MPU.
>>
>> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
>> MPU voltage switches over to VSET0 voltage value (boot voltage) which
>> is not sufficient to operate the device at OPP100.
> 
> Is this needs as a fix for the -rc series?

Nope, this is not a regression recently introduced, has been in since
day one of Panda-ES support. Further, we still have decision pending
on the dependent series from Rajendra[1] - will be good to see it go
in along with AM335x-EVM.


[1] http://marc.info/?t=138131368300005&r=1&w=2

-- 
Regards,
Nishanth Menon

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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-10 19:01       ` Nishanth Menon
  0 siblings, 0 replies; 36+ messages in thread
From: Nishanth Menon @ 2013-10-10 19:01 UTC (permalink / raw)
  To: linux-arm-kernel

On 10/10/2013 11:47 AM, Tony Lindgren wrote:
> * Nishanth Menon <nm@ti.com> [131010 09:53]:
>> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
>> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
>> supplies VDD_MPU.
>>
>> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
>> MPU voltage switches over to VSET0 voltage value (boot voltage) which
>> is not sufficient to operate the device at OPP100.
> 
> Is this needs as a fix for the -rc series?

Nope, this is not a regression recently introduced, has been in since
day one of Panda-ES support. Further, we still have decision pending
on the dependent series from Rajendra[1] - will be good to see it go
in along with AM335x-EVM.


[1] http://marc.info/?t=138131368300005&r=1&w=2

-- 
Regards,
Nishanth Menon

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

* Re: [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-09 16:45         ` Benoit Cousson
@ 2013-10-15  7:27           ` Benoit Cousson
  -1 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-15  7:27 UTC (permalink / raw)
  To: Rajendra Nayak
  Cc: paul, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc,
	Mark Rutland, rob.herring

Hi Rajendra,

On 09/10/2013 18:45, Benoit Cousson wrote:
> + A couple of DT maintainers
>
> On 09/10/2013 18:41, Rajendra Nayak wrote:
>> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>>> Hi Rajendra,
>>>
>>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>>> On OMAP we have co-processor IPs, memory controllers,
>>>> GPIOs which control regulators and power switches to
>>>> PMIC, and SoC internal Bus IPs, some or most of which
>>>> should either not be reset or idled or both at init.
>>>> (In some cases there are erratas which prevent an IP
>>>> from being reset)
>>>> Have a way to pass this information from DT.
>>>
>>> Did you get some acked-by from the DT maintainers?
>>> Every new bindings must be carefully reviewed now.
>>
>> Nope, I haven't. The patches are on the list for a couple
>> of months now.
>
> Let's see if Mark and Rob are OK with that.

OK, I've just applied it after a small change in the subject:

  ARM: dts: omap: Add reset/idle on init bindings for OMAP

Is that OK for you?

Thanks,
Benoit

>
> Thanks,
> Benoit
>
>>
>>>
>>> Regards,
>>> Benoit
>>>
>>>>
>>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>>> new bindings for modules which either should not be
>>>> idled. reset or both. A later patch would cleanup the
>>>> same information that exists today as part of the hwmod
>>>> data files.
>>>>
>>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>>> ---
>>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> index 91b7049..808c154 100644
>>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> @@ -21,7 +21,8 @@ Required properties:
>>>>    Optional properties:
>>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle
>>>> the module
>>>>      during suspend.
>>>> -
>>>> +- ti,no-reset-on-init: When present, the module should not be reset
>>>> at init
>>>> +- ti,no-idle-on-init: When present, the module should not be idled
>>>> at init
>>>>
>>>>    Example:
>>>>
>>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi
>>>> b/arch/arm/boot/dts/am33xx.dtsi
>>>> index f9c5da9..ec33ea0 100644
>>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>>> @@ -607,6 +607,7 @@
>>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>>                ti,hwmods = "wkup_m3";
>>>> +            ti,no-reset-on-init;
>>>>            };
>>>>
>>>>            elm: elm@48080000 {
>>>> @@ -637,6 +638,7 @@
>>>>            gpmc: gpmc@50000000 {
>>>>                compatible = "ti,am3352-gpmc";
>>>>                ti,hwmods = "gpmc";
>>>> +            ti,no-idle-on-init;
>>>>                reg = <0x50000000 0x2000>;
>>>>                interrupts = <100>;
>>>>                gpmc,num-cs = <7>;
>>>> diff --git a/arch/arm/boot/dts/omap4.dtsi
>>>> b/arch/arm/boot/dts/omap4.dtsi
>>>> index 22d9f2b..e8fe797 100644
>>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>>> @@ -214,6 +214,7 @@
>>>>                gpmc,num-cs = <8>;
>>>>                gpmc,num-waitpins = <4>;
>>>>                ti,hwmods = "gpmc";
>>>> +            ti,no-idle-on-init;
>>>>            };
>>>>
>>>>            uart1: serial@4806a000 {
>>>> @@ -492,6 +493,7 @@
>>>>                reg = <0x4c000000 0x100>;
>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>                ti,hwmods = "emif1";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type = <1>;
>>>>                hw-caps-read-idle-ctrl;
>>>>                hw-caps-ll-interface;
>>>> @@ -503,6 +505,7 @@
>>>>                reg = <0x4d000000 0x100>;
>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>                ti,hwmods = "emif2";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type = <1>;
>>>>                hw-caps-read-idle-ctrl;
>>>>                hw-caps-ll-interface;
>>>> diff --git a/arch/arm/boot/dts/omap5.dtsi
>>>> b/arch/arm/boot/dts/omap5.dtsi
>>>> index 7cdea1b..a9d49df 100644
>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>> @@ -607,6 +607,7 @@
>>>>            emif1: emif@0x4c000000 {
>>>>                compatible    = "ti,emif-4d5";
>>>>                ti,hwmods    = "emif1";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>                reg = <0x4c000000 0x400>;
>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>> @@ -618,6 +619,7 @@
>>>>            emif2: emif@0x4d000000 {
>>>>                compatible    = "ti,emif-4d5";
>>>>                ti,hwmods    = "emif2";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>                reg = <0x4d000000 0x400>;
>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>
>>>
>>
>


-- 
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com

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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-15  7:27           ` Benoit Cousson
  0 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-15  7:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Rajendra,

On 09/10/2013 18:45, Benoit Cousson wrote:
> + A couple of DT maintainers
>
> On 09/10/2013 18:41, Rajendra Nayak wrote:
>> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>>> Hi Rajendra,
>>>
>>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>>> On OMAP we have co-processor IPs, memory controllers,
>>>> GPIOs which control regulators and power switches to
>>>> PMIC, and SoC internal Bus IPs, some or most of which
>>>> should either not be reset or idled or both at init.
>>>> (In some cases there are erratas which prevent an IP
>>>> from being reset)
>>>> Have a way to pass this information from DT.
>>>
>>> Did you get some acked-by from the DT maintainers?
>>> Every new bindings must be carefully reviewed now.
>>
>> Nope, I haven't. The patches are on the list for a couple
>> of months now.
>
> Let's see if Mark and Rob are OK with that.

OK, I've just applied it after a small change in the subject:

  ARM: dts: omap: Add reset/idle on init bindings for OMAP

Is that OK for you?

Thanks,
Benoit

>
> Thanks,
> Benoit
>
>>
>>>
>>> Regards,
>>> Benoit
>>>
>>>>
>>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>>> new bindings for modules which either should not be
>>>> idled. reset or both. A later patch would cleanup the
>>>> same information that exists today as part of the hwmod
>>>> data files.
>>>>
>>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>>> ---
>>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> index 91b7049..808c154 100644
>>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>> @@ -21,7 +21,8 @@ Required properties:
>>>>    Optional properties:
>>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle
>>>> the module
>>>>      during suspend.
>>>> -
>>>> +- ti,no-reset-on-init: When present, the module should not be reset
>>>> at init
>>>> +- ti,no-idle-on-init: When present, the module should not be idled
>>>> at init
>>>>
>>>>    Example:
>>>>
>>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi
>>>> b/arch/arm/boot/dts/am33xx.dtsi
>>>> index f9c5da9..ec33ea0 100644
>>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>>> @@ -607,6 +607,7 @@
>>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>>                ti,hwmods = "wkup_m3";
>>>> +            ti,no-reset-on-init;
>>>>            };
>>>>
>>>>            elm: elm at 48080000 {
>>>> @@ -637,6 +638,7 @@
>>>>            gpmc: gpmc at 50000000 {
>>>>                compatible = "ti,am3352-gpmc";
>>>>                ti,hwmods = "gpmc";
>>>> +            ti,no-idle-on-init;
>>>>                reg = <0x50000000 0x2000>;
>>>>                interrupts = <100>;
>>>>                gpmc,num-cs = <7>;
>>>> diff --git a/arch/arm/boot/dts/omap4.dtsi
>>>> b/arch/arm/boot/dts/omap4.dtsi
>>>> index 22d9f2b..e8fe797 100644
>>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>>> @@ -214,6 +214,7 @@
>>>>                gpmc,num-cs = <8>;
>>>>                gpmc,num-waitpins = <4>;
>>>>                ti,hwmods = "gpmc";
>>>> +            ti,no-idle-on-init;
>>>>            };
>>>>
>>>>            uart1: serial at 4806a000 {
>>>> @@ -492,6 +493,7 @@
>>>>                reg = <0x4c000000 0x100>;
>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>                ti,hwmods = "emif1";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type = <1>;
>>>>                hw-caps-read-idle-ctrl;
>>>>                hw-caps-ll-interface;
>>>> @@ -503,6 +505,7 @@
>>>>                reg = <0x4d000000 0x100>;
>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>                ti,hwmods = "emif2";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type = <1>;
>>>>                hw-caps-read-idle-ctrl;
>>>>                hw-caps-ll-interface;
>>>> diff --git a/arch/arm/boot/dts/omap5.dtsi
>>>> b/arch/arm/boot/dts/omap5.dtsi
>>>> index 7cdea1b..a9d49df 100644
>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>> @@ -607,6 +607,7 @@
>>>>            emif1: emif at 0x4c000000 {
>>>>                compatible    = "ti,emif-4d5";
>>>>                ti,hwmods    = "emif1";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>                reg = <0x4c000000 0x400>;
>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>> @@ -618,6 +619,7 @@
>>>>            emif2: emif at 0x4d000000 {
>>>>                compatible    = "ti,emif-4d5";
>>>>                ti,hwmods    = "emif2";
>>>> +            ti,no-idle-on-init;
>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>                reg = <0x4d000000 0x400>;
>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>
>>>
>>
>


-- 
Beno?t Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com

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

* Re: [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
  2013-10-10 16:44   ` Nishanth Menon
@ 2013-10-15  7:28     ` Benoit Cousson
  -1 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-15  7:28 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Rajendra Nayak, linux-omap, devicetree, linux-arm-kernel, linux-kernel

Hi Nishanth,

On 10/10/2013 18:44, Nishanth Menon wrote:
> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
> supplies VDD_MPU.
>
> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
> MPU voltage switches over to VSET0 voltage value (boot voltage) which
> is not sufficient to operate the device at OPP100.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2
>
> GPIO1 reset causes PandaBoard-ES to stop functioning.
> This depends on Patch series from Rajendra:
> http://marc.info/?l=linux-doc&m=138131355520116&w=2
> Applies on Benoit's for_13/dts branch:
> https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts

I've just applied it after Rajendra's series.

Thanks,
Benoit


>
> Tested on PandaBoard-ES without the u-boot uenv hack
>
>   arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
> index 56c4354..816d1c9 100644
> --- a/arch/arm/boot/dts/omap4-panda-es.dts
> +++ b/arch/arm/boot/dts/omap4-panda-es.dts
> @@ -62,3 +62,7 @@
>   		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
>   	};
>   };
> +
> +&gpio1 {
> +	 ti,no-reset-on-init;
> +};
>


-- 
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com

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

* [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1
@ 2013-10-15  7:28     ` Benoit Cousson
  0 siblings, 0 replies; 36+ messages in thread
From: Benoit Cousson @ 2013-10-15  7:28 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Nishanth,

On 10/10/2013 18:44, Nishanth Menon wrote:
> Do not reset GPIO1 at boot-up because GPIO 7 in GPIO1 block is used on
> OMAP4460 PandaBoard-ES to select voltage register in TPS62361 which
> supplies VDD_MPU.
>
> Without this, OMAP4460 PandaBoard-ES boards fail to boot-up because
> MPU voltage switches over to VSET0 voltage value (boot voltage) which
> is not sufficient to operate the device at OPP100.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> As explained here: http://marc.info/?l=u-boot&m=133066647800872&w=2
>
> GPIO1 reset causes PandaBoard-ES to stop functioning.
> This depends on Patch series from Rajendra:
> http://marc.info/?l=linux-doc&m=138131355520116&w=2
> Applies on Benoit's for_13/dts branch:
> https://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.13/dts

I've just applied it after Rajendra's series.

Thanks,
Benoit


>
> Tested on PandaBoard-ES without the u-boot uenv hack
>
>   arch/arm/boot/dts/omap4-panda-es.dts |    4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
> index 56c4354..816d1c9 100644
> --- a/arch/arm/boot/dts/omap4-panda-es.dts
> +++ b/arch/arm/boot/dts/omap4-panda-es.dts
> @@ -62,3 +62,7 @@
>   		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
>   	};
>   };
> +
> +&gpio1 {
> +	 ti,no-reset-on-init;
> +};
>


-- 
Beno?t Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com

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

* Re: [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
  2013-10-15  7:27           ` Benoit Cousson
@ 2013-10-15  8:23             ` Rajendra Nayak
  -1 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-15  8:23 UTC (permalink / raw)
  To: Benoit Cousson
  Cc: paul, tony, linux-omap, linux-arm-kernel, devicetree, linux-doc,
	Mark Rutland, rob.herring

On Tuesday 15 October 2013 12:57 PM, Benoit Cousson wrote:
> Hi Rajendra,
> 
> On 09/10/2013 18:45, Benoit Cousson wrote:
>> + A couple of DT maintainers
>>
>> On 09/10/2013 18:41, Rajendra Nayak wrote:
>>> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>>>> Hi Rajendra,
>>>>
>>>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>>>> On OMAP we have co-processor IPs, memory controllers,
>>>>> GPIOs which control regulators and power switches to
>>>>> PMIC, and SoC internal Bus IPs, some or most of which
>>>>> should either not be reset or idled or both at init.
>>>>> (In some cases there are erratas which prevent an IP
>>>>> from being reset)
>>>>> Have a way to pass this information from DT.
>>>>
>>>> Did you get some acked-by from the DT maintainers?
>>>> Every new bindings must be carefully reviewed now.
>>>
>>> Nope, I haven't. The patches are on the list for a couple
>>> of months now.
>>
>> Let's see if Mark and Rob are OK with that.
> 
> OK, I've just applied it after a small change in the subject:
> 
>  ARM: dts: omap: Add reset/idle on init bindings for OMAP
> 
> Is that OK for you?

Yes, sounds good. Thanks Benoit.

> 
> Thanks,
> Benoit
> 
>>
>> Thanks,
>> Benoit
>>
>>>
>>>>
>>>> Regards,
>>>> Benoit
>>>>
>>>>>
>>>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>>>> new bindings for modules which either should not be
>>>>> idled. reset or both. A later patch would cleanup the
>>>>> same information that exists today as part of the hwmod
>>>>> data files.
>>>>>
>>>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>>>> ---
>>>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> index 91b7049..808c154 100644
>>>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> @@ -21,7 +21,8 @@ Required properties:
>>>>>    Optional properties:
>>>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle
>>>>> the module
>>>>>      during suspend.
>>>>> -
>>>>> +- ti,no-reset-on-init: When present, the module should not be reset
>>>>> at init
>>>>> +- ti,no-idle-on-init: When present, the module should not be idled
>>>>> at init
>>>>>
>>>>>    Example:
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi
>>>>> b/arch/arm/boot/dts/am33xx.dtsi
>>>>> index f9c5da9..ec33ea0 100644
>>>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>>>> @@ -607,6 +607,7 @@
>>>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>>>                ti,hwmods = "wkup_m3";
>>>>> +            ti,no-reset-on-init;
>>>>>            };
>>>>>
>>>>>            elm: elm@48080000 {
>>>>> @@ -637,6 +638,7 @@
>>>>>            gpmc: gpmc@50000000 {
>>>>>                compatible = "ti,am3352-gpmc";
>>>>>                ti,hwmods = "gpmc";
>>>>> +            ti,no-idle-on-init;
>>>>>                reg = <0x50000000 0x2000>;
>>>>>                interrupts = <100>;
>>>>>                gpmc,num-cs = <7>;
>>>>> diff --git a/arch/arm/boot/dts/omap4.dtsi
>>>>> b/arch/arm/boot/dts/omap4.dtsi
>>>>> index 22d9f2b..e8fe797 100644
>>>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>>>> @@ -214,6 +214,7 @@
>>>>>                gpmc,num-cs = <8>;
>>>>>                gpmc,num-waitpins = <4>;
>>>>>                ti,hwmods = "gpmc";
>>>>> +            ti,no-idle-on-init;
>>>>>            };
>>>>>
>>>>>            uart1: serial@4806a000 {
>>>>> @@ -492,6 +493,7 @@
>>>>>                reg = <0x4c000000 0x100>;
>>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>>                ti,hwmods = "emif1";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type = <1>;
>>>>>                hw-caps-read-idle-ctrl;
>>>>>                hw-caps-ll-interface;
>>>>> @@ -503,6 +505,7 @@
>>>>>                reg = <0x4d000000 0x100>;
>>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>>                ti,hwmods = "emif2";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type = <1>;
>>>>>                hw-caps-read-idle-ctrl;
>>>>>                hw-caps-ll-interface;
>>>>> diff --git a/arch/arm/boot/dts/omap5.dtsi
>>>>> b/arch/arm/boot/dts/omap5.dtsi
>>>>> index 7cdea1b..a9d49df 100644
>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>> @@ -607,6 +607,7 @@
>>>>>            emif1: emif@0x4c000000 {
>>>>>                compatible    = "ti,emif-4d5";
>>>>>                ti,hwmods    = "emif1";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>>                reg = <0x4c000000 0x400>;
>>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>> @@ -618,6 +619,7 @@
>>>>>            emif2: emif@0x4d000000 {
>>>>>                compatible    = "ti,emif-4d5";
>>>>>                ti,hwmods    = "emif2";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>>                reg = <0x4d000000 0x400>;
>>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>>
>>>>
>>>
>>
> 
> 


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

* [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP
@ 2013-10-15  8:23             ` Rajendra Nayak
  0 siblings, 0 replies; 36+ messages in thread
From: Rajendra Nayak @ 2013-10-15  8:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 15 October 2013 12:57 PM, Benoit Cousson wrote:
> Hi Rajendra,
> 
> On 09/10/2013 18:45, Benoit Cousson wrote:
>> + A couple of DT maintainers
>>
>> On 09/10/2013 18:41, Rajendra Nayak wrote:
>>> On Wednesday 09 October 2013 08:43 PM, Benoit Cousson wrote:
>>>> Hi Rajendra,
>>>>
>>>> On 09/10/2013 12:11, Rajendra Nayak wrote:
>>>>> On OMAP we have co-processor IPs, memory controllers,
>>>>> GPIOs which control regulators and power switches to
>>>>> PMIC, and SoC internal Bus IPs, some or most of which
>>>>> should either not be reset or idled or both at init.
>>>>> (In some cases there are erratas which prevent an IP
>>>>> from being reset)
>>>>> Have a way to pass this information from DT.
>>>>
>>>> Did you get some acked-by from the DT maintainers?
>>>> Every new bindings must be carefully reviewed now.
>>>
>>> Nope, I haven't. The patches are on the list for a couple
>>> of months now.
>>
>> Let's see if Mark and Rob are OK with that.
> 
> OK, I've just applied it after a small change in the subject:
> 
>  ARM: dts: omap: Add reset/idle on init bindings for OMAP
> 
> Is that OK for you?

Yes, sounds good. Thanks Benoit.

> 
> Thanks,
> Benoit
> 
>>
>> Thanks,
>> Benoit
>>
>>>
>>>>
>>>> Regards,
>>>> Benoit
>>>>
>>>>>
>>>>> Update the am33xx/omap4 and omap5 dtsi files with the
>>>>> new bindings for modules which either should not be
>>>>> idled. reset or both. A later patch would cleanup the
>>>>> same information that exists today as part of the hwmod
>>>>> data files.
>>>>>
>>>>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>>>>> ---
>>>>>    .../devicetree/bindings/arm/omap/omap.txt          |    3 ++-
>>>>>    arch/arm/boot/dts/am33xx.dtsi                      |    2 ++
>>>>>    arch/arm/boot/dts/omap4.dtsi                       |    3 +++
>>>>>    arch/arm/boot/dts/omap5.dtsi                       |    2 ++
>>>>>    4 files changed, 9 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> index 91b7049..808c154 100644
>>>>> --- a/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
>>>>> @@ -21,7 +21,8 @@ Required properties:
>>>>>    Optional properties:
>>>>>    - ti,no_idle_on_suspend: When present, it prevents the PM to idle
>>>>> the module
>>>>>      during suspend.
>>>>> -
>>>>> +- ti,no-reset-on-init: When present, the module should not be reset
>>>>> at init
>>>>> +- ti,no-idle-on-init: When present, the module should not be idled
>>>>> at init
>>>>>
>>>>>    Example:
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/am33xx.dtsi
>>>>> b/arch/arm/boot/dts/am33xx.dtsi
>>>>> index f9c5da9..ec33ea0 100644
>>>>> --- a/arch/arm/boot/dts/am33xx.dtsi
>>>>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>>>>> @@ -607,6 +607,7 @@
>>>>>                reg = <0x44d00000 0x4000    /* M3 UMEM */
>>>>>                       0x44d80000 0x2000>;    /* M3 DMEM */
>>>>>                ti,hwmods = "wkup_m3";
>>>>> +            ti,no-reset-on-init;
>>>>>            };
>>>>>
>>>>>            elm: elm at 48080000 {
>>>>> @@ -637,6 +638,7 @@
>>>>>            gpmc: gpmc at 50000000 {
>>>>>                compatible = "ti,am3352-gpmc";
>>>>>                ti,hwmods = "gpmc";
>>>>> +            ti,no-idle-on-init;
>>>>>                reg = <0x50000000 0x2000>;
>>>>>                interrupts = <100>;
>>>>>                gpmc,num-cs = <7>;
>>>>> diff --git a/arch/arm/boot/dts/omap4.dtsi
>>>>> b/arch/arm/boot/dts/omap4.dtsi
>>>>> index 22d9f2b..e8fe797 100644
>>>>> --- a/arch/arm/boot/dts/omap4.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap4.dtsi
>>>>> @@ -214,6 +214,7 @@
>>>>>                gpmc,num-cs = <8>;
>>>>>                gpmc,num-waitpins = <4>;
>>>>>                ti,hwmods = "gpmc";
>>>>> +            ti,no-idle-on-init;
>>>>>            };
>>>>>
>>>>>            uart1: serial at 4806a000 {
>>>>> @@ -492,6 +493,7 @@
>>>>>                reg = <0x4c000000 0x100>;
>>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>>                ti,hwmods = "emif1";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type = <1>;
>>>>>                hw-caps-read-idle-ctrl;
>>>>>                hw-caps-ll-interface;
>>>>> @@ -503,6 +505,7 @@
>>>>>                reg = <0x4d000000 0x100>;
>>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>>                ti,hwmods = "emif2";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type = <1>;
>>>>>                hw-caps-read-idle-ctrl;
>>>>>                hw-caps-ll-interface;
>>>>> diff --git a/arch/arm/boot/dts/omap5.dtsi
>>>>> b/arch/arm/boot/dts/omap5.dtsi
>>>>> index 7cdea1b..a9d49df 100644
>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>> @@ -607,6 +607,7 @@
>>>>>            emif1: emif at 0x4c000000 {
>>>>>                compatible    = "ti,emif-4d5";
>>>>>                ti,hwmods    = "emif1";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>>                reg = <0x4c000000 0x400>;
>>>>>                interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>>>>> @@ -618,6 +619,7 @@
>>>>>            emif2: emif at 0x4d000000 {
>>>>>                compatible    = "ti,emif-4d5";
>>>>>                ti,hwmods    = "emif2";
>>>>> +            ti,no-idle-on-init;
>>>>>                phy-type    = <2>; /* DDR PHY type: Intelli PHY */
>>>>>                reg = <0x4d000000 0x400>;
>>>>>                interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>>>>>
>>>>
>>>
>>
> 
> 

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

end of thread, other threads:[~2013-10-15  8:23 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-09 10:11 [PATCH v2 0/5] OMAP: Add DT bindings to specify when devices should not be idled or reset Rajendra Nayak
2013-10-09 10:11 ` Rajendra Nayak
2013-10-09 10:11 ` [PATCH v2 1/5] ARM: OMAP2+: hwmod: cleanup HWMOD_INIT_NO_RESET usage Rajendra Nayak
2013-10-09 10:11   ` Rajendra Nayak
2013-10-09 14:55   ` Paul Walmsley
2013-10-09 14:55     ` Paul Walmsley
2013-10-09 10:11 ` [PATCH v2 2/5] ARM: dts: omap: Add new bindings for OMAP Rajendra Nayak
2013-10-09 10:11   ` Rajendra Nayak
2013-10-09 15:13   ` Benoit Cousson
2013-10-09 15:13     ` Benoit Cousson
2013-10-09 16:41     ` Rajendra Nayak
2013-10-09 16:41       ` Rajendra Nayak
2013-10-09 16:45       ` Benoit Cousson
2013-10-09 16:45         ` Benoit Cousson
2013-10-15  7:27         ` Benoit Cousson
2013-10-15  7:27           ` Benoit Cousson
2013-10-15  8:23           ` Rajendra Nayak
2013-10-15  8:23             ` Rajendra Nayak
2013-10-09 10:11 ` [PATCH v2 3/5] ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT Rajendra Nayak
2013-10-09 10:11   ` Rajendra Nayak
2013-10-09 14:55   ` Paul Walmsley
2013-10-09 14:55     ` Paul Walmsley
2013-10-09 10:12 ` [PATCH v2 4/5] ARM: OMAP2+: hwmod: Cleanup usage of HWMOD_INIT_NO_RESET and HWMOD_INIT_NO_IDLE Rajendra Nayak
2013-10-09 10:12   ` Rajendra Nayak
2013-10-09 10:12 ` [PATCH v2 5/5] ARM: dts: AM335x-evmsk: Do not reset gpio0 Rajendra Nayak
2013-10-09 10:12   ` Rajendra Nayak
2013-10-10 16:44 ` [PATCH] ARM: dts: omap4-panda-es: Do not reset gpio1 Nishanth Menon
2013-10-10 16:44   ` Nishanth Menon
2013-10-10 16:44   ` Nishanth Menon
2013-10-10 16:47   ` Tony Lindgren
2013-10-10 16:47     ` Tony Lindgren
2013-10-10 19:01     ` Nishanth Menon
2013-10-10 19:01       ` Nishanth Menon
2013-10-10 19:01       ` Nishanth Menon
2013-10-15  7:28   ` Benoit Cousson
2013-10-15  7:28     ` Benoit Cousson

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.