diff options
Diffstat (limited to 'arch/arm/mach-davinci/board-dm646x-evm.c')
-rw-r--r-- | arch/arm/mach-davinci/board-dm646x-evm.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 542bfdbbea0f..815067b2413e 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -40,6 +40,8 @@ | |||
40 | #include <mach/serial.h> | 40 | #include <mach/serial.h> |
41 | #include <mach/i2c.h> | 41 | #include <mach/i2c.h> |
42 | #include <mach/nand.h> | 42 | #include <mach/nand.h> |
43 | #include <mach/clock.h> | ||
44 | #include <mach/cdce949.h> | ||
43 | 45 | ||
44 | #include "clock.h" | 46 | #include "clock.h" |
45 | 47 | ||
@@ -389,6 +391,9 @@ static struct i2c_board_info __initdata i2c_info[] = { | |||
389 | { | 391 | { |
390 | I2C_BOARD_INFO("cpld_video", 0x3b), | 392 | I2C_BOARD_INFO("cpld_video", 0x3b), |
391 | }, | 393 | }, |
394 | { | ||
395 | I2C_BOARD_INFO("cdce949", 0x6c), | ||
396 | }, | ||
392 | }; | 397 | }; |
393 | 398 | ||
394 | static struct davinci_i2c_platform_data i2c_pdata = { | 399 | static struct davinci_i2c_platform_data i2c_pdata = { |
@@ -681,9 +686,35 @@ static void __init evm_init_i2c(void) | |||
681 | evm_init_video(); | 686 | evm_init_video(); |
682 | } | 687 | } |
683 | 688 | ||
689 | #define CDCE949_XIN_RATE 27000000 | ||
690 | |||
691 | /* CDCE949 support - "lpsc" field is overridden to work as clock number */ | ||
692 | static struct clk cdce_clk_in = { | ||
693 | .name = "cdce_xin", | ||
694 | .rate = CDCE949_XIN_RATE, | ||
695 | }; | ||
696 | |||
697 | static struct davinci_clk cdce_clks[] = { | ||
698 | CLK(NULL, "xin", &cdce_clk_in), | ||
699 | CLK(NULL, NULL, NULL), | ||
700 | }; | ||
701 | |||
702 | static void __init cdce_clk_init(void) | ||
703 | { | ||
704 | struct davinci_clk *c; | ||
705 | struct clk *clk; | ||
706 | |||
707 | for (c = cdce_clks; c->lk.clk; c++) { | ||
708 | clk = c->lk.clk; | ||
709 | clkdev_add(&c->lk); | ||
710 | clk_register(clk); | ||
711 | } | ||
712 | } | ||
713 | |||
684 | static void __init davinci_map_io(void) | 714 | static void __init davinci_map_io(void) |
685 | { | 715 | { |
686 | dm646x_init(); | 716 | dm646x_init(); |
717 | cdce_clk_init(); | ||
687 | } | 718 | } |
688 | 719 | ||
689 | static struct davinci_uart_config uart_config __initdata = { | 720 | static struct davinci_uart_config uart_config __initdata = { |