Skip to contentSkip to conversation

i.mx: add the initial i.mx6q core/board support

PATCH Superseded Jason Liu 4 participants 20 messages Nov 18, 2011 – Nov 24, 2011 1 message not in the archive

Subsystems (6)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Jason Liu

author
#0 lore raw

v2 cover i.mx: add the initial i.mx6q core/board support

This patch-set add the initial support for freescale i.mx6q support. freescale i.mx6q is a quad core built on arm cortex_a9 complex.

The patch-set has been tested ok on freescale i.mx6q Armadillo2 board and also make sure it does not break i.mx5 support

The v1 patch-set has also been tested Ok by: Dirk Behme

Jason Liu (6):
i.mx: introduce the armv7/imx-common folder
i.mx: add the initial support for freescale i.MX6Q processor i.mx: mxc_gpio: add the i.mx6q support
i.mx: serial_mxc: add the i.mx6q support
i.mx: fsl_esdhc: add the i.mx6q support
i.mx: i.mx6q: add the initial support for i.mx6q ARM2 board
---
v2: see detailed change log in each commit

 MAINTAINERS                                        |    1 +
 Makefile                                           |    7 +
 arch/arm/cpu/armv7/imx-common/Makefile             |   47 +
 arch/arm/cpu/armv7/imx-common/cpu.c                |  108 ++
 arch/arm/cpu/armv7/{mx5 => imx-common}/speed.c     |    0
 arch/arm/cpu/armv7/{mx5 => imx-common}/timer.c     |   17 +-
 arch/arm/cpu/armv7/mx5/Makefile                    |    2 +-
 arch/arm/cpu/armv7/mx5/soc.c                       |   77 -
 arch/arm/cpu/armv7/mx6/Makefile                    |   48 +
 arch/arm/cpu/armv7/mx6/clock.c                     |  366 +++++
 arch/arm/cpu/armv7/mx6/iomux-v3.c                  |   71 +
 .../cpu/armv7/{mx5/speed.c => mx6/lowlevel_init.S} |   27 +-
 arch/arm/cpu/armv7/mx6/soc.c                       |   93 ++
 arch/arm/include/asm/arch-mx6/ccm_regs.h           |  894 +++++++++++
 .../mx5/speed.c => include/asm/arch-mx6/clock.h}   |   45 +-
 .../mx5/speed.c => include/asm/arch-mx6/gpio.h}    |   30 +-
 arch/arm/include/asm/arch-mx6/imx-regs.h           |  234 +++
 arch/arm/include/asm/arch-mx6/iomux-v3.h           |  103 ++
 arch/arm/include/asm/arch-mx6/mx6x_pins.h          | 1683 ++++++++++++++++++++
 .../speed.c => include/asm/arch-mx6/sys_proto.h}   |   31 +-
 board/freescale/mx6qarm2/Makefile                  |   42 +
 board/freescale/mx6qarm2/imximage.cfg              |  167 ++
 board/freescale/mx6qarm2/mx6qarm2.c                |  155 ++
 boards.cfg                                         |    1 +
 drivers/gpio/mxc_gpio.c                            |    4 +-
 drivers/mmc/fsl_esdhc.c                            |   12 +-
 drivers/serial/serial_mxc.c                        |   10 +-
 include/configs/mx6qarm2.h                         |  162 ++
 28 files changed, 4268 insertions(+), 169 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/imx-common/Makefile
 create mode 100644 arch/arm/cpu/armv7/imx-common/cpu.c
 copy arch/arm/cpu/armv7/{mx5 => imx-common}/speed.c (100%)
 rename arch/arm/cpu/armv7/{mx5 => imx-common}/timer.c (84%)
 mode change 100644 => 100755
 create mode 100644 arch/arm/cpu/armv7/mx6/Makefile
 create mode 100644 arch/arm/cpu/armv7/mx6/clock.c
 create mode 100644 arch/arm/cpu/armv7/mx6/iomux-v3.c
 copy arch/arm/cpu/armv7/{mx5/speed.c => mx6/lowlevel_init.S} (58%)
 create mode 100644 arch/arm/cpu/armv7/mx6/soc.c
 create mode 100644 arch/arm/include/asm/arch-mx6/ccm_regs.h
 copy arch/arm/{cpu/armv7/mx5/speed.c => include/asm/arch-mx6/clock.h} (59%)
 copy arch/arm/{cpu/armv7/mx5/speed.c => include/asm/arch-mx6/gpio.h} (64%)
 create mode 100644 arch/arm/include/asm/arch-mx6/imx-regs.h
 create mode 100644 arch/arm/include/asm/arch-mx6/iomux-v3.h
 create mode 100644 arch/arm/include/asm/arch-mx6/mx6x_pins.h
 rename arch/arm/{cpu/armv7/mx5/speed.c => include/asm/arch-mx6/sys_proto.h} (65%)
 create mode 100644 board/freescale/mx6qarm2/Makefile
 create mode 100644 board/freescale/mx6qarm2/imximage.cfg
 create mode 100644 board/freescale/mx6qarm2/mx6qarm2.c
 create mode 100644 include/configs/mx6qarm2.h
Signature · 1 line
1.7.4.1
author
#1 lore raw

PATCH v2 1/6 i.mx: introduce the armv7/imx-common folder

In order to support the coming MX6 platform and to reducde the duplicated code, we had better move some common files or functions to the imx-common folder for sharing.

This patch does the following:
- move speed.c file from armv7/mx5/speed.c to armv7/imx-common/speed.c
- move armv7/mx5/timer.c to armv7/imx-common/timer.c, no any new feature added but just fix the checkpatch errors in the old file and remove the CONFIG_SYS_MX5_CLK32 reference in the file
- create one new file cpu.c file to store the common function with i.mx5/6

Cc Stefano Babic <[email protected]>

---
V2:extend the commit message to reflect all the changes in the patch
rename cpu_info.c to cpu.c file under imx-common as Stefano comments

---
 Makefile                                       |    7 ++
 arch/arm/cpu/armv7/imx-common/Makefile         |   47 ++++++++++
 arch/arm/cpu/armv7/imx-common/cpu.c            |  108 ++++++++++++++++++++++++
 arch/arm/cpu/armv7/{mx5 => imx-common}/speed.c |    0
 arch/arm/cpu/armv7/{mx5 => imx-common}/timer.c |   17 ++--
 arch/arm/cpu/armv7/mx5/Makefile                |    2 +-
 arch/arm/cpu/armv7/mx5/soc.c                   |   77 -----------------
 7 files changed, 172 insertions(+), 86 deletions(-)
Makefile +7 -0
index 294c762..9672a10 100644
@@ -300,6 +300,13 @@ ifeq ($(SOC),omap4)
 LIBS += $(CPUDIR)/omap-common/libomap-common.o
 endif
 
+ifeq ($(SOC),mx5)
+LIBS += $(CPUDIR)/imx-common/libimx-common.o
+endif
+ifeq ($(SOC),mx6)
+LIBS += $(CPUDIR)/imx-common/libimx-common.o
+endif
+
 ifeq ($(SOC),s5pc1xx)
 LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
 endif
arch/arm/cpu/armv7/imx-common/Makefile new file +47 -0

47 lines not on this page · raw message

arch/arm/cpu/armv7/imx-common/cpu.c new file +108 -0

108 lines not on this page · raw message

arch/arm/cpu/armv7/imx-common/speed.c renamed from arch/arm/cpu/armv7/mx5/speed.c +0 -0
similarity index 100%
rename from arch/arm/cpu/armv7/mx5/speed.c
rename to arch/arm/cpu/armv7/imx-common/speed.c
arch/arm/cpu/armv7/imx-common/timer.c renamed from arch/arm/cpu/armv7/mx5/timer.c +9 -8
old mode 100644
new mode 100755
similarity index 84%
rename from arch/arm/cpu/armv7/mx5/timer.c
rename to arch/arm/cpu/armv7/imx-common/timer.c
index 2544b08..98e9f4a
@@ -39,10 +39,11 @@ struct mxc_gpt {
 static struct mxc_gpt *cur_gpt = (struct mxc_gpt *)GPT1_BASE_ADDR;
 
 /* General purpose timers bitfields */
-#define GPTCR_SWR       (1<<15)	/* Software reset */
-#define GPTCR_FRR       (1<<9)	/* Freerun / restart */
-#define GPTCR_CLKSOURCE_32 (4<<6)	/* Clock source */
-#define GPTCR_TEN       (1)	/* Timer enable */
+#define GPTCR_SWR		(1 << 15)	/* Software reset */
+#define GPTCR_FRR		(1 << 9)	/* Freerun / restart */
+#define GPTCR_CLKSOURCE_32	(4 << 6)	/* Clock source */
+#define GPTCR_TEN		1		/* Timer enable */
+#define CLK_32KHZ		32768		/* 32Khz input */
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -68,7 +69,7 @@ int timer_init(void)
 	__raw_writel(i | GPTCR_CLKSOURCE_32 | GPTCR_TEN, &cur_gpt->control);
 
 	val = __raw_readl(&cur_gpt->counter);
-	lastinc = val / (CONFIG_SYS_MX5_CLK32 / CONFIG_SYS_HZ);
+	lastinc = val / (CLK_32KHZ / CONFIG_SYS_HZ);
 	timestamp = 0;
 
 	return 0;
@@ -77,11 +78,11 @@ int timer_init(void)
 ulong get_timer_masked(void)
 {
 	ulong val = __raw_readl(&cur_gpt->counter);
-	val /= (CONFIG_SYS_MX5_CLK32 / CONFIG_SYS_HZ);
+	val /= (CLK_32KHZ / CONFIG_SYS_HZ);
 	if (val >= lastinc)
 		timestamp += (val - lastinc);
 	else
-		timestamp += ((0xFFFFFFFF / (CONFIG_SYS_MX5_CLK32 / CONFIG_SYS_HZ))
+		timestamp += ((0xFFFFFFFF / (CLK_32KHZ / CONFIG_SYS_HZ))
 				- lastinc) + val;
 	lastinc = val;
 	return timestamp;
@@ -96,7 +97,7 @@ ulong get_timer(ulong base)
 void __udelay(unsigned long usec)
 {
 	unsigned long now, start, tmo;
-	tmo = usec * (CONFIG_SYS_MX5_CLK32 / 1000) / 1000;
+	tmo = usec * (CLK_32KHZ / 1000) / 1000;
 
 	if (!tmo)
 		tmo = 1;
arch/arm/cpu/armv7/mx5/Makefile +1 -1
index e8be9c9..ecd1184 100644
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(SOC).o
 
-COBJS	= soc.o clock.o iomux.o timer.o speed.o
+COBJS	= soc.o clock.o iomux.o
 SOBJS = lowlevel_init.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
arch/arm/cpu/armv7/mx5/soc.c +0 -77

98 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#2 lore raw

PATCH v2 1/6 i.mx: introduce the armv7/imx-common folder

Quoted 11 lines · Jason Liu

In order to support the coming MX6 platform and to reducde the duplicated code, we had better move some common files or functions to the imx-common folder for sharing.

This patch does the following:
- move speed.c file from armv7/mx5/speed.c to armv7/imx-common/speed.c
- move armv7/mx5/timer.c to armv7/imx-common/timer.c, no any new feature added but just fix the checkpatch errors in the old file and remove the CONFIG_SYS_MX5_CLK32 reference in the file
- create one new file cpu.c file to store the common function with i.mx5/6

Quoted 2 lines
Cc Stefano Babic <[email protected]>

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
author
#3 lore raw

PATCH v2 2/6 i.mx: add the initial support for freescale i.MX6Q processor

In reply to Jason Liu

i.MX6Q is freescale quad core processors with ARM cortex_a9 complex. This patch is to add the initial support for this processor.

Cc Stefano Babic <[email protected]>

---
v2:put aips init to c code as Marek suggest
remove the parenthesis such as (2)
remork get_usdhcx_clk() to get_usdhc_clk(port) remove the iomux base init and assign it staticly correct the chip rev print-message(rev1.0)

---
 arch/arm/cpu/armv7/mx6/Makefile           |   48 +
 arch/arm/cpu/armv7/mx6/clock.c            |  366 +++++++
 arch/arm/cpu/armv7/mx6/iomux-v3.c         |   71 ++
 arch/arm/cpu/armv7/mx6/lowlevel_init.S    |   24 +
 arch/arm/cpu/armv7/mx6/soc.c              |   93 ++
 arch/arm/include/asm/arch-mx6/ccm_regs.h  |  894 +++++++++++++++
 arch/arm/include/asm/arch-mx6/clock.h     |   50 +
 arch/arm/include/asm/arch-mx6/gpio.h      |   35 +
 arch/arm/include/asm/arch-mx6/imx-regs.h  |  234 ++++
 arch/arm/include/asm/arch-mx6/iomux-v3.h  |  103 ++
 arch/arm/include/asm/arch-mx6/mx6x_pins.h | 1683 +++++++++++++++++++++++++++++
 arch/arm/include/asm/arch-mx6/sys_proto.h |   38 +
 12 files changed, 3639 insertions(+), 0 deletions(-)
arch/arm/cpu/armv7/mx6/Makefile new file +48 -0
new file mode 100644
index 0000000..b0da028
@@ -0,0 +1,48 @@
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# (C) Copyright 2011 Freescale Semiconductor, Inc.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(SOC).o
+
+COBJS	= soc.o clock.o iomux-v3.o
+SOBJS   = lowlevel_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
+
+all:	$(obj).depend $(LIB)
+
+$(LIB):	$(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
arch/arm/cpu/armv7/mx6/clock.c new file +366 -0

366 lines not on this page · raw message

arch/arm/cpu/armv7/mx6/iomux-v3.c new file +71 -0

71 lines not on this page · raw message

arch/arm/cpu/armv7/mx6/lowlevel_init.S new file +24 -0
new file mode 100644
index 0000000..1864356
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+.section ".text.init", "x"
+
+.globl lowlevel_init
+lowlevel_init:
+
+	mov pc, lr
arch/arm/cpu/armv7/mx6/soc.c new file +93 -0

93 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/ccm_regs.h new file +894 -0

894 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/clock.h new file +50 -0

50 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/gpio.h new file +35 -0
new file mode 100644
index 0000000..20c4e57
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2011
+ * Stefano Babic, DENX Software Engineering, <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+
+#ifndef __ASM_ARCH_MX6_GPIO_H
+#define __ASM_ARCH_MX6_GPIO_H
+
+/* GPIO registers */
+struct gpio_regs {
+	u32	gpio_dr;
+	u32	gpio_dir;
+	u32	gpio_psr;
+};
+
+#endif	/* __ASM_ARCH_MX6_GPIO_H */
arch/arm/include/asm/arch-mx6/imx-regs.h new file +234 -0

234 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/iomux-v3.h new file +103 -0

103 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/mx6x_pins.h new file +1683 -0

1,082 lines not on this page · raw message

arch/arm/include/asm/arch-mx6/sys_proto.h new file +38 -0
new file mode 100644
index 0000000..668e77a

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.4.1

Part of the diff is not shown here. View the raw message.

#4 lore raw

PATCH v2 2/6 i.mx: add the initial support for freescale i.MX6Q processor

Quoted 5 lines · Jason Liu

i.MX6Q is freescale quad core processors with ARM cortex_a9 complex. This patch is to add the initial support for this processor.

Cc Stefano Babic <[email protected]>
Quoted 7 lines

---
v2:put aips init to c code as Marek suggest
remove the parenthesis such as (2)
remork get_usdhcx_clk() to get_usdhc_clk(port) remove the iomux base init and assign it staticly correct the chip rev print-message(rev1.0)
---

Hi Jason,

please understand I cannot go deep into the review due to not yet published user manual - my comments are more related to how your code can be integrated in current IMX code.

Quoted 5 lines
arch/arm/cpu/armv7/mx6/clock.c new file +5 -0
+#include <common.h>
+#include <asm/io.h>
+#include <asm/errno.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/ccm_regs.h>

arch/arm/cpu/armv7/mx6/clock.c line 37

Quoted 10 lines
arch/arm/cpu/armv7/mx6/clock.c new file +10 -0
+#include <asm/arch/clock.h>
+
+enum pll_clocks {
+	PLL_SYS,	/* System PLL */
+	PLL_BUS,	/* System Bus PLL*/
+	PLL_USBOTG,	/* OTG USB PLL */
+	PLL_ENET,	/* ENET PLL */
+};
+
+struct imx_ccm_reg *imx_ccm = (struct imx_ccm_reg *)CCM_BASE_ADDR;

Is it ok to initialize it here ? How does it work before and after relocation ?

arch/arm/cpu/armv7/mx6/clock.c line 173

Quoted 5 lines
arch/arm/cpu/armv7/mx6/clock.c new file +5 -0
+
+	return PLL3_80M / (uart_podf + 1);
+}
+
+

One newline too much

arch/arm/cpu/armv7/mx6/clock.c line 197

Quoted 5 lines
arch/arm/cpu/armv7/mx6/clock.c new file +5 -0
+	if (cbcdr & MXC_CCM_CBCDR_AXI_SEL) {
+		if (cbcdr & MXC_CCM_CBCDR_AXI_ALT_SEL)
+			root_freq = PLL2_PFD2_FREQ;
+		else
+			root_freq = PLL3_PFD1_FREQ;;

^---one is enough
Drop the redundant semicolon.

arch/arm/cpu/armv7/mx6/clock.c line 239

Quoted 8 lines
arch/arm/cpu/armv7/mx6/clock.c new file +8 -0
+static u32 get_mmdc_ch0_clk(void)
+{
+	u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
+	u32 mmdc_ch0_podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH0_PODF_MASK) >>
+				MXC_CCM_CBCDR_MMDC_CH0_PODF_OFFSET;
+
+	return get_periph_clk() / (mmdc_ch0_podf + 1);
+}

add a newline here

arch/arm/cpu/armv7/mx6/clock.c line 286

Quoted 4 lines
arch/arm/cpu/armv7/mx6/clock.c new file +4 -0
+u32 imx_get_uartclk(void)
+{
+	return get_uart_clk();
+}

This is ok - but I think we should switch to mxc_get_clock(MXC_UART_CLK) in serial_mxc.c. However, this should be done in another patch.

Quoted 4 lines
arch/arm/cpu/armv7/mx6/clock.c new file +4 -0
+
+	printf("\n");
+	printf("IPG             %8d kHz\n", mxc_get_clock(MXC_IPG_CLK) / 1000);
+	printf("UART            %8d kHz\n", mxc_get_clock(MXC_UART_CLK) / 1000);

arch/arm/cpu/armv7/mx6/clock.c line 355

Quoted 10 lines
arch/arm/cpu/armv7/mx6/clock.c new file +10 -0
+	printf("CSPI            %8d kHz\n", mxc_get_clock(MXC_CSPI_CLK) / 1000);
+	printf("AHB             %8d kHz\n", mxc_get_clock(MXC_AHB_CLK) / 1000);
+	printf("AXI             %8d kHz\n", mxc_get_clock(MXC_AXI_CLK) / 1000);
+	printf("DDR             %8d kHz\n", mxc_get_clock(MXC_DDR_CLK) / 1000);
+	printf("USDHC1          %8d kHz\n", mxc_get_clock(MXC_ESDHC_CLK) / 1000);
+	printf("USDHC2          %8d kHz\n", mxc_get_clock(MXC_ESDHC2_CLK) / 1000);
+	printf("USDHC3          %8d kHz\n", mxc_get_clock(MXC_ESDHC3_CLK) / 1000);
+	printf("USDHC4          %8d kHz\n", mxc_get_clock(MXC_ESDHC4_CLK) / 1000);
+	printf("EMI SLOW        %8d kHz\n", mxc_get_clock(MXC_EMI_SLOW_CLK) / 1000);
+	printf("IPG PERCLK      %8d kHz\n", mxc_get_clock(MXC_IPG_PERCLK) / 1000);

Not yet checked, but it seems to me that some lines are too long, are'nt they ?

Quoted 38 lines
arch/arm/cpu/armv7/mx6/soc.c new file +32 -0
new file mode 100644
index 0000000..dbf8b93
@@ -0,0 +1,93 @@
+/*
+ * (C) Copyright 2007
+ * Sascha Hauer, Pengutronix
+ *
+ * (C) Copyright 2009 Freescale Semiconductor, Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/errno.h>
+#include <asm/io.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/sys_proto.h>
+

arch/arm/cpu/armv7/mx6/soc.c line 42

Quoted 10 lines
arch/arm/cpu/armv7/mx6/soc.c new file +10 -0
+u32 get_cpu_rev(void)
+{
+	int system_rev = 0x61000 | CHIP_REV_1_0;
+
+	return system_rev;
+}
+#ifdef CONFIG_ARCH_CPU_INIT
+void init_aips(void)
+{
+	u32 reg = AIPS1_ON_BASE_ADDR;

I know that in manual (MX51, at least) this range is called AIPS1_ON_PLATFORM, but we used the name AIPS1_BASE_ADDR for MX51 and MX53. Could we stick with the same name ? It is easier for everybody starting with IMX if the registers with the same meaning.

arch/arm/cpu/armv7/mx6/soc.c line 55

Quoted 13 lines
arch/arm/cpu/armv7/mx6/soc.c new file +13 -0
+
+	/*
+	 * Set all MPROTx to be non-bufferable, trusted for R/W,
+	 * not forced to user-mode.
+	 */
+	writel(0x77777777, reg + 0x00);
+	writel(0x77777777, reg + 0x04);
+
+	writel(0x00000000, reg + 0x40);
+	writel(0x00000000, reg + 0x44);
+	writel(0x00000000, reg + 0x48);
+	writel(0x00000000, reg + 0x4c);
+	writel(0x00000000, reg + 0x50);

I would prefer to have a structure (as described in AIPSTZ Register Memory Map) for this instead of a raw translating of the assembly routine.

arch/arm/include/asm/arch-mx6/ccm_regs.h line 2

Quoted 8 lines
arch/arm/include/asm/arch-mx6/ccm_regs.h new file +2 -0
new file mode 100644
index 0000000..b55cb49
@@ -0,0 +1,894 @@
+/*
+ * Freescale ANADIG Register Definitions
                  ^---

ANADIG: this is new. What is ?

Quoted 31 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +25 -0
new file mode 100644
index 0000000..20c4e57
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2011
+ * Stefano Babic, DENX Software Engineering, <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+
+#ifndef __ASM_ARCH_MX6_GPIO_H

arch/arm/include/asm/arch-mx6/gpio.h line 35

Quoted 10 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +10 -0
+#define __ASM_ARCH_MX6_GPIO_H
+
+/* GPIO registers */
+struct gpio_regs {
+	u32	gpio_dr;
+	u32	gpio_dir;
+	u32	gpio_psr;
+};
+
+#endif	/* __ASM_ARCH_MX6_GPIO_H */

What about the proposal to have a common include path ?

Quoted 48 lines

+++ b/arch/arm/include/asm/arch-mx6/mx6x_pins.h

arch/arm/include/asm/arch-mx6/gpio.h new file +46 -0
@@ -0,0 +1,1683 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Auto Generate file, please don't edit it
+ *
+ */
+
+#ifndef __ASM_ARCH_MX6_MX6X_PINS_H__
+#define __ASM_ARCH_MX6_MX6X_PINS_H__
+
+#include <asm/arch/iomux-v3.h>
+
+/* Use to set PAD control */
+#define PAD_CTL_HYS		(1 << 16)
+#define PAD_CTL_PUS_100K_DOWN	(0 << 14)
+#define PAD_CTL_PUS_47K_UP	(1 << 14)
+#define PAD_CTL_PUS_100K_UP	(2 << 14)
+#define PAD_CTL_PUS_22K_UP	(3 << 14)
+
+#define PAD_CTL_PUE		(1 << 13)
+#define PAD_CTL_PKE		(1 << 12)
+#define PAD_CTL_ODE		(1 << 11)
+#define PAD_CTL_SPEED_LOW	(1 << 6)
+#define PAD_CTL_SPEED_MED	(2 << 6)
+#define PAD_CTL_SPEED_HIGH	(3 << 6)
+#define PAD_CTL_DSE_DISABLE	(0 << 3)
+#define PAD_CTL_DSE_240ohm	(1 << 3)
+#define PAD_CTL_DSE_120ohm	(2 << 3)
+#define PAD_CTL_DSE_80ohm	(3 << 3)
+#define PAD_CTL_DSE_60ohm	(4 << 3)
+#define PAD_CTL_DSE_48ohm	(5 << 3)
+#define PAD_CTL_DSE_40ohm	(6 << 3)

arch/arm/include/asm/arch-mx6/gpio.h line 56

Quoted 10 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +10 -0
+#define PAD_CTL_DSE_34ohm	(7 << 3)
+#define PAD_CTL_SRE_FAST	(1 << 0)
+#define PAD_CTL_SRE_SLOW	(0 << 0)
+
+#define NO_MUX_I		0x3FF
+#define NO_PAD_I		0x7FF
+
+enum {
+	MX6Q_PAD_SD2_DAT1__USDHC2_DAT1		= IOMUX_PAD(0x0360, 0x004C, 0, 0x0000, 0, 0),
+	MX6Q_PAD_SD2_DAT1__ECSPI5_SS0		= IOMUX_PAD(0x0360, 0x004C, 1, 0x0834, 0, 0),

Only to remark. These lines will be marked with WARNING by checkpatch, but it is surely more readable as it is in the patch as if each line will be split. I have already merged the MX28 iomux, and even in that case the single lines were longer as 80 bytes. If nobody complains, I will merge the pin definition as it is.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
author
#5 lore raw

PATCH v2 2/6 i.mx: add the initial support for freescale i.MX6Q processor

Quoted 14 lines · Stefano Babic
Quoted 5 lines · Jason Liu

i.MX6Q is freescale quad core processors with ARM cortex_a9 complex. This patch is to add the initial support for this processor.

Cc Stefano Babic <[email protected]>
Quoted 7 lines

---
v2:put aips init to c code as Marek suggest ? ?remove the parenthesis such as (2)
? ?remork get_usdhcx_clk() to get_usdhc_clk(port) ? ?remove the iomux base init and assign it staticly ? ?correct the chip rev print-message(rev1.0)
---

Quoted 5 lines

Hi Jason,

please understand I cannot go deep into the review due to not yet published user manual - my comments are more related to how your code can be integrated in current IMX code.

yes, understood. Thanks for the review.

Quoted 11 lines
Quoted 11 lines
arch/arm/cpu/armv7/mx6/clock.c new file +10 -0
+#include <common.h>
+#include <asm/io.h>
+#include <asm/errno.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/ccm_regs.h>
+#include <asm/arch/clock.h>
+
+enum pll_clocks {
+ ? ? PLL_SYS, ? ? ? ?/* System PLL */
+ ? ? PLL_BUS, ? ? ? ?/* System Bus PLL*/
Quoted 8 lines

arch/arm/cpu/armv7/mx6/clock.c line 37

Quoted 5 lines

+ ? ? PLL_USBOTG, ? ? /* OTG USB PLL */
+ ? ? PLL_ENET, ? ? ? /* ENET PLL */

arch/arm/cpu/armv7/mx6/clock.c new file +3 -0
+};
+
+struct imx_ccm_reg *imx_ccm = (struct imx_ccm_reg *)CCM_BASE_ADDR;

Is it ok to initialize it here ? How does it work before and after relocation ?

IMHO, This should be OK.

Quoted 8 lines

arch/arm/cpu/armv7/mx6/clock.c line 73

Quoted 6 lines
arch/arm/cpu/armv7/mx6/clock.c new file +5 -0
+
+ ? ? return PLL3_80M / (uart_podf + 1);
+}
+
+

One newline too much

yes, will remove it.

Quoted 8 lines
Quoted 6 lines

+ ? ? if (cbcdr & MXC_CCM_CBCDR_AXI_SEL) {
+ ? ? ? ? ? ? if (cbcdr & MXC_CCM_CBCDR_AXI_ALT_SEL)
+ ? ? ? ? ? ? ? ? ? ? root_freq = PLL2_PFD2_FREQ;
+ ? ? ? ? ? ? else
+ ? ? ? ? ? ? ? ? ? ? root_freq = PLL3_PFD1_FREQ;;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^---one is enough Drop the redundant semicolon.

yes, good eyesight.

Quoted 11 lines

arch/arm/cpu/armv7/mx6/clock.c line 239

Quoted 9 lines
arch/arm/cpu/armv7/mx6/clock.c new file +8 -0
+static u32 get_mmdc_ch0_clk(void)
+{
+ ? ? u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
+ ? ? u32 mmdc_ch0_podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH0_PODF_MASK) >>
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? MXC_CCM_CBCDR_MMDC_CH0_PODF_OFFSET;
+
+ ? ? return get_periph_clk() / (mmdc_ch0_podf + 1);
+}

add a newline here

OK,

Quoted 8 lines

arch/arm/cpu/armv7/mx6/clock.c line 286

Quoted 5 lines
arch/arm/cpu/armv7/mx6/clock.c new file +4 -0
+u32 imx_get_uartclk(void)
+{
+ ? ? return get_uart_clk();
+}

This is ok - but I think we should switch to mxc_get_clock(MXC_UART_CLK) in serial_mxc.c. However, this should be done in another patch.

yes, will do it in another patch to do the clean up.

Quoted 16 lines
Quoted 15 lines

+
+ ? ? printf("\n");
+ ? ? printf("IPG ? ? ? ? ? ? %8d kHz\n", mxc_get_clock(MXC_IPG_CLK) / 1000);
+ ? ? printf("UART ? ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_UART_CLK) / 1000);
+ ? ? printf("CSPI ? ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_CSPI_CLK) / 1000);
+ ? ? printf("AHB ? ? ? ? ? ? %8d kHz\n", mxc_get_clock(MXC_AHB_CLK) / 1000);
+ ? ? printf("AXI ? ? ? ? ? ? %8d kHz\n", mxc_get_clock(MXC_AXI_CLK) / 1000);
+ ? ? printf("DDR ? ? ? ? ? ? %8d kHz\n", mxc_get_clock(MXC_DDR_CLK) / 1000);
+ ? ? printf("USDHC1 ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_ESDHC_CLK) / 1000);
+ ? ? printf("USDHC2 ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_ESDHC2_CLK) / 1000);
+ ? ? printf("USDHC3 ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_ESDHC3_CLK) / 1000);
+ ? ? printf("USDHC4 ? ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_ESDHC4_CLK) / 1000);
+ ? ? printf("EMI SLOW ? ? ? ?%8d kHz\n", mxc_get_clock(MXC_EMI_SLOW_CLK) / 1000);
+ ? ? printf("IPG PERCLK ? ? ?%8d kHz\n", mxc_get_clock(MXC_IPG_PERCLK) / 1000);

Quoted 2 lines

Not yet checked, but it seems to me that some lines are too long, are'nt they ?

Yes, too long, will fix it.

Quoted 46 lines
Quoted 46 lines
arch/arm/cpu/armv7/mx6/soc.c new file +39 -0
new file mode 100644
index 0000000..dbf8b93
@@ -0,0 +1,93 @@
+/*
+ * (C) Copyright 2007
+ * Sascha Hauer, Pengutronix
+ *
+ * (C) Copyright 2009 Freescale Semiconductor, Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/errno.h>
+#include <asm/io.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/sys_proto.h>
+
+u32 get_cpu_rev(void)
+{
+ ? ? int system_rev = 0x61000 | CHIP_REV_1_0;
+
+ ? ? return system_rev;
+}
+#ifdef CONFIG_ARCH_CPU_INIT
Quoted 9 lines

arch/arm/cpu/armv7/mx6/soc.c

Quoted 3 lines
arch/arm/cpu/armv7/mx6/soc.c new file +3 -0
+void init_aips(void)
+{
+ ? ? u32 reg = AIPS1_ON_BASE_ADDR;

I know that in manual (MX51, at least) this range is called AIPS1_ON_PLATFORM, but we used the name AIPS1_BASE_ADDR for MX51 and MX53. Could we stick with the same name ? It is easier for everybody starting with IMX if the registers with the same meaning.

OK, agree.

Quoted 17 lines
Quoted 4 lines
arch/arm/cpu/armv7/mx6/soc.c new file +3 -0
+
+ ? ? /*
+ ? ? ?* Set all MPROTx to be non-bufferable, trusted for R/W,

arch/arm/cpu/armv7/mx6/soc.c line 55

Quoted 10 lines
arch/arm/cpu/armv7/mx6/soc.c new file +10 -0
+ ? ? ?* not forced to user-mode.
+ ? ? ?*/
+ ? ? writel(0x77777777, reg + 0x00);
+ ? ? writel(0x77777777, reg + 0x04);
+
+ ? ? writel(0x00000000, reg + 0x40);
+ ? ? writel(0x00000000, reg + 0x44);
+ ? ? writel(0x00000000, reg + 0x48);
+ ? ? writel(0x00000000, reg + 0x4c);
+ ? ? writel(0x00000000, reg + 0x50);

I would prefer to have a structure (as described in AIPSTZ Register Memory Map) for this instead of a raw translating of the assembly routine.

I double check with IC team, that we don't need do it here. So I will remove it.

Quoted 11 lines

arch/arm/include/asm/arch-mx6/ccm_regs.h line 2

Quoted 9 lines
arch/arm/include/asm/arch-mx6/ccm_regs.h new file +2 -0
new file mode 100644
index 0000000..b55cb49
@@ -0,0 +1,894 @@
+/*
+ * Freescale ANADIG Register Definitions

? ? ? ? ? ? ? ? ?^---

Quoted 1 line

ANADIG: this is new. What is ?

hmm, It's the CCM register, I will change it to CCM.

Quoted 37 lines
Quoted 37 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +29 -0
new file mode 100644
index 0000000..20c4e57
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2011
+ * Stefano Babic, DENX Software Engineering, <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+
+#ifndef __ASM_ARCH_MX6_GPIO_H
+#define __ASM_ARCH_MX6_GPIO_H
+
+/* GPIO registers */
+struct gpio_regs {
Quoted 8 lines

arch/arm/include/asm/arch-mx6/gpio.h line 35

Quoted 6 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +6 -0
+ ? ? u32 ? ? gpio_dr;
+ ? ? u32 ? ? gpio_dir;
+ ? ? u32 ? ? gpio_psr;
+};
+
+#endif ? ? ? /* __ASM_ARCH_MX6_GPIO_H */

What about the proposal to have a common include path ?

I remember that there is not must have feature. And I consider to add another patch to do clean up for the whole i.mx5 and i.mx6. Agree?

Quoted 57 lines
Quoted 57 lines

+++ b/arch/arm/include/asm/arch-mx6/mx6x_pins.h

arch/arm/include/asm/arch-mx6/gpio.h new file +54 -0
@@ -0,0 +1,1683 @@
+/*
+ * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Auto Generate file, please don't edit it
+ *
+ */
+
+#ifndef __ASM_ARCH_MX6_MX6X_PINS_H__
+#define __ASM_ARCH_MX6_MX6X_PINS_H__
+
+#include <asm/arch/iomux-v3.h>
+
+/* Use to set PAD control */
+#define PAD_CTL_HYS ? ? ? ? ?(1 << 16)
+#define PAD_CTL_PUS_100K_DOWN ? ? ? ?(0 << 14)
+#define PAD_CTL_PUS_47K_UP ? (1 << 14)
+#define PAD_CTL_PUS_100K_UP ?(2 << 14)
+#define PAD_CTL_PUS_22K_UP ? (3 << 14)
+
+#define PAD_CTL_PUE ? ? ? ? ?(1 << 13)
+#define PAD_CTL_PKE ? ? ? ? ?(1 << 12)
+#define PAD_CTL_ODE ? ? ? ? ?(1 << 11)
+#define PAD_CTL_SPEED_LOW ? ?(1 << 6)
+#define PAD_CTL_SPEED_MED ? ?(2 << 6)
+#define PAD_CTL_SPEED_HIGH ? (3 << 6)
+#define PAD_CTL_DSE_DISABLE ?(0 << 3)
+#define PAD_CTL_DSE_240ohm ? (1 << 3)
+#define PAD_CTL_DSE_120ohm ? (2 << 3)
+#define PAD_CTL_DSE_80ohm ? ?(3 << 3)
+#define PAD_CTL_DSE_60ohm ? ?(4 << 3)
+#define PAD_CTL_DSE_48ohm ? ?(5 << 3)
+#define PAD_CTL_DSE_40ohm ? ?(6 << 3)
+#define PAD_CTL_DSE_34ohm ? ?(7 << 3)
+#define PAD_CTL_SRE_FAST ? ? (1 << 0)
+#define PAD_CTL_SRE_SLOW ? ? (0 << 0)
+
+#define NO_MUX_I ? ? ? ? ? ? 0x3FF
+#define NO_PAD_I ? ? ? ? ? ? 0x7FF
+
+enum {
Quoted 8 lines

arch/arm/include/asm/arch-mx6/gpio.h line 56

Quoted 2 lines
arch/arm/include/asm/arch-mx6/gpio.h new file +2 -0
+ ? ? MX6Q_PAD_SD2_DAT1__USDHC2_DAT1 ? ? ? ? ?= IOMUX_PAD(0x0360, 0x004C, 0, 0x0000, 0, 0),
+ ? ? MX6Q_PAD_SD2_DAT1__ECSPI5_SS0 ? ? ? ? ? = IOMUX_PAD(0x0360, 0x004C, 1, 0x0834, 0, 0),

Only to remark. These lines will be marked with WARNING by checkpatch, but it is surely more readable as it is in the patch as if each line will be split. I have already merged the MX28 iomux, and even in that case the single lines were longer as 80 bytes. If nobody complains, I will merge the pin definition as it is.

Yes, it's better to keep as it for more readable, linux kernel also has a lot of such situation.

Quoted 11 lines

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH, ? ? MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 ?Email: office at denx.de
=====================================================================

author
#6 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

In reply to Jason Liu

---
V2: add Stefano's ack

---
 drivers/gpio/mxc_gpio.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/gpio/mxc_gpio.c +2 -2
index a7f36b2..908808d 100644
@@ -40,10 +40,10 @@ static unsigned long gpio_ports[] = {
 	[0] = GPIO1_BASE_ADDR,
 	[1] = GPIO2_BASE_ADDR,
 	[2] = GPIO3_BASE_ADDR,
-#if defined(CONFIG_MX51) || defined(CONFIG_MX53)
+#if defined(CONFIG_MX51) || defined(CONFIG_MX53) || defined(CONFIG_MX6Q)
 	[3] = GPIO4_BASE_ADDR,
 #endif
-#if defined(CONFIG_MX53)
+#if defined(CONFIG_MX53) || defined(CONFIG_MX6Q)
 	[4] = GPIO5_BASE_ADDR,
 	[5] = GPIO6_BASE_ADDR,
 	[6] = GPIO7_BASE_ADDR,
Signature · 1 line
1.7.4.1

A message that is not in the archive (sent off-list or not yet received): 2EDAD32A5B0B85468ED77279EBEE99682586FB@039-SN1MPN1-001.039d.mgd.msft.net

author
#8 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 7 lines

Hi Jason,

? ? ? ?What about using

#ifdef GPIO4_BASE_ADDR
? ? ? ?[3] = GPIO4_BASE_ADDR,
#endif

[...]

Quoted 3 lines

? ? ? ?Then we can avoid adding SOC compile options in future.

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Jason Liu

Quoted 6 lines

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#9 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

Quoted 11 lines

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 7 lines

Hi Jason,

What about using

#ifdef GPIO4_BASE_ADDR
       [3] = GPIO4_BASE_ADDR,

#endif

[...]

Quoted 7 lines
Quoted 1 line

Then we can avoid adding SOC compile options in future.

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Jason Liu

So it's Jason Liu or Jason Hui ?! What the heck is your name ?

M

author
#10 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

Quoted 13 lines · Marek Vasut
Quoted 13 lines

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 7 lines

Hi Jason,

? ? ? ?What about using

#ifdef GPIO4_BASE_ADDR
? ? ? ?[3] = GPIO4_BASE_ADDR,
#endif

[...]

Quoted 1 line

? ? ? ?Then we can avoid adding SOC compile options in future.

Quoted 7 lines
Quoted 5 lines

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Jason Liu

So it's Jason Liu or Jason Hui ?! What the heck is your name ?

There is some mistake when linaro assign me the email address. in fact, it should be jason.liu at linaro.org. But anyway, I don't care about it. Sorry to make you confuse. ;)

Jason

Quoted 3 lines

M

#11 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

Quoted 18 lines · On Friday 18 November 2011 07:26:59 Jason Hui wrote:
Quoted 17 lines · Marek Vasut
Quoted 17 lines

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 7 lines

Hi Jason,

What about using

#ifdef GPIO4_BASE_ADDR
       [3] = GPIO4_BASE_ADDR,

#endif

[...]

Quoted 1 line

Then we can avoid adding SOC compile options in future.

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

Jason Liu

So it's Jason Liu or Jason Hui ?! What the heck is your name ?

There is some mistake when linaro assign me the email address. in fact, it should be jason.liu at linaro.org. But anyway, I don't care about it. Sorry to make you confuse. ;)

but the "Jason Hui" part is controlled purely on your side :). only the "jason.hui at linaro.org" is controlled by Linaro.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111118/3a985332/attachment.pgp>

#12 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

Quoted 25 lines · On Friday 18 November 2011 07:26:59 Jason Hui wrote:
Quoted 24 lines · Marek Vasut
Quoted 22 lines
Quoted 13 lines

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 9 lines

Hi Jason,

What about using

#ifdef GPIO4_BASE_ADDR

       [3] = GPIO4_BASE_ADDR,

#endif

[...]

Quoted 7 lines
Quoted 1 line

Then we can avoid adding SOC compile options in future.

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Jason Liu

So it's Jason Liu or Jason Hui ?! What the heck is your name ?

Quoted 7 lines
Quoted 3 lines

There is some mistake when linaro assign me the email address. in fact, it should be jason.liu at linaro.org. But anyway, I don't care about it. Sorry to make you confuse. ;)

but the "Jason Hui" part is controlled purely on your side :). only the "jason.hui at linaro.org" is controlled by Linaro.
-mike

Not really ... you can fake both ;-D

#13 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

Quoted 25 lines · On Friday 18 November 2011 17:59:28 Marek Vasut wrote:
Quoted 25 lines · On Friday 18 November 2011 07:26:59 Jason Hui wrote:
Quoted 24 lines · Marek Vasut
Quoted 22 lines
Quoted 13 lines

2011/11/18 Lv Terry-R65388 <[email protected]>:

Quoted 9 lines

Hi Jason,

What about using

#ifdef GPIO4_BASE_ADDR

       [3] = GPIO4_BASE_ADDR,

#endif

[...]

Quoted 7 lines
Quoted 1 line

Then we can avoid adding SOC compile options in future.

Terry, please don't top-post. As for your comments, I don't think so, first, we should not simply use GPIOx_BASE_ADDR, and second, it will introduce a lot of other platforms changes.

Jason Liu

So it's Jason Liu or Jason Hui ?! What the heck is your name ?

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

There is some mistake when linaro assign me the email address. in fact, it should be jason.liu at linaro.org. But anyway, I don't care about it. Sorry to make you confuse. ;)

but the "Jason Hui" part is controlled purely on your side :). only the "jason.hui at linaro.org" is controlled by Linaro.

Not really ... you can fake both ;-D

you can fake the From. you can't fake the To.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111118/e02abf01/attachment.pgp>

#14 lore raw

PATCH v2 3/6 i.mx: mxc_gpio: add the i.mx6q support

In reply to Jason Liu

drivers/gpio/mxc_gpio.c static unsigned long gpio_ports[] = { · line 45

Quoted 4 lines · On Friday 18 November 2011 02:11:04 Jason Liu wrote:
drivers/gpio/mxc_gpio.c +1 -1
-#if defined(CONFIG_MX51) || defined(CONFIG_MX53)
+#if defined(CONFIG_MX51) || defined(CONFIG_MX53) || defined(CONFIG_MX6Q)
 	[3] = GPIO4_BASE_ADDR,
 #endif

#ifdef GPIO4_BASE_ADDR ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111118/7d5fc996/attachment.pgp>

author
#15 lore raw

PATCH v2 4/6 i.mx: serial_mxc: add the i.mx6q support

In reply to Jason Liu
Cc Stefano Babic <[email protected]>

---
v2: Cc Stefano

---
 drivers/serial/serial_mxc.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)
drivers/serial/serial_mxc.c +7 -3
index dcb4bd1..7d0f288 100644
@@ -47,14 +47,18 @@
 #elif defined(CONFIG_SYS_MX27_UART6)
 #define UART_PHYS 0x1001c000
 #elif defined(CONFIG_SYS_MX35_UART1) || defined(CONFIG_SYS_MX51_UART1) || \
-	defined(CONFIG_SYS_MX53_UART1)
+	defined(CONFIG_SYS_MX53_UART1) || defined(CONFIG_MX6Q_UART1)
 #define UART_PHYS UART1_BASE_ADDR
 #elif defined(CONFIG_SYS_MX35_UART2) || defined(CONFIG_SYS_MX51_UART2) || \
-	defined(CONFIG_SYS_MX53_UART2)
+	defined(CONFIG_SYS_MX53_UART2) || defined(CONFIG_MX6Q_UART2)
 #define UART_PHYS UART2_BASE_ADDR
 #elif defined(CONFIG_SYS_MX35_UART3) || defined(CONFIG_SYS_MX51_UART3) || \
-	defined(CONFIG_SYS_MX53_UART3)
+	defined(CONFIG_SYS_MX53_UART3) || defined(CONFIG_MX6Q_UART3)
 #define UART_PHYS UART3_BASE_ADDR
+#elif defined(CONFIG_MX6Q_UART4)
+#define UART_PHYS UART4_BASE_ADDR
+#elif defined(CONFIG_MX6Q_UART5)
+#define UART_PHYS UART5_BASE_ADDR
 #else
 #error "define CONFIG_SYS_MXxx_UARTx to use the MXC UART driver"
 #endif
Signature · 1 line
1.7.4.1
#16 lore raw

PATCH v2 4/6 i.mx: serial_mxc: add the i.mx6q support

Quoted 24 lines · Jason Liu
Cc Stefano Babic <[email protected]>

---
v2: Cc Stefano

---
 drivers/serial/serial_mxc.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)
drivers/serial/serial_mxc.c +2 -2
index dcb4bd1..7d0f288 100644
@@ -47,14 +47,18 @@
 #elif defined(CONFIG_SYS_MX27_UART6)
 #define UART_PHYS 0x1001c000
 #elif defined(CONFIG_SYS_MX35_UART1) || defined(CONFIG_SYS_MX51_UART1) || \
-	defined(CONFIG_SYS_MX53_UART1)
+	defined(CONFIG_SYS_MX53_UART1) || defined(CONFIG_MX6Q_UART1)
 #define UART_PHYS UART1_BASE_ADDR
 #elif defined(CONFIG_SYS_MX35_UART2) || defined(CONFIG_SYS_MX51_UART2) || \
-	defined(CONFIG_SYS_MX53_UART2)
+	defined(CONFIG_SYS_MX53_UART2) || defined(CONFIG_MX6Q_UART2)
 #define UART_PHYS UART2_BASE_ADDR
 #elif defined(CONFIG_SYS_MX35_UART3) || defined(CONFIG_SYS_MX51_UART3) || \

drivers/serial/serial_mxc.c line 64

Quoted 10 lines
drivers/serial/serial_mxc.c +5 -1
-	defined(CONFIG_SYS_MX53_UART3)
+	defined(CONFIG_SYS_MX53_UART3) || defined(CONFIG_MX6Q_UART3)
 #define UART_PHYS UART3_BASE_ADDR
+#elif defined(CONFIG_MX6Q_UART4)
+#define UART_PHYS UART4_BASE_ADDR
+#elif defined(CONFIG_MX6Q_UART5)
+#define UART_PHYS UART5_BASE_ADDR
 #else
 #error "define CONFIG_SYS_MXxx_UARTx to use the MXC UART driver"
 #endif

This is not a comment of your patch, but I cannot avoid to note how much crap in this file. And we have not yet added all possible values for each SOC, only the values necessary to build the actual boards.

The worst thing is that we do not need all this stuff. We set a lot of #ifdef only to set the UART base address, and we really ignore (because unneeded) the CONFIG_SYS_*_UART_*. It should be really better to define the base address in the board configuration file, as we already do for other drivers (USB with ehci base address, SD,..). Maybe with a MXC_UART_BASE_ADDRESS, and we can get rid of all this bad stuff.

I will prepare a patch...

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
author
#17 lore raw

PATCH v2 4/6 i.mx: serial_mxc: add the i.mx6q support

Quoted 40 lines · Stefano Babic
Quoted 31 lines · Jason Liu
Cc Stefano Babic <[email protected]>

---
v2: Cc Stefano
---
?drivers/serial/serial_mxc.c | ? 10 +++++++---
?1 files changed, 7 insertions(+), 3 deletions(-)

drivers/serial/serial_mxc.c +0 -0
index dcb4bd1..7d0f288 100644
@@ -47,14 +47,18 @@
 ?#elif defined(CONFIG_SYS_MX27_UART6)

?#define UART_PHYS 0x1001c000
?#elif defined(CONFIG_SYS_MX35_UART1) || defined(CONFIG_SYS_MX51_UART1) || \
- ? ? defined(CONFIG_SYS_MX53_UART1)
+ ? ? defined(CONFIG_SYS_MX53_UART1) || defined(CONFIG_MX6Q_UART1) ?#define UART_PHYS UART1_BASE_ADDR
?#elif defined(CONFIG_SYS_MX35_UART2) || defined(CONFIG_SYS_MX51_UART2) || \
- ? ? defined(CONFIG_SYS_MX53_UART2)
+ ? ? defined(CONFIG_SYS_MX53_UART2) || defined(CONFIG_MX6Q_UART2) ?#define UART_PHYS UART2_BASE_ADDR
?#elif defined(CONFIG_SYS_MX35_UART3) || defined(CONFIG_SYS_MX51_UART3) || \
- ? ? defined(CONFIG_SYS_MX53_UART3)
+ ? ? defined(CONFIG_SYS_MX53_UART3) || defined(CONFIG_MX6Q_UART3) ?#define UART_PHYS UART3_BASE_ADDR

drivers/serial/serial_mxc.c +4 -0
+#elif defined(CONFIG_MX6Q_UART4)
+#define UART_PHYS UART4_BASE_ADDR
+#elif defined(CONFIG_MX6Q_UART5)
+#define UART_PHYS UART5_BASE_ADDR
Quoted 3 lines

?#else
?#error "define CONFIG_SYS_MXxx_UARTx to use the MXC UART driver" ?#endif

This is not a comment of your patch, but I cannot avoid to note how much crap in this file. And we have not yet added all possible values for each SOC, only the values necessary to build the actual boards.

Quoted 6 lines

The worst thing is that we do not need all this stuff. We set a lot of #ifdef only to set the UART base address, and we really ignore (because unneeded) the CONFIG_SYS_*_UART_*. It should be really better to define the base address in the board configuration file, as we already do for other drivers (USB with ehci base address, SD,..). Maybe with a MXC_UART_BASE_ADDRESS, and we can get rid of all this bad stuff.

Yes, fully agree.

Quoted 2 lines

I will prepare a patch...

Waiting for your patch.

Quoted 11 lines

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH, ? ? MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 ?Email: office at denx.de
=====================================================================

author
#18 lore raw

PATCH v2 5/6 i.mx: fsl_esdhc: add the i.mx6q support

In reply to Jason Liu

The mmc host controller on the i.mx6q is called usdhc which is redesigned based on the freescale esdhc controller.

The usdhc controller is almost compatible with esdhc except it adds one mix register to support debug/SD3.0 and move the low bit 0-6 of XFERTYP register to the mix control reg low bit 0-6. Thus on i.mx6q, we have the following compared with the previous soc: (can refer to RM of chapter 56.3.3)

i.mx6q:
mix control:
bit 31 - bit 7: Added for debug/SD3.0 support
bit 6 - bit 0: move in the XFERTYP register bit 6-0 on previous soc XFERTYP register:
bit 31 - bit 7: the same as before,
bit 6 - bit 0: no-use

previous soc
mix control: no
XFERTYP register:
bit 31 - bit 0: xfertype information

---
v2: extend the commit message by adding mix/xtertype register change
remove one #ifdef as Marek suggested
change the print of USDHC/ESDHC to SDHC

---
 drivers/mmc/fsl_esdhc.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
drivers/mmc/fsl_esdhc.c +9 -3
index ec953f0..ddd1b4c 100644
@@ -58,7 +58,8 @@ struct fsl_esdhc {
 	uint	autoc12err;
 	uint	hostcapblt;
 	uint	wml;
-	char	reserved1[8];
+	uint    mixctrl;
+	char    reserved1[4];
 	uint	fevt;
 	char	reserved2[168];
 	uint	hostver;
@@ -298,8 +299,13 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 
 	/* Send the command */
 	esdhc_write32(&regs->cmdarg, cmd->cmdarg);
+#if defined(CONFIG_FSL_USDHC)
+	esdhc_write32(&regs->mixctrl,
+	(esdhc_read32(&regs->mixctrl) & 0xFFFFFF80) | (xfertyp & 0x7F));
+	esdhc_write32(&regs->xfertyp, xfertyp & 0xFFFF0000);
+#else
 	esdhc_write32(&regs->xfertyp, xfertyp);
-
+#endif
 	/* Wait for the command to complete */
 	while (!(esdhc_read32(&regs->irqstat) & IRQSTAT_CC))
 		;
@@ -482,7 +488,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)
 
 	mmc = malloc(sizeof(struct mmc));
 
-	sprintf(mmc->name, "FSL_ESDHC");
+	sprintf(mmc->name, "FSL_SDHC");
 	regs = (struct fsl_esdhc *)cfg->esdhc_base;
 
 	/* First reset the eSDHC controller */
Signature · 1 line
1.7.4.1
#19 lore raw

PATCH v2 5/6 i.mx: fsl_esdhc: add the i.mx6q support

Quoted 63 lines · Jason Liu

The mmc host controller on the i.mx6q is called usdhc which is redesigned based on the freescale esdhc controller.

The usdhc controller is almost compatible with esdhc except it adds one mix register to support debug/SD3.0 and move the low bit 0-6 of XFERTYP register to the mix control reg low bit 0-6. Thus on i.mx6q, we have the following compared with the previous soc: (can refer to RM of chapter 56.3.3)

i.mx6q:
mix control:
bit 31 - bit 7: Added for debug/SD3.0 support
bit 6 - bit 0: move in the XFERTYP register bit 6-0 on previous soc XFERTYP register:
bit 31 - bit 7: the same as before,
bit 6 - bit 0: no-use

previous soc
mix control: no
XFERTYP register:
bit 31 - bit 0: xfertype information

---
v2: extend the commit message by adding mix/xtertype register change
remove one #ifdef as Marek suggested
change the print of USDHC/ESDHC to SDHC

---
 drivers/mmc/fsl_esdhc.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
drivers/mmc/fsl_esdhc.c +8 -2
index ec953f0..ddd1b4c 100644
@@ -58,7 +58,8 @@ struct fsl_esdhc {
 	uint	autoc12err;
 	uint	hostcapblt;
 	uint	wml;
-	char	reserved1[8];
+	uint    mixctrl;
+	char    reserved1[4];
 	uint	fevt;
 	char	reserved2[168];
 	uint	hostver;
@@ -298,8 +299,13 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 
 	/* Send the command */
 	esdhc_write32(&regs->cmdarg, cmd->cmdarg);
+#if defined(CONFIG_FSL_USDHC)
+	esdhc_write32(&regs->mixctrl,
+	(esdhc_read32(&regs->mixctrl) & 0xFFFFFF80) | (xfertyp & 0x7F));
+	esdhc_write32(&regs->xfertyp, xfertyp & 0xFFFF0000);
+#else
 	esdhc_write32(&regs->xfertyp, xfertyp);
-
+#endif
 	/* Wait for the command to complete */
 	while (!(esdhc_read32(&regs->irqstat) & IRQSTAT_CC))
 		;

drivers/mmc/fsl_esdhc.c int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg) · line 492

Quoted 6 lines
drivers/mmc/fsl_esdhc.c +1 -1
@@ -482,7 +488,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)
 
 	mmc = malloc(sizeof(struct mmc));
 
-	sprintf(mmc->name, "FSL_ESDHC");
+	sprintf(mmc->name, "FSL_SDHC");
 	regs = (struct fsl_esdhc *)cfg->esdhc_base;

Jason,

I have no issues about this patch, but it was not forwarded to Andy (MMC Maintainer).

author
#20 lore raw

PATCH v2 6/6 i.mx: i.mx6q: add the initial support for i.mx6q ARM2 board

In reply to Jason Liu

Add the initial support for Freescale i.MX6Q Armadillo2 board
Support: MMC boot from slot 0/1, debug UART(UART4), usdhc.

There is two MMC slots on the boards:
mmc dev 0 -> connect USDHC3 -> the lower slot on the board, mmc dev 1 -> connect USDHC4 -> the upper slot on the board,

---
v2:fix sd3 card detection GPIO
remove unneeded parentheses such as (IRAM_SIZE)
remove clean and distclean targets in Makefile
remove CONFIG_MACH_TYPE setup since linux use DT
some cleanup/improvement for the config file from Dirk remove imx_iomux_v3_init call since assign the base in iomux-v3.c improve the commit message to add the mmc slot description

---
 MAINTAINERS                           |    1 +
 board/freescale/mx6qarm2/Makefile     |   42 ++++++++
 board/freescale/mx6qarm2/imximage.cfg |  167 +++++++++++++++++++++++++++++++++
 board/freescale/mx6qarm2/mx6qarm2.c   |  155 ++++++++++++++++++++++++++++++
 boards.cfg                            |    1 +
 include/configs/mx6qarm2.h            |  162 ++++++++++++++++++++++++++++++++
 6 files changed, 528 insertions(+), 0 deletions(-)
MAINTAINERS +1 -0
index 030fe4a..4eab903 100644
@@ -572,6 +572,7 @@ Jason Liu <[email protected]>
 
 	mx53evk         i.MX53
 	mx53loco        i.MX53
+	mx6qarm2	i.MX6Q
 
 Enric Balletbo i Serra <[email protected]>
 
board/freescale/mx6qarm2/Makefile new file +42 -0

42 lines not on this page · raw message

board/freescale/mx6qarm2/imximage.cfg new file +167 -0

167 lines not on this page · raw message

board/freescale/mx6qarm2/mx6qarm2.c new file +155 -0

155 lines not on this page · raw message

boards.cfg +1 -0
index 8b7a03b..9285913 100644
@@ -174,6 +174,7 @@ mx53evk                      arm         armv7       mx53evk             freesca
 mx53loco                     arm         armv7       mx53loco            freescale      mx5		mx53loco:IMX_CONFIG=board/freescale/mx53loco/imximage.cfg
 mx53smd                      arm         armv7       mx53smd             freescale      mx5		mx53smd:IMX_CONFIG=board/freescale/mx53smd/imximage.cfg
 vision2                      arm         armv7       vision2             ttcontrol      mx5		vision2:IMX_CONFIG=board/ttcontrol/vision2/imximage_hynix.cfg
+mx6qarm2                     arm         armv7       mx6qarm2            freescale      mx6		mx6qarm2:IMX_CONFIG=board/freescale/mx6qarm2/imximage.cfg
 cm_t35                       arm         armv7       cm_t35              -              omap3
 omap3_overo                  arm         armv7       overo               -              omap3
 omap3_pandora                arm         armv7       pandora             -              omap3
include/configs/mx6qarm2.h new file +162 -0

162 lines not on this page · raw message

Signature · 1 line
1.7.4.1