mbox series

[00/10] arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini

Message ID 20201202121241.109952-1-jagan@amarulasolutions.com
Headers show
Series arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini | expand

Message

Jagan Teki Dec. 2, 2020, 12:12 p.m. UTC
This is the initial series to support Engicam i.Core MX8M Mini SOM
and it's associated carrier board dts(i) support.

Add minimal changes to access and boot SD, eMMC, and the rest of 
the changes added in the coming days.

i.Core MX8M Mini is an EDIMM SOM based on NXP i.MX8MM from Engicam.

i.Core MX8M Mini needs to mount on top of Engicam baseboards for
creating complete platform boards.

Possible baseboards are,
- EDIMM2.2
- C.TOUCH 2.0
- C.TOUCH 2.0 10.1" Open Frame

Engicam i.Core MX8MM has PF8X00 PMIC and which is merged in linux-next,
https://lore.kernel.org/linux-devicetree/20201130112329.104614-2-jagan@amarulasolutions.com

Any inputs?
Jagan.

Jagan Teki (10):
  arm64: defconfig: Enable REGULATOR_PF8X00
  dt-bindings: arm: fsl: Add Engicam i.Core MX8M Mini EDIMM2.2 Starter Kit
  arm64: dts: imx: Add Engicam EDIMM2.2 Starter Kit
  arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini SOM
  arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini EDIMM2.2 Starter Kit
  arm64: dts: imx: Add Engicam C.TOUCH 2.0
  dt-bindings: arm: fsl: Add Engicam i.Core MX8M Mini C.TOUCH 2.0
  arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini C.TOUCH 2.0
  dt-bindings: arm: fsl: Add Engicam i.Core MX8M Mini C.TOUCH 2.0 10.1" OF
  arm64: dts: imx8mm: Add Engicam i.Core MX8M Mini C.TOUCH 2.0 10.1" OF

 .../devicetree/bindings/arm/fsl.yaml          |   4 +
 arch/arm64/boot/dts/freescale/Makefile        |   3 +
 .../dts/freescale/imx8mm-engicam-common.dtsi  |  24 ++
 .../dts/freescale/imx8mm-engicam-ctouch2.dtsi |   7 +
 .../freescale/imx8mm-engicam-edimm2.2.dtsi    |   7 +
 ...mx8mm-engicam-icore-mx8mm-ctouch2-of10.dts |  21 ++
 .../imx8mm-engicam-icore-mx8mm-ctouch2.dts    |  21 ++
 .../imx8mm-engicam-icore-mx8mm-edimm2.2.dts   |  21 ++
 .../freescale/imx8mm-engicam-icore-mx8mm.dtsi | 209 ++++++++++++++++++
 arch/arm64/configs/defconfig                  |   1 +
 10 files changed, 318 insertions(+)
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-common.dtsi
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-edimm2.2.dtsi
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2.dts
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-edimm2.2.dts
 create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm.dtsi

Comments

Krzysztof Kozlowski Dec. 2, 2020, 5:24 p.m. UTC | #1
On Wed, Dec 02, 2020 at 05:42:38PM +0530, Jagan Teki wrote:
> i.Core MX8M Mini is an EDIMM SOM based on NXP i.MX8MM from Engicam.
> 
> C.TOUCH 2.0 is a general purpose carrier board with capacitive
> touch interface support.
> 
> i.Core MX8M Mini needs to mount on top of this Carrier board for
> creating complete i.Core MX8M Mini C.TOUCH 2.0 board.

This should be squashed with previous one. You basically add support for
both similar boards so there is no reason to split the bindings change
into two.

Best regards,
Krzysztof
Krzysztof Kozlowski Dec. 2, 2020, 5:39 p.m. UTC | #2
On Wed, Dec 02, 2020 at 05:42:37PM +0530, Jagan Teki wrote:
> Engicam C.TOUCH 2.0 is an EDIMM compliant general purpose
> carrier board with capacitive touch interface.
> 
> Genaral features:
> - TFT 10.1" industrial, 1280x800 LVDS display
> - Ethernet 10/100
> - Wifi/BT
> - USB Type A/OTG
> - Audio Out
> - CAN
> - LVDS panel connector
> 
> SOM's like i.Core MX8M Mini needs to mount on top of this Carrier
> board for creating complete i.Core MX8M Mini C.TOUCH 2.0 board.
> 
> Add support for it.
> 
> Signed-off-by: Matteo Lisi <matteo.lisi@engicam.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi | 7 +++++++
>  1 file changed, 7 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi
> new file mode 100644
> index 000000000000..294df07289a2
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-engicam-ctouch2.dtsi
> @@ -0,0 +1,7 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2020 Engicam srl
> + * Copyright (c) 2020 Amarula Solutions(India)
> + */
> +
> +#include "imx8mm-engicam-common.dtsi"

I don't see any point of this DTS. You have a DTSI to include a DTSI.
Please describe in details your DTS architecture...

Best regards,
Krzysztof
Krzysztof Kozlowski Dec. 2, 2020, 5:49 p.m. UTC | #3
On Wed, Dec 02, 2020 at 05:42:41PM +0530, Jagan Teki wrote:
> i.Core MX8M Mini is an EDIMM SOM based on NXP i.MX8MM from Engicam.
> 
> C.TOUCH 2.0 is a general purpose carrier board with capacitive
> touch interface support.
> 
> 10.1" OF is a capacitive touch 10.1" Open Frame panel solutions.
> 
> i.Core MX8M Mini needs to mount on top of C.TOUCH 2.0 carrier with
> pluged 10.1" OF for creating complete i.Core MX8M Mini C.TOUCH 2.0
> 10.1" Open Frame solution board.
> 
> Add support for it.
> 
> Signed-off-by: Matteo Lisi <matteo.lisi@engicam.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |  1 +
>  ...mx8mm-engicam-icore-mx8mm-ctouch2-of10.dts | 21 +++++++++++++++++++
>  2 files changed, 22 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 8191db4c64fa..9725bbc0f268 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -31,6 +31,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2162a-qds.dtb
>  
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-engicam-icore-mx8mm-ctouch2.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-engicam-icore-mx8mm-ctouch2-of10.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-engicam-icore-mx8mm-edimm2.2.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts b/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts
> new file mode 100644
> index 000000000000..0124ba5ec69c
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2019 NXP
> + * Copyright (c) 2019 Engicam srl
> + * Copyright (c) 2020 Amarula Solutions(India)
> + */
> +
> +/dts-v1/;
> +#include "imx8mm.dtsi"
> +#include "imx8mm-engicam-ctouch2.dtsi"
> +#include "imx8mm-engicam-icore-mx8mm.dtsi"
> +
> +/ {
> +	model = "Engicam i.Core MX8M Mini C.TOUCH 2.0 10.1\" Open Frame";
> +	compatible = "engicam,icore-mx8mm-ctouch2-of10", "engicam,icore-mx8mm",
> +		     "fsl,imx8mm";

No. You created 3 DTS and 3 DTSI which are all the same. The output DTB
is probably the same for all three DTS files. Only one DTSI has anything
inside, all others are just copy paste.

Best regards,
Krzysztof
Jagan Teki Dec. 2, 2020, 7:36 p.m. UTC | #4
On Thu, Dec 3, 2020 at 12:55 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On Thu, Dec 03, 2020 at 12:50:37AM +0530, Jagan Teki wrote:
> > Hi Krzysztof,
> >
> > On Wed, Dec 2, 2020 at 11:15 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > >
> > > On Wed, Dec 02, 2020 at 05:42:39PM +0530, Jagan Teki wrote:
> > > > i.Core MX8M Mini is an EDIMM SOM based on NXP i.MX8MM from Engicam.
> > > >
> > > > C.TOUCH 2.0 is a general purpose carrier board with capacitive
> > > > touch interface support.
> > > >
> > > > i.Core MX8M Mini needs to mount on top of this Carrier board for
> > > > creating complete i.Core MX8M Mini C.TOUCH 2.0 board.
> > > >
> > > > Add support for it.
> > > >
> > > > Signed-off-by: Matteo Lisi <matteo.lisi@engicam.com>
> > > > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> > > > ---
> > > >  arch/arm64/boot/dts/freescale/Makefile        |  1 +
> > > >  .../imx8mm-engicam-icore-mx8mm-ctouch2.dts    | 21 +++++++++++++++++++
> > > >  2 files changed, 22 insertions(+)
> > > >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2.dts
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> > > > index 4369d783dade..8191db4c64fa 100644
> > > > --- a/arch/arm64/boot/dts/freescale/Makefile
> > > > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > > > @@ -30,6 +30,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> > > >  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2162a-qds.dtb
> > > >
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb
> > > > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-engicam-icore-mx8mm-ctouch2.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mm-engicam-icore-mx8mm-edimm2.2.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> > > >  dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2.dts b/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2.dts
> > > > new file mode 100644
> > > > index 000000000000..aa3c03ad3109
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mm-engicam-icore-mx8mm-ctouch2.dts
> > > > @@ -0,0 +1,21 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright (c) 2019 NXP
> > > > + * Copyright (c) 2019 Engicam srl
> > > > + * Copyright (c) 2020 Amarula Solutions(India)
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +#include "imx8mm.dtsi"
> > >
> > > You have multiple DTSI files to only include one DTSI. I was trying to
> > > follow the logic here but I failed...
> > >
> > > This is ctouch, so it should include SoM, which you call icore. But it
> > > also includes ctouch2 which *only* includes common DTSI. It's then
> > > exactly the same as starter kit which includes edimm (which includes
> > > common) and icore.
> >
> > I hope you have checked the cover letter where I have mentioned all
> > the combinations.
> >
> > 1. SoM, Starter Kit, Carrier Board, Open Frame are three different hardware.
> >
> > 2. i.Core MX8M Mini is SoM
> >
> > 3. EDIMM 2.2 is Starter Kit
> >
> > 4. C.TOUCH 2.0 is Carrier board
> >
> > 5. 10"1 Open Frame board for LVDS
> >
> > The combination of respective hardware mounting is,
> >
> > 1. SOM+Starter Kitt => i.Core MX8M Mini EDIMM 2.2 Starter Kit
> >
> > 2. SOM+C.TOUCH 2.0 => i.Core MX8M Mini C.TOUCH 2.0 Carrier board
> >
> > 3. SOM+C.TOUCH 2.0+10.1" OF => i.Core MX8M Mini C.TOUCH 2.0 10.1" Open
> > Frame board
>
> It does not explain why you created 3 empty DTSI and 2 empty DTS files.
>
> >
> > About the bindings, (please check the
> > arch/arm64/boot/dts/rockchip/px30-engicam-*), It's been discussed
> > before with Rob for these boards bindings.
>
> Refer to my specific comments about bindings.
>
> >
> > To, compare with what we have described with rockchip
> >
> > SoM binding,
> > - engicam,icore-mx8mm is binding for i.Core MX8M Mini SoM
> > - engicam,px30-core is binding for PX30.Core SoM
> >
> > EDIMM 2.2 is Starter Kit binding,
> > - engicam,icore-mx8mm-edimm2.2 is binding for EDIMM 2.2 is Starter Kit
> > in i.MX8MM
> > - engicam,px30-core-edimm2.2 is binding for EDIMM 2.2 is Starter Kit in PX30
> >
> > C.TOUCH 2.0 is Carrier board binding,
> > - engicam,icore-mx8mm-ctouch2 is binding for C.TOUCH 2.0 is Carrier
> > board in i.MX8MM
> > - engicam,px30-core-ctouch2 is binding for C.TOUCH 2.0 is Carrier board in PX30
> >
> > C.TOUCH 2.0 10"1 OF binding,
> > - engicam,icore-mx8mm-ctouch2-of10 is binding for C.TOUCH 2.0 10"1 in imx8MM
> > - engicam,px30-core-ctouch2-of10 for C.TOUCH 2.0 10"1 in PX30
> >
> > So, there are 3 board combinations of which each board has a binding
> > of SoM and respective carrier binding like i.Core MX8M Mini EDIMM 2.2
> > Starter Kit has
> > "engicam,icore-mx8mm-edimm2.2", "engicam,icore-mx8mm"
> > "engicam,icore-mx8mm-ctouch2", "engicam,icore-mx8mm"
> > "engicam,icore-mx8mm-ctouch2-of10", "engicam,icore-mx8mm"
> >
> > Some of the DTS files are using the engicam-common.dtsi nodes and for
> > ie reason those are empty and some need to have lvds display node
> > which is still underworking.
>
> Therefore add them when you have any contents for these DTS files.
>
> >
> > Hope this information helpful. Let me know for further inputs.
>
> Thanks for the information but it was not much helpful. It does not
> answer at all why you have so many empty files, why you include
> imx8mm.dtsi not in the SoM but somewhere else.

Sorry, I have missed it.

All these three carrier board dtsi files,

imx8mm-engicam-edimm2.2.dtsi
imx8mm-engicam-icore-mx8mm-ctouch2.dts
imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts

are included imx8mm-engicam-common.dtsi. ie is the reason these are empty.

And I agree with your point of adding whenever it ready. I will drop
display related carrier imx8mm-engicam-icore-mx8mm-ctouch2-of10.dts
when DSI, LVDS ready, and update on next versions.

Thanks for the review.

Jagan.