@ -28,10 +28,6 @@
# include "sdhci-pltfm.h"
struct sdhci_dove_priv {
struct clk * clk ;
} ;
static u16 sdhci_dove_readw ( struct sdhci_host * host , int reg )
{
u16 ret ;
@ -84,27 +80,17 @@ static int sdhci_dove_probe(struct platform_device *pdev)
{
struct sdhci_host * host ;
struct sdhci_pltfm_host * pltfm_host ;
struct sdhci_dove_priv * priv ;
int ret ;
priv = devm_kzalloc ( & pdev - > dev , sizeof ( struct sdhci_dove_priv ) ,
GFP_KERNEL ) ;
if ( ! priv ) {
dev_err ( & pdev - > dev , " unable to allocate private data " ) ;
return - ENOMEM ;
}
priv - > clk = devm_clk_get ( & pdev - > dev , NULL ) ;
host = sdhci_pltfm_init ( pdev , & sdhci_dove_pdata , 0 ) ;
if ( IS_ERR ( host ) )
return PTR_ERR ( host ) ;
pltfm_host = sdhci_priv ( host ) ;
pltfm_host - > priv = priv ;
pltfm_host - > clk = devm_clk_get ( & pdev - > dev , NULL ) ;
if ( ! IS_ERR ( priv - > clk ) )
clk_prepare_enable ( priv - > clk ) ;
if ( ! IS_ERR ( pltfm_host - > clk ) )
clk_prepare_enable ( pltfm_host - > clk ) ;
ret = mmc_of_parse ( host - > mmc ) ;
if ( ret )
@ -117,7 +103,7 @@ static int sdhci_dove_probe(struct platform_device *pdev)
return 0 ;
err_sdhci_add :
clk_disable_unprepare ( priv - > clk ) ;
clk_disable_unprepare ( pltfm_host - > clk ) ;
sdhci_pltfm_free ( pdev ) ;
return ret ;
}
@ -126,12 +112,10 @@ static int sdhci_dove_remove(struct platform_device *pdev)
{
struct sdhci_host * host = platform_get_drvdata ( pdev ) ;
struct sdhci_pltfm_host * pltfm_host = sdhci_priv ( host ) ;
struct sdhci_dove_priv * priv = pltfm_host - > priv ;
clk_disable_unprepare ( pltfm_host - > clk ) ;
sdhci_pltfm_unregister ( pdev ) ;
clk_disable_unprepare ( priv - > clk ) ;
return 0 ;
}