diff options
-rw-r--r-- | arch/arm/mach-davinci/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm646x-evm.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-davinci/dm646x.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm646x.h | 2 |
4 files changed, 31 insertions, 2 deletions
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index 033bfede6b67..0ebe185610bf 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig | |||
@@ -91,10 +91,14 @@ config MACH_DAVINCI_DM6467_EVM | |||
91 | bool "TI DM6467 EVM" | 91 | bool "TI DM6467 EVM" |
92 | default ARCH_DAVINCI_DM646x | 92 | default ARCH_DAVINCI_DM646x |
93 | depends on ARCH_DAVINCI_DM646x | 93 | depends on ARCH_DAVINCI_DM646x |
94 | select MACH_DAVINCI_DM6467TEVM | ||
94 | help | 95 | help |
95 | Configure this option to specify the whether the board used | 96 | Configure this option to specify the whether the board used |
96 | for development is a DM6467 EVM | 97 | for development is a DM6467 EVM |
97 | 98 | ||
99 | config MACH_DAVINCI_DM6467TEVM | ||
100 | bool | ||
101 | |||
98 | config MACH_DAVINCI_DM365_EVM | 102 | config MACH_DAVINCI_DM365_EVM |
99 | bool "TI DM365 EVM" | 103 | bool "TI DM365 EVM" |
100 | default ARCH_DAVINCI_DM365 | 104 | default ARCH_DAVINCI_DM365 |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 8c05343bb001..542bfdbbea0f 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/mtd/mtd.h> | 30 | #include <linux/mtd/mtd.h> |
31 | #include <linux/mtd/nand.h> | 31 | #include <linux/mtd/nand.h> |
32 | #include <linux/mtd/partitions.h> | 32 | #include <linux/mtd/partitions.h> |
33 | #include <linux/clk.h> | ||
33 | 34 | ||
34 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
35 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
@@ -40,6 +41,8 @@ | |||
40 | #include <mach/i2c.h> | 41 | #include <mach/i2c.h> |
41 | #include <mach/nand.h> | 42 | #include <mach/nand.h> |
42 | 43 | ||
44 | #include "clock.h" | ||
45 | |||
43 | #define NAND_BLOCK_SIZE SZ_128K | 46 | #define NAND_BLOCK_SIZE SZ_128K |
44 | 47 | ||
45 | /* Note: We are setting first partition as 'bootloader' constituting UBL, U-Boot | 48 | /* Note: We are setting first partition as 'bootloader' constituting UBL, U-Boot |
@@ -713,6 +716,17 @@ static __init void davinci_dm646x_evm_irq_init(void) | |||
713 | davinci_irq_init(); | 716 | davinci_irq_init(); |
714 | } | 717 | } |
715 | 718 | ||
719 | #define DM646X_EVM_REF_FREQ 27000000 | ||
720 | #define DM6467T_EVM_REF_FREQ 33000000 | ||
721 | |||
722 | void __init dm646x_board_setup_refclk(struct clk *clk) | ||
723 | { | ||
724 | if (machine_is_davinci_dm6467tevm()) | ||
725 | clk->rate = DM6467T_EVM_REF_FREQ; | ||
726 | else | ||
727 | clk->rate = DM646X_EVM_REF_FREQ; | ||
728 | } | ||
729 | |||
716 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | 730 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") |
717 | .phys_io = IO_PHYS, | 731 | .phys_io = IO_PHYS, |
718 | .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc, | 732 | .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc, |
@@ -723,3 +737,13 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | |||
723 | .init_machine = evm_init, | 737 | .init_machine = evm_init, |
724 | MACHINE_END | 738 | MACHINE_END |
725 | 739 | ||
740 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | ||
741 | .phys_io = IO_PHYS, | ||
742 | .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc, | ||
743 | .boot_params = (0x80000100), | ||
744 | .map_io = davinci_map_io, | ||
745 | .init_irq = davinci_dm646x_evm_irq_init, | ||
746 | .timer = &davinci_timer, | ||
747 | .init_machine = evm_init, | ||
748 | MACHINE_END | ||
749 | |||
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index 829a44bcf799..515d3edb9a33 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -42,7 +42,6 @@ | |||
42 | /* | 42 | /* |
43 | * Device specific clocks | 43 | * Device specific clocks |
44 | */ | 44 | */ |
45 | #define DM646X_REF_FREQ 27000000 | ||
46 | #define DM646X_AUX_FREQ 24000000 | 45 | #define DM646X_AUX_FREQ 24000000 |
47 | 46 | ||
48 | static struct pll_data pll1_data = { | 47 | static struct pll_data pll1_data = { |
@@ -57,7 +56,6 @@ static struct pll_data pll2_data = { | |||
57 | 56 | ||
58 | static struct clk ref_clk = { | 57 | static struct clk ref_clk = { |
59 | .name = "ref_clk", | 58 | .name = "ref_clk", |
60 | .rate = DM646X_REF_FREQ, | ||
61 | }; | 59 | }; |
62 | 60 | ||
63 | static struct clk aux_clkin = { | 61 | static struct clk aux_clkin = { |
@@ -925,6 +923,7 @@ void dm646x_setup_vpif(struct vpif_display_config *display_config, | |||
925 | 923 | ||
926 | void __init dm646x_init(void) | 924 | void __init dm646x_init(void) |
927 | { | 925 | { |
926 | dm646x_board_setup_refclk(&ref_clk); | ||
928 | davinci_common_init(&davinci_soc_info_dm646x); | 927 | davinci_common_init(&davinci_soc_info_dm646x); |
929 | } | 928 | } |
930 | 929 | ||
diff --git a/arch/arm/mach-davinci/include/mach/dm646x.h b/arch/arm/mach-davinci/include/mach/dm646x.h index 8cec746ae9d2..8221153bb2af 100644 --- a/arch/arm/mach-davinci/include/mach/dm646x.h +++ b/arch/arm/mach-davinci/include/mach/dm646x.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <mach/asp.h> | 16 | #include <mach/asp.h> |
17 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
18 | #include <linux/videodev2.h> | 18 | #include <linux/videodev2.h> |
19 | #include <linux/clk.h> | ||
19 | 20 | ||
20 | #define DM646X_EMAC_BASE (0x01C80000) | 21 | #define DM646X_EMAC_BASE (0x01C80000) |
21 | #define DM646X_EMAC_CNTRL_OFFSET (0x0000) | 22 | #define DM646X_EMAC_CNTRL_OFFSET (0x0000) |
@@ -30,6 +31,7 @@ void __init dm646x_init(void); | |||
30 | void __init dm646x_init_ide(void); | 31 | void __init dm646x_init_ide(void); |
31 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata); | 32 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata); |
32 | void __init dm646x_init_mcasp1(struct snd_platform_data *pdata); | 33 | void __init dm646x_init_mcasp1(struct snd_platform_data *pdata); |
34 | void __init dm646x_board_setup_refclk(struct clk *clk); | ||
33 | 35 | ||
34 | void dm646x_video_init(void); | 36 | void dm646x_video_init(void); |
35 | 37 | ||