diff options
| -rw-r--r-- | arch/arm/mach-davinci/Makefile | 2 | ||||
| -rw-r--r-- | 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 d0fed3a67100..6aac880eb794 100644 --- a/arch/arm/mach-davinci/Makefile +++ b/arch/arm/mach-davinci/Makefile | |||
| @@ -26,7 +26,7 @@ obj-$(CONFIG_MACH_SFFSDR) += board-sffsdr.o | |||
| 26 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o | 26 | obj-$(CONFIG_MACH_NEUROS_OSD2) += board-neuros-osd2.o |
| 27 | obj-$(CONFIG_MACH_DAVINCI_DM355_EVM) += board-dm355-evm.o | 27 | obj-$(CONFIG_MACH_DAVINCI_DM355_EVM) += board-dm355-evm.o |
| 28 | obj-$(CONFIG_MACH_DM355_LEOPARD) += board-dm355-leopard.o | 28 | obj-$(CONFIG_MACH_DM355_LEOPARD) += board-dm355-leopard.o |
| 29 | obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM) += board-dm646x-evm.o | 29 | obj-$(CONFIG_MACH_DAVINCI_DM6467_EVM) += board-dm646x-evm.o cdce949.o |
| 30 | obj-$(CONFIG_MACH_DAVINCI_DM365_EVM) += board-dm365-evm.o | 30 | obj-$(CONFIG_MACH_DAVINCI_DM365_EVM) += board-dm365-evm.o |
| 31 | obj-$(CONFIG_MACH_DAVINCI_DA830_EVM) += board-da830-evm.o | 31 | obj-$(CONFIG_MACH_DAVINCI_DA830_EVM) += board-da830-evm.o |
| 32 | obj-$(CONFIG_MACH_DAVINCI_DA850_EVM) += board-da850-evm.o | 32 | 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 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 = { |
