diff options
Diffstat (limited to 'arch/arm/mach-davinci/board-dm646x-evm.c')
| -rw-r--r-- | arch/arm/mach-davinci/board-dm646x-evm.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 6890488fb92b..f6ac9ba74878 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | #include <mach/nand.h> | 42 | #include <mach/nand.h> |
| 43 | #include <mach/clock.h> | 43 | #include <mach/clock.h> |
| 44 | #include <mach/cdce949.h> | 44 | #include <mach/cdce949.h> |
| 45 | #include <mach/aemif.h> | ||
| 45 | 46 | ||
| 46 | #include "clock.h" | 47 | #include "clock.h" |
| 47 | 48 | ||
| @@ -71,6 +72,16 @@ static struct mtd_partition davinci_nand_partitions[] = { | |||
| 71 | } | 72 | } |
| 72 | }; | 73 | }; |
| 73 | 74 | ||
| 75 | static struct davinci_aemif_timing dm6467tevm_nandflash_timing = { | ||
| 76 | .wsetup = 29, | ||
| 77 | .wstrobe = 24, | ||
| 78 | .whold = 14, | ||
| 79 | .rsetup = 19, | ||
| 80 | .rstrobe = 33, | ||
| 81 | .rhold = 0, | ||
| 82 | .ta = 29, | ||
| 83 | }; | ||
| 84 | |||
| 74 | static struct davinci_nand_pdata davinci_nand_data = { | 85 | static struct davinci_nand_pdata davinci_nand_data = { |
| 75 | .mask_cle = 0x80000, | 86 | .mask_cle = 0x80000, |
| 76 | .mask_ale = 0x40000, | 87 | .mask_ale = 0x40000, |
| @@ -718,9 +729,7 @@ static struct davinci_uart_config uart_config __initdata = { | |||
| 718 | .enabled_uarts = (1 << 0), | 729 | .enabled_uarts = (1 << 0), |
| 719 | }; | 730 | }; |
| 720 | 731 | ||
| 721 | #define DM646X_EVM_PHY_MASK (0x2) | 732 | #define DM646X_EVM_PHY_ID "0:01" |
| 722 | #define DM646X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */ | ||
| 723 | |||
| 724 | /* | 733 | /* |
| 725 | * The following EDMA channels/slots are not being used by drivers (for | 734 | * The following EDMA channels/slots are not being used by drivers (for |
| 726 | * example: Timer, GPIO, UART events etc) on dm646x, hence they are being | 735 | * example: Timer, GPIO, UART events etc) on dm646x, hence they are being |
| @@ -763,6 +772,9 @@ static __init void evm_init(void) | |||
| 763 | dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); | 772 | dm646x_init_mcasp0(&dm646x_evm_snd_data[0]); |
| 764 | dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); | 773 | dm646x_init_mcasp1(&dm646x_evm_snd_data[1]); |
| 765 | 774 | ||
| 775 | if (machine_is_davinci_dm6467tevm()) | ||
| 776 | davinci_nand_data.timing = &dm6467tevm_nandflash_timing; | ||
| 777 | |||
| 766 | platform_device_register(&davinci_nand_device); | 778 | platform_device_register(&davinci_nand_device); |
| 767 | 779 | ||
| 768 | dm646x_init_edma(dm646x_edma_rsv); | 780 | dm646x_init_edma(dm646x_edma_rsv); |
| @@ -770,8 +782,7 @@ static __init void evm_init(void) | |||
| 770 | if (HAS_ATA) | 782 | if (HAS_ATA) |
| 771 | davinci_init_ide(); | 783 | davinci_init_ide(); |
| 772 | 784 | ||
| 773 | soc_info->emac_pdata->phy_mask = DM646X_EVM_PHY_MASK; | 785 | soc_info->emac_pdata->phy_id = DM646X_EVM_PHY_ID; |
| 774 | soc_info->emac_pdata->mdio_max_freq = DM646X_EVM_MDIO_FREQUENCY; | ||
| 775 | } | 786 | } |
| 776 | 787 | ||
| 777 | #define DM646X_EVM_REF_FREQ 27000000 | 788 | #define DM646X_EVM_REF_FREQ 27000000 |
