2007-11-27 07:01:45 +03:00
/*
* linux / arch / arm / mach - omap1 / board - h3 - mmc . c
*
* Copyright ( C ) 2007 Instituto Nokia de Tecnologia - INdT
* Author : Felipe Balbi < felipe . lima @ indt . org . br >
*
* This code is based on linux / arch / arm / mach - omap2 / board - n800 - mmc . c , which is :
* Copyright ( C ) 2006 Nokia Corporation
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
2008-12-11 04:37:16 +03:00
# include <linux/platform_device.h>
# include <linux/i2c/tps65010.h>
2009-10-20 20:40:47 +04:00
# include <plat/mmc.h>
2008-08-05 19:14:15 +04:00
# include <mach/gpio.h>
2007-11-27 07:01:45 +03:00
2009-03-24 04:07:33 +03:00
# include "board-h3.h"
2008-12-11 04:37:16 +03:00
# if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
static int mmc_set_power ( struct device * dev , int slot , int power_on ,
int vdd )
{
2009-04-23 22:10:48 +04:00
gpio_set_value ( H3_TPS_GPIO_MMC_PWR_EN , power_on ) ;
2008-12-11 04:37:16 +03:00
return 0 ;
}
/*
* H3 could use the following functions tested :
* - mmc_get_cover_state that uses OMAP_MPUIO ( 1 )
* - mmc_get_wp that maybe uses OMAP_MPUIO ( 3 )
*/
static struct omap_mmc_platform_data mmc1_data = {
. nr_slots = 1 ,
. dma_mask = 0xffffffff ,
. slots [ 0 ] = {
. set_power = mmc_set_power ,
2010-10-13 03:07:51 +04:00
. ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34 ,
2008-12-11 04:37:16 +03:00
. name = " mmcblk " ,
} ,
} ;
static struct omap_mmc_platform_data * mmc_data [ OMAP16XX_NR_MMC ] ;
2007-11-27 07:01:45 +03:00
void __init h3_mmc_init ( void )
{
2008-12-11 04:37:16 +03:00
int ret ;
ret = gpio_request ( H3_TPS_GPIO_MMC_PWR_EN , " MMC power " ) ;
if ( ret < 0 )
return ;
gpio_direction_output ( H3_TPS_GPIO_MMC_PWR_EN , 0 ) ;
mmc_data [ 0 ] = & mmc1_data ;
omap1_init_mmc ( mmc_data , OMAP16XX_NR_MMC ) ;
2007-11-27 07:01:45 +03:00
}
2008-12-11 04:37:16 +03:00
# else
void __init h3_mmc_init ( void )
2007-11-27 07:01:45 +03:00
{
}
2008-12-11 04:37:16 +03:00
# endif