diff mbox series

[1/3] dt-bindings: arm: fsl: Add imx8mm ddr4 evk board

Message ID 1595918641-2325-1-git-send-email-ping.bai@nxp.com
State Not Applicable, archived
Headers show
Series [1/3] dt-bindings: arm: fsl: Add imx8mm ddr4 evk board | expand

Checks

Context Check Description
robh/checkpatch success
robh/dt-meta-schema success

Commit Message

Jacky Bai July 28, 2020, 6:43 a.m. UTC
Add entry for i.MX8MM DDR4 EVK board and update
the comments for imx8mm-evk as it is populated
with LPDDR4.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
---
 Documentation/devicetree/bindings/arm/fsl.yaml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Rob Herring July 31, 2020, 9 p.m. UTC | #1
On Tue, 28 Jul 2020 14:43:59 +0800, Jacky Bai wrote:
> Add entry for i.MX8MM DDR4 EVK board and update
> the comments for imx8mm-evk as it is populated
> with LPDDR4.
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> ---
>  Documentation/devicetree/bindings/arm/fsl.yaml | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 

Acked-by: Rob Herring <robh@kernel.org>
Jacky Bai Aug. 18, 2020, 1 a.m. UTC | #2
Gentle Ping...


BR
Jacky Bai
> -----Original Message-----
> From: Jacky Bai
> Sent: Tuesday, July 28, 2020 2:44 PM
> To: robh+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de
> Cc: festevam@gmail.com; kernel@pengutronix.de; dl-linux-imx
> <linux-imx@nxp.com>; devicetree@vger.kernel.org
> Subject: [PATCH 3/3] arm64: dts: imx8mm: Add imx8mm ddr4 evk board
> support
> 
> Add the board dts support for i.MX8MM DDR4 EVK board.
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |  1 +
>  .../boot/dts/freescale/imx8mm-ddr4-evk.dts    | 77
> +++++++++++++++++++
>  2 files changed, 78 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile
> b/arch/arm64/boot/dts/freescale/Makefile
> index a39f0a1723e0..417c552480f2 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) +=
> fsl-lx2160a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> 
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb diff --git
> a/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> new file mode 100644
> index 000000000000..9cd89182218e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> @@ -0,0 +1,77 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2020 NXP
> + */
> +
> +/dts-v1/;
> +
> +#include "imx8mm-evk.dtsi"
> +
> +/ {
> +	model = "FSL i.MX8MM DDR4 EVK with CYW43455 WIFI/BT board";
> +	compatible = "fsl,imx8mm-ddr4-evk", "fsl,imx8mm";
> +
> +	leds {
> +		pinctrl-0 = <&pinctrl_gpio_led_2>;
> +
> +		status {
> +			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +};
> +
> +&ddrc {
> +	operating-points-v2 = <&ddrc_opp_table>;
> +
> +	ddrc_opp_table: opp-table {
> +		compatible = "operating-points-v2";
> +
> +		opp-25M {
> +			opp-hz = /bits/ 64 <25000000>;
> +		};
> +
> +		opp-100M {
> +			opp-hz = /bits/ 64 <100000000>;
> +		};
> +
> +		opp-600M {
> +			opp-hz = /bits/ 64 <600000000>;
> +		};
> +	};
> +};
> +
> +&gpmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_gpmi_nand_1>;
> +	status = "okay";
> +	nand-on-flash-bbt;
> +};
> +
> +&iomuxc {
> +	pinctrl_gpmi_nand_1: gpmi-nand-1 {
> +		fsl,pins = <
> +			MX8MM_IOMUXC_NAND_ALE_RAWNAND_ALE
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_CE1_B_RAWNAND_CE1_B
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_CLE_RAWNAND_CLE
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA00_RAWNAND_DATA00
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA01_RAWNAND_DATA01
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA02_RAWNAND_DATA02
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA03_RAWNAND_DATA03
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA04_RAWNAND_DATA04
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA05_RAWNAND_DATA05
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA06_RAWNAND_DATA06
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_DATA07_RAWNAND_DATA07
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_RE_B_RAWNAND_RE_B
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B
> 	0x00000056
> +			MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B
> 	0x00000096
> +			MX8MM_IOMUXC_NAND_WP_B_RAWNAND_WP_B
> 	0x00000096
> +		>;
> +	};
> +
> +	pinctrl_gpio_led_2: gpioled2grp {
> +		fsl,pins = <
> +			MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4	0x19
> +		>;
> +	};
> +};
> --
> 2.26.2
Shawn Guo Aug. 19, 2020, 1:55 p.m. UTC | #3
On Tue, Jul 28, 2020 at 02:44:01PM +0800, Jacky Bai wrote:
> Add the board dts support for i.MX8MM DDR4 EVK board.
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/Makefile        |  1 +
>  .../boot/dts/freescale/imx8mm-ddr4-evk.dts    | 77 +++++++++++++++++++
>  2 files changed, 78 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> 
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index a39f0a1723e0..417c552480f2 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
>  
>  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
>  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> new file mode 100644
> index 000000000000..9cd89182218e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> @@ -0,0 +1,77 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2020 NXP
> + */
> +
> +/dts-v1/;
> +
> +#include "imx8mm-evk.dtsi"
> +
> +/ {
> +	model = "FSL i.MX8MM DDR4 EVK with CYW43455 WIFI/BT board";
> +	compatible = "fsl,imx8mm-ddr4-evk", "fsl,imx8mm";
> +
> +	leds {
> +		pinctrl-0 = <&pinctrl_gpio_led_2>;
> +
> +		status {
> +			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +};
> +
> +&ddrc {
> +	operating-points-v2 = <&ddrc_opp_table>;
> +
> +	ddrc_opp_table: opp-table {
> +		compatible = "operating-points-v2";
> +
> +		opp-25M {
> +			opp-hz = /bits/ 64 <25000000>;
> +		};
> +
> +		opp-100M {
> +			opp-hz = /bits/ 64 <100000000>;
> +		};
> +
> +		opp-600M {
> +			opp-hz = /bits/ 64 <600000000>;
> +		};
> +	};

I'm trying to understand how this ddrc_opp_table is determined.  It's
defined by SoC/DDR controller or board/DDR chip?

> +};
> +
> +&gpmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_gpmi_nand_1>;
> +	status = "okay";

Please put 'status' at end of property list.

> +	nand-on-flash-bbt;
> +};
> +
> +&iomuxc {
> +	pinctrl_gpmi_nand_1: gpmi-nand-1 {

The suffix "1" isn't really needed, is it?

Shawn

> +		fsl,pins = <
> +			MX8MM_IOMUXC_NAND_ALE_RAWNAND_ALE		0x00000096
> +			MX8MM_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B		0x00000096
> +			MX8MM_IOMUXC_NAND_CE1_B_RAWNAND_CE1_B		0x00000096
> +			MX8MM_IOMUXC_NAND_CLE_RAWNAND_CLE		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA00_RAWNAND_DATA00		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA01_RAWNAND_DATA01		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA02_RAWNAND_DATA02		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA03_RAWNAND_DATA03		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA04_RAWNAND_DATA04		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA05_RAWNAND_DATA05		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA06_RAWNAND_DATA06		0x00000096
> +			MX8MM_IOMUXC_NAND_DATA07_RAWNAND_DATA07		0x00000096
> +			MX8MM_IOMUXC_NAND_RE_B_RAWNAND_RE_B		0x00000096
> +			MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B	0x00000056
> +			MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B		0x00000096
> +			MX8MM_IOMUXC_NAND_WP_B_RAWNAND_WP_B		0x00000096
> +		>;
> +	};
> +
> +	pinctrl_gpio_led_2: gpioled2grp {
> +		fsl,pins = <
> +			MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4	0x19
> +		>;
> +	};
> +};
> -- 
> 2.26.2
>
Jacky Bai Aug. 20, 2020, 12:48 a.m. UTC | #4
> -----Original Message-----
> From: Shawn Guo [mailto:shawnguo@kernel.org]
> Sent: Wednesday, August 19, 2020 9:56 PM
> To: Jacky Bai <ping.bai@nxp.com>
> Cc: robh+dt@kernel.org; s.hauer@pengutronix.de; festevam@gmail.com;
> kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>;
> devicetree@vger.kernel.org
> Subject: Re: [PATCH 3/3] arm64: dts: imx8mm: Add imx8mm ddr4 evk board
> support
> 
> On Tue, Jul 28, 2020 at 02:44:01PM +0800, Jacky Bai wrote:
> > Add the board dts support for i.MX8MM DDR4 EVK board.
> >
> > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > ---
> >  arch/arm64/boot/dts/freescale/Makefile        |  1 +
> >  .../boot/dts/freescale/imx8mm-ddr4-evk.dts    | 77
> +++++++++++++++++++
> >  2 files changed, 78 insertions(+)
> >  create mode 100644
> arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> >
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > b/arch/arm64/boot/dts/freescale/Makefile
> > index a39f0a1723e0..417c552480f2 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) +=
> fsl-lx2160a-qds.dtb
> >  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> >
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
> >  dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb diff --git
> > a/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> > b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> > new file mode 100644
> > index 000000000000..9cd89182218e
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dts
> > @@ -0,0 +1,77 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * Copyright 2020 NXP
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "imx8mm-evk.dtsi"
> > +
> > +/ {
> > +	model = "FSL i.MX8MM DDR4 EVK with CYW43455 WIFI/BT board";
> > +	compatible = "fsl,imx8mm-ddr4-evk", "fsl,imx8mm";
> > +
> > +	leds {
> > +		pinctrl-0 = <&pinctrl_gpio_led_2>;
> > +
> > +		status {
> > +			gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
> > +		};
> > +	};
> > +};
> > +
> > +&ddrc {
> > +	operating-points-v2 = <&ddrc_opp_table>;
> > +
> > +	ddrc_opp_table: opp-table {
> > +		compatible = "operating-points-v2";
> > +
> > +		opp-25M {
> > +			opp-hz = /bits/ 64 <25000000>;
> > +		};
> > +
> > +		opp-100M {
> > +			opp-hz = /bits/ 64 <100000000>;
> > +		};
> > +
> > +		opp-600M {
> > +			opp-hz = /bits/ 64 <600000000>;
> > +		};
> > +	};
> 
> I'm trying to understand how this ddrc_opp_table is determined.  It's
> defined by SoC/DDR controller or board/DDR chip?

It is related to both SOC DDR controller & the board design. The highest frequency is 600MHz(2400MTS) for DDR4,
750MHz(3000MTS) or 800MHz(3200MTS) for LPDDR4. The lowest frequency also related to DDR type. For LPDDR4,
DDRC can run at 25MHz(100MTS), for DDR4, the lowest frequency need to >166MHz.

The OPPs defined in dts must be aligned with the OPPs initialized during DDR calibration stage after SOC POR Boot.

it seems the ddrc opp table for DDR4 EVK is not correct, I will remove it from this patchset for now, will add it back in a separate patch.

> 
> > +};
> > +
> > +&gpmi {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_gpmi_nand_1>;
> > +	status = "okay";
> 
> Please put 'status' at end of property list.

Thanks, will fix it.

> 
> > +	nand-on-flash-bbt;
> > +};
> > +
> > +&iomuxc {
> > +	pinctrl_gpmi_nand_1: gpmi-nand-1 {
> 
> The suffix "1" isn't really needed, is it?
> 

Thanks, will fix it in V2.

BR
Jacky Bai

> Shawn
> 
> > +		fsl,pins = <
> > +			MX8MM_IOMUXC_NAND_ALE_RAWNAND_ALE
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_CE1_B_RAWNAND_CE1_B
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_CLE_RAWNAND_CLE
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA00_RAWNAND_DATA00
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA01_RAWNAND_DATA01
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA02_RAWNAND_DATA02
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA03_RAWNAND_DATA03
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA04_RAWNAND_DATA04
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA05_RAWNAND_DATA05
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA06_RAWNAND_DATA06
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_DATA07_RAWNAND_DATA07
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_RE_B_RAWNAND_RE_B
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B
> 	0x00000056
> > +			MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B
> 	0x00000096
> > +			MX8MM_IOMUXC_NAND_WP_B_RAWNAND_WP_B
> 	0x00000096
> > +		>;
> > +	};
> > +
> > +	pinctrl_gpio_led_2: gpioled2grp {
> > +		fsl,pins = <
> > +			MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4	0x19
> > +		>;
> > +	};
> > +};
> > --
> > 2.26.2
> >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index f63895c8ce2d..7c1cb8953342 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -341,7 +341,8 @@  properties:
       - description: i.MX8MM based Boards
         items:
           - enum:
-              - fsl,imx8mm-evk            # i.MX8MM EVK Board
+              - fsl,imx8mm-ddr4-evk       # i.MX8MM DDR4 EVK Board
+              - fsl,imx8mm-evk            # i.MX8MM LPDDR4 EVK Board
           - const: fsl,imx8mm
 
       - description: i.MX8MN based Boards