[PATCHv3] cpufreq for freescale mx51

Amit Kucheria amit.kucheria at linaro.org
Mon Oct 18 06:02:50 EDT 2010


Yong,

I get the following errors if I try to compile this with the Linaro toolchain.

In file included from
/home/amit/work/sources/linux-amit-upstream.git/arch/arm/plat-mxc/include/mach/hardware.h:63:0,
                 from
		 /home/amit/work/sources/linux-amit-upstream.git/arch/arm/plat-mxc/devices/platform-fec.c:10:
		 /home/amit/work/sources/linux-amit-upstream.git/arch/arm/plat-mxc/include/mach/mxc.h:139:2:
		 error: expected specifier-qualifier-list before ‘u32’

Perhap following patch is required?

diff --git a/arch/arm/plat-mxc/include/mach/hardware.h
b/arch/arm/plat-mxc/include/mach/hardware.h
index ebadf4a..c9587fd 100644
--- a/arch/arm/plat-mxc/include/mach/hardware.h
+++ b/arch/arm/plat-mxc/include/mach/hardware.h
@@ -21,6 +21,7 @@
 #define __ASM_ARCH_MXC_HARDWARE_H__
  
   #include <asm/sizes.h>
   +#include <asm/types.h>


On 10 Oct 18, Yong Shen wrote:
> From: Yong Shen <yong.shen at linaro.org>
> 
> the operating points are tested on babbage 3.0
> 
> Signed-off-by: Yong Shen <yong.shen at linaro.org>
> ---
>  arch/arm/Kconfig                       |    6 +
>  arch/arm/mach-mx5/Kconfig              |    1 +
>  arch/arm/mach-mx5/Makefile             |    1 +
>  arch/arm/mach-mx5/board-mx51_babbage.c |   12 ++-
>  arch/arm/mach-mx5/clock-mx51.c         |   22 +++-
>  arch/arm/mach-mx5/cpu.c                |    2 +
>  arch/arm/mach-mx5/cpu_op-mx51.c        |   29 +++++
>  arch/arm/mach-mx5/cpu_op-mx51.h        |   14 +++
>  arch/arm/plat-mxc/Makefile             |    1 +
>  arch/arm/plat-mxc/cpufreq.c            |  202 ++++++++++++++++++++++++++++++++
>  arch/arm/plat-mxc/include/mach/mxc.h   |   20 +++-
>  11 files changed, 306 insertions(+), 4 deletions(-)
>  create mode 100644 arch/arm/mach-mx5/cpu_op-mx51.c
>  create mode 100644 arch/arm/mach-mx5/cpu_op-mx51.h
>  create mode 100644 arch/arm/plat-mxc/cpufreq.c
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index e4ea9cb..d9ad605 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1692,6 +1692,12 @@ if ARCH_HAS_CPUFREQ
>  
>  source "drivers/cpufreq/Kconfig"

<snip>

> diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h
> index a790bf2..888dddc 100644
> --- a/arch/arm/plat-mxc/include/mach/mxc.h
> +++ b/arch/arm/plat-mxc/include/mach/mxc.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
> + * Copyright 2004-2007, 2010 Freescale Semiconductor, Inc. All Rights Reserved.
>   * Copyright (C) 2008 Juergen Beisert (kernel at pengutronix.de)
>   *
>   * This program is free software; you can redistribute it and/or
> @@ -133,6 +133,24 @@ extern unsigned int __mxc_cpu_type;
>  # define cpu_is_mxc91231()	(0)
>  #endif
>  
> +#ifndef __ASSEMBLY__
> +
> +struct cpu_op {

struct mx51_cpu_op ?

IIUC, other I.MX SoCs use different 'variables' so this struct is
SoC-specific.

> +	u32 pll_reg;
> +	u32 pll_rate;
> +	u32 cpu_rate;
> +	u32 pdr0_reg;
> +	u32 pdf;
> +	u32 mfi;
> +	u32 mfd;
> +	u32 mfn;
> +	u32 cpu_voltage;
> +	u32 cpu_podf;
> +};
> +

Get rid of all members of struct cpu_op except cpu_rate for now. We can
re-add it later.

Also, I wonder if this struct and the external declaration should be moved
out to plat/mxc_cpufreq.h

> +extern struct cpu_op *(*get_cpu_op)(int *op);
> +#endif
> +
>  #if defined(CONFIG_ARCH_MX3) || defined(CONFIG_ARCH_MX2)
>  /* These are deprecated, use mx[23][157]_setup_weimcs instead. */
>  #define CSCR_U(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10))
> -- 
> 1.6.3.3



More information about the linux-arm-kernel mailing list