aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/board-dm646x-evm.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-davinci/board-dm646x-evm.c')
-rw-r--r--arch/arm/mach-davinci/board-dm646x-evm.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
index f6ac9ba7487..1cc11d85e9c 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -563,7 +563,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
563 int val; 563 int val;
564 u32 value; 564 u32 value;
565 565
566 if (!vpif_vsclkdis_reg || !cpld_client) 566 if (!vpif_vidclkctl_reg || !cpld_client)
567 return -ENXIO; 567 return -ENXIO;
568 568
569 val = i2c_smbus_read_byte(cpld_client); 569 val = i2c_smbus_read_byte(cpld_client);
@@ -571,7 +571,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
571 return val; 571 return val;
572 572
573 spin_lock_irqsave(&vpif_reg_lock, flags); 573 spin_lock_irqsave(&vpif_reg_lock, flags);
574 value = __raw_readl(vpif_vsclkdis_reg); 574 value = __raw_readl(vpif_vidclkctl_reg);
575 if (mux_mode) { 575 if (mux_mode) {
576 val &= VPIF_INPUT_TWO_CHANNEL; 576 val &= VPIF_INPUT_TWO_CHANNEL;
577 value |= VIDCH1CLK; 577 value |= VIDCH1CLK;
@@ -579,7 +579,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
579 val |= VPIF_INPUT_ONE_CHANNEL; 579 val |= VPIF_INPUT_ONE_CHANNEL;
580 value &= ~VIDCH1CLK; 580 value &= ~VIDCH1CLK;
581 } 581 }
582 __raw_writel(value, vpif_vsclkdis_reg); 582 __raw_writel(value, vpif_vidclkctl_reg);
583 spin_unlock_irqrestore(&vpif_reg_lock, flags); 583 spin_unlock_irqrestore(&vpif_reg_lock, flags);
584 584
585 err = i2c_smbus_write_byte(cpld_client, val); 585 err = i2c_smbus_write_byte(cpld_client, val);
@@ -719,9 +719,15 @@ static void __init cdce_clk_init(void)
719 } 719 }
720} 720}
721 721
722#define DM6467T_EVM_REF_FREQ 33000000
723
722static void __init davinci_map_io(void) 724static void __init davinci_map_io(void)
723{ 725{
724 dm646x_init(); 726 dm646x_init();
727
728 if (machine_is_davinci_dm6467tevm())
729 davinci_set_refclk_rate(DM6467T_EVM_REF_FREQ);
730
725 cdce_clk_init(); 731 cdce_clk_init();
726} 732}
727 733
@@ -785,23 +791,13 @@ static __init void evm_init(void)
785 soc_info->emac_pdata->phy_id = DM646X_EVM_PHY_ID; 791 soc_info->emac_pdata->phy_id = DM646X_EVM_PHY_ID;
786} 792}
787 793
788#define DM646X_EVM_REF_FREQ 27000000
789#define DM6467T_EVM_REF_FREQ 33000000
790
791void __init dm646x_board_setup_refclk(struct clk *clk)
792{
793 if (machine_is_davinci_dm6467tevm())
794 clk->rate = DM6467T_EVM_REF_FREQ;
795 else
796 clk->rate = DM646X_EVM_REF_FREQ;
797}
798
799MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") 794MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
800 .boot_params = (0x80000100), 795 .boot_params = (0x80000100),
801 .map_io = davinci_map_io, 796 .map_io = davinci_map_io,
802 .init_irq = davinci_irq_init, 797 .init_irq = davinci_irq_init,
803 .timer = &davinci_timer, 798 .timer = &davinci_timer,
804 .init_machine = evm_init, 799 .init_machine = evm_init,
800 .dma_zone_size = SZ_128M,
805MACHINE_END 801MACHINE_END
806 802
807MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") 803MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
@@ -810,5 +806,6 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
810 .init_irq = davinci_irq_init, 806 .init_irq = davinci_irq_init,
811 .timer = &davinci_timer, 807 .timer = &davinci_timer,
812 .init_machine = evm_init, 808 .init_machine = evm_init,
809 .dma_zone_size = SZ_128M,
813MACHINE_END 810MACHINE_END
814 811