All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Configure genpd domains for omap4
@ 2020-11-19 13:07 Tony Lindgren
  2020-11-19 13:07 ` [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks Tony Lindgren
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	Tero Kristo, linux-clk

Hi all,

Here are few patches to configure genpd domains for omap4 and
enable it for dss, dsp and iva. And we also drop gpmc legacy
platform data while at it.

Regards,

Tony


Tero Kristo (2):
  soc: ti: omap-prm: omap4: add genpd support for remaining PRM
    instances
  ARM: dts: omap4: add remaining PRM instances

Tony Lindgren (5):
  clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks
  ARM: dts: Configure power domain for omap4 dss
  ARM: dts: Configure power domain for omap4 dsp
  ARM: OMAP2+: Drop legacy platform data for omap4 iva
  ARM: OMAP2+: Drop legacy platform data for omap4 gpmc

 arch/arm/boot/dts/omap4-l4.dtsi            |   1 +
 arch/arm/boot/dts/omap4.dtsi               | 150 ++++++++++++++++++---
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 114 ----------------
 drivers/clk/ti/clk-44xx.c                  |   2 +-
 drivers/soc/ti/omap_prm.c                  |  71 +++++++++-
 5 files changed, 198 insertions(+), 140 deletions(-)

-- 
2.29.2

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

* [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-12-09  2:21   ` Stephen Boyd
  2020-11-19 13:07 ` [PATCH 2/7] soc: ti: omap-prm: omap4: add genpd support for remaining PRM instances Tony Lindgren
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, linux-clk, Michael Turquette,
	Stephen Boyd, Suman Anna, Tero Kristo, Roger Quadros,
	Santosh Shilimkar

Similar to what we've done for IPU and DSP let's ignore the status bit
for the IVA clkctrl register.

The clkctrl status won't change unless the related rstctrl is deasserted,
and the rstctrl status won't change unless the clkctrl is enabled.

Cc: linux-clk@vger.kernel.org
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Suman Anna <s-anna@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/clk/ti/clk-44xx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/ti/clk-44xx.c b/drivers/clk/ti/clk-44xx.c
--- a/drivers/clk/ti/clk-44xx.c
+++ b/drivers/clk/ti/clk-44xx.c
@@ -255,7 +255,7 @@ static const struct omap_clkctrl_reg_data omap4_l3_instr_clkctrl_regs[] __initco
 };
 
 static const struct omap_clkctrl_reg_data omap4_ivahd_clkctrl_regs[] __initconst = {
-	{ OMAP4_IVA_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_m5x2_ck" },
+	{ OMAP4_IVA_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_NO_IDLEST, "dpll_iva_m5x2_ck" },
 	{ OMAP4_SL2IF_CLKCTRL, NULL, CLKF_HW_SUP, "dpll_iva_m5x2_ck" },
 	{ 0 },
 };
-- 
2.29.2

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

* [PATCH 2/7] soc: ti: omap-prm: omap4: add genpd support for remaining PRM instances
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
  2020-11-19 13:07 ` [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:07 ` [PATCH 3/7] ARM: dts: omap4: add " Tony Lindgren
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Tero Kristo, Santosh Shilimkar,
	Michael Turquette, Roger Quadros, Stephen Boyd, Suman Anna,
	linux-clk

From: Tero Kristo <t-kristo@ti.com>

Add genpd support for mpu, tesla, always_on_core, core, ivahd, cam, dss,
gfx, l3init, l4per, cefuse, wkup and emu instances.

Cc: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/soc/ti/omap_prm.c | 71 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 67 insertions(+), 4 deletions(-)

diff --git a/drivers/soc/ti/omap_prm.c b/drivers/soc/ti/omap_prm.c
--- a/drivers/soc/ti/omap_prm.c
+++ b/drivers/soc/ti/omap_prm.c
@@ -128,6 +128,12 @@ static const struct omap_prm_domain_map omap_prm_alwon = {
 	.usable_modes = BIT(OMAP_PRMD_ON_ACTIVE),
 };
 
+static const struct omap_prm_domain_map omap_prm_reton = {
+	.usable_modes = BIT(OMAP_PRMD_ON_ACTIVE) | BIT(OMAP_PRMD_RETENTION),
+	.statechange = 1,
+	.logicretstate = 1,
+};
+
 static const struct omap_rst_map rst_map_0[] = {
 	{ .rst = 0, .st = 0 },
 	{ .rst = -1 },
@@ -147,14 +153,71 @@ static const struct omap_rst_map rst_map_012[] = {
 };
 
 static const struct omap_prm_data omap4_prm_data[] = {
-	{ .name = "tesla", .base = 0x4a306400, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_01 },
+	{
+		.name = "mpu", .base = 0x4a306300,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton,
+	},
+	{
+		.name = "tesla", .base = 0x4a306400,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_noinact,
+		.rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_01
+	},
 	{
 		.name = "abe", .base = 0x4a306500,
 		.pwrstctrl = 0, .pwrstst = 0x4, .dmap = &omap_prm_all,
 	},
-	{ .name = "core", .base = 0x4a306700, .rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ducati", .rstmap = rst_map_012 },
-	{ .name = "ivahd", .base = 0x4a306f00, .rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_012 },
-	{ .name = "device", .base = 0x4a307b00, .rstctrl = 0x0, .rstst = 0x4, .rstmap = rst_map_01, .flags = OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_NO_CLKDM },
+	{
+		.name = "always_on_core", .base = 0x4a306600,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_alwon,
+	},
+	{
+		.name = "core", .base = 0x4a306700,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton,
+		.rstctrl = 0x210, .rstst = 0x214, .clkdm_name = "ducati",
+		.rstmap = rst_map_012
+	},
+	{
+		.name = "ivahd", .base = 0x4a306f00,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_noinact,
+		.rstctrl = 0x10, .rstst = 0x14, .rstmap = rst_map_012
+	},
+	{
+		.name = "cam", .base = 0x4a307000,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_onoff_noauto,
+	},
+	{
+		.name = "dss", .base = 0x4a307100,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_noinact
+	},
+	{
+		.name = "gfx", .base = 0x4a307200,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_onoff_noauto
+	},
+	{
+		.name = "l3init", .base = 0x4a307300,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton
+	},
+	{
+		.name = "l4per", .base = 0x4a307400,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_reton
+	},
+	{
+		.name = "cefuse", .base = 0x4a307600,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_onoff_noauto
+	},
+	{
+		.name = "wkup", .base = 0x4a307700,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_alwon
+	},
+	{
+		.name = "emu", .base = 0x4a307900,
+		.pwrstctrl = 0x0, .pwrstst = 0x4, .dmap = &omap_prm_onoff_noauto
+	},
+	{
+		.name = "device", .base = 0x4a307b00,
+		.rstctrl = 0x0, .rstst = 0x4, .rstmap = rst_map_01,
+		.flags = OMAP_PRM_HAS_RSTCTRL | OMAP_PRM_HAS_NO_CLKDM
+	},
 	{ },
 };
 
-- 
2.29.2

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

* [PATCH 3/7] ARM: dts: omap4: add remaining PRM instances
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
  2020-11-19 13:07 ` [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks Tony Lindgren
  2020-11-19 13:07 ` [PATCH 2/7] soc: ti: omap-prm: omap4: add genpd support for remaining PRM instances Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:07 ` [PATCH 4/7] ARM: dts: Configure power domain for omap4 dss Tony Lindgren
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Tero Kristo, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	linux-clk

From: Tero Kristo <t-kristo@ti.com>

Add remaining PRM instances for the omap4 SoC. Additionally enable the
genpd support for them.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4.dtsi | 63 ++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -658,10 +658,17 @@ hdmi: encoder@0 {
 #include "omap44xx-clocks.dtsi"
 
 &prm {
+	prm_mpu: prm@300 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x300 0x100>;
+		#power-domain-cells = <0>;
+	};
+
 	prm_tesla: prm@400 {
 		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
 		reg = <0x400 0x100>;
 		#reset-cells = <1>;
+		#power-domain-cells = <0>;
 	};
 
 	prm_abe: prm@500 {
@@ -670,16 +677,72 @@ prm_abe: prm@500 {
 		#power-domain-cells = <0>;
 	};
 
+	prm_always_on_core: prm@600 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x600 0x100>;
+		#power-domain-cells = <0>;
+	};
+
 	prm_core: prm@700 {
 		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
 		reg = <0x700 0x100>;
 		#reset-cells = <1>;
+		#power-domain-cells = <0>;
 	};
 
 	prm_ivahd: prm@f00 {
 		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
 		reg = <0xf00 0x100>;
 		#reset-cells = <1>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_cam: prm@1000 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1000 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_dss: prm@1100 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1100 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_gfx: prm@1200 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1200 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_l3init: prm@1300 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1300 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_l4per: prm@1400 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1400 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_cefuse: prm@1600 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1600 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_wkup: prm@1700 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1700 0x100>;
+		#power-domain-cells = <0>;
+	};
+
+	prm_emu: prm@1900 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1900 0x100>;
+		#power-domain-cells = <0>;
 	};
 
 	prm_device: prm@1b00 {
-- 
2.29.2

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

* [PATCH 4/7] ARM: dts: Configure power domain for omap4 dss
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
                   ` (2 preceding siblings ...)
  2020-11-19 13:07 ` [PATCH 3/7] ARM: dts: omap4: add " Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:07 ` [PATCH 5/7] ARM: dts: Configure power domain for omap4 dsp Tony Lindgren
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	Tero Kristo, linux-clk

This allows shutting down dss domain when the screen blanks.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -445,6 +445,7 @@ target-module@58000000 {
 			      <0x58000014 4>;
 			reg-names = "rev", "syss";
 			ti,syss-mask = <1>;
+			power-domains = <&prm_dss>;
 			clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
 				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
 				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
@@ -745,6 +746,12 @@ prm_emu: prm@1900 {
 		#power-domain-cells = <0>;
 	};
 
+	prm_dss: prm@1100 {
+		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
+		reg = <0x1100 0x40>;
+		#power-domain-cells = <0>;
+	};
+
 	prm_device: prm@1b00 {
 		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
 		reg = <0x1b00 0x40>;
-- 
2.29.2

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

* [PATCH 5/7] ARM: dts: Configure power domain for omap4 dsp
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
                   ` (3 preceding siblings ...)
  2020-11-19 13:07 ` [PATCH 4/7] ARM: dts: Configure power domain for omap4 dss Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:07 ` [PATCH 6/7] ARM: OMAP2+: Drop legacy platform data for omap4 iva Tony Lindgren
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	Tero Kristo, linux-clk

This allows shutting down the dsp domain when not in use.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4-l4.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/omap4-l4.dtsi b/arch/arm/boot/dts/omap4-l4.dtsi
--- a/arch/arm/boot/dts/omap4-l4.dtsi
+++ b/arch/arm/boot/dts/omap4-l4.dtsi
@@ -330,6 +330,7 @@ SYSC_OMAP2_SOFTRESET |
 			/* Domains (V, P, C): iva, tesla_pwrdm, tesla_clkdm */
 			clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
 			clock-names = "fck";
+			power-domains = <&prm_tesla>;
 			resets = <&prm_tesla 1>;
 			reset-names = "rstctrl";
 			#address-cells = <1>;
-- 
2.29.2

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

* [PATCH 6/7] ARM: OMAP2+: Drop legacy platform data for omap4 iva
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
                   ` (4 preceding siblings ...)
  2020-11-19 13:07 ` [PATCH 5/7] ARM: dts: Configure power domain for omap4 dsp Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:07 ` [PATCH 7/7] ARM: OMAP2+: Drop legacy platform data for omap4 gpmc Tony Lindgren
  2020-11-19 13:21 ` [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Suman Anna, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Tero Kristo,
	linux-clk

We can now probe devices with ti-sysc interconnect driver and dts
data. Let's drop the related platform data and custom ti,hwmods
dts property.

Cc: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4.dtsi               | 31 ++++++++--
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 69 ----------------------
 2 files changed, 26 insertions(+), 74 deletions(-)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -107,11 +107,6 @@ mpu {
 			ti,hwmods = "mpu";
 			sram = <&ocmcram>;
 		};
-
-		iva {
-			compatible = "ti,ivahd";
-			ti,hwmods = "iva";
-		};
 	};
 
 	/*
@@ -651,6 +646,32 @@ hdmi: encoder@0 {
 				};
 			};
 		};
+
+		iva_hd_target: target-module@5a000000 {
+			compatible = "ti,sysc-omap4", "ti,sysc";
+			reg = <0x5a05a400 0x4>,
+			      <0x5a05a410 0x4>;
+			reg-names = "rev", "sysc";
+			ti,sysc-midle = <SYSC_IDLE_FORCE>,
+					<SYSC_IDLE_NO>,
+					<SYSC_IDLE_SMART>;
+			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+					<SYSC_IDLE_NO>,
+					<SYSC_IDLE_SMART>;
+			power-domains = <&prm_ivahd>;
+			resets = <&prm_ivahd 2>;
+			reset-names = "rstctrl";
+			clocks = <&ivahd_clkctrl OMAP4_IVA_CLKCTRL 0>;
+			clock-names = "fck";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x5a000000 0x5a000000 0x1000000>,
+				 <0x5b000000 0x5b000000 0x1000000>;
+
+			iva {
+				compatible = "ti,ivahd";
+			};
+		};
 	};
 };
 
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -440,39 +440,6 @@ static struct omap_hwmod omap44xx_iss_hwmod = {
 	.opt_clks_cnt	= ARRAY_SIZE(iss_opt_clks),
 };
 
-/*
- * 'iva' class
- * multi-standard video encoder/decoder hardware accelerator
- */
-
-static struct omap_hwmod_class omap44xx_iva_hwmod_class = {
-	.name	= "iva",
-};
-
-/* iva */
-static struct omap_hwmod_rst_info omap44xx_iva_resets[] = {
-	{ .name = "seq0", .rst_shift = 0 },
-	{ .name = "seq1", .rst_shift = 1 },
-	{ .name = "logic", .rst_shift = 2 },
-};
-
-static struct omap_hwmod omap44xx_iva_hwmod = {
-	.name		= "iva",
-	.class		= &omap44xx_iva_hwmod_class,
-	.clkdm_name	= "ivahd_clkdm",
-	.rst_lines	= omap44xx_iva_resets,
-	.rst_lines_cnt	= ARRAY_SIZE(omap44xx_iva_resets),
-	.main_clk	= "dpll_iva_m5x2_ck",
-	.prcm = {
-		.omap4 = {
-			.clkctrl_offs = OMAP4_CM_IVAHD_IVAHD_CLKCTRL_OFFSET,
-			.rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET,
-			.context_offs = OMAP4_RM_IVAHD_IVAHD_CONTEXT_OFFSET,
-			.modulemode   = MODULEMODE_HWCTRL,
-		},
-	},
-};
-
 /*
  * 'mpu' class
  * mpu sub-system
@@ -644,14 +611,6 @@ static struct omap_hwmod_ocp_if omap44xx_mpu__dmm = {
 	.user		= OCP_USER_MPU,
 };
 
-/* iva -> l3_instr */
-static struct omap_hwmod_ocp_if omap44xx_iva__l3_instr = {
-	.master		= &omap44xx_iva_hwmod,
-	.slave		= &omap44xx_l3_instr_hwmod,
-	.clk		= "l3_div_ck",
-	.user		= OCP_USER_MPU | OCP_USER_SDMA,
-};
-
 /* l3_main_3 -> l3_instr */
 static struct omap_hwmod_ocp_if omap44xx_l3_main_3__l3_instr = {
 	.master		= &omap44xx_l3_main_3_hwmod,
@@ -708,14 +667,6 @@ static struct omap_hwmod_ocp_if omap44xx_iss__l3_main_2 = {
 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
 };
 
-/* iva -> l3_main_2 */
-static struct omap_hwmod_ocp_if omap44xx_iva__l3_main_2 = {
-	.master		= &omap44xx_iva_hwmod,
-	.slave		= &omap44xx_l3_main_2_hwmod,
-	.clk		= "l3_div_ck",
-	.user		= OCP_USER_MPU | OCP_USER_SDMA,
-};
-
 /* l3_main_1 -> l3_main_2 */
 static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l3_main_2 = {
 	.master		= &omap44xx_l3_main_1_hwmod,
@@ -852,22 +803,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iss = {
 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
 };
 
-/* iva -> sl2if */
-static struct omap_hwmod_ocp_if __maybe_unused omap44xx_iva__sl2if = {
-	.master		= &omap44xx_iva_hwmod,
-	.slave		= &omap44xx_sl2if_hwmod,
-	.clk		= "dpll_iva_m5x2_ck",
-	.user		= OCP_USER_IVA,
-};
-
-/* l3_main_2 -> iva */
-static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iva = {
-	.master		= &omap44xx_l3_main_2_hwmod,
-	.slave		= &omap44xx_iva_hwmod,
-	.clk		= "l3_div_ck",
-	.user		= OCP_USER_MPU,
-};
-
 /* l3_main_2 -> ocmc_ram */
 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram = {
 	.master		= &omap44xx_l3_main_2_hwmod,
@@ -943,7 +878,6 @@ static struct omap_hwmod_ocp_if omap44xx_mpu__emif2 = {
 static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
 	&omap44xx_l3_main_1__dmm,
 	&omap44xx_mpu__dmm,
-	&omap44xx_iva__l3_instr,
 	&omap44xx_l3_main_3__l3_instr,
 	&omap44xx_ocp_wp_noc__l3_instr,
 	&omap44xx_l3_main_2__l3_main_1,
@@ -951,7 +885,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
 	&omap44xx_mpu__l3_main_1,
 	&omap44xx_debugss__l3_main_2,
 	&omap44xx_iss__l3_main_2,
-	&omap44xx_iva__l3_main_2,
 	&omap44xx_l3_main_1__l3_main_2,
 	&omap44xx_l4_cfg__l3_main_2,
 	&omap44xx_l3_main_1__l3_main_3,
@@ -969,8 +902,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
 	&omap44xx_l3_instr__debugss,
 	&omap44xx_l3_main_2__gpmc,
 	&omap44xx_l3_main_2__iss,
-	/* &omap44xx_iva__sl2if, */
-	&omap44xx_l3_main_2__iva,
 	&omap44xx_l3_main_2__ocmc_ram,
 	&omap44xx_mpu_private__prcm_mpu,
 	&omap44xx_l4_wkup__cm_core_aon,
-- 
2.29.2

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

* [PATCH 7/7] ARM: OMAP2+: Drop legacy platform data for omap4 gpmc
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
                   ` (5 preceding siblings ...)
  2020-11-19 13:07 ` [PATCH 6/7] ARM: OMAP2+: Drop legacy platform data for omap4 iva Tony Lindgren
@ 2020-11-19 13:07 ` Tony Lindgren
  2020-11-19 13:21 ` [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:07 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Roger Quadros,
	Michael Turquette, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	Tero Kristo, linux-clk

We can now probe devices with ti-sysc interconnect driver and dts
data. Let's drop the related platform data and custom ti,hwmods
dts property.

Cc: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4.dtsi               | 49 +++++++++++++++-------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 45 --------------------
 2 files changed, 33 insertions(+), 61 deletions(-)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -145,24 +145,41 @@ ocmcram: sram@40304000 {
 			reg = <0x40304000 0xa000>; /* 40k */
 		};
 
-		gpmc: gpmc@50000000 {
-			compatible = "ti,omap4430-gpmc";
-			reg = <0x50000000 0x1000>;
-			#address-cells = <2>;
-			#size-cells = <1>;
-			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&sdma 4>;
-			dma-names = "rxtx";
-			gpmc,num-cs = <8>;
-			gpmc,num-waitpins = <4>;
-			ti,hwmods = "gpmc";
+		target-module@50000000 {
+			compatible = "ti,sysc-omap2", "ti,sysc";
+			reg = <0x50000000 4>,
+			      <0x50000010 4>,
+			      <0x50000014 4>;
+			reg-names = "rev", "sysc", "syss";
+			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+					<SYSC_IDLE_NO>,
+					<SYSC_IDLE_SMART>;
+			ti,syss-mask = <1>;
 			ti,no-idle-on-init;
-			clocks = <&l3_div_ck>;
+			clocks = <&l3_2_clkctrl OMAP4_GPMC_CLKCTRL 0>;
 			clock-names = "fck";
-			interrupt-controller;
-			#interrupt-cells = <2>;
-			gpio-controller;
-			#gpio-cells = <2>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
+				 <0x00000000 0x00000000 0x40000000>; /* data */
+
+			gpmc: gpmc@50000000 {
+				compatible = "ti,omap4430-gpmc";
+				reg = <0x50000000 0x1000>;
+				#address-cells = <2>;
+				#size-cells = <1>;
+				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+				dmas = <&sdma 4>;
+				dma-names = "rxtx";
+				gpmc,num-cs = <8>;
+				gpmc,num-waitpins = <4>;
+				clocks = <&l3_div_ck>;
+				clock-names = "fck";
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
 		};
 
 		target-module@52000000 {
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -353,42 +353,6 @@ static struct omap_hwmod omap44xx_emif2_hwmod = {
 	},
 };
 
-/*
- * 'gpmc' class
- * general purpose memory controller
- */
-
-static struct omap_hwmod_class_sysconfig omap44xx_gpmc_sysc = {
-	.rev_offs	= 0x0000,
-	.sysc_offs	= 0x0010,
-	.syss_offs	= 0x0014,
-	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
-			   SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
-	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
-	.sysc_fields	= &omap_hwmod_sysc_type1,
-};
-
-static struct omap_hwmod_class omap44xx_gpmc_hwmod_class = {
-	.name	= "gpmc",
-	.sysc	= &omap44xx_gpmc_sysc,
-};
-
-/* gpmc */
-static struct omap_hwmod omap44xx_gpmc_hwmod = {
-	.name		= "gpmc",
-	.class		= &omap44xx_gpmc_hwmod_class,
-	.clkdm_name	= "l3_2_clkdm",
-	/* Skip reset for CONFIG_OMAP_GPMC_DEBUG for bootloader timings */
-	.flags		= DEBUG_OMAP_GPMC_HWMOD_FLAGS,
-	.prcm = {
-		.omap4 = {
-			.clkctrl_offs = OMAP4_CM_L3_2_GPMC_CLKCTRL_OFFSET,
-			.context_offs = OMAP4_RM_L3_2_GPMC_CONTEXT_OFFSET,
-			.modulemode   = MODULEMODE_HWCTRL,
-		},
-	},
-};
-
 /*
  * 'iss' class
  * external images sensor pixel data processor
@@ -787,14 +751,6 @@ static struct omap_hwmod_ocp_if omap44xx_l3_instr__debugss = {
 	.user		= OCP_USER_MPU | OCP_USER_SDMA,
 };
 
-/* l3_main_2 -> gpmc */
-static struct omap_hwmod_ocp_if omap44xx_l3_main_2__gpmc = {
-	.master		= &omap44xx_l3_main_2_hwmod,
-	.slave		= &omap44xx_gpmc_hwmod,
-	.clk		= "l3_div_ck",
-	.user		= OCP_USER_MPU | OCP_USER_SDMA,
-};
-
 /* l3_main_2 -> iss */
 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iss = {
 	.master		= &omap44xx_l3_main_2_hwmod,
@@ -900,7 +856,6 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = {
 	&omap44xx_l4_wkup__ctrl_module_wkup,
 	&omap44xx_l4_wkup__ctrl_module_pad_wkup,
 	&omap44xx_l3_instr__debugss,
-	&omap44xx_l3_main_2__gpmc,
 	&omap44xx_l3_main_2__iss,
 	&omap44xx_l3_main_2__ocmc_ram,
 	&omap44xx_mpu_private__prcm_mpu,
-- 
2.29.2

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

* Re: [PATCH 0/7] Configure genpd domains for omap4
  2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
                   ` (6 preceding siblings ...)
  2020-11-19 13:07 ` [PATCH 7/7] ARM: OMAP2+: Drop legacy platform data for omap4 gpmc Tony Lindgren
@ 2020-11-19 13:21 ` Tony Lindgren
  7 siblings, 0 replies; 10+ messages in thread
From: Tony Lindgren @ 2020-11-19 13:21 UTC (permalink / raw)
  To: linux-omap
  Cc: Benoît Cousson, devicetree, Michael Turquette,
	Roger Quadros, Santosh Shilimkar, Stephen Boyd, Suman Anna,
	Tero Kristo, linux-clk

* Tony Lindgren <tony@atomide.com> [201119 13:09]:
> Hi all,
> 
> Here are few patches to configure genpd domains for omap4 and
> enable it for dss, dsp and iva. And we also drop gpmc legacy
> platform data while at it.

These depend on the earlier patches:

PATCH 2/4] ARM: OMAP2+: Fix missing select PM_GENERIC_DOMAINS_OF
[PATCHv2 0/9] Genpd related code changes to drop am335x pdata

To make testing things easier, I've pushed out these changes also
to a temporary test branch at [0][1] below.

Regards,

Tony

[0] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v5.11/tmp-testing-genpd
[1] https://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git/log/?h=omap-for-v5.11/tmp-testing-genp

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

* Re: [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks
  2020-11-19 13:07 ` [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks Tony Lindgren
@ 2020-12-09  2:21   ` Stephen Boyd
  0 siblings, 0 replies; 10+ messages in thread
From: Stephen Boyd @ 2020-12-09  2:21 UTC (permalink / raw)
  To: Tony Lindgren, linux-omap
  Cc: Benoît Cousson, devicetree, linux-clk, Michael Turquette,
	Suman Anna, Tero Kristo, Roger Quadros, Santosh Shilimkar

Quoting Tony Lindgren (2020-11-19 05:07:14)
> Similar to what we've done for IPU and DSP let's ignore the status bit
> for the IVA clkctrl register.
> 
> The clkctrl status won't change unless the related rstctrl is deasserted,
> and the rstctrl status won't change unless the clkctrl is enabled.
> 
> Cc: linux-clk@vger.kernel.org
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Suman Anna <s-anna@ti.com>
> Cc: Tero Kristo <t-kristo@ti.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---

Acked-by: Stephen Boyd <sboyd@kernel.org>

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

end of thread, other threads:[~2020-12-09  2:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19 13:07 [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren
2020-11-19 13:07 ` [PATCH 1/7] clk: ti: omap4: Drop idlest polling from IVA clkctrl clocks Tony Lindgren
2020-12-09  2:21   ` Stephen Boyd
2020-11-19 13:07 ` [PATCH 2/7] soc: ti: omap-prm: omap4: add genpd support for remaining PRM instances Tony Lindgren
2020-11-19 13:07 ` [PATCH 3/7] ARM: dts: omap4: add " Tony Lindgren
2020-11-19 13:07 ` [PATCH 4/7] ARM: dts: Configure power domain for omap4 dss Tony Lindgren
2020-11-19 13:07 ` [PATCH 5/7] ARM: dts: Configure power domain for omap4 dsp Tony Lindgren
2020-11-19 13:07 ` [PATCH 6/7] ARM: OMAP2+: Drop legacy platform data for omap4 iva Tony Lindgren
2020-11-19 13:07 ` [PATCH 7/7] ARM: OMAP2+: Drop legacy platform data for omap4 gpmc Tony Lindgren
2020-11-19 13:21 ` [PATCH 0/7] Configure genpd domains for omap4 Tony Lindgren

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.