From cba6894cded4c3fba3ffb06a82d55b42502370c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lothar=20Wa=C3=9Fmann?= Date: Wed, 11 Dec 2013 09:23:00 +0100 Subject: [PATCH] arm: mx6: add ldb clock support --- arch/arm/cpu/armv7/mx6/clock.c | 64 +++++++++++++++++++++++++++ arch/arm/include/asm/arch-mx6/clock.h | 4 ++ 2 files changed, 68 insertions(+) diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c index abe3c05ed2..cbed1ff124 100644 --- a/arch/arm/cpu/armv7/mx6/clock.c +++ b/arch/arm/cpu/armv7/mx6/clock.c @@ -611,6 +611,70 @@ void ipu_clk_disable(void) writel(reg, &imx_ccm->CCGR3); } +void ipu_di_clk_enable(int di) +{ + switch (di) { + case 0: + setbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK); + break; + case 1: + setbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_IPU1_IPU_DI1_MASK); + break; + default: + printf("%s: Invalid DI index %d\n", __func__, di); + } +} + +void ipu_di_clk_disable(int di) +{ + switch (di) { + case 0: + clrbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK); + break; + case 1: + clrbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_IPU1_IPU_DI1_MASK); + break; + default: + printf("%s: Invalid DI index %d\n", __func__, di); + } +} + +void ldb_clk_enable(int ldb) +{ + switch (ldb) { + case 0: + setbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_LDB_DI0_MASK); + break; + case 1: + setbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_LDB_DI1_MASK); + break; + default: + printf("%s: Invalid LDB index %d\n", __func__, ldb); + } +} + +void ldb_clk_disable(int ldb) +{ + switch (ldb) { + case 0: + clrbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_LDB_DI0_MASK); + break; + case 1: + clrbits_le32(&imx_ccm->CCGR3, + MXC_CCM_CCGR3_LDB_DI1_MASK); + break; + default: + printf("%s: Invalid LDB index %d\n", __func__, ldb); + } +} + void ocotp_clk_enable(void) { u32 reg = readl(&imx_ccm->CCGR2); diff --git a/arch/arm/include/asm/arch-mx6/clock.h b/arch/arm/include/asm/arch-mx6/clock.h index 7d8915da01..a50a40e046 100644 --- a/arch/arm/include/asm/arch-mx6/clock.h +++ b/arch/arm/include/asm/arch-mx6/clock.h @@ -99,6 +99,10 @@ int enable_sata_clock(void); int enable_i2c_clk(unsigned char enable, unsigned i2c_num); void ipu_clk_enable(void); void ipu_clk_disable(void); +void ipu_di_clk_enable(int di); +void ipu_di_clk_disable(int di); +void ldb_clk_enable(int ldb); +void ldb_clk_disable(int ldb); void ocotp_clk_enable(void); void ocotp_clk_disable(void); -- 2.39.2