Sekhar Nori <nsek...@ti.com> writes:

> From: Nageswari Srinivasan <nagesw...@ti.com>
>
> This patch adds the CDCE949 reference oscillator to
> the davinci clock list.
>
> On the DM6467T EVM, the CDCE949 is responsible for
> generating the pixel clock for display. On the DM6467
> EVM, this pixel clock was being obtained from an
> internal source. This is not possible on the DM6467T
> EVM because of the presence of a 33MHz oscillator.
>
> The TSIF module also requires the CDCE949 to generate
> the data clocks.
>
> The actual clock definitions will be added by patches
> adding support for DM6467T VPIF and TSIF. This patch
> mearly lays the foundation for that work.
>
> Signed-off-by: Nageswari Srinivasan <nagesw...@ti.com>
> Signed-off-by: Sekhar Nori <nsek...@ti.com>
> ---
> Since v1, ALWAYS_ENABLED flag has been removed from cdce_clk_in

Looks good, applying to davinc git and queueing in davinci-next for
2.6.34.

Kevin

>  arch/arm/mach-davinci/Makefile           |    2 +-
>  arch/arm/mach-davinci/board-dm646x-evm.c |   31 
> ++++++++++++++++++++++++++++++
>  2 files changed, 32 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile
> index eeb9230..7e806b0 100644
> --- a/arch/arm/mach-davinci/Makefile
> +++ b/arch/arm/mach-davinci/Makefile
> @@ -26,7 +26,7 @@ obj-$(CONFIG_MACH_SFFSDR)           += board-sffsdr.o
>  obj-$(CONFIG_MACH_NEUROS_OSD2)               += board-neuros-osd2.o
>  obj-$(CONFIG_MACH_DAVINCI_DM355_EVM) += board-dm355-evm.o
>  obj-$(CONFIG_MACH_DM355_LEOPARD)     += board-dm355-leopard.o
> -obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM)        += board-dm646x-evm.o
> +obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM)        += board-dm646x-evm.o cdce949.o
>  obj-$(CONFIG_MACH_DAVINCI_DM365_EVM) += board-dm365-evm.o
>  obj-$(CONFIG_MACH_DAVINCI_DA830_EVM) += board-da830-evm.o
>  obj-$(CONFIG_MACH_DAVINCI_DA850_EVM) += board-da850-evm.o
> diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c 
> b/arch/arm/mach-davinci/board-dm646x-evm.c
> index 6ff3411..6c7c604 100644
> --- a/arch/arm/mach-davinci/board-dm646x-evm.c
> +++ b/arch/arm/mach-davinci/board-dm646x-evm.c
> @@ -40,6 +40,8 @@
>  #include <mach/serial.h>
>  #include <mach/i2c.h>
>  #include <mach/nand.h>
> +#include <mach/clock.h>
> +#include <mach/cdce949.h>
>  
>  #include "clock.h"
>  
> @@ -389,6 +391,9 @@ static struct i2c_board_info __initdata i2c_info[] =  {
>       {
>               I2C_BOARD_INFO("cpld_video", 0x3b),
>       },
> +     {
> +             I2C_BOARD_INFO("cdce949", 0x6c),
> +     },
>  };
>  
>  static struct davinci_i2c_platform_data i2c_pdata = {
> @@ -681,9 +686,35 @@ static void __init evm_init_i2c(void)
>       evm_init_video();
>  }
>  
> +#define CDCE949_XIN_RATE     27000000
> +
> +/* CDCE949 support - "lpsc" field is overridden to work as clock number */
> +static struct clk cdce_clk_in = {
> +     .name   = "cdce_xin",
> +     .rate   = ATOMIC_INIT(CDCE949_XIN_RATE),
> +};
> +
> +static struct davinci_clk cdce_clks[] = {
> +     CLK(NULL, "xin", &cdce_clk_in),
> +     CLK(NULL, NULL, NULL),
> +};
> +
> +static void __init cdce_clk_init(void)
> +{
> +     struct davinci_clk *c;
> +     struct clk *clk;
> +
> +     for (c = cdce_clks; c->lk.clk; c++) {
> +             clk = c->lk.clk;
> +             clkdev_add(&c->lk);
> +             clk_register(clk);
> +     }
> +}
> +
>  static void __init davinci_map_io(void)
>  {
>       dm646x_init();
> +     cdce_clk_init();
>  }
>  
>  static struct davinci_uart_config uart_config __initdata = {
> -- 
> 1.6.2.4
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> Davinci-linux-open-source@linux.davincidsp.com
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to