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 | ||
