@ -207,7 +207,6 @@ struct omap_hsmmc_host {
int use_dma , dma_ch ;
struct dma_chan * tx_chan ;
struct dma_chan * rx_chan ;
int slot_id ;
int response_busy ;
int context_loss ;
int protect_card ;
@ -223,8 +222,8 @@ struct omap_hsmmc_host {
struct omap_hsmmc_platform_data * pdata ;
/* To handle board related suspend/resume functionality for MMC */
int ( * suspend ) ( struct device * dev , int slot ) ;
int ( * resume ) ( struct device * dev , int slot ) ;
int ( * suspend ) ( struct device * dev ) ;
int ( * resume ) ( struct device * dev ) ;
/* return MMC cover switch state, can be NULL if not supported.
*
@ -232,13 +231,13 @@ struct omap_hsmmc_host {
* 0 - closed
* 1 - open
*/
int ( * get_cover_state ) ( struct device * dev , int slot ) ;
int ( * get_cover_state ) ( struct device * dev ) ;
/* Card detection IRQs */
int card_detect_irq ;
int ( * card_detect ) ( struct device * dev , int slot ) ;
int ( * get_ro ) ( struct device * dev , int slot ) ;
int ( * card_detect ) ( struct device * dev ) ;
int ( * get_ro ) ( struct device * dev ) ;
} ;
@ -249,7 +248,7 @@ struct omap_mmc_of_data {
static void omap_hsmmc_start_dma_transfer ( struct omap_hsmmc_host * host ) ;
static int omap_hsmmc_card_detect ( struct device * dev , int slot )
static int omap_hsmmc_card_detect ( struct device * dev )
{
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
struct omap_hsmmc_platform_data * mmc = host - > pdata ;
@ -258,7 +257,7 @@ static int omap_hsmmc_card_detect(struct device *dev, int slot)
return ! gpio_get_value_cansleep ( mmc - > switch_pin ) ;
}
static int omap_hsmmc_get_wp ( struct device * dev , int slot )
static int omap_hsmmc_get_wp ( struct device * dev )
{
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
struct omap_hsmmc_platform_data * mmc = host - > pdata ;
@ -267,7 +266,7 @@ static int omap_hsmmc_get_wp(struct device *dev, int slot)
return gpio_get_value_cansleep ( mmc - > gpio_wp ) ;
}
static int omap_hsmmc_get_cover_state ( struct device * dev , int slot )
static int omap_hsmmc_get_cover_state ( struct device * dev )
{
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
struct omap_hsmmc_platform_data * mmc = host - > pdata ;
@ -278,7 +277,7 @@ static int omap_hsmmc_get_cover_state(struct device *dev, int slot)
# ifdef CONFIG_PM
static int omap_hsmmc_suspend_cdirq ( struct device * dev , int slot )
static int omap_hsmmc_suspend_cdirq ( struct device * dev )
{
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
@ -286,7 +285,7 @@ static int omap_hsmmc_suspend_cdirq(struct device *dev, int slot)
return 0 ;
}
static int omap_hsmmc_resume_cdirq ( struct device * dev , int slot )
static int omap_hsmmc_resume_cdirq ( struct device * dev )
{
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
@ -303,8 +302,7 @@ static int omap_hsmmc_resume_cdirq(struct device *dev, int slot)
# ifdef CONFIG_REGULATOR
static int omap_hsmmc_set_power ( struct device * dev , int slot , int power_on ,
int vdd )
static int omap_hsmmc_set_power ( struct device * dev , int power_on , int vdd )
{
struct omap_hsmmc_host * host =
platform_get_drvdata ( to_platform_device ( dev ) ) ;
@ -318,7 +316,7 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on,
return 0 ;
if ( mmc_pdata ( host ) - > before_set_reg )
mmc_pdata ( host ) - > before_set_reg ( dev , slot , power_on , vdd ) ;
mmc_pdata ( host ) - > before_set_reg ( dev , power_on , vdd ) ;
if ( host - > pbias ) {
if ( host - > pbias_enabled = = 1 ) {
@ -381,7 +379,7 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on,
}
if ( mmc_pdata ( host ) - > after_set_reg )
mmc_pdata ( host ) - > after_set_reg ( dev , slot , power_on , vdd ) ;
mmc_pdata ( host ) - > after_set_reg ( dev , power_on , vdd ) ;
error_set_power :
return ret ;
@ -431,8 +429,8 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
( host - > vcc_aux & & regulator_is_enabled ( host - > vcc_aux ) ) ) {
int vdd = ffs ( mmc_pdata ( host ) - > ocr_mask ) - 1 ;
mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id , 1 , vdd ) ;
mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id , 0 , 0 ) ;
mmc_pdata ( host ) - > set_power ( host - > dev , 1 , vdd ) ;
mmc_pdata ( host ) - > set_power ( host - > dev , 0 , 0 ) ;
}
return 0 ;
@ -813,7 +811,7 @@ int omap_hsmmc_cover_is_closed(struct omap_hsmmc_host *host)
int r = 1 ;
if ( host - > get_cover_state )
r = host - > get_cover_state ( host - > dev , host - > slot_id ) ;
r = host - > get_cover_state ( host - > dev ) ;
return r ;
}
@ -1231,12 +1229,11 @@ static int omap_hsmmc_switch_opcond(struct omap_hsmmc_host *host, int vdd)
clk_disable_unprepare ( host - > dbclk ) ;
/* Turn the power off */
ret = mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id , 0 , 0 ) ;
ret = mmc_pdata ( host ) - > set_power ( host - > dev , 0 , 0 ) ;
/* Turn the power ON with given VDD 1.8 or 3.0v */
if ( ! ret )
ret = mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id , 1 ,
vdd ) ;
ret = mmc_pdata ( host ) - > set_power ( host - > dev , 1 , vdd ) ;
pm_runtime_get_sync ( host - > dev ) ;
if ( host - > dbclk )
clk_prepare_enable ( host - > dbclk ) ;
@ -1284,7 +1281,7 @@ static void omap_hsmmc_protect_card(struct omap_hsmmc_host *host)
return ;
host - > reqs_blocked = 0 ;
if ( host - > get_cover_state ( host - > dev , host - > slot_id ) ) {
if ( host - > get_cover_state ( host - > dev ) ) {
if ( host - > protect_card ) {
dev_info ( host - > dev , " %s: cover is closed, "
" card is now accessible \n " ,
@ -1312,7 +1309,7 @@ static irqreturn_t omap_hsmmc_detect(int irq, void *dev_id)
sysfs_notify ( & host - > mmc - > class_dev . kobj , NULL , " cover_switch " ) ;
if ( host - > card_detect )
carddetect = host - > card_detect ( host - > dev , host - > slot_id ) ;
carddetect = host - > card_detect ( host - > dev ) ;
else {
omap_hsmmc_protect_card ( host ) ;
carddetect = - ENOSYS ;
@ -1638,12 +1635,10 @@ static void omap_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
if ( ios - > power_mode ! = host - > power_mode ) {
switch ( ios - > power_mode ) {
case MMC_POWER_OFF :
mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id ,
0 , 0 ) ;
mmc_pdata ( host ) - > set_power ( host - > dev , 0 , 0 ) ;
break ;
case MMC_POWER_UP :
mmc_pdata ( host ) - > set_power ( host - > dev , host - > slot_id ,
1 , ios - > vdd ) ;
mmc_pdata ( host ) - > set_power ( host - > dev , 1 , ios - > vdd ) ;
break ;
case MMC_POWER_ON :
do_send_init_stream = 1 ;
@ -1690,7 +1685,7 @@ static int omap_hsmmc_get_cd(struct mmc_host *mmc)
if ( ! host - > card_detect )
return - ENOSYS ;
return host - > card_detect ( host - > dev , host - > slot_id ) ;
return host - > card_detect ( host - > dev ) ;
}
static int omap_hsmmc_get_ro ( struct mmc_host * mmc )
@ -1699,7 +1694,7 @@ static int omap_hsmmc_get_ro(struct mmc_host *mmc)
if ( ! host - > get_ro )
return - ENOSYS ;
return host - > get_ro ( host - > dev , 0 ) ;
return host - > get_ro ( host - > dev ) ;
}
static void omap_hsmmc_init_card ( struct mmc_host * mmc , struct mmc_card * card )
@ -1996,8 +1991,6 @@ static struct omap_hsmmc_platform_data *of_get_hsmmc_pdata(struct device *dev)
if ( of_find_property ( np , " ti,dual-volt " , NULL ) )
pdata - > controller_flags | = OMAP_HSMMC_SUPPORTS_DUAL_VOLT ;
/* This driver only supports 1 slot */
pdata - > nr_slots = 1 ;
pdata - > switch_pin = cd_gpio ;
pdata - > gpio_wp = wp_gpio ;
@ -2068,11 +2061,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
return - ENXIO ;
}
if ( pdata - > nr_slots = = 0 ) {
dev_err ( & pdev - > dev , " No Slots \n " ) ;
return - ENXIO ;
}
res = platform_get_resource ( pdev , IORESOURCE_MEM , 0 ) ;
irq = platform_get_irq ( pdev , 0 ) ;
if ( res = = NULL | | irq < 0 )
@ -2095,7 +2083,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
host - > use_dma = 1 ;
host - > dma_ch = - 1 ;
host - > irq = irq ;
host - > slot_id = 0 ;
host - > mapbase = res - > start + pdata - > reg_offset ;
host - > base = base + pdata - > reg_offset ;
host - > power_mode = MMC_POWER_OFF ;
@ -2338,7 +2325,7 @@ static int omap_hsmmc_prepare(struct device *dev)
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
if ( host - > suspend )
return host - > suspend ( dev , host - > slot_id ) ;
return host - > suspend ( dev ) ;
return 0 ;
}
@ -2348,7 +2335,7 @@ static void omap_hsmmc_complete(struct device *dev)
struct omap_hsmmc_host * host = dev_get_drvdata ( dev ) ;
if ( host - > resume )
host - > resume ( dev , host - > slot_id ) ;
host - > resume ( dev ) ;
}