2021-07-17 12:10:28

by Péter Ujfalusi

[permalink] [raw]
Subject: [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4

Hi,

This series is the dts / ti-sysc part of the McASP DIT and OMAP4 support:
https://lore.kernel.org/alsa-devel/[email protected]/

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


2021-07-17 12:10:28

by Péter Ujfalusi

[permalink] [raw]
Subject: [PATCH 2/3] bus: ti-sysc: Add quirk for OMAP4 McASP to disable SIDLE mode

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 <[email protected]>
Signed-off-by: Peter Ujfalusi <[email protected]>
---
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

2021-07-17 12:10:33

by Péter Ujfalusi

[permalink] [raw]
Subject: [PATCH 3/3] ARM: dts: omap4-l4-abe: Add McASP configuration

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 <[email protected]>
---
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

2021-07-27 08:52:20

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 0/3] ARM: dts / ti-sysc: Enable McASP on OMAP4

* Peter Ujfalusi <[email protected]> [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/[email protected]/
>
> 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