[U-Boot] [PATCH 3/4] mx6: clock: Do not enable sata and ipu clocks
Stefano Babic
sbabic at denx.de
Tue Jun 17 17:36:17 CEST 2014
Hi Fabio,
On 14/06/2014 22:29, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> mx6sx does not have sata nor ipu blocks, so do not handle such clocks.
>
We have already a check inside setup_sata():
if (!is_cpu_type(MXC_CPU_MX6Q) && !is_cpu_type(MXC_CPU_MX6D))
return 1;
enable_sata_clock() is called only for quad and dual. I think you do not
need at all to block enable_sata_clock(), it should be not called.
I would prefer we carry on with this approach: board are calling
functions to set up hardware, and each peripheral (setup_sata or the ipu
driver) makes the check at runtime for the running cpu.
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> arch/arm/cpu/armv7/mx6/clock.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c
> index d31fbbd..51c964c 100644
> --- a/arch/arm/cpu/armv7/mx6/clock.c
> +++ b/arch/arm/cpu/armv7/mx6/clock.c
> @@ -437,6 +437,7 @@ static int enable_enet_pll(uint32_t en)
> return 0;
> }
>
> +#ifndef CONFIG_MX6SX
> static void ungate_sata_clock(void)
> {
> struct mxc_ccm_reg *const imx_ccm =
> @@ -445,6 +446,7 @@ static void ungate_sata_clock(void)
> /* Enable SATA clock. */
> setbits_le32(&imx_ccm->CCGR5, MXC_CCM_CCGR5_SATA_MASK);
> }
> +#endif
>
> static void ungate_pcie_clock(void)
> {
> @@ -455,11 +457,13 @@ static void ungate_pcie_clock(void)
> setbits_le32(&imx_ccm->CCGR4, MXC_CCM_CCGR4_PCIE_MASK);
> }
>
> +#ifndef CONFIG_MX6SX
> int enable_sata_clock(void)
> {
> ungate_sata_clock();
> return enable_enet_pll(BM_ANADIG_PLL_ENET_ENABLE_SATA);
> }
> +#endif
>
> int enable_pcie_clock(void)
> {
> @@ -491,7 +495,9 @@ int enable_pcie_clock(void)
> clrbits_le32(&ccm_regs->cbcmr, MXC_CCM_CBCMR_PCIE_AXI_CLK_SEL);
>
> /* Party time! Ungate the clock to the PCIe. */
> +#ifndef CONFIG_MX6SX
> ungate_sata_clock();
> +#endif
> ungate_pcie_clock();
>
> return enable_enet_pll(BM_ANADIG_PLL_ENET_ENABLE_SATA |
> @@ -573,6 +579,7 @@ int do_mx6_showclocks(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> return 0;
> }
>
> +#ifndef CONFIG_MX6SX
> void enable_ipu_clock(void)
> {
> struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
> @@ -581,6 +588,7 @@ void enable_ipu_clock(void)
> reg |= MXC_CCM_CCGR3_IPU1_IPU_MASK;
> writel(reg, &mxc_ccm->CCGR3);
> }
> +#endif
> /***************************************************/
>
> U_BOOT_CMD(
>
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-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list