All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaehoon Chung <jh80.chung@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 08/13] dm: mmc: zynq: Convert zynq to use driver model for MMC
Date: Wed, 06 Jul 2016 15:53:37 +0900	[thread overview]
Message-ID: <577CAAF1.4080501@samsung.com> (raw)
In-Reply-To: <1467760220-8615-9-git-send-email-sjg@chromium.org>

Hi Simon,

On 07/06/2016 08:10 AM, Simon Glass wrote:
> Move zynq to the latest driver model support by enabling CONFIG_DM_MMC,
> CONFIG_DM_MMC_OPS and CONFIG_BLK.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> Changes in v2: None
> 
>  arch/arm/Kconfig         |  5 +++++
>  drivers/mmc/zynq_sdhci.c | 39 ++++++++++++++++++++++++++++++++++-----
>  2 files changed, 39 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9d6cdc7..f45fd37 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -657,11 +657,13 @@ config ARCH_ZYNQ
>  	select DM_GPIO
>  	select SPL_DM if SPL
>  	select DM_MMC
> +	select DM_MMC_OPS
>  	select DM_SPI
>  	select DM_SERIAL
>  	select DM_SPI_FLASH
>  	select SPL_SEPARATE_BSS if SPL
>  	select DM_USB if USB
> +	select BLK

If my understanding is right, your patch[12~13/13] are enabled with CONFIG_DM_MMC.
Does it need to select at here?

>  
>  config ARCH_ZYNQMP
>  	bool "Support Xilinx ZynqMP Platform"
> @@ -671,6 +673,9 @@ config ARCH_ZYNQMP
>  	select DM_SERIAL
>  	select SUPPORT_SPL
>  	select DM_USB if USB
> +	select DM_MMC
> +	select DM_MMC_OPS
> +	select BLK

Ditto.

>  
>  config TEGRA
>  	bool "NVIDIA Tegra"
> diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c
> index d405929..bcd154a 100644
> --- a/drivers/mmc/zynq_sdhci.c
> +++ b/drivers/mmc/zynq_sdhci.c
> @@ -17,10 +17,18 @@
>  # define CONFIG_ZYNQ_SDHCI_MIN_FREQ	0
>  #endif
>  
> +struct arasan_sdhci_plat {
> +	struct mmc_config cfg;
> +	struct mmc mmc;
> +};

Almost all drivers are using the similar *_plat structure.
Then it can be used the one structure instead of *_plat..
So i think it should be located "struct mmc_plat" into mmc.h

struct mmc_plat {
	struct mmc_config cfg;
	struct mmc mmc;
};

Then we can remove the all other similar plat structures.
if you are ok, I will clean everything.
how about?

Best Regards,
Jaehoon Chung

> +
>  static int arasan_sdhci_probe(struct udevice *dev)
>  {
> +	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
>  	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
>  	struct sdhci_host *host = dev_get_priv(dev);
> +	u32 caps;
> +	int ret;
>  
>  	host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD |
>  		       SDHCI_QUIRK_BROKEN_R1B;
> @@ -31,13 +39,19 @@ static int arasan_sdhci_probe(struct udevice *dev)
>  
>  	host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
>  
> -	add_sdhci(host, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
> -		  CONFIG_ZYNQ_SDHCI_MIN_FREQ);
> -
> -	upriv->mmc = host->mmc;
> +	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
> +	ret = sdhci_setup_cfg(&plat->cfg, dev->name, host->bus_width,
> +			      caps, CONFIG_ZYNQ_SDHCI_MAX_FREQ,
> +			      CONFIG_ZYNQ_SDHCI_MIN_FREQ, host->version,
> +			      host->quirks, 0);
> +	host->mmc = &plat->mmc;
> +	if (ret)
> +		return ret;
> +	host->mmc->priv = host;
>  	host->mmc->dev = dev;
> +	upriv->mmc = host->mmc;
>  
> -	return 0;
> +	return sdhci_probe(dev);
>  }
>  
>  static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
> @@ -50,6 +64,18 @@ static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
>  	return 0;
>  }
>  
> +static int arasan_sdhci_bind(struct udevice *dev)
> +{
> +	struct arasan_sdhci_plat *plat = dev_get_platdata(dev);
> +	int ret;
> +
> +	ret = sdhci_bind(dev, &plat->mmc, &plat->cfg);
> +	if (ret)
> +		return ret;
> +
> +	return 0;
> +}
> +
>  static const struct udevice_id arasan_sdhci_ids[] = {
>  	{ .compatible = "arasan,sdhci-8.9a" },
>  	{ }
> @@ -60,6 +86,9 @@ U_BOOT_DRIVER(arasan_sdhci_drv) = {
>  	.id		= UCLASS_MMC,
>  	.of_match	= arasan_sdhci_ids,
>  	.ofdata_to_platdata = arasan_sdhci_ofdata_to_platdata,
> +	.ops		= &sdhci_ops,
> +	.bind		= arasan_sdhci_bind,
>  	.probe		= arasan_sdhci_probe,
>  	.priv_auto_alloc_size = sizeof(struct sdhci_host),
> +	.platdata_auto_alloc_size = sizeof(struct arasan_sdhci_plat),
>  };
> 

  reply	other threads:[~2016-07-06  6:53 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-05 23:10 [U-Boot] [PATCH v2 00/13] dm: mmc: Add driver-model support for MMC operations Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 01/13] dm: core: Add a function to bind child devices Simon Glass
2016-07-17 20:59   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 02/13] dm: Convert users from dm_scan_fdt_node() to dm_scan_fdt_dev() Simon Glass
2016-07-17 20:59   ` Simon Glass
2016-07-29 11:29     ` Michal Simek
2016-08-01  1:03       ` Simon Glass
2016-08-01  5:42         ` Michal Simek
2016-07-05 23:10 ` [U-Boot] [PATCH v2 03/13] dm: Use dm_scan_fdt_dev() directly where possible Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 04/13] arm: Show early-malloc() usage in bdinfo Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 05/13] net: phy: marvell: Add a missing errno.h header Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 06/13] zynq: Increase the early malloc() size Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 07/13] dm: zynq: usb: Convert to CONFIG_DM_USB Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 08/13] dm: mmc: zynq: Convert zynq to use driver model for MMC Simon Glass
2016-07-06  6:53   ` Jaehoon Chung [this message]
2016-07-12 21:57     ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 09/13] dm: socfpga: mmc: Support CONFIG_BLK Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 10/13] dm: usb: Use blk_dread/write() instead of direct calls Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 11/13] dm: spl: mmc: Support raw partitions with CONFIG_BLK Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 12/13] dm: mmc: Enable DM_MMC_OPS by default with DM_MMC Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-08-06 23:23     ` Simon Glass
2016-07-05 23:10 ` [U-Boot] [PATCH v2 13/13] dm: blk: Enable CONFIG_BLK if DM_MMC is enabled Simon Glass
2016-07-17 21:00   ` Simon Glass
2016-08-06 23:23     ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=577CAAF1.4080501@samsung.com \
    --to=jh80.chung@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.