diff mbox series

[v3] arm64: dts: imx8mq: Add sai3 and sai6 nodes

Message ID 20190702132353.18632-1-andradanciu1997@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v3] arm64: dts: imx8mq: Add sai3 and sai6 nodes | expand

Commit Message

Andra Danciu July 2, 2019, 1:23 p.m. UTC
SAI3 and SAI6 nodes are used to connect to an external codec.
They have 1 Tx and 1 Rx dataline.

Cc: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
---
Changes since v2:
	- removed multiple new lines

Changes since v1:
	- Added sai3 node because we need it to enable audio on pico-pi-8m
	- Added commit description

 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

Comments

Daniel Baluta July 3, 2019, 6:27 a.m. UTC | #1
On Tue, Jul 2, 2019 at 4:25 PM Andra Danciu <andradanciu1997@gmail.com> wrote:
>
> SAI3 and SAI6 nodes are used to connect to an external codec.
> They have 1 Tx and 1 Rx dataline.
>
> Cc: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>

Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>

> ---
> Changes since v2:
>         - removed multiple new lines
>
> Changes since v1:
>         - Added sai3 node because we need it to enable audio on pico-pi-8m
>         - Added commit description
>
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index d09b808eff87..736cf81b695e 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -278,6 +278,20 @@
>                         #size-cells = <1>;
>                         ranges = <0x30000000 0x30000000 0x400000>;
>
> +                       sai6: sai@30030000 {
> +                               compatible = "fsl,imx8mq-sai",
> +                                       "fsl,imx6sx-sai";
> +                               reg = <0x30030000 0x10000>;
> +                               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> +                               clocks = <&clk IMX8MQ_CLK_SAI6_IPG>,
> +                                       <&clk IMX8MQ_CLK_SAI6_ROOT>,
> +                                       <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
> +                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                               dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>;
> +                               dma-names = "rx", "tx";
> +                               status = "disabled";
> +                       };
> +
>                         gpio1: gpio@30200000 {
>                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
>                                 reg = <0x30200000 0x10000>;
> @@ -728,6 +742,21 @@
>                                 status = "disabled";
>                         };
>
> +                       sai3: sai@308c0000 {
> +                               compatible = "fsl,imx8mq-sai",
> +                                            "fsl,imx6sx-sai";
> +                               reg = <0x308c0000 0x10000>;
> +                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> +                               clocks = <&clk IMX8MQ_CLK_SAI3_IPG>,
> +                                       <&clk IMX8MQ_CLK_DUMMY>,
> +                                       <&clk IMX8MQ_CLK_SAI3_ROOT>,
> +                                       <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
> +                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                               dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
> +                               dma-names = "rx", "tx";
> +                               status = "disabled";
> +                       };
> +
>                         i2c1: i2c@30a20000 {
>                                 compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
>                                 reg = <0x30a20000 0x10000>;
> --
> 2.11.0
>
Angus Ainslie July 3, 2019, 1 p.m. UTC | #2
Hi Andra,

I tried this out on linux-next and I'm not able to record or play sound.

I also added the sai2 entry to test out our devkit and get a PCM timeout 
with that.

On 2019-07-02 07:23, Andra Danciu wrote:
> SAI3 and SAI6 nodes are used to connect to an external codec.
> They have 1 Tx and 1 Rx dataline.
> 
> Cc: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
> ---
> Changes since v2:
> 	- removed multiple new lines
> 
> Changes since v1:
> 	- Added sai3 node because we need it to enable audio on pico-pi-8m
> 	- Added commit description
> 
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29 
> +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index d09b808eff87..736cf81b695e 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -278,6 +278,20 @@
>  			#size-cells = <1>;
>  			ranges = <0x30000000 0x30000000 0x400000>;
> 
> +			sai6: sai@30030000 {
> +				compatible = "fsl,imx8mq-sai",

I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't 
the registers at a different offset from "fsl,imx6sx-sai".

How is this supposed to work ?

Thanks
Angus

> +					"fsl,imx6sx-sai";
> +				reg = <0x30030000 0x10000>;
> +				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk IMX8MQ_CLK_SAI6_IPG>,
> +					<&clk IMX8MQ_CLK_SAI6_ROOT>,
> +					<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
> +				clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +				dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>;
> +				dma-names = "rx", "tx";
> +				status = "disabled";
> +			};
> +
>  			gpio1: gpio@30200000 {
>  				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
>  				reg = <0x30200000 0x10000>;
> @@ -728,6 +742,21 @@
>  				status = "disabled";
>  			};
> 
> +			sai3: sai@308c0000 {
> +				compatible = "fsl,imx8mq-sai",
> +					     "fsl,imx6sx-sai";
> +				reg = <0x308c0000 0x10000>;
> +				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk IMX8MQ_CLK_SAI3_IPG>,
> +					<&clk IMX8MQ_CLK_DUMMY>,
> +					<&clk IMX8MQ_CLK_SAI3_ROOT>,
> +					<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
> +				clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +				dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
> +				dma-names = "rx", "tx";
> +				status = "disabled";
> +			};
> +
>  			i2c1: i2c@30a20000 {
>  				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
>  				reg = <0x30a20000 0x10000>;
Daniel Baluta July 3, 2019, 1:10 p.m. UTC | #3
On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
>
> Hi Andra,
>
> I tried this out on linux-next and I'm not able to record or play sound.
>
> I also added the sai2 entry to test out our devkit and get a PCM timeout
> with that.

Hi Angus,

There are still lots of SAI patches that need to be upstream. Me and Andra
will be working on that over this summer.

>
> On 2019-07-02 07:23, Andra Danciu wrote:
> > SAI3 and SAI6 nodes are used to connect to an external codec.
> > They have 1 Tx and 1 Rx dataline.
> >
> > Cc: Daniel Baluta <daniel.baluta@nxp.com>
> > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
> > ---
> > Changes since v2:
> >       - removed multiple new lines
> >
> > Changes since v1:
> >       - Added sai3 node because we need it to enable audio on pico-pi-8m
> >       - Added commit description
> >
> >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
> > +++++++++++++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > index d09b808eff87..736cf81b695e 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > @@ -278,6 +278,20 @@
> >                       #size-cells = <1>;
> >                       ranges = <0x30000000 0x30000000 0x400000>;
> >
> > +                     sai6: sai@30030000 {
> > +                             compatible = "fsl,imx8mq-sai",
>
> I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
> the registers at a different offset from "fsl,imx6sx-sai".

Yes, you are right on this. We are trying to slowly push all our internal-tree
patches to mainline. Obviously, with started with low hanging fruits, DTS
nodes and small SAI fixes.

Soon, we will start to send patches for SAI IP ipgrade for imx8.

>
> How is this supposed to work ?
>

For the moment it won't work unless we will upstream all our SAI
internal patches.
But we will get there hopefully this summer.

Thanks,
Daniel.
Angus Ainslie July 3, 2019, 1:12 p.m. UTC | #4
Hi Daniel,

On 2019-07-03 07:10, Daniel Baluta wrote:
> On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
>> 
>> Hi Andra,
>> 
>> I tried this out on linux-next and I'm not able to record or play 
>> sound.
>> 
>> I also added the sai2 entry to test out our devkit and get a PCM 
>> timeout
>> with that.
> 
> Hi Angus,
> 
> There are still lots of SAI patches that need to be upstream. Me and 
> Andra
> will be working on that over this summer.
> 
>> 
>> On 2019-07-02 07:23, Andra Danciu wrote:
>> > SAI3 and SAI6 nodes are used to connect to an external codec.
>> > They have 1 Tx and 1 Rx dataline.
>> >
>> > Cc: Daniel Baluta <daniel.baluta@nxp.com>
>> > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
>> > ---
>> > Changes since v2:
>> >       - removed multiple new lines
>> >
>> > Changes since v1:
>> >       - Added sai3 node because we need it to enable audio on pico-pi-8m
>> >       - Added commit description
>> >
>> >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
>> > +++++++++++++++++++++++++++++
>> >  1 file changed, 29 insertions(+)
>> >
>> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> > index d09b808eff87..736cf81b695e 100644
>> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> > @@ -278,6 +278,20 @@
>> >                       #size-cells = <1>;
>> >                       ranges = <0x30000000 0x30000000 0x400000>;
>> >
>> > +                     sai6: sai@30030000 {
>> > +                             compatible = "fsl,imx8mq-sai",
>> 
>> I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
>> the registers at a different offset from "fsl,imx6sx-sai".
> 
> Yes, you are right on this. We are trying to slowly push all our 
> internal-tree
> patches to mainline. Obviously, with started with low hanging fruits, 
> DTS
> nodes and small SAI fixes.
> 
> Soon, we will start to send patches for SAI IP ipgrade for imx8.
> 
>> 
>> How is this supposed to work ?
>> 
> 
> For the moment it won't work unless we will upstream all our SAI
> internal patches.
> But we will get there hopefully this summer.
> 

Shouldn't a working driver be upstream before enabling it in the 
devicetree ?

Thanks
Angus

> Thanks,
> Daniel.
Daniel Baluta July 3, 2019, 1:25 p.m. UTC | #5
On Wed, Jul 3, 2019 at 4:12 PM Angus Ainslie <angus@akkea.ca> wrote:
>
> Hi Daniel,
>
> On 2019-07-03 07:10, Daniel Baluta wrote:
> > On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
> >>
> >> Hi Andra,
> >>
> >> I tried this out on linux-next and I'm not able to record or play
> >> sound.
> >>
> >> I also added the sai2 entry to test out our devkit and get a PCM
> >> timeout
> >> with that.
> >
> > Hi Angus,
> >
> > There are still lots of SAI patches that need to be upstream. Me and
> > Andra
> > will be working on that over this summer.
> >
> >>
> >> On 2019-07-02 07:23, Andra Danciu wrote:
> >> > SAI3 and SAI6 nodes are used to connect to an external codec.
> >> > They have 1 Tx and 1 Rx dataline.
> >> >
> >> > Cc: Daniel Baluta <daniel.baluta@nxp.com>
> >> > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
> >> > ---
> >> > Changes since v2:
> >> >       - removed multiple new lines
> >> >
> >> > Changes since v1:
> >> >       - Added sai3 node because we need it to enable audio on pico-pi-8m
> >> >       - Added commit description
> >> >
> >> >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
> >> > +++++++++++++++++++++++++++++
> >> >  1 file changed, 29 insertions(+)
> >> >
> >> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> >> > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> >> > index d09b808eff87..736cf81b695e 100644
> >> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> >> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> >> > @@ -278,6 +278,20 @@
> >> >                       #size-cells = <1>;
> >> >                       ranges = <0x30000000 0x30000000 0x400000>;
> >> >
> >> > +                     sai6: sai@30030000 {
> >> > +                             compatible = "fsl,imx8mq-sai",
> >>
> >> I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
> >> the registers at a different offset from "fsl,imx6sx-sai".
> >
> > Yes, you are right on this. We are trying to slowly push all our
> > internal-tree
> > patches to mainline. Obviously, with started with low hanging fruits,
> > DTS
> > nodes and small SAI fixes.
> >
> > Soon, we will start to send patches for SAI IP ipgrade for imx8.
> >
> >>
> >> How is this supposed to work ?
> >>
> >
> > For the moment it won't work unless we will upstream all our SAI
> > internal patches.
> > But we will get there hopefully this summer.
> >
>
> Shouldn't a working driver be upstream before enabling it in the
> devicetree ?

I see your point here and maybe your suggestion is the ideal
way to do things.

Anyhow, I don't see a problem with adding the node in dts
because CONFIG_FSL_SAI is not set in the default config.

We try to speedup the upstreaming process giving the fact
that SAI patches will go through audio maintainer's tree and
the DTS patches will most likely go through Shawn's tree.

thanks,
Daniel.
Angus Ainslie July 3, 2019, 1:58 p.m. UTC | #6
Hi Daniel,

On 2019-07-03 07:25, Daniel Baluta wrote:
> On Wed, Jul 3, 2019 at 4:12 PM Angus Ainslie <angus@akkea.ca> wrote:
>> 
>> Hi Daniel,
>> 
>> On 2019-07-03 07:10, Daniel Baluta wrote:
>> > On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
>> >>
>> >> Hi Andra,
>> >>
>> >> I tried this out on linux-next and I'm not able to record or play
>> >> sound.
>> >>
>> >> I also added the sai2 entry to test out our devkit and get a PCM
>> >> timeout
>> >> with that.
>> >
>> > Hi Angus,
>> >
>> > There are still lots of SAI patches that need to be upstream. Me and
>> > Andra
>> > will be working on that over this summer.
>> >
>> >>
>> >> On 2019-07-02 07:23, Andra Danciu wrote:
>> >> > SAI3 and SAI6 nodes are used to connect to an external codec.
>> >> > They have 1 Tx and 1 Rx dataline.
>> >> >
>> >> > Cc: Daniel Baluta <daniel.baluta@nxp.com>
>> >> > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
>> >> > ---
>> >> > Changes since v2:
>> >> >       - removed multiple new lines
>> >> >
>> >> > Changes since v1:
>> >> >       - Added sai3 node because we need it to enable audio on pico-pi-8m
>> >> >       - Added commit description
>> >> >
>> >> >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
>> >> > +++++++++++++++++++++++++++++
>> >> >  1 file changed, 29 insertions(+)
>> >> >
>> >> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> >> > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> >> > index d09b808eff87..736cf81b695e 100644
>> >> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> >> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
>> >> > @@ -278,6 +278,20 @@
>> >> >                       #size-cells = <1>;
>> >> >                       ranges = <0x30000000 0x30000000 0x400000>;
>> >> >
>> >> > +                     sai6: sai@30030000 {
>> >> > +                             compatible = "fsl,imx8mq-sai",
>> >>
>> >> I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
>> >> the registers at a different offset from "fsl,imx6sx-sai".
>> >
>> > Yes, you are right on this. We are trying to slowly push all our
>> > internal-tree
>> > patches to mainline. Obviously, with started with low hanging fruits,
>> > DTS
>> > nodes and small SAI fixes.
>> >
>> > Soon, we will start to send patches for SAI IP ipgrade for imx8.
>> >
>> >>
>> >> How is this supposed to work ?
>> >>
>> >
>> > For the moment it won't work unless we will upstream all our SAI
>> > internal patches.
>> > But we will get there hopefully this summer.
>> >
>> 
>> Shouldn't a working driver be upstream before enabling it in the
>> devicetree ?
> 
> I see your point here and maybe your suggestion is the ideal
> way to do things.
> 
> Anyhow, I don't see a problem with adding the node in dts
> because CONFIG_FSL_SAI is not set in the default config.
> 

I think the assumption is that devices in the devicetree are tested and 
working. That's not currently the case for sai on imx8mq.

> We try to speedup the upstreaming process giving the fact
> that SAI patches will go through audio maintainer's tree and
> the DTS patches will most likely go through Shawn's tree.
> 

Ok I can see them being committed concurrently but I haven't even seen a 
v1 of the sai patches.

Thanks
Angus

> thanks,
> Daniel.
Lucas Stach July 16, 2019, 3:58 p.m. UTC | #7
Hi Daniel,

Am Mittwoch, den 03.07.2019, 16:25 +0300 schrieb Daniel Baluta:
> > On Wed, Jul 3, 2019 at 4:12 PM Angus Ainslie <angus@akkea.ca> wrote:
> > 
> > Hi Daniel,
> > 
> > On 2019-07-03 07:10, Daniel Baluta wrote:
> > > > > > On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
> > > > 
> > > > Hi Andra,
> > > > 
> > > > I tried this out on linux-next and I'm not able to record or play
> > > > sound.
> > > > 
> > > > I also added the sai2 entry to test out our devkit and get a PCM
> > > > timeout
> > > > with that.
> > > 
> > > Hi Angus,
> > > 
> > > There are still lots of SAI patches that need to be upstream. Me and
> > > Andra
> > > will be working on that over this summer.
> > > 
> > > > 
> > > > On 2019-07-02 07:23, Andra Danciu wrote:
> > > > > SAI3 and SAI6 nodes are used to connect to an external codec.
> > > > > They have 1 Tx and 1 Rx dataline.
> > > > > 
> > > > > > > > > > Cc: Daniel Baluta <daniel.baluta@nxp.com>
> > > > > > > > > > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
> > > > > ---
> > > > > Changes since v2:
> > > > >       - removed multiple new lines
> > > > > 
> > > > > Changes since v1:
> > > > >       - Added sai3 node because we need it to enable audio on pico-pi-8m
> > > > >       - Added commit description
> > > > > 
> > > > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
> > > > > +++++++++++++++++++++++++++++
> > > > >  1 file changed, 29 insertions(+)
> > > > > 
> > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > index d09b808eff87..736cf81b695e 100644
> > > > > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > @@ -278,6 +278,20 @@
> > > > >                       #size-cells = <1>;
> > > > >                       ranges = <0x30000000 0x30000000 0x400000>;
> > > > > 
> > > > > > > > > > +                     sai6: sai@30030000 {
> > > > > +                             compatible = "fsl,imx8mq-sai",
> > > > 
> > > > I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
> > > > the registers at a different offset from "fsl,imx6sx-sai".
> > > 
> > > Yes, you are right on this. We are trying to slowly push all our
> > > internal-tree
> > > patches to mainline. Obviously, with started with low hanging fruits,
> > > DTS
> > > nodes and small SAI fixes.
> > > 
> > > Soon, we will start to send patches for SAI IP ipgrade for imx8.
> > > 
> > > > 
> > > > How is this supposed to work ?
> > > > 
> > > 
> > > For the moment it won't work unless we will upstream all our SAI
> > > internal patches.
> > > But we will get there hopefully this summer.
> > > 
> > 
> > Shouldn't a working driver be upstream before enabling it in the
> > devicetree ?
> 
> I see your point here and maybe your suggestion is the ideal
> way to do things.
> 
> Anyhow, I don't see a problem with adding the node in dts
> because CONFIG_FSL_SAI is not set in the default config.
> 
> We try to speedup the upstreaming process giving the fact
> that SAI patches will go through audio maintainer's tree and
> the DTS patches will most likely go through Shawn's tree.

I've also looked at adding audio support to one of the custom boards I
have here and was caught a bit off guard by the fact that the SAI
driver is totally broken for i.MX8M due to missing patches, as I
assumed the necessary bits are in place before the DT patches are
landed. It's certainly not how things are usually done.

This also means the DT description of the SAI nodes is wrong, as they
are actually not compatible to the "fsl,imx6sx-sai". The register
layout is moved around, so there is no point in claiming any backwards
compat with the old SAI version.

Do you have an ETA when the necessary patches for the i.MX8M SAI will
be available for test and review?

Regards,
Lucas
Daniel Baluta July 17, 2019, 2:04 p.m. UTC | #8
On Tue, Jul 16, 2019 at 6:58 PM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> Hi Daniel,
>
> Am Mittwoch, den 03.07.2019, 16:25 +0300 schrieb Daniel Baluta:
> > > On Wed, Jul 3, 2019 at 4:12 PM Angus Ainslie <angus@akkea.ca> wrote:
> > >
> > > Hi Daniel,
> > >
> > > On 2019-07-03 07:10, Daniel Baluta wrote:
> > > > > > > On Wed, Jul 3, 2019 at 4:01 PM Angus Ainslie <angus@akkea.ca> wrote:
> > > > >
> > > > > Hi Andra,
> > > > >
> > > > > I tried this out on linux-next and I'm not able to record or play
> > > > > sound.
> > > > >
> > > > > I also added the sai2 entry to test out our devkit and get a PCM
> > > > > timeout
> > > > > with that.
> > > >
> > > > Hi Angus,
> > > >
> > > > There are still lots of SAI patches that need to be upstream. Me and
> > > > Andra
> > > > will be working on that over this summer.
> > > >
> > > > >
> > > > > On 2019-07-02 07:23, Andra Danciu wrote:
> > > > > > SAI3 and SAI6 nodes are used to connect to an external codec.
> > > > > > They have 1 Tx and 1 Rx dataline.
> > > > > >
> > > > > > > > > > > Cc: Daniel Baluta <daniel.baluta@nxp.com>
> > > > > > > > > > > Signed-off-by: Andra Danciu <andradanciu1997@gmail.com>
> > > > > > ---
> > > > > > Changes since v2:
> > > > > >       - removed multiple new lines
> > > > > >
> > > > > > Changes since v1:
> > > > > >       - Added sai3 node because we need it to enable audio on pico-pi-8m
> > > > > >       - Added commit description
> > > > > >
> > > > > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 29
> > > > > > +++++++++++++++++++++++++++++
> > > > > >  1 file changed, 29 insertions(+)
> > > > > >
> > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > > index d09b808eff87..736cf81b695e 100644
> > > > > > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > > > > > @@ -278,6 +278,20 @@
> > > > > >                       #size-cells = <1>;
> > > > > >                       ranges = <0x30000000 0x30000000 0x400000>;
> > > > > >
> > > > > > > > > > > +                     sai6: sai@30030000 {
> > > > > > +                             compatible = "fsl,imx8mq-sai",
> > > > >
> > > > > I don't find this compatible string in sound/soc/fsl/fsl_sai.c. Aren't
> > > > > the registers at a different offset from "fsl,imx6sx-sai".
> > > >
> > > > Yes, you are right on this. We are trying to slowly push all our
> > > > internal-tree
> > > > patches to mainline. Obviously, with started with low hanging fruits,
> > > > DTS
> > > > nodes and small SAI fixes.
> > > >
> > > > Soon, we will start to send patches for SAI IP ipgrade for imx8.
> > > >
> > > > >
> > > > > How is this supposed to work ?
> > > > >
> > > >
> > > > For the moment it won't work unless we will upstream all our SAI
> > > > internal patches.
> > > > But we will get there hopefully this summer.
> > > >
> > >
> > > Shouldn't a working driver be upstream before enabling it in the
> > > devicetree ?
> >
> > I see your point here and maybe your suggestion is the ideal
> > way to do things.
> >
> > Anyhow, I don't see a problem with adding the node in dts
> > because CONFIG_FSL_SAI is not set in the default config.
> >
> > We try to speedup the upstreaming process giving the fact
> > that SAI patches will go through audio maintainer's tree and
> > the DTS patches will most likely go through Shawn's tree.
>
> I've also looked at adding audio support to one of the custom boards I
> have here and was caught a bit off guard by the fact that the SAI
> driver is totally broken for i.MX8M due to missing patches, as I
> assumed the necessary bits are in place before the DT patches are
> landed. It's certainly not how things are usually done.
>
> This also means the DT description of the SAI nodes is wrong, as they
> are actually not compatible to the "fsl,imx6sx-sai". The register
> layout is moved around, so there is no point in claiming any backwards
> compat with the old SAI version.
>
> Do you have an ETA when the necessary patches for the i.MX8M SAI will
> be available for test and review?

No ETA for this. Sorry! We try to upstream it as soon as possible
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index d09b808eff87..736cf81b695e 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -278,6 +278,20 @@ 
 			#size-cells = <1>;
 			ranges = <0x30000000 0x30000000 0x400000>;
 
+			sai6: sai@30030000 {
+				compatible = "fsl,imx8mq-sai",
+					"fsl,imx6sx-sai";
+				reg = <0x30030000 0x10000>;
+				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI6_IPG>,
+					<&clk IMX8MQ_CLK_SAI6_ROOT>,
+					<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			gpio1: gpio@30200000 {
 				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
 				reg = <0x30200000 0x10000>;
@@ -728,6 +742,21 @@ 
 				status = "disabled";
 			};
 
+			sai3: sai@308c0000 {
+				compatible = "fsl,imx8mq-sai",
+					     "fsl,imx6sx-sai";
+				reg = <0x308c0000 0x10000>;
+				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI3_IPG>,
+					<&clk IMX8MQ_CLK_DUMMY>,
+					<&clk IMX8MQ_CLK_SAI3_ROOT>,
+					<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			i2c1: i2c@30a20000 {
 				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
 				reg = <0x30a20000 0x10000>;