public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file
@ 2013-04-06  0:55 Fabio Estevam
  2013-04-06  0:55 ` [U-Boot] [PATCH 2/3] mx6: Add solo-lite variant support Fabio Estevam
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06  0:55 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <fabio.estevam@freescale.com>

Instead of having the same PAD control definition in each MX6 variant pin file,
place it into a common location.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/include/asm/arch-mx6/mx6dl_pins.h |   27 ---------------------------
 arch/arm/include/asm/arch-mx6/mx6q_pins.h  |   27 ---------------------------
 arch/arm/include/asm/imx-common/iomux-v3.h |   26 ++++++++++++++++++++++++++
 3 files changed, 26 insertions(+), 54 deletions(-)

diff --git a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
index 9846f1b..0ed12f3 100644
--- a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
+++ b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
@@ -22,33 +22,6 @@
 
 #include <asm/imx-common/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 IOMUX_CONFIG_SION 0x10
-#define NO_MUX_I                0
-#define NO_PAD_I                0
 enum {
 	MX6_PAD_CSI0_DAT10__UART1_TXD		= IOMUX_PAD(0x0360, 0x004C, 3, 0x0000, 0, 0),
 	MX6_PAD_CSI0_DAT11__UART1_RXD		= IOMUX_PAD(0x0364, 0x0050, 3, 0x08FC, 1, 0),
diff --git a/arch/arm/include/asm/arch-mx6/mx6q_pins.h b/arch/arm/include/asm/arch-mx6/mx6q_pins.h
index 1c1c008..02a40d4 100644
--- a/arch/arm/include/asm/arch-mx6/mx6q_pins.h
+++ b/arch/arm/include/asm/arch-mx6/mx6q_pins.h
@@ -24,33 +24,6 @@
 
 #include <asm/imx-common/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                0
-#define NO_PAD_I                0
-
 enum {
 	MX6_PAD_SD2_DAT1__USDHC2_DAT1		= IOMUX_PAD(0x0360, 0x004C, 0, 0x0000, 0, 0),
 	MX6_PAD_SD2_DAT1__ECSPI5_SS0		= IOMUX_PAD(0x0360, 0x004C, 1, 0x0834, 0, 0),
diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h b/arch/arm/include/asm/imx-common/iomux-v3.h
index c34bb76..32126a7 100644
--- a/arch/arm/include/asm/imx-common/iomux-v3.h
+++ b/arch/arm/include/asm/imx-common/iomux-v3.h
@@ -97,6 +97,32 @@ typedef u64 iomux_v3_cfg_t;
 
 #define MUX_CONFIG_SION		(0x1 << 4)
 
+#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                0
+#define NO_PAD_I                0
+
 int imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad);
 int imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
 				     unsigned count);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/3] mx6: Add solo-lite variant support
  2013-04-06  0:55 [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Fabio Estevam
@ 2013-04-06  0:55 ` Fabio Estevam
  2013-04-06  0:55 ` [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board Fabio Estevam
  2013-04-09 18:20 ` [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Otavio Salvador
  2 siblings, 0 replies; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06  0:55 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <fabio.estevam@freescale.com>

mx6 solo-lite is another member of the mx6 series. 

For more information about mx6 solo-lite, please visit:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6SL&nodeId=018rH3ZrDRB24A

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/cpu/armv7/mx6/clock.c             |   38 ++++++++++++++++-
 arch/arm/include/asm/arch-mx6/crm_regs.h   |    5 +++
 arch/arm/include/asm/arch-mx6/imx-regs.h   |   63 +++++++++++++++++++++++++++-
 arch/arm/include/asm/arch-mx6/mx6-pins.h   |    4 ++
 arch/arm/include/asm/arch-mx6/mx6sl_pins.h |   25 +++++++++++
 5 files changed, 132 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-mx6/mx6sl_pins.h

diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c
index a50db70..8cba4fd 100644
--- a/arch/arm/cpu/armv7/mx6/clock.c
+++ b/arch/arm/cpu/armv7/mx6/clock.c
@@ -186,12 +186,16 @@ static u32 get_ipg_per_clk(void)
 static u32 get_uart_clk(void)
 {
 	u32 reg, uart_podf;
-
+	u32 freq = PLL3_80M;
 	reg = __raw_readl(&imx_ccm->cscdr1);
+#ifdef CONFIG_MX6SL
+	if (reg & MXC_CCM_CSCDR1_UART_CLK_SEL)
+		freq = MXC_HCLK;
+#endif
 	reg &= MXC_CCM_CSCDR1_UART_CLK_PODF_MASK;
 	uart_podf = reg >> MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET;
 
-	return PLL3_80M / (uart_podf + 1);
+	return freq / (uart_podf + 1);
 }
 
 static u32 get_cspi_clk(void)
@@ -252,6 +256,35 @@ static u32 get_emi_slow_clk(void)
 	return root_freq / (emi_slow_pof + 1);
 }
 
+#ifdef CONFIG_MX6SL
+static u32 get_mmdc_ch0_clk(void)
+{
+	u32 cbcmr = __raw_readl(&imx_ccm->cbcmr);
+	u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
+	u32 freq, podf;
+
+	podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH1_PODF_MASK) \
+			>> MXC_CCM_CBCDR_MMDC_CH1_PODF_OFFSET;
+
+	switch ((cbcmr & MXC_CCM_CBCMR_PRE_PERIPH2_CLK_SEL_MASK) >>
+		MXC_CCM_CBCMR_PRE_PERIPH2_CLK_SEL_OFFSET) {
+	case 0:
+		freq = decode_pll(PLL_BUS, MXC_HCLK);
+		break;
+	case 1:
+		freq = PLL2_PFD2_FREQ;
+		break;
+	case 2:
+		freq = PLL2_PFD0_FREQ;
+		break;
+	case 3:
+		freq = PLL2_PFD2_DIV_FREQ;
+	}
+
+	return freq / (podf + 1);
+
+}
+#else
 static u32 get_mmdc_ch0_clk(void)
 {
 	u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
@@ -260,6 +293,7 @@ static u32 get_mmdc_ch0_clk(void)
 
 	return get_periph_clk() / (mmdc_ch0_podf + 1);
 }
+#endif
 
 static u32 get_usdhc_clk(u32 port)
 {
diff --git a/arch/arm/include/asm/arch-mx6/crm_regs.h b/arch/arm/include/asm/arch-mx6/crm_regs.h
index 7676457..b1ed62f 100644
--- a/arch/arm/include/asm/arch-mx6/crm_regs.h
+++ b/arch/arm/include/asm/arch-mx6/crm_regs.h
@@ -244,7 +244,12 @@ struct mxc_ccm_reg {
 #define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK		(0x7 << 8)
 #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET		6
 #define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK		(0x3 << 6)
+#ifdef CONFIG_MX6SL
+#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK		0x1F
+#define MXC_CCM_CSCDR1_UART_CLK_SEL			(1 << 6)
+#else
 #define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK		0x3F
+#endif
 #define MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET		0
 
 /* Define the bits in register CS1CDR */
diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h
index eaa7439..2d8fe69 100644
--- a/arch/arm/include/asm/arch-mx6/imx-regs.h
+++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
@@ -25,6 +25,13 @@
 
 #define ROMCP_ARB_BASE_ADDR             0x00000000
 #define ROMCP_ARB_END_ADDR              0x000FFFFF
+
+#ifdef CONFIG_MX6SL
+#define GPU_2D_ARB_BASE_ADDR            0x02200000
+#define GPU_2D_ARB_END_ADDR             0x02203FFF
+#define OPENVG_ARB_BASE_ADDR            0x02204000
+#define OPENVG_ARB_END_ADDR             0x02207FFF
+#else
 #define CAAM_ARB_BASE_ADDR              0x00100000
 #define CAAM_ARB_END_ADDR               0x00103FFF
 #define APBH_DMA_ARB_BASE_ADDR          0x00110000
@@ -37,9 +44,14 @@
 #define GPU_2D_ARB_END_ADDR             0x00137FFF
 #define DTCP_ARB_BASE_ADDR              0x00138000
 #define DTCP_ARB_END_ADDR               0x0013BFFF
-
+#endif	/* CONFIG_MX6SL */
 /* GPV - PL301 configuration ports */
+#ifdef CONFIG_MX6SL
+#define GPV2_BASE_ADDR                  0x00D00000
+#else
 #define GPV2_BASE_ADDR			0x00200000
+#endif
+
 #define GPV3_BASE_ADDR			0x00300000
 #define GPV4_BASE_ADDR			0x00800000
 #define IRAM_BASE_ADDR			0x00900000
@@ -70,10 +82,17 @@
 #define WEIM_ARB_BASE_ADDR              0x08000000
 #define WEIM_ARB_END_ADDR               0x0FFFFFFF
 
+#ifdef CONFIG_MX6SL
+#define MMDC0_ARB_BASE_ADDR             0x80000000
+#define MMDC0_ARB_END_ADDR              0xFFFFFFFF
+#define MMDC1_ARB_BASE_ADDR             0xC0000000
+#define MMDC1_ARB_END_ADDR              0xFFFFFFFF
+#else
 #define MMDC0_ARB_BASE_ADDR             0x10000000
 #define MMDC0_ARB_END_ADDR              0x7FFFFFFF
 #define MMDC1_ARB_BASE_ADDR             0x80000000
 #define MMDC1_ARB_END_ADDR              0xFFFFFFFF
+#endif
 
 #define IPU_SOC_BASE_ADDR		IPU1_ARB_BASE_ADDR
 #define IPU_SOC_OFFSET			0x00200000
@@ -89,6 +108,16 @@
 #define ECSPI2_BASE_ADDR            (ATZ1_BASE_ADDR + 0x0C000)
 #define ECSPI3_BASE_ADDR            (ATZ1_BASE_ADDR + 0x10000)
 #define ECSPI4_BASE_ADDR            (ATZ1_BASE_ADDR + 0x14000)
+#ifdef CONFIG_MX6SL
+#define UART5_IPS_BASE_ADDR         (ATZ1_BASE_ADDR + 0x18000)
+#define UART1_IPS_BASE_ADDR         (ATZ1_BASE_ADDR + 0x20000)
+#define UART2_IPS_BASE_ADDR         (ATZ1_BASE_ADDR + 0x24000)
+#define SSI1_IPS_BASE_ADDR          (ATZ1_BASE_ADDR + 0x28000)
+#define SSI2_IPS_BASE_ADDR          (ATZ1_BASE_ADDR + 0x2C000)
+#define SSI3_IPS_BASE_ADDR          (ATZ1_BASE_ADDR + 0x30000)
+#define UART3_IPS_BASE_ADDR         (ATZ1_BASE_ADDR + 0x34000)
+#define UART4_IPS_BASE_ADDR         (ATZ1_BASE_ADDR + 0x38000)
+#else
 #define ECSPI5_BASE_ADDR            (ATZ1_BASE_ADDR + 0x18000)
 #define UART1_BASE                  (ATZ1_BASE_ADDR + 0x20000)
 #define ESAI1_BASE_ADDR             (ATZ1_BASE_ADDR + 0x24000)
@@ -96,6 +125,8 @@
 #define SSI2_BASE_ADDR              (ATZ1_BASE_ADDR + 0x2C000)
 #define SSI3_BASE_ADDR              (ATZ1_BASE_ADDR + 0x30000)
 #define ASRC_BASE_ADDR              (ATZ1_BASE_ADDR + 0x34000)
+#endif
+
 #define SPBA_BASE_ADDR              (ATZ1_BASE_ADDR + 0x3C000)
 #define VPU_BASE_ADDR               (ATZ1_BASE_ADDR + 0x40000)
 #define AIPS1_ON_BASE_ADDR          (ATZ1_BASE_ADDR + 0x7C000)
@@ -128,18 +159,35 @@
 #define SRC_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x58000)
 #define GPC_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x5C000)
 #define IOMUXC_BASE_ADDR            (AIPS1_OFF_BASE_ADDR + 0x60000)
+#ifdef CONFIG_MX6SL
+#define CSI_BASE_ADDR               (AIPS1_OFF_BASE_ADDR + 0x64000)
+#define SIPIX_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x68000)
+#define SDMA_PORT_HOST_BASE_ADDR    (AIPS1_OFF_BASE_ADDR + 0x6C000)
+#else
 #define DCIC1_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x64000)
 #define DCIC2_BASE_ADDR             (AIPS1_OFF_BASE_ADDR + 0x68000)
 #define DMA_REQ_PORT_HOST_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
+#endif
 
 #define AIPS2_ON_BASE_ADDR          (ATZ2_BASE_ADDR + 0x7C000)
 #define AIPS2_OFF_BASE_ADDR         (ATZ2_BASE_ADDR + 0x80000)
 #define CAAM_BASE_ADDR              (ATZ2_BASE_ADDR)
 #define ARM_BASE_ADDR		    (ATZ2_BASE_ADDR + 0x40000)
+#ifdef CONFIG_MX6SL
+#define USBO2H_PL301_IPS_BASE_ADDR  (AIPS2_OFF_BASE_ADDR + 0x0000)
+#define USBO2H_USB_BASE_ADDR        (AIPS2_OFF_BASE_ADDR + 0x4000)
+#else
 #define USBOH3_PL301_BASE_ADDR      (AIPS2_OFF_BASE_ADDR + 0x0000)
 #define USBOH3_USB_BASE_ADDR        (AIPS2_OFF_BASE_ADDR + 0x4000)
+#endif
+
 #define ENET_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x8000)
+#ifdef CONFIG_MX6SL
+#define MSHC_IPS_BASE_ADDR          (AIPS2_OFF_BASE_ADDR + 0xC000)
+#else
 #define MLB_BASE_ADDR               (AIPS2_OFF_BASE_ADDR + 0xC000)
+#endif
+
 #define USDHC1_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x10000)
 #define USDHC2_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x14000)
 #define USDHC3_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x18000)
@@ -149,7 +197,12 @@
 #define I2C3_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x28000)
 #define ROMCP_BASE_ADDR             (AIPS2_OFF_BASE_ADDR + 0x2C000)
 #define MMDC_P0_BASE_ADDR           (AIPS2_OFF_BASE_ADDR + 0x30000)
+#ifdef CONFIG_MX6SL
+#define RNGB_IPS_BASE_ADDR          (AIPS2_OFF_BASE_ADDR + 0x34000)
+#else
 #define MMDC_P1_BASE_ADDR           (AIPS2_OFF_BASE_ADDR + 0x34000)
+#endif
+
 #define WEIM_BASE_ADDR              (AIPS2_OFF_BASE_ADDR + 0x38000)
 #define OCOTP_BASE_ADDR             (AIPS2_OFF_BASE_ADDR + 0x3C000)
 #define CSU_BASE_ADDR               (AIPS2_OFF_BASE_ADDR + 0x40000)
@@ -364,12 +417,20 @@ struct cspi_regs {
 #define MXC_CSPICON_POL		4
 #define MXC_CSPICON_PHA		0
 #define MXC_CSPICON_SSPOL	12
+#ifdef CONFIG_MX6SL
+#define MXC_SPI_BASE_ADDRESSES \
+	ECSPI1_BASE_ADDR, \
+	ECSPI2_BASE_ADDR, \
+	ECSPI3_BASE_ADDR, \
+	ECSPI4_BASE_ADDR
+#else
 #define MXC_SPI_BASE_ADDRESSES \
 	ECSPI1_BASE_ADDR, \
 	ECSPI2_BASE_ADDR, \
 	ECSPI3_BASE_ADDR, \
 	ECSPI4_BASE_ADDR, \
 	ECSPI5_BASE_ADDR
+#endif
 
 struct iim_regs {
 	u32	ctrl;
diff --git a/arch/arm/include/asm/arch-mx6/mx6-pins.h b/arch/arm/include/asm/arch-mx6/mx6-pins.h
index 63f4856..ce865a6 100644
--- a/arch/arm/include/asm/arch-mx6/mx6-pins.h
+++ b/arch/arm/include/asm/arch-mx6/mx6-pins.h
@@ -24,7 +24,11 @@
 #if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
 #include "mx6dl_pins.h"
 #else
+#if defined(CONFIG_MX6SL)
+#include "mx6sl_pins.h"
+#else
 #error "Please select cpu"
+#endif	/* CONFIG_MX6SL */
 #endif	/* CONFIG_MX6DL or CONFIG_MX6S */
 #endif	/* CONFIG_MX6Q */
 
diff --git a/arch/arm/include/asm/arch-mx6/mx6sl_pins.h b/arch/arm/include/asm/arch-mx6/mx6sl_pins.h
new file mode 100644
index 0000000..bfe4f00
--- /dev/null
+++ b/arch/arm/include/asm/arch-mx6/mx6sl_pins.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#ifndef __ASM_ARCH_MX6_MX6SL_PINS_H__
+#define __ASM_ARCH_MX6_MX6SL_PINS_H__
+
+#include <asm/imx-common/iomux-v3.h>
+
+enum {
+	MX6_PAD_SD2_CLK__USDHC2_CLK				= IOMUX_PAD(0x055C, 0x0254, 0, 0x0000, 0, 0),
+	MX6_PAD_SD2_CMD__USDHC2_CMD				= IOMUX_PAD(0x0560, 0x0258, 0, 0x0000, 0, 0),
+	MX6_PAD_SD2_DAT0__USDHC2_DAT0				= IOMUX_PAD(0x0564, 0x025C, 0, 0x0000, 0, 0),
+	MX6_PAD_SD2_DAT1__USDHC2_DAT1				= IOMUX_PAD(0x0568, 0x0260, 0, 0x0000, 0, 0),
+	MX6_PAD_SD2_DAT2__USDHC2_DAT2				= IOMUX_PAD(0x056C, 0x0264, 0, 0x0000, 0, 0),
+	MX6_PAD_SD2_DAT3__USDHC2_DAT3				= IOMUX_PAD(0x0570, 0x0268, 0, 0x0000, 0, 0),
+	MX6_PAD_UART1_RXD__UART1_RXD				= IOMUX_PAD(0x05A0, 0x0298, 0, 0x07FC, 0, 0),
+	MX6_PAD_UART1_TXD__UART1_TXD				= IOMUX_PAD(0x05A4, 0x029C, 0, 0x0000, 0, 0),
+};
+#endif	/* __ASM_ARCH_MX6_MX6SL_PINS_H__ */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06  0:55 [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Fabio Estevam
  2013-04-06  0:55 ` [U-Boot] [PATCH 2/3] mx6: Add solo-lite variant support Fabio Estevam
@ 2013-04-06  0:55 ` Fabio Estevam
  2013-04-06  7:27   ` Dirk Behme
  2013-04-09 18:20 ` [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Otavio Salvador
  2 siblings, 1 reply; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06  0:55 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <fabio.estevam@freescale.com>

mx6slevk board is a development board from Freescale based on the mx6 solo-lite
processor.

For details about mx6slevk, please refer to:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX6SLEVK&parentCode=i.MX6SL&fpsp=1

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 MAINTAINERS                           |    1 +
 board/freescale/mx6slevk/Makefile     |   28 +++++
 board/freescale/mx6slevk/imximage.cfg |  118 ++++++++++++++++++++
 board/freescale/mx6slevk/mx6slevk.c   |  102 ++++++++++++++++++
 boards.cfg                            |    1 +
 include/configs/mx6slevk.h            |  189 +++++++++++++++++++++++++++++++++
 6 files changed, 439 insertions(+)
 create mode 100644 board/freescale/mx6slevk/Makefile
 create mode 100644 board/freescale/mx6slevk/imximage.cfg
 create mode 100644 board/freescale/mx6slevk/mx6slevk.c
 create mode 100644 include/configs/mx6slevk.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 0f19078..723a316 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -665,6 +665,7 @@ Fabio Estevam <fabio.estevam@freescale.com>
 	mx6qsabresd	i.MX6Q
 	mx6qsabreauto	i.MX6Q
 	wandboard	i.MX6DL/S
+	mx6slevk	i.MX6SL
 
 Daniel Gorsulowski <daniel.gorsulowski@esd.eu>
 
diff --git a/board/freescale/mx6slevk/Makefile b/board/freescale/mx6slevk/Makefile
new file mode 100644
index 0000000..43af351
--- /dev/null
+++ b/board/freescale/mx6slevk/Makefile
@@ -0,0 +1,28 @@
+# (C) Copyright 2013 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.
+#
+
+include $(TOPDIR)/config.mk
+
+LIB    = $(obj)lib$(BOARD).o
+
+COBJS  := mx6slevk.o
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+$(LIB):        $(obj).depend $(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/freescale/mx6slevk/imximage.cfg b/board/freescale/mx6slevk/imximage.cfg
new file mode 100644
index 0000000..df39a16
--- /dev/null
+++ b/board/freescale/mx6slevk/imximage.cfg
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2013 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.
+ *
+ * Refer docs/README.imxmage for more details about how-to configure
+ * and create imximage boot image
+ *
+ * The syntax is taken as close as possible with the kwbimage
+ */
+
+/* image version */
+
+IMAGE_VERSION 2
+
+/*
+ * Boot Device : one of
+ * spi, sd (the board has no nand neither onenand)
+ */
+
+BOOT_FROM	sd
+
+/*
+ * Device Configuration Data (DCD)
+ *
+ * Each entry must have the format:
+ * Addr-type           Address        Value
+ *
+ * where:
+ *	Addr-type register length (1,2 or 4 bytes)
+ *	Address	  absolute address of the register
+ *	value	  value to be stored in the register
+ */
+DATA 4 0x020c4018 0x00260324
+
+DATA 4 0x020c4068 0xffffffff
+DATA 4 0x020c406c 0xffffffff
+DATA 4 0x020c4070 0xffffffff
+DATA 4 0x020c4074 0xffffffff
+DATA 4 0x020c4078 0xffffffff
+DATA 4 0x020c407c 0xffffffff
+DATA 4 0x020c4080 0xffffffff
+
+DATA 4 0x020e0344 0x00003030
+DATA 4 0x020e0348 0x00003030
+DATA 4 0x020e034c 0x00003030
+DATA 4 0x020e0350 0x00003030
+DATA 4 0x020e030c 0x00000030
+DATA 4 0x020e0310 0x00000030
+DATA 4 0x020e0314 0x00000030
+DATA 4 0x020e0318 0x00000030
+DATA 4 0x020e0300 0x00000030
+DATA 4 0x020e031c 0x00000030
+DATA 4 0x020e0338 0x00000028
+DATA 4 0x020e0320 0x00000030
+DATA 4 0x020e032c 0x00000000
+DATA 4 0x020e033c 0x00000008
+DATA 4 0x020e0340 0x00000008
+DATA 4 0x020e05c4 0x00000030
+DATA 4 0x020e05cc 0x00000030
+DATA 4 0x020e05d4 0x00000030
+DATA 4 0x020e05d8 0x00000030
+DATA 4 0x020e05ac 0x00000030
+DATA 4 0x020e05c8 0x00000030
+DATA 4 0x020e05b0 0x00020000
+DATA 4 0x020e05b4 0x00000000
+DATA 4 0x020e05c0 0x00020000
+DATA 4 0x020e05d0 0x00080000
+
+DATA 4 0x021b001c 0x00008000
+DATA 4 0x021b085c 0x1b4700c7
+DATA 4 0x021b0800 0xa1390003
+DATA 4 0x021b0890 0x00300000
+DATA 4 0x021b08b8 0x00000800
+DATA 4 0x021b081c 0x33333333
+DATA 4 0x021b0820 0x33333333
+DATA 4 0x021b0824 0x33333333
+DATA 4 0x021b0828 0x33333333
+DATA 4 0x021b082c 0xf3333333
+DATA 4 0x021b0830 0xf3333333
+DATA 4 0x021b0834 0xf3333333
+DATA 4 0x021b0838 0xf3333333
+DATA 4 0x021b0848 0x4241444a
+DATA 4 0x021b0850 0x3030312b
+DATA 4 0x021b083c 0x20000000
+DATA 4 0x021b0840 0x00000000
+DATA 4 0x021b08c0 0x24911492
+DATA 4 0x021b08b8 0x00000800
+DATA 4 0x021b000c 0x33374133
+DATA 4 0x021b0004 0x00020024
+DATA 4 0x021b0010 0x00100A82
+DATA 4 0x021b0014 0x00000093
+DATA 4 0x021b0018 0x00001688
+DATA 4 0x021b002c 0x0f9f26d2
+DATA 4 0x021b0030 0x0000020e
+DATA 4 0x021b0038 0x00190778
+DATA 4 0x021b0008 0x00000000
+DATA 4 0x021b0040 0x0000004f
+DATA 4 0x021b0000 0xc3110000
+DATA 4 0x021b001c 0x003f8030
+DATA 4 0x021b001c 0xff0a8030
+DATA 4 0x021b001c 0x82018030
+DATA 4 0x021b001c 0x04028030
+DATA 4 0x021b001c 0x02038030
+DATA 4 0x021b001c 0xff0a8038
+DATA 4 0x021b001c 0x82018038
+DATA 4 0x021b001c 0x04028038
+DATA 4 0x021b001c 0x02038038
+DATA 4 0x021b0800 0xa1310003
+DATA 4 0x021b0020 0x00001800
+DATA 4 0x021b0818 0x00000000
+DATA 4 0x021b08b8 0x00000800
+DATA 4 0x021b0004 0x00025564
+DATA 4 0x021b0404 0x00011006
+DATA 4 0x021b001c 0x00000000
diff --git a/board/freescale/mx6slevk/mx6slevk.c b/board/freescale/mx6slevk/mx6slevk.c
new file mode 100644
index 0000000..fc6353e
--- /dev/null
+++ b/board/freescale/mx6slevk/mx6slevk.c
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * 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.
+ */
+
+#include <asm/arch/clock.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/gpio.h>
+#include <asm/imx-common/iomux-v3.h>
+#include <asm/io.h>
+#include <asm/sizes.h>
+#include <common.h>
+#include <fsl_esdhc.h>
+#include <mmc.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |		\
+	PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |		\
+	PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |		\
+	PAD_CTL_PUS_22K_UP  | PAD_CTL_SPEED_LOW |		\
+	PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
+
+int dram_init(void)
+{
+	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
+
+	return 0;
+}
+
+static iomux_v3_cfg_t const uart1_pads[] = {
+	MX6_PAD_UART1_TXD__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
+	MX6_PAD_UART1_RXD__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static iomux_v3_cfg_t const usdhc2_pads[] = {
+	MX6_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
+}
+
+static struct fsl_esdhc_cfg usdhc_cfg[1] = {
+	{USDHC2_BASE_ADDR},
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+	return 1;	/* Assume boot SD always present */
+}
+
+int board_mmc_init(bd_t *bis)
+{
+	imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
+
+	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
+	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
+}
+
+int board_early_init_f(void)
+{
+	setup_iomux_uart();
+	return 0;
+}
+
+int board_init(void)
+{
+	/* address of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+	return 0;
+}
+
+u32 get_board_rev(void)
+{
+	return get_cpu_rev();
+}
+
+int checkboard(void)
+{
+	puts("Board: MX6SLEVK\n");
+
+	return 0;
+}
diff --git a/boards.cfg b/boards.cfg
index 7725a15..9e213ad 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -257,6 +257,7 @@ mx6qarm2                     arm         armv7       mx6qarm2            freesca
 mx6qsabreauto                arm         armv7       mx6qsabreauto       freescale      mx6		mx6qsabreauto:IMX_CONFIG=board/freescale/mx6qsabreauto/imximage.cfg
 mx6qsabrelite                arm         armv7       mx6qsabrelite       freescale      mx6		mx6qsabrelite:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
 mx6qsabresd                  arm         armv7       mx6qsabresd         freescale      mx6		mx6qsabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
+mx6slevk                     arm         armv7       mx6slevk            freescale      mx6		mx6slevk:IMX_CONFIG=board/freescale/mx6slevk/imximage.cfg,MX6SL
 eco5pk                       arm         armv7       eco5pk              8dtech         omap3
 nitrogen6dl                  arm         armv7       nitrogen6x          boundary       mx6		nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL,DDR_MB=1024
 nitrogen6dl2g                arm         armv7       nitrogen6x          boundary       mx6		nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl2g.cfg,MX6DL,DDR_MB=2048
diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h
new file mode 100644
index 0000000..67b63f4
--- /dev/null
+++ b/include/configs/mx6slevk.h
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * Configuration settings for the Freescale i.MX6SL EVK board.
+ *
+ * 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.
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/arch/imx-regs.h>
+#include <asm/sizes.h>
+
+#define CONFIG_MX6
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+#define MACH_TYPE_MX6SLEVK		4307
+#define CONFIG_MACH_TYPE		MACH_TYPE_MX6SLEVK
+
+#define CONFIG_CMDLINE_TAG
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_INITRD_TAG
+#define CONFIG_REVISION_TAG
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN		(3 * SZ_1M)
+
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_MXC_GPIO
+
+#define CONFIG_MXC_UART
+#define CONFIG_MXC_UART_BASE		UART1_IPS_BASE_ADDR
+
+/* MMC Configs */
+#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_USDHC
+#define CONFIG_SYS_FSL_ESDHC_ADDR	0
+
+#define CONFIG_MMC
+#define CONFIG_CMD_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_CMD_FAT
+#define CONFIG_DOS_PARTITION
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_CONS_INDEX		1
+#define CONFIG_BAUDRATE			115200
+
+/* Command definition */
+#include <config_cmd_default.h>
+
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_BOOTDELAY		3
+
+#define CONFIG_LOADADDR			0x80800000
+#define CONFIG_SYS_TEXT_BASE		0x87800000
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"script=boot.scr\0" \
+	"uimage=uImage\0" \
+	"console=ttymxc0\0" \
+	"fdt_high=0xffffffff\0" \
+	"initrd_high=0xffffffff\0" \
+	"fdt_file=imx6sl-evk.dtb\0" \
+	"fdt_addr=0x81000000\0" \
+	"boot_fdt=try\0" \
+	"ip_dyn=yes\0" \
+	"mmcdev=0\0" \
+	"mmcpart=2\0" \
+	"mmcroot=/dev/mmcblk0p3 rootwait rw\0" \
+	"mmcargs=setenv bootargs console=${console},${baudrate} " \
+		"root=${mmcroot}\0" \
+	"loadbootscript=" \
+		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+	"bootscript=echo Running bootscript from mmc ...; " \
+		"source\0" \
+	"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
+	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run mmcargs; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if run loadfdt; then " \
+				"bootm ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"if test ${boot_fdt} = try; then " \
+					"bootm; " \
+				"else " \
+					"echo WARN: Cannot load the DT; " \
+				"fi; " \
+			"fi; " \
+		"else " \
+			"bootm; " \
+		"fi;\0" \
+	"netargs=setenv bootargs console=${console},${baudrate} " \
+		"root=/dev/nfs " \
+	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
+		"netboot=echo Booting from net ...; " \
+		"run netargs; " \
+		"if test ${ip_dyn} = yes; then " \
+			"setenv get_cmd dhcp; " \
+		"else " \
+			"setenv get_cmd tftp; " \
+		"fi; " \
+		"${get_cmd} ${uimage}; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+				"bootm ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"if test ${boot_fdt} = try; then " \
+					"bootm; " \
+				"else " \
+					"echo WARN: Cannot load the DT; " \
+				"fi; " \
+			"fi; " \
+		"else " \
+			"bootm; " \
+		"fi;\0"
+
+#define CONFIG_BOOTCOMMAND \
+	   "mmc dev ${mmcdev};" \
+	   "mmc dev ${mmcdev}; if mmc rescan; then " \
+		   "if run loadbootscript; then " \
+			   "run bootscript; " \
+		   "else " \
+			   "if run loaduimage; then " \
+				   "run mmcboot; " \
+			   "else run netboot; " \
+			   "fi; " \
+		   "fi; " \
+	   "else run netboot; fi"
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT		"=> "
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_CBSIZE		256
+
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS		16
+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+
+#define CONFIG_SYS_MEMTEST_START	0x80000000
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 256 * SZ_1M)
+
+#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
+#define CONFIG_SYS_HZ			1000
+
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_STACKSIZE		SZ_128K
+
+/* Physical Memory Map */
+#define CONFIG_NR_DRAM_BANKS		1
+#define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
+#define PHYS_SDRAM_SIZE			SZ_512M
+
+#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET \
+	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+/* FLASH and environment organization */
+#define CONFIG_SYS_NO_FLASH
+
+#define CONFIG_ENV_OFFSET		(6 * SZ_64K)
+#define CONFIG_ENV_SIZE			SZ_8K
+#define CONFIG_ENV_IS_IN_MMC
+#define CONFIG_SYS_MMC_ENV_DEV		0
+
+#define CONFIG_OF_LIBFDT
+#define CONFIG_CMD_BOOTZ
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+#define CONFIG_CMD_CACHE
+#endif
+
+#endif				/* __CONFIG_H */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06  0:55 ` [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board Fabio Estevam
@ 2013-04-06  7:27   ` Dirk Behme
  2013-04-06 12:47     ` Fabio Estevam
  0 siblings, 1 reply; 15+ messages in thread
From: Dirk Behme @ 2013-04-06  7:27 UTC (permalink / raw)
  To: u-boot

Am 06.04.2013 02:55, schrieb Fabio Estevam:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> mx6slevk board is a development board from Freescale based on the mx6 solo-lite
> processor.
>
> For details about mx6slevk, please refer to:
> http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX6SLEVK&parentCode=i.MX6SL&fpsp=1
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---

> diff --git a/board/freescale/mx6slevk/imximage.cfg b/board/freescale/mx6slevk/imximage.cfg
> new file mode 100644
> index 0000000..df39a16
> --- /dev/null
> +++ b/board/freescale/mx6slevk/imximage.cfg
> @@ -0,0 +1,118 @@
> +/*
> + * Copyright (C) 2013 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.
> + *
> + * Refer docs/README.imxmage for more details about how-to configure
> + * and create imximage boot image
> + *
> + * The syntax is taken as close as possible with the kwbimage
> + */
> +
> +/* image version */
> +
> +IMAGE_VERSION 2
> +
> +/*
> + * Boot Device : one of
> + * spi, sd (the board has no nand neither onenand)
> + */
> +
> +BOOT_FROM	sd
> +
> +/*
> + * Device Configuration Data (DCD)
> + *
> + * Each entry must have the format:
> + * Addr-type           Address        Value
> + *
> + * where:
> + *	Addr-type register length (1,2 or 4 bytes)
> + *	Address	  absolute address of the register
> + *	value	  value to be stored in the register
> + */
> +DATA 4 0x020c4018 0x00260324
> +
> +DATA 4 0x020c4068 0xffffffff
> +DATA 4 0x020c406c 0xffffffff
> +DATA 4 0x020c4070 0xffffffff
> +DATA 4 0x020c4074 0xffffffff
> +DATA 4 0x020c4078 0xffffffff
> +DATA 4 0x020c407c 0xffffffff
> +DATA 4 0x020c4080 0xffffffff

Again this default stuff? ;)

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06  7:27   ` Dirk Behme
@ 2013-04-06 12:47     ` Fabio Estevam
  2013-04-06 13:52       ` Dirk Behme
  0 siblings, 1 reply; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06 12:47 UTC (permalink / raw)
  To: u-boot

Hi Dirk,

On Sat, Apr 6, 2013 at 4:27 AM, Dirk Behme <dirk.behme@gmail.com> wrote:

>> +DATA 4 0x020c4068 0xffffffff
>> +DATA 4 0x020c406c 0xffffffff
>> +DATA 4 0x020c4070 0xffffffff
>> +DATA 4 0x020c4074 0xffffffff
>> +DATA 4 0x020c4078 0xffffffff
>> +DATA 4 0x020c407c 0xffffffff
>> +DATA 4 0x020c4080 0xffffffff
>
>
> Again this default stuff? ;)

I should have replied to your previous comment.

I tried removing this block as you suggest and the board does not boot.

Then I read the following from the FSL U-boot:
"/* Enable all clocks (they are disabled by ROM code)*/

That's why I am keeping them.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 12:47     ` Fabio Estevam
@ 2013-04-06 13:52       ` Dirk Behme
  2013-04-06 14:15         ` Fabio Estevam
  0 siblings, 1 reply; 15+ messages in thread
From: Dirk Behme @ 2013-04-06 13:52 UTC (permalink / raw)
  To: u-boot

Am 06.04.2013 14:47, schrieb Fabio Estevam:
> Hi Dirk,
>
> On Sat, Apr 6, 2013 at 4:27 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
>
>>> +DATA 4 0x020c4068 0xffffffff
>>> +DATA 4 0x020c406c 0xffffffff
>>> +DATA 4 0x020c4070 0xffffffff
>>> +DATA 4 0x020c4074 0xffffffff
>>> +DATA 4 0x020c4078 0xffffffff
>>> +DATA 4 0x020c407c 0xffffffff
>>> +DATA 4 0x020c4080 0xffffffff
>>
>>
>> Again this default stuff? ;)
>
> I should have replied to your previous comment.
>
> I tried removing this block as you suggest and the board does not boot.
>
> Then I read the following from the FSL U-boot:
> "/* Enable all clocks (they are disabled by ROM code)*/
>
> That's why I am keeping them.

Most probably it would be sufficient to enable only the clocks needed 
for booting ;) And not all clocks. On the other boards we do

/* set the default clock gate to save power */
DATA 4 0x020c4068 0x00C03F3F
DATA 4 0x020c406c 0x0030FC03
DATA 4 0x020c4070 0x0FFFC000
DATA 4 0x020c4074 0x3FF00000
DATA 4 0x020c4078 0x00FFF300
DATA 4 0x020c407c 0x0F0000C3
DATA 4 0x020c4080 0x000003FF

http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg;h=f4cae5eeb9899ab4ba937ae286e004d6861f1d43;hb=refs/heads/master#l161

Do you like to try anything similar here, too?

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 13:52       ` Dirk Behme
@ 2013-04-06 14:15         ` Fabio Estevam
  2013-04-06 16:30           ` Dirk Behme
  0 siblings, 1 reply; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06 14:15 UTC (permalink / raw)
  To: u-boot

On Sat, Apr 6, 2013 at 10:52 AM, Dirk Behme <dirk.behme@gmail.com> wrote:

> Most probably it would be sufficient to enable only the clocks needed for
> booting ;) And not all clocks. On the other boards we do
>
> /* set the default clock gate to save power */
> DATA 4 0x020c4068 0x00C03F3F
> DATA 4 0x020c406c 0x0030FC03
> DATA 4 0x020c4070 0x0FFFC000
> DATA 4 0x020c4074 0x3FF00000
> DATA 4 0x020c4078 0x00FFF300
> DATA 4 0x020c407c 0x0F0000C3
> DATA 4 0x020c4080 0x000003FF
>
> http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg;h=f4cae5eeb9899ab4ba937ae286e004d6861f1d43;hb=refs/heads/master#l161
>
> Do you like to try anything similar here, too?

No, sorry. It is possible to turn some clocks off, for sure,  but I do
not see real benefit by doing this on this solo-lite board.

U-boot runs only for few seconds (or ms), so not much of power savings
we can do in the bootloader.

I am just setting the clocks to the default states, so it is up to the
kernel to manage the clocks as needed.

And I don't want to face the risk to turn some clocks off and then
realize later that the kernel was expecting a clock to be on and start
seeing weird run-time issues.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 14:15         ` Fabio Estevam
@ 2013-04-06 16:30           ` Dirk Behme
  2013-04-06 16:40             ` Fabio Estevam
  0 siblings, 1 reply; 15+ messages in thread
From: Dirk Behme @ 2013-04-06 16:30 UTC (permalink / raw)
  To: u-boot

Am 06.04.2013 16:15, schrieb Fabio Estevam:
> On Sat, Apr 6, 2013 at 10:52 AM, Dirk Behme <dirk.behme@gmail.com> wrote:
>
>> Most probably it would be sufficient to enable only the clocks needed for
>> booting ;) And not all clocks. On the other boards we do
>>
>> /* set the default clock gate to save power */
>> DATA 4 0x020c4068 0x00C03F3F
>> DATA 4 0x020c406c 0x0030FC03
>> DATA 4 0x020c4070 0x0FFFC000
>> DATA 4 0x020c4074 0x3FF00000
>> DATA 4 0x020c4078 0x00FFF300
>> DATA 4 0x020c407c 0x0F0000C3
>> DATA 4 0x020c4080 0x000003FF
>>
>> http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg;h=f4cae5eeb9899ab4ba937ae286e004d6861f1d43;hb=refs/heads/master#l161
>>
>> Do you like to try anything similar here, too?
>
> No, sorry. It is possible to turn some clocks off, for sure,  but I do
> not see real benefit by doing this on this solo-lite board.
>
> U-boot runs only for few seconds (or ms), so not much of power savings
> we can do in the bootloader.

To my understanding what we do above is not about saving power in the 
bootloader ...

> I am just setting the clocks to the default states, so it is up to the
> kernel to manage the clocks as needed.

... but saving power over the whole (kernel) runtime. I might be 
wrong, but to my understanding the kernel doesn't *disable* unneeded 
clocks?

So it's up to the bootloader to enable only the peripherals (clocks) 
really needed for booting. And then it's up to the kernel's driver 
init functions to enable the needed clocks for the subsystem once it's 
needed.

But as I won't use this board I won't care about the power consumption 
here. If you think it's fine for the use cases of this board to enable 
all clocks by default, then this shouldn't stop applying this patch.

Best regards

Dirk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 16:30           ` Dirk Behme
@ 2013-04-06 16:40             ` Fabio Estevam
  2013-04-06 16:48               ` Dirk Behme
                                 ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Fabio Estevam @ 2013-04-06 16:40 UTC (permalink / raw)
  To: u-boot

Hi Dirk,

On Sat, Apr 6, 2013 at 1:30 PM, Dirk Behme <dirk.behme@gmail.com> wrote:

> ... but saving power over the whole (kernel) runtime. I might be wrong, but
> to my understanding the kernel doesn't *disable* unneeded clocks?
>
> So it's up to the bootloader to enable only the peripherals (clocks) really
> needed for booting. And then it's up to the kernel's driver init functions
> to enable the needed clocks for the subsystem once it's needed.
>
> But as I won't use this board I won't care about the power consumption here.
> If you think it's fine for the use cases of this board to enable all clocks
> by default, then this shouldn't stop applying this patch.

Ok, understood. I will go through each one of the CCM registers and
check what clocks can be turned off.

This may take some time though as it needs proper testing.

I suggest that we keep the current clock settings as is, so that the
board support can reach U-boot, then later I can submit a patch for
turning off the unneeded clocks.

Thanks,

Fabio Estevam

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 16:40             ` Fabio Estevam
@ 2013-04-06 16:48               ` Dirk Behme
  2013-04-10  6:01               ` Stefano Babic
  2013-04-17  8:48               ` Stefano Babic
  2 siblings, 0 replies; 15+ messages in thread
From: Dirk Behme @ 2013-04-06 16:48 UTC (permalink / raw)
  To: u-boot

Am 06.04.2013 18:40, schrieb Fabio Estevam:
> Hi Dirk,
>
> On Sat, Apr 6, 2013 at 1:30 PM, Dirk Behme <dirk.behme@gmail.com> wrote:
>
>> ... but saving power over the whole (kernel) runtime. I might be wrong, but
>> to my understanding the kernel doesn't *disable* unneeded clocks?
>>
>> So it's up to the bootloader to enable only the peripherals (clocks) really
>> needed for booting. And then it's up to the kernel's driver init functions
>> to enable the needed clocks for the subsystem once it's needed.
>>
>> But as I won't use this board I won't care about the power consumption here.
>> If you think it's fine for the use cases of this board to enable all clocks
>> by default, then this shouldn't stop applying this patch.
>
> Ok, understood. I will go through each one of the CCM registers and
> check what clocks can be turned off.
>
> This may take some time though as it needs proper testing.
>
> I suggest that we keep the current clock settings as is, so that the
> board support can reach U-boot, then later I can submit a patch for
> turning off the unneeded clocks.

Sounds like a good plan :)

Thanks

Dirk

P.S.: I would think that the clock settings of the other boards should 
be a good starting point to minimize the work. At least if the 
SoloLite clocks are not completely different ;)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file
  2013-04-06  0:55 [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Fabio Estevam
  2013-04-06  0:55 ` [U-Boot] [PATCH 2/3] mx6: Add solo-lite variant support Fabio Estevam
  2013-04-06  0:55 ` [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board Fabio Estevam
@ 2013-04-09 18:20 ` Otavio Salvador
  2 siblings, 0 replies; 15+ messages in thread
From: Otavio Salvador @ 2013-04-09 18:20 UTC (permalink / raw)
  To: u-boot

On Fri, Apr 5, 2013 at 9:55 PM, Fabio Estevam <festevam@gmail.com> wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Instead of having the same PAD control definition in each MX6 variant pin file,
> place it into a common location.
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Breaks Wandboard builds...

> ---
>  arch/arm/include/asm/arch-mx6/mx6dl_pins.h |   27 ---------------------------
>  arch/arm/include/asm/arch-mx6/mx6q_pins.h  |   27 ---------------------------
>  arch/arm/include/asm/imx-common/iomux-v3.h |   26 ++++++++++++++++++++++++++
>  3 files changed, 26 insertions(+), 54 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
> index 9846f1b..0ed12f3 100644
> --- a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
> +++ b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h
> @@ -22,33 +22,6 @@
>
>  #include <asm/imx-common/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 IOMUX_CONFIG_SION 0x10

This has not been defined.

> -#define NO_MUX_I                0
> -#define NO_PAD_I                0
>  enum {
>         MX6_PAD_CSI0_DAT10__UART1_TXD           = IOMUX_PAD(0x0360, 0x004C, 3, 0x0000, 0, 0),
>         MX6_PAD_CSI0_DAT11__UART1_RXD           = IOMUX_PAD(0x0364, 0x0050, 3, 0x08FC, 1, 0),
> diff --git a/arch/arm/include/asm/arch-mx6/mx6q_pins.h b/arch/arm/include/asm/arch-mx6/mx6q_pins.h
> index 1c1c008..02a40d4 100644
> --- a/arch/arm/include/asm/arch-mx6/mx6q_pins.h
> +++ b/arch/arm/include/asm/arch-mx6/mx6q_pins.h
> @@ -24,33 +24,6 @@
>
>  #include <asm/imx-common/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                0
> -#define NO_PAD_I                0
> -
>  enum {
>         MX6_PAD_SD2_DAT1__USDHC2_DAT1           = IOMUX_PAD(0x0360, 0x004C, 0, 0x0000, 0, 0),
>         MX6_PAD_SD2_DAT1__ECSPI5_SS0            = IOMUX_PAD(0x0360, 0x004C, 1, 0x0834, 0, 0),
> diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h b/arch/arm/include/asm/imx-common/iomux-v3.h
> index c34bb76..32126a7 100644
> --- a/arch/arm/include/asm/imx-common/iomux-v3.h
> +++ b/arch/arm/include/asm/imx-common/iomux-v3.h
> @@ -97,6 +97,32 @@ typedef u64 iomux_v3_cfg_t;
>
>  #define MUX_CONFIG_SION                (0x1 << 4)
>
> +#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                0
> +#define NO_PAD_I                0
> +
>  int imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad);
>  int imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
>                                      unsigned count);
> --
> 1.7.9.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot



--
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 16:40             ` Fabio Estevam
  2013-04-06 16:48               ` Dirk Behme
@ 2013-04-10  6:01               ` Stefano Babic
  2013-04-17  8:48               ` Stefano Babic
  2 siblings, 0 replies; 15+ messages in thread
From: Stefano Babic @ 2013-04-10  6:01 UTC (permalink / raw)
  To: u-boot

On 06/04/2013 18:40, Fabio Estevam wrote:
> Hi Dirk,
> 
> On Sat, Apr 6, 2013 at 1:30 PM, Dirk Behme <dirk.behme@gmail.com> wrote:
> 
>> ... but saving power over the whole (kernel) runtime. I might be wrong, but
>> to my understanding the kernel doesn't *disable* unneeded clocks?
>>
>> So it's up to the bootloader to enable only the peripherals (clocks) really
>> needed for booting. And then it's up to the kernel's driver init functions
>> to enable the needed clocks for the subsystem once it's needed.
>>
>> But as I won't use this board I won't care about the power consumption here.
>> If you think it's fine for the use cases of this board to enable all clocks
>> by default, then this shouldn't stop applying this patch.
> 
> Ok, understood. I will go through each one of the CCM registers and
> check what clocks can be turned off.
> 
> This may take some time though as it needs proper testing.
> 
> I suggest that we keep the current clock settings as is, so that the
> board support can reach U-boot, then later I can submit a patch for
> turning off the unneeded clocks.

+1

Best regards,
Stefano


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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-06 16:40             ` Fabio Estevam
  2013-04-06 16:48               ` Dirk Behme
  2013-04-10  6:01               ` Stefano Babic
@ 2013-04-17  8:48               ` Stefano Babic
  2013-04-21 17:00                 ` Fabio Estevam
  2 siblings, 1 reply; 15+ messages in thread
From: Stefano Babic @ 2013-04-17  8:48 UTC (permalink / raw)
  To: u-boot

On 06/04/2013 18:40, Fabio Estevam wrote:
> Hi Dirk,
> 
> On Sat, Apr 6, 2013 at 1:30 PM, Dirk Behme <dirk.behme@gmail.com> wrote:
> 
>> ... but saving power over the whole (kernel) runtime. I might be wrong, but
>> to my understanding the kernel doesn't *disable* unneeded clocks?
>>
>> So it's up to the bootloader to enable only the peripherals (clocks) really
>> needed for booting. And then it's up to the kernel's driver init functions
>> to enable the needed clocks for the subsystem once it's needed.
>>
>> But as I won't use this board I won't care about the power consumption here.
>> If you think it's fine for the use cases of this board to enable all clocks
>> by default, then this shouldn't stop applying this patch.
> 

Hi Fabio,

> Ok, understood. I will go through each one of the CCM registers and
> check what clocks can be turned off.
> 
> This may take some time though as it needs proper testing.
> 
> I suggest that we keep the current clock settings as is, so that the
> board support can reach U-boot, then later I can submit a patch for
> turning off the unneeded clocks.

Ok, let's do in this way - I agree that U-boot should only turn on the
clocks that it requires and do not touch the rest. But let's start
pushing this into u-boot-imx and then we can trim this setup.

Best regards,
Stefano

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-17  8:48               ` Stefano Babic
@ 2013-04-21 17:00                 ` Fabio Estevam
  2013-04-22  7:51                   ` Stefano Babic
  0 siblings, 1 reply; 15+ messages in thread
From: Fabio Estevam @ 2013-04-21 17:00 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wed, Apr 17, 2013 at 5:48 AM, Stefano Babic <sbabic@denx.de> wrote:

> Ok, let's do in this way - I agree that U-boot should only turn on the
> clocks that it requires and do not touch the rest. But let's start
> pushing this into u-boot-imx and then we can trim this setup.

Please let me know when this series reach u-boot-imx, so that I can
work on disabling the unneeded clocks.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board
  2013-04-21 17:00                 ` Fabio Estevam
@ 2013-04-22  7:51                   ` Stefano Babic
  0 siblings, 0 replies; 15+ messages in thread
From: Stefano Babic @ 2013-04-22  7:51 UTC (permalink / raw)
  To: u-boot

On 21/04/2013 19:00, Fabio Estevam wrote:
> Hi Stefano,
> 
> On Wed, Apr 17, 2013 at 5:48 AM, Stefano Babic <sbabic@denx.de> wrote:
> 
>> Ok, let's do in this way - I agree that U-boot should only turn on the
>> clocks that it requires and do not touch the rest. But let's start
>> pushing this into u-boot-imx and then we can trim this setup.
> 
> Please let me know when this series reach u-boot-imx, so that I can
> work on disabling the unneeded clocks.
> 

They are ready to be merged - I will put it into u-boot-imx.

Regards,
Stefano


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

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-04-22  7:51 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-06  0:55 [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Fabio Estevam
2013-04-06  0:55 ` [U-Boot] [PATCH 2/3] mx6: Add solo-lite variant support Fabio Estevam
2013-04-06  0:55 ` [U-Boot] [PATCH 3/3] mx6sl: Add initial support for mx6slevk board Fabio Estevam
2013-04-06  7:27   ` Dirk Behme
2013-04-06 12:47     ` Fabio Estevam
2013-04-06 13:52       ` Dirk Behme
2013-04-06 14:15         ` Fabio Estevam
2013-04-06 16:30           ` Dirk Behme
2013-04-06 16:40             ` Fabio Estevam
2013-04-06 16:48               ` Dirk Behme
2013-04-10  6:01               ` Stefano Babic
2013-04-17  8:48               ` Stefano Babic
2013-04-21 17:00                 ` Fabio Estevam
2013-04-22  7:51                   ` Stefano Babic
2013-04-09 18:20 ` [U-Boot] [PATCH 1/3] iomux-v3: Place pad control definitions into common file Otavio Salvador

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox