All of lore.kernel.org
 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 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.