linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4
@ 2021-07-17 12:09 Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 1/3] ARM: dts: omap4-l4-abe: Correct sidle modes for McASP Peter Ujfalusi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2021-07-17 12:09 UTC (permalink / raw)
  To: tony, bcousson; +Cc: robh+dt, linux-omap, devicetree, linux-kernel, hns

Hi,

This series is the dts / ti-sysc part of the McASP DIT and OMAP4 support:
https://lore.kernel.org/alsa-devel/20210705194249.2385-1-peter.ujfalusi@gmail.com/

The ASoC part has been picked up and it is in linux-next.

I have followed the advice from Tony and added a quirk via ti-sysc to disable the
non working SIDLE mode for McASP.

Tested on PandaES.

Since I have kept the McASP node disabled the ti-sysc patch can go via different
tree if it is easier to handle.

Regards,
Peter
---
Peter Ujfalusi (3):
  ARM: dts: omap4-l4-abe: Correct sidle modes for McASP
  bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode
  ARM: dts: omap4-l4-abe: Add McASP configuration

 arch/arm/boot/dts/omap4-l4-abe.dtsi | 38 +++++++++++++++--------------
 drivers/bus/ti-sysc.c               |  3 ++-
 2 files changed, 22 insertions(+), 19 deletions(-)

-- 
2.32.0


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

* [PATCH 1/3] ARM: dts: omap4-l4-abe: Correct sidle modes for McASP
  2021-07-17 12:09 [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Peter Ujfalusi
@ 2021-07-17 12:09 ` Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 2/3] bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode Peter Ujfalusi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2021-07-17 12:09 UTC (permalink / raw)
  To: tony, bcousson; +Cc: robh+dt, linux-omap, devicetree, linux-kernel, hns

McASP only supports  Force-idle, No-idle and Smart-idle modes

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
---
 arch/arm/boot/dts/omap4-l4-abe.dtsi | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/omap4-l4-abe.dtsi b/arch/arm/boot/dts/omap4-l4-abe.dtsi
index a9573d441dea..8287fdaa526e 100644
--- a/arch/arm/boot/dts/omap4-l4-abe.dtsi
+++ b/arch/arm/boot/dts/omap4-l4-abe.dtsi
@@ -192,8 +192,7 @@ target-module@28000 {			/* 0x40128000, ap 8 08.0 */
 			reg-names = "rev", "sysc";
 			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
 					<SYSC_IDLE_NO>,
-					<SYSC_IDLE_SMART>,
-					<SYSC_IDLE_SMART_WKUP>;
+					<SYSC_IDLE_SMART>;
 			/* Domains (V, P, C): iva, abe_pwrdm, abe_clkdm */
 			clocks = <&abe_clkctrl OMAP4_MCASP_CLKCTRL 0>;
 			clock-names = "fck";
-- 
2.32.0


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

* [PATCH 2/3] bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode
  2021-07-17 12:09 [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 1/3] ARM: dts: omap4-l4-abe: Correct sidle modes for McASP Peter Ujfalusi
@ 2021-07-17 12:09 ` Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 3/3] ARM: dts: omap4-l4-abe: Add McASP configuration Peter Ujfalusi
  2021-07-27  8:49 ` [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Tony Lindgren
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2021-07-17 12:09 UTC (permalink / raw)
  To: tony, bcousson; +Cc: robh+dt, linux-omap, devicetree, linux-kernel, hns

The McASP module in OMAP4 does not work if the SIDLE mode is enabled, most
like due to module integration issue that the signaling is not working
correctly.
Add a quirk for the module to select only NOIDLE mode when it is in use.

Suggested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
---
 drivers/bus/ti-sysc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 9df1e674d3f2..9faae119774e 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1501,6 +1501,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
 		   SYSC_MODULE_QUIRK_SGX),
 	SYSC_QUIRK("lcdc", 0, 0, 0x54, -ENODEV, 0x4f201000, 0xffffffff,
 		   SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff,
+		   SYSC_QUIRK_SWSUP_SIDLE),
 	SYSC_QUIRK("rtc", 0, 0x74, 0x78, -ENODEV, 0x4eb01908, 0xffff00f0,
 		   SYSC_MODULE_QUIRK_RTC_UNLOCK),
 	SYSC_QUIRK("tptc", 0, 0, 0x10, -ENODEV, 0x40006c00, 0xffffefff,
@@ -1557,7 +1559,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
 	SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0),
 	SYSC_QUIRK("iss", 0, 0, 0x10, -ENODEV, 0x40000101, 0xffffffff, 0),
 	SYSC_QUIRK("keypad", 0x4a31c000, 0, 0x10, 0x14, 0x00000020, 0xffffffff, 0),
-	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44306302, 0xffffffff, 0),
 	SYSC_QUIRK("mcasp", 0, 0, 0x4, -ENODEV, 0x44307b02, 0xffffffff, 0),
 	SYSC_QUIRK("mcbsp", 0, -ENODEV, 0x8c, -ENODEV, 0, 0, 0),
 	SYSC_QUIRK("mcspi", 0, 0, 0x10, -ENODEV, 0x40300a0b, 0xffff00ff, 0),
-- 
2.32.0


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

* [PATCH 3/3] ARM: dts: omap4-l4-abe: Add McASP configuration
  2021-07-17 12:09 [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 1/3] ARM: dts: omap4-l4-abe: Correct sidle modes for McASP Peter Ujfalusi
  2021-07-17 12:09 ` [PATCH 2/3] bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode Peter Ujfalusi
@ 2021-07-17 12:09 ` Peter Ujfalusi
  2021-07-27  8:49 ` [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Tony Lindgren
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Ujfalusi @ 2021-07-17 12:09 UTC (permalink / raw)
  To: tony, bcousson; +Cc: robh+dt, linux-omap, devicetree, linux-kernel, hns

OMAP4 has a single McASP instance with single serializer and locked for DIT
mode.
To be able to enable the support the following fixes needed:
- Add the DAT port ranges to the target module's ranges

We can already fill in the op-mode and serial-dir  for McASP as it only
supports this configuration, but keep the module disabled as there is no
known device available where it is used.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
---
 arch/arm/boot/dts/omap4-l4-abe.dtsi | 35 ++++++++++++++++-------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/arch/arm/boot/dts/omap4-l4-abe.dtsi b/arch/arm/boot/dts/omap4-l4-abe.dtsi
index 8287fdaa526e..7ae8b620515c 100644
--- a/arch/arm/boot/dts/omap4-l4-abe.dtsi
+++ b/arch/arm/boot/dts/omap4-l4-abe.dtsi
@@ -186,6 +186,7 @@ mcbsp3: mcbsp@0 {
 		};
 
 		target-module@28000 {			/* 0x40128000, ap 8 08.0 */
+							/* 0x4012a000, ap 10 0a.0 */
 			compatible = "ti,sysc-mcasp", "ti,sysc";
 			reg = <0x28000 0x4>,
 			      <0x28004 0x4>;
@@ -199,23 +200,25 @@ target-module@28000 {			/* 0x40128000, ap 8 08.0 */
 			#address-cells = <1>;
 			#size-cells = <1>;
 			ranges = <0x0 0x28000 0x1000>,
-				 <0x49028000 0x49028000 0x1000>;
-
-			/*
-			 * Child device unsupported by davinci-mcasp. At least
-			 * RX path is disabled for omap4, and only DIT mode
-			 * works with no I2S. See also old Android kernel
-			 * omap-mcasp driver for more information.
-			 */
-		};
-
-		target-module@2a000 {			/* 0x4012a000, ap 10 0a.0 */
-			compatible = "ti,sysc";
-			status = "disabled";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0x0 0x2a000 0x1000>,
+				 <0x49028000 0x49028000 0x1000>,
+				 <0x2000 0x2a000 0x1000>,
 				 <0x4902a000 0x4902a000 0x1000>;
+
+			mcasp0: mcasp@0 {
+				compatible = "ti,omap4-mcasp-audio";
+				reg = <0x0 0x2000>,
+				      <0x4902a000 0x1000>;	/* L3 data port */
+				reg-names = "mpu","dat";
+				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-names = "tx";
+				dmas = <&sdma 8>;
+				dma-names = "tx";
+				clocks = <&abe_clkctrl OMAP4_MCASP_CLKCTRL 0>;
+				clock-names = "fck";
+				op-mode = <1>;	/* MCASP_DIT_MODE */
+				serial-dir = < 1 >; /* 1 TX serializers */
+				status = "disabled";
+			};
 		};
 
 		target-module@2e000 {			/* 0x4012e000, ap 12 0c.0 */
-- 
2.32.0


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

* Re: [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4
  2021-07-17 12:09 [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Peter Ujfalusi
                   ` (2 preceding siblings ...)
  2021-07-17 12:09 ` [PATCH 3/3] ARM: dts: omap4-l4-abe: Add McASP configuration Peter Ujfalusi
@ 2021-07-27  8:49 ` Tony Lindgren
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Lindgren @ 2021-07-27  8:49 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: bcousson, robh+dt, linux-omap, devicetree, linux-kernel, hns

* Peter Ujfalusi <peter.ujfalusi@gmail.com> [210717 15:07]:
> Hi,
> 
> This series is the dts / ti-sysc part of the McASP DIT and OMAP4 support:
> https://lore.kernel.org/alsa-devel/20210705194249.2385-1-peter.ujfalusi@gmail.com/
> 
> The ASoC part has been picked up and it is in linux-next.
> 
> I have followed the advice from Tony and added a quirk via ti-sysc to disable the
> non working SIDLE mode for McASP.

Thanks applying all three.

Regards,

Tony

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

end of thread, other threads:[~2021-07-27  8:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-17 12:09 [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Peter Ujfalusi
2021-07-17 12:09 ` [PATCH 1/3] ARM: dts: omap4-l4-abe: Correct sidle modes for McASP Peter Ujfalusi
2021-07-17 12:09 ` [PATCH 2/3] bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode Peter Ujfalusi
2021-07-17 12:09 ` [PATCH 3/3] ARM: dts: omap4-l4-abe: Add McASP configuration Peter Ujfalusi
2021-07-27  8:49 ` [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4 Tony Lindgren

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