mmc: sdhci-spear: Remove exported header
Move the member for card_int_gpio into the struct spear_sdhci. In this way we eliminate the last user of the struct sdhci_plat_data, which enables us to remove the exported header for sdhci-spear. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
bbd7f0a20f
commit
03a6d29104
|
@ -26,14 +26,13 @@
|
||||||
#include <linux/pm.h>
|
#include <linux/pm.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/mmc/host.h>
|
#include <linux/mmc/host.h>
|
||||||
#include <linux/mmc/sdhci-spear.h>
|
|
||||||
#include <linux/mmc/slot-gpio.h>
|
#include <linux/mmc/slot-gpio.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include "sdhci.h"
|
#include "sdhci.h"
|
||||||
|
|
||||||
struct spear_sdhci {
|
struct spear_sdhci {
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
struct sdhci_plat_data *data;
|
int card_int_gpio;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* sdhci ops */
|
/* sdhci ops */
|
||||||
|
@ -44,26 +43,16 @@ static const struct sdhci_ops sdhci_pltfm_ops = {
|
||||||
.set_uhs_signaling = sdhci_set_uhs_signaling,
|
.set_uhs_signaling = sdhci_set_uhs_signaling,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sdhci_plat_data *sdhci_probe_config_dt(struct platform_device *pdev)
|
static void sdhci_probe_config_dt(struct device_node *np,
|
||||||
|
struct spear_sdhci *host)
|
||||||
{
|
{
|
||||||
struct device_node *np = pdev->dev.of_node;
|
|
||||||
struct sdhci_plat_data *pdata = NULL;
|
|
||||||
int cd_gpio;
|
int cd_gpio;
|
||||||
|
|
||||||
cd_gpio = of_get_named_gpio(np, "cd-gpios", 0);
|
cd_gpio = of_get_named_gpio(np, "cd-gpios", 0);
|
||||||
if (!gpio_is_valid(cd_gpio))
|
if (!gpio_is_valid(cd_gpio))
|
||||||
cd_gpio = -1;
|
cd_gpio = -1;
|
||||||
|
|
||||||
/* If pdata is required */
|
host->card_int_gpio = cd_gpio;
|
||||||
if (cd_gpio != -1) {
|
|
||||||
pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
|
|
||||||
if (!pdata)
|
|
||||||
dev_err(&pdev->dev, "DT: kzalloc failed\n");
|
|
||||||
else
|
|
||||||
pdata->card_int_gpio = cd_gpio;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pdata;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sdhci_probe(struct platform_device *pdev)
|
static int sdhci_probe(struct platform_device *pdev)
|
||||||
|
@ -116,24 +105,18 @@ static int sdhci_probe(struct platform_device *pdev)
|
||||||
dev_dbg(&pdev->dev, "Error setting desired clk, clk=%lu\n",
|
dev_dbg(&pdev->dev, "Error setting desired clk, clk=%lu\n",
|
||||||
clk_get_rate(sdhci->clk));
|
clk_get_rate(sdhci->clk));
|
||||||
|
|
||||||
sdhci->data = sdhci_probe_config_dt(pdev);
|
sdhci_probe_config_dt(pdev->dev.of_node, sdhci);
|
||||||
if (IS_ERR(sdhci->data)) {
|
|
||||||
dev_err(&pdev->dev, "DT: Failed to get pdata\n");
|
|
||||||
goto disable_clk;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* It is optional to use GPIOs for sdhci card detection. If
|
* It is optional to use GPIOs for sdhci card detection. If
|
||||||
* sdhci->data is NULL, then use original sdhci lines otherwise
|
* sdhci->card_int_gpio < 0, then use original sdhci lines otherwise
|
||||||
* GPIO lines. We use the built-in GPIO support for this.
|
* GPIO lines. We use the built-in GPIO support for this.
|
||||||
*/
|
*/
|
||||||
if (sdhci->data && sdhci->data->card_int_gpio >= 0) {
|
if (sdhci->card_int_gpio >= 0) {
|
||||||
ret = mmc_gpio_request_cd(host->mmc,
|
ret = mmc_gpio_request_cd(host->mmc, sdhci->card_int_gpio, 0);
|
||||||
sdhci->data->card_int_gpio, 0);
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_dbg(&pdev->dev,
|
dev_dbg(&pdev->dev,
|
||||||
"failed to request card-detect gpio%d\n",
|
"failed to request card-detect gpio%d\n",
|
||||||
sdhci->data->card_int_gpio);
|
sdhci->card_int_gpio);
|
||||||
goto disable_clk;
|
goto disable_clk;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* include/linux/mmc/sdhci-spear.h
|
|
||||||
*
|
|
||||||
* SDHCI declarations specific to ST SPEAr platform
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 ST Microelectronics
|
|
||||||
* Viresh Kumar <viresh.linux@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is licensed under the terms of the GNU General Public
|
|
||||||
* License version 2. This program is licensed "as is" without any
|
|
||||||
* warranty of any kind, whether express or implied.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef LINUX_MMC_SDHCI_SPEAR_H
|
|
||||||
#define LINUX_MMC_SDHCI_SPEAR_H
|
|
||||||
|
|
||||||
#include <linux/platform_device.h>
|
|
||||||
/*
|
|
||||||
* struct sdhci_plat_data: spear sdhci platform data structure
|
|
||||||
*
|
|
||||||
* card_int_gpio: gpio pin used for card detection
|
|
||||||
*/
|
|
||||||
struct sdhci_plat_data {
|
|
||||||
int card_int_gpio;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This function is used to set platform_data field of pdev->dev */
|
|
||||||
static inline void
|
|
||||||
sdhci_set_plat_data(struct platform_device *pdev, struct sdhci_plat_data *data)
|
|
||||||
{
|
|
||||||
pdev->dev.platform_data = data;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* LINUX_MMC_SDHCI_SPEAR_H */
|
|
Loading…
Reference in New Issue