Skip to contentSkip to conversation

imx: mx6 remove duplicated enable_cspi_clock

PATCH Superseded Peng Fan 3 participants 5 messages Jun 24, 2015 – Jun 25, 2015 Arm (32-bit)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Peng Fan

author
#0 lore raw

PATCH 1/3 imx: mx6 remove duplicated enable_cspi_clock

enable_spi_clock does the same thing with enable_cspi_clock.

---
 arch/arm/cpu/armv7/mx6/clock.c | 19 -------------------
 1 file changed, 19 deletions(-)
arch/arm/cpu/armv7/mx6/clock.c +0 -19
index ae99945..1134770 100644
@@ -102,25 +102,6 @@ void enable_uart_clk(unsigned char enable)
 }
 #endif
 
-#ifdef CONFIG_SPI
-/* spi_num can be from 0 - 4 */
-int enable_cspi_clock(unsigned char enable, unsigned spi_num)
-{
-	u32 mask;
-
-	if (spi_num > 4)
-		return -EINVAL;
-
-	mask = MXC_CCM_CCGR_CG_MASK << (spi_num * 2);
-	if (enable)
-		setbits_le32(&imx_ccm->CCGR1, mask);
-	else
-		clrbits_le32(&imx_ccm->CCGR1, mask);
-
-	return 0;
-}
-#endif
-
 #ifdef CONFIG_MMC
 int enable_usdhc_clk(unsigned char enable, unsigned bus_num)
 {
Signature · 1 line
1.8.4
author
#1 lore raw

PATCH 2/3 imx: cm_fx6 use enable_spi_clk

Use enable_spi_clock, since enable_cspi_clock is removed.

---
 board/compulab/cm_fx6/spl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
board/compulab/cm_fx6/spl.c +1 -1
index 5b4b76f..5ce33d0 100644
@@ -303,7 +303,7 @@ static void cm_fx6_setup_uart(void)
 static void cm_fx6_setup_ecspi(void)
 {
 	cm_fx6_set_ecspi_iomux();
-	enable_cspi_clock(1, 0);
+	enable_spi_clock(1, 0);
 }
 #else
 static void cm_fx6_setup_ecspi(void) { }
Signature · 1 line
1.8.4
author
#2 lore raw

PATCH 3/3 imx: mx6 add i2c4 clock support for i.MX6SX

In reply to Peng Fan

Add I2C4 clock support for i.MX6SX. Since we use runtime check, but not macro, we need to remove #ifdef .. in crm_regs.h, or we will get compliation failure for other platforms.

Making the macros only for i.MX6SX open to other i.MX6x maybe not a good choice, but we have runtime check.

---
 arch/arm/cpu/armv7/mx6/clock.c           | 14 ++++++++++----
 arch/arm/include/asm/arch-mx6/crm_regs.h |  9 ++++-----
 2 files changed, 14 insertions(+), 9 deletions(-)
arch/arm/cpu/armv7/mx6/clock.c +10 -4
index 1134770..b461898 100644
@@ -126,6 +126,7 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
 {
 	u32 reg;
 	u32 mask;
+	u32 *addr;
 
 	if (i2c_num > 3)
 		return -EINVAL;
@@ -140,14 +141,19 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
 			reg &= ~mask;
 		__raw_writel(reg, &imx_ccm->CCGR2);
 	} else {
-		mask = MXC_CCM_CCGR_CG_MASK
-			<< (MXC_CCM_CCGR1_I2C4_SERIAL_OFFSET);
-		reg = __raw_readl(&imx_ccm->CCGR1);
+		if (is_cpu_type(MXC_CPU_MX6SX)) {
+			mask = MXC_CCM_CCGR6_I2C4_MASK;
+			addr = &imx_ccm->CCGR6;
+		} else {
+			mask = MXC_CCM_CCGR1_I2C4_SERIAL_MASK;
+			addr = &imx_ccm->CCGR1;
+		}
+		reg = __raw_readl(addr);
 		if (enable)
 			reg |= mask;
 		else
 			reg &= ~mask;
-		__raw_writel(reg, &imx_ccm->CCGR1);
+		__raw_writel(reg, addr);
 	}
 	return 0;
 }
arch/arm/include/asm/arch-mx6/crm_regs.h +4 -5
index 887d048..ce9ac21 100644
@@ -740,7 +740,10 @@ struct mxc_ccm_reg {
 #define MXC_CCM_CCGR6_USDHC4_MASK		(3 << MXC_CCM_CCGR6_USDHC4_OFFSET)
 #define MXC_CCM_CCGR6_EMI_SLOW_OFFSET		10
 #define MXC_CCM_CCGR6_EMI_SLOW_MASK		(3 << MXC_CCM_CCGR6_EMI_SLOW_OFFSET)
-#ifdef CONFIG_MX6SX
+/* The two does not exist on i.MX6SX */
+#define MXC_CCM_CCGR6_VDOAXICLK_OFFSET		12
+#define MXC_CCM_CCGR6_VDOAXICLK_MASK		(3 << MXC_CCM_CCGR6_VDOAXICLK_OFFSET)
+/* The following exist only i.MX6SX */
 #define MXC_CCM_CCGR6_PWM8_OFFSET		16
 #define MXC_CCM_CCGR6_PWM8_MASK			(3 << MXC_CCM_CCGR6_PWM8_OFFSET)
 #define MXC_CCM_CCGR6_VADC_OFFSET		20
@@ -755,10 +758,6 @@ struct mxc_ccm_reg {
 #define MXC_CCM_CCGR6_PWM6_MASK			(3 << MXC_CCM_CCGR6_PWM6_OFFSET)
 #define MXC_CCM_CCGR6_PWM7_OFFSET		30
 #define MXC_CCM_CCGR6_PWM7_MASK			(3 << MXC_CCM_CCGR6_PWM7_OFFSET)
-#else
-#define MXC_CCM_CCGR6_VDOAXICLK_OFFSET		12
-#define MXC_CCM_CCGR6_VDOAXICLK_MASK		(3 << MXC_CCM_CCGR6_VDOAXICLK_OFFSET)
-#endif
 
 #define BM_ANADIG_PLL_SYS_LOCK 0x80000000
 #define BP_ANADIG_PLL_SYS_RSVD0      20
Signature · 1 line
1.8.4
#3 lore raw

PATCH 1/3 imx: mx6 remove duplicated enable_cspi_clock

In reply to Peng Fan
Quoted 24 lines · Peng Fan

enable_spi_clock does the same thing with enable_cspi_clock.

---
 arch/arm/cpu/armv7/mx6/clock.c | 19 -------------------
 1 file changed, 19 deletions(-)
arch/arm/cpu/armv7/mx6/clock.c +0 -9
index ae99945..1134770 100644
@@ -102,25 +102,6 @@ void enable_uart_clk(unsigned char enable)
 }
 #endif
 
-#ifdef CONFIG_SPI
-/* spi_num can be from 0 - 4 */
-int enable_cspi_clock(unsigned char enable, unsigned spi_num)
-{
-       u32 mask;
-
-       if (spi_num > 4)
-               return -EINVAL;
-

arch/arm/cpu/armv7/mx6/clock.c void enable_uart_clk(unsigned char enable) · line 123

Quoted 10 lines
arch/arm/cpu/armv7/mx6/clock.c +0 -10
-       mask = MXC_CCM_CCGR_CG_MASK << (spi_num * 2);
-       if (enable)
-               setbits_le32(&imx_ccm->CCGR1, mask);
-       else
-               clrbits_le32(&imx_ccm->CCGR1, mask);
-
-       return 0;
-}
-#endif
-

This patch causes board/compulab/cm_fx6/spl.c to fail to build.

I see that you fix board/compulab/cm_fx6/spl.c in a later patch in your series, but it should be part of the same patch to avoid the build breakage.

You should also remove the function prototype from arch/arm/include/asm/arch-mx6/clock.h.

Regards,

Fabio Estevam

#4 lore raw

PATCH 1/3 imx: mx6 remove duplicated enable_cspi_clock

Quoted 38 lines · Fabio Estevam
Quoted 24 lines · Peng Fan

enable_spi_clock does the same thing with enable_cspi_clock.

---
 arch/arm/cpu/armv7/mx6/clock.c | 19 -------------------
 1 file changed, 19 deletions(-)
arch/arm/cpu/armv7/mx6/clock.c +0 -9
index ae99945..1134770 100644
@@ -102,25 +102,6 @@ void enable_uart_clk(unsigned char enable)
 }
 #endif
 
-#ifdef CONFIG_SPI
-/* spi_num can be from 0 - 4 */
-int enable_cspi_clock(unsigned char enable, unsigned spi_num)
-{
-       u32 mask;
-
-       if (spi_num > 4)
-               return -EINVAL;
-

arch/arm/cpu/armv7/mx6/clock.c void enable_uart_clk(unsigned char enable) · line 123

Quoted 10 lines
arch/arm/cpu/armv7/mx6/clock.c +0 -10
-       mask = MXC_CCM_CCGR_CG_MASK << (spi_num * 2);
-       if (enable)
-               setbits_le32(&imx_ccm->CCGR1, mask);
-       else
-               clrbits_le32(&imx_ccm->CCGR1, mask);
-
-       return 0;
-}
-#endif
-

This patch causes board/compulab/cm_fx6/spl.c to fail to build.

Quoted 4 lines

I see that you fix board/compulab/cm_fx6/spl.c in a later patch in your series, but it should be part of the same patch to avoid the build breakage.

I thought board and arch code should not be in one patch, so I splitted it into two patch. Will fix it in v2.

Quoted 2 lines

You should also remove the function prototype from arch/arm/include/asm/arch-mx6/clock.h.

Thanks for pointing this out. Will fix in v2.

Quoted 4 lines

Regards,

Fabio Estevam

Thanks,
Peng