diff mbox series

ARM: mx6: ddr: Add support for iMX6UL/ULL/SL/SDL

Message ID 20200912233508.55406-1-marex@denx.de
State Accepted
Commit d1a7205532a34bad2b83451258ca4ccacb9085e4
Delegated to: Stefano Babic
Headers show
Series ARM: mx6: ddr: Add support for iMX6UL/ULL/SL/SDL | expand

Commit Message

Marek Vasut Sept. 12, 2020, 11:35 p.m. UTC
This patch adds support for iMX6UL/ULL/SL/SDL MMDC into the DDR calibration
code. The difference between MX6DQ and MX6UL/ULL/SL is that the later SoCs
have 2 SDQS registers, just like MX6SX, while the MX6DQ/MX6SDL has 8.

Fixes: 4f4c128c65 ("ARM: mx6: ddr: Add support for iMX6SX")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 arch/arm/mach-imx/mx6/ddr.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Fabio Estevam Sept. 14, 2020, 11:04 a.m. UTC | #1
Hi Marek,

On Sat, Sep 12, 2020 at 8:35 PM Marek Vasut <marex@denx.de> wrote:
>
> This patch adds support for iMX6UL/ULL/SL/SDL MMDC into the DDR calibration
> code. The difference between MX6DQ and MX6UL/ULL/SL is that the later SoCs
> have 2 SDQS registers, just like MX6SX, while the MX6DQ/MX6SDL has 8.
>
> Fixes: 4f4c128c65 ("ARM: mx6: ddr: Add support for iMX6SX")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Eric Nelson <eric@nelint.com>
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>

Reviewed-by: Fabio Estevam <festevam@gmail.com>
Stefano Babic Sept. 18, 2020, 2:06 p.m. UTC | #2
> This patch adds support for iMX6UL/ULL/SL/SDL MMDC into the DDR calibration
> code. The difference between MX6DQ and MX6UL/ULL/SL is that the later SoCs
> have 2 SDQS registers, just like MX6SX, while the MX6DQ/MX6SDL has 8.
> Fixes: 4f4c128c65 ("ARM: mx6: ddr: Add support for iMX6SX")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Eric Nelson <eric@nelint.com>
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/mx6/ddr.c b/arch/arm/mach-imx/mx6/ddr.c
index 16df71083d..f872bfdab3 100644
--- a/arch/arm/mach-imx/mx6/ddr.c
+++ b/arch/arm/mach-imx/mx6/ddr.c
@@ -250,16 +250,31 @@  int mmdc_do_write_level_calibration(struct mx6_ddr_sysinfo const *sysinfo)
 
 static void mmdc_set_sdqs(bool set)
 {
+	struct mx6sdl_iomux_ddr_regs *mx6sdl_ddr_iomux =
+		(struct mx6sdl_iomux_ddr_regs *)MX6SDL_IOM_DDR_BASE;
 	struct mx6dq_iomux_ddr_regs *mx6dq_ddr_iomux =
 		(struct mx6dq_iomux_ddr_regs *)MX6DQ_IOM_DDR_BASE;
 	struct mx6sx_iomux_ddr_regs *mx6sx_ddr_iomux =
 		(struct mx6sx_iomux_ddr_regs *)MX6SX_IOM_DDR_BASE;
+	struct mx6sl_iomux_ddr_regs *mx6sl_ddr_iomux =
+		(struct mx6sl_iomux_ddr_regs *)MX6SL_IOM_DDR_BASE;
+	struct mx6ul_iomux_ddr_regs *mx6ul_ddr_iomux =
+		(struct mx6ul_iomux_ddr_regs *)MX6UL_IOM_DDR_BASE;
 	int i, sdqs_cnt;
 	u32 sdqs;
 
 	if (is_mx6sx()) {
 		sdqs = (u32)(&mx6sx_ddr_iomux->dram_sdqs0);
 		sdqs_cnt = 2;
+	} else if (is_mx6sl()) {
+		sdqs = (u32)(&mx6sl_ddr_iomux->dram_sdqs0);
+		sdqs_cnt = 2;
+	} else if (is_mx6ul() || is_mx6ull()) {
+		sdqs = (u32)(&mx6ul_ddr_iomux->dram_sdqs0);
+		sdqs_cnt = 2;
+	} else if (is_mx6sdl()) {
+		sdqs = (u32)(&mx6sdl_ddr_iomux->dram_sdqs0);
+		sdqs_cnt = 8;
 	} else {	/* MX6DQ */
 		sdqs = (u32)(&mx6dq_ddr_iomux->dram_sdqs0);
 		sdqs_cnt = 8;