Hemant Pedanekar <[email protected]> writes:

> This patch adds platform data and init function for IDE which could be called
> from board specific file to register IDE device.
>
> Note that for 594MHz device the transfer mode is limited to UDMA4 since ideclk
> rate is less than 100 MHz, which forces udma_mask in palm_bk3710.c to UDMA4,
> while for 729MHz device, it is UDMA5.
>
> Signed-off-by: Hemant Pedanekar <[email protected]>

Thanks, pushing to davinci git.

Kevin

> ---
>  arch/arm/mach-davinci/dm646x.c              |   32 
> +++++++++++++++++++++++++++
>  arch/arm/mach-davinci/include/mach/dm646x.h |    3 ++
>  2 files changed, 35 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
> index 7e2c036..40512b9 100644
> --- a/arch/arm/mach-davinci/dm646x.c
> +++ b/arch/arm/mach-davinci/dm646x.c
> @@ -596,6 +596,32 @@ static struct platform_device dm646x_edma_device = {
>       .resource               = edma_resources,
>  };
>  
> +static struct resource ide_resources[] = {
> +     {
> +             .start          = DM646X_ATA_REG_BASE,
> +             .end            = DM646X_ATA_REG_BASE + 0x7ff,
> +             .flags          = IORESOURCE_MEM,
> +     },
> +     {
> +             .start          = IRQ_DM646X_IDE,
> +             .end            = IRQ_DM646X_IDE,
> +             .flags          = IORESOURCE_IRQ,
> +     },
> +};
> +
> +static u64 ide_dma_mask = DMA_BIT_MASK(32);
> +
> +static struct platform_device ide_dev = {
> +     .name           = "palm_bk3710",
> +     .id             = -1,
> +     .resource       = ide_resources,
> +     .num_resources  = ARRAY_SIZE(ide_resources),
> +     .dev = {
> +             .dma_mask               = &ide_dma_mask,
> +             .coherent_dma_mask      = DMA_BIT_MASK(32),
> +     },
> +};
> +
>  static struct resource dm646x_mcasp0_resources[] = {
>       {
>               .name   = "mcasp0",
> @@ -765,6 +791,12 @@ static struct davinci_soc_info davinci_soc_info_dm646x = 
> {
>       .sram_len               = SZ_32K,
>  };
>  
> +void __init dm646x_init_ide()
> +{
> +     davinci_cfg_reg(DM646X_ATAEN);
> +     platform_device_register(&ide_dev);
> +}
> +
>  void __init dm646x_init_mcasp0(struct snd_platform_data *pdata)
>  {
>       dm646x_mcasp0_device.dev.platform_data = pdata;
> diff --git a/arch/arm/mach-davinci/include/mach/dm646x.h 
> b/arch/arm/mach-davinci/include/mach/dm646x.h
> index 0585484..feb1e02 100644
> --- a/arch/arm/mach-davinci/include/mach/dm646x.h
> +++ b/arch/arm/mach-davinci/include/mach/dm646x.h
> @@ -22,7 +22,10 @@
>  #define DM646X_EMAC_MDIO_OFFSET              (0x4000)
>  #define DM646X_EMAC_CNTRL_RAM_SIZE   (0x2000)
>  
> +#define DM646X_ATA_REG_BASE          (0x01C66000)
> +
>  void __init dm646x_init(void);
> +void __init dm646x_init_ide(void);
>  void __init dm646x_init_mcasp0(struct snd_platform_data *pdata);
>  void __init dm646x_init_mcasp1(struct snd_platform_data *pdata);
>  
> -- 
> 1.6.2.4
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to