From: Adrian Hunter <adrian.hunter@intel.com>
To: Dong Aisheng <aisheng.dong@nxp.com>, linux-mmc@vger.kernel.org
Cc: ulf.hansson@linaro.org, dongas86@gmail.com, chris@printf.net,
haibo.chen@nxp.com, shawnguo@kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 15/23] mmc: sdhci-esdhc-imx: support setting tuning start point
Date: Tue, 10 May 2016 14:17:22 +0300 [thread overview]
Message-ID: <5731C342.5060309@intel.com> (raw)
In-Reply-To: <1460741387-23815-16-git-send-email-aisheng.dong@nxp.com>
On 15/04/16 20:29, Dong Aisheng wrote:
> The delay cells of some SoCs may have less delay per one cell,
> for such SoCs, user could set the start delay cell point to bypass
> the first a few meaningless tuning commands.
>
> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
> drivers/mmc/host/sdhci-esdhc-imx.c | 14 +++++++++++---
> include/linux/platform_data/mmc-esdhc-imx.h | 1 +
> 2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index d02db66..9f9be3f 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -75,7 +75,8 @@
> #define ESDHC_TUNING_CTRL 0xcc
> #define ESDHC_STD_TUNING_EN (1 << 24)
> /* NOTE: the minimum valid tuning start tap for mx6sl is 1 */
> -#define ESDHC_TUNING_START_TAP 0x1
> +#define ESDHC_TUNING_START_TAP_DEFAULT 0x1
> +#define ESDHC_TUNING_START_TAP_MASK 0xff
> #define ESDHC_TUNING_STEP_MASK 0x00070000
> #define ESDHC_TUNING_STEP_SHIFT 16
>
> @@ -489,7 +490,12 @@ static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg)
> v |= ESDHC_MIX_CTRL_EXE_TUNE;
> m |= ESDHC_MIX_CTRL_FBCLK_SEL;
> tuning_ctrl = readl(host->ioaddr + ESDHC_TUNING_CTRL);
> - tuning_ctrl |= ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP;
> + tuning_ctrl |= ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT;
> + if (imx_data->boarddata.tuning_start_tap) {
> + tuning_ctrl &= ~ESDHC_TUNING_START_TAP_MASK;
> + tuning_ctrl |= imx_data->boarddata.tuning_start_tap;
> + }
> +
> if (imx_data->boarddata.tuning_step) {
> tuning_ctrl &= ~ESDHC_TUNING_STEP_MASK;
> tuning_ctrl |= imx_data->boarddata.tuning_step << ESDHC_TUNING_STEP_SHIFT;
> @@ -975,6 +981,8 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
> boarddata->wp_type = ESDHC_WP_GPIO;
>
> of_property_read_u32(np, "fsl,tuning-step", &boarddata->tuning_step);
> + of_property_read_u32(np, "fsl,tuning-start-tap",
> + &boarddata->tuning_start_tap);
>
> if (of_find_property(np, "no-1-8-v", NULL))
> boarddata->support_vsel = false;
> @@ -1197,7 +1205,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
>
> if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
> writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
> - ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP,
> + ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT,
> host->ioaddr + ESDHC_TUNING_CTRL);
>
> if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
> diff --git a/include/linux/platform_data/mmc-esdhc-imx.h b/include/linux/platform_data/mmc-esdhc-imx.h
> index 95ccab3..7daa78a 100644
> --- a/include/linux/platform_data/mmc-esdhc-imx.h
> +++ b/include/linux/platform_data/mmc-esdhc-imx.h
> @@ -46,5 +46,6 @@ struct esdhc_platform_data {
> bool support_vsel;
> unsigned int delay_line;
> unsigned int tuning_step; /* The delay cell steps in tuning procedure */
> + unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */
> };
> #endif /* __ASM_ARCH_IMX_ESDHC_H */
>
WARNING: multiple messages have this Message-ID (diff)
From: adrian.hunter@intel.com (Adrian Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 15/23] mmc: sdhci-esdhc-imx: support setting tuning start point
Date: Tue, 10 May 2016 14:17:22 +0300 [thread overview]
Message-ID: <5731C342.5060309@intel.com> (raw)
In-Reply-To: <1460741387-23815-16-git-send-email-aisheng.dong@nxp.com>
On 15/04/16 20:29, Dong Aisheng wrote:
> The delay cells of some SoCs may have less delay per one cell,
> for such SoCs, user could set the start delay cell point to bypass
> the first a few meaningless tuning commands.
>
> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
> drivers/mmc/host/sdhci-esdhc-imx.c | 14 +++++++++++---
> include/linux/platform_data/mmc-esdhc-imx.h | 1 +
> 2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index d02db66..9f9be3f 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -75,7 +75,8 @@
> #define ESDHC_TUNING_CTRL 0xcc
> #define ESDHC_STD_TUNING_EN (1 << 24)
> /* NOTE: the minimum valid tuning start tap for mx6sl is 1 */
> -#define ESDHC_TUNING_START_TAP 0x1
> +#define ESDHC_TUNING_START_TAP_DEFAULT 0x1
> +#define ESDHC_TUNING_START_TAP_MASK 0xff
> #define ESDHC_TUNING_STEP_MASK 0x00070000
> #define ESDHC_TUNING_STEP_SHIFT 16
>
> @@ -489,7 +490,12 @@ static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg)
> v |= ESDHC_MIX_CTRL_EXE_TUNE;
> m |= ESDHC_MIX_CTRL_FBCLK_SEL;
> tuning_ctrl = readl(host->ioaddr + ESDHC_TUNING_CTRL);
> - tuning_ctrl |= ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP;
> + tuning_ctrl |= ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT;
> + if (imx_data->boarddata.tuning_start_tap) {
> + tuning_ctrl &= ~ESDHC_TUNING_START_TAP_MASK;
> + tuning_ctrl |= imx_data->boarddata.tuning_start_tap;
> + }
> +
> if (imx_data->boarddata.tuning_step) {
> tuning_ctrl &= ~ESDHC_TUNING_STEP_MASK;
> tuning_ctrl |= imx_data->boarddata.tuning_step << ESDHC_TUNING_STEP_SHIFT;
> @@ -975,6 +981,8 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
> boarddata->wp_type = ESDHC_WP_GPIO;
>
> of_property_read_u32(np, "fsl,tuning-step", &boarddata->tuning_step);
> + of_property_read_u32(np, "fsl,tuning-start-tap",
> + &boarddata->tuning_start_tap);
>
> if (of_find_property(np, "no-1-8-v", NULL))
> boarddata->support_vsel = false;
> @@ -1197,7 +1205,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
>
> if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
> writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
> - ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP,
> + ESDHC_STD_TUNING_EN | ESDHC_TUNING_START_TAP_DEFAULT,
> host->ioaddr + ESDHC_TUNING_CTRL);
>
> if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
> diff --git a/include/linux/platform_data/mmc-esdhc-imx.h b/include/linux/platform_data/mmc-esdhc-imx.h
> index 95ccab3..7daa78a 100644
> --- a/include/linux/platform_data/mmc-esdhc-imx.h
> +++ b/include/linux/platform_data/mmc-esdhc-imx.h
> @@ -46,5 +46,6 @@ struct esdhc_platform_data {
> bool support_vsel;
> unsigned int delay_line;
> unsigned int tuning_step; /* The delay cell steps in tuning procedure */
> + unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */
> };
> #endif /* __ASM_ARCH_IMX_ESDHC_H */
>
next prev parent reply other threads:[~2016-05-10 11:17 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-15 17:29 [PATCH 00/23] a few sdhci/imx clean up and fix patches Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 01/23] mmc: sdhci: removed unneeded function wrappers Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 10:27 ` Adrian Hunter
2016-04-22 10:27 ` Adrian Hunter
2016-05-10 6:32 ` Adrian Hunter
2016-05-10 6:32 ` Adrian Hunter
2016-05-10 9:46 ` Ulf Hansson
2016-05-10 9:46 ` Ulf Hansson
2016-04-15 17:29 ` [PATCH 02/23] mmc: sdhci: move sdhci_get_cd() forward to avoid declaration Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 10:27 ` Adrian Hunter
2016-04-22 10:27 ` Adrian Hunter
2016-04-24 9:17 ` Dong Aisheng
2016-04-24 9:17 ` Dong Aisheng
2016-04-27 20:26 ` Adrian Hunter
2016-04-27 20:26 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 03/23] mmc: core: fix a comment typo Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 10:28 ` Adrian Hunter
2016-04-22 10:28 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 04/23] mmc: sdhci: re-factor sdhci_start_signal_voltage() Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 11:43 ` Adrian Hunter
2016-04-22 11:43 ` Adrian Hunter
2016-04-24 9:14 ` Dong Aisheng
2016-04-24 9:14 ` Dong Aisheng
2016-04-27 20:26 ` Adrian Hunter
2016-04-27 20:26 ` Adrian Hunter
2016-04-28 3:09 ` Dong Aisheng
2016-04-28 3:09 ` Dong Aisheng
2016-04-28 6:39 ` Adrian Hunter
2016-04-28 6:39 ` Adrian Hunter
2016-04-28 7:15 ` Jaehoon Chung
2016-04-28 7:15 ` Jaehoon Chung
2016-04-28 7:44 ` Adrian Hunter
2016-04-28 7:44 ` Adrian Hunter
2016-04-28 8:30 ` Jaehoon Chung
2016-04-28 8:30 ` Jaehoon Chung
2016-04-28 14:09 ` Dong Aisheng
2016-04-28 14:09 ` Dong Aisheng
2016-04-28 23:06 ` Jaehoon Chung
2016-04-28 23:06 ` Jaehoon Chung
2016-04-28 13:14 ` Dong Aisheng
2016-04-28 13:14 ` Dong Aisheng
2016-04-28 13:36 ` Adrian Hunter
2016-04-28 13:36 ` Adrian Hunter
2016-04-28 14:28 ` Dong Aisheng
2016-04-28 14:28 ` Dong Aisheng
2016-04-29 7:32 ` Adrian Hunter
2016-04-29 7:32 ` Adrian Hunter
2016-04-29 7:57 ` Dong Aisheng
2016-04-29 7:57 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 05/23] mmc: core: mmc_regulator_set_vqmmc not return error if vqmmc/vmmc not exist Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 06/23] mmc: sdhci: using common mmc_regulator_set_vqmmc() Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 11:48 ` Adrian Hunter
2016-04-22 11:48 ` Adrian Hunter
2016-04-24 9:25 ` Dong Aisheng
2016-04-24 9:25 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 07/23] mmc: sdhci: check SDHCI_QUIRK2_NO_1_8_V when do voltage switch Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 12:30 ` Adrian Hunter
2016-04-22 12:30 ` Adrian Hunter
2016-04-24 9:56 ` Dong Aisheng
2016-04-24 9:56 ` Dong Aisheng
2016-04-27 20:27 ` Adrian Hunter
2016-04-27 20:27 ` Adrian Hunter
2016-04-28 13:24 ` Dong Aisheng
2016-04-28 13:24 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 08/23] mmc: sdhci: rename quirk SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 12:33 ` Adrian Hunter
2016-04-22 12:33 ` Adrian Hunter
2016-04-24 10:00 ` Dong Aisheng
2016-04-24 10:00 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 09/23] mmc: sdhci: fix incorrect get data interrupt during no data transfer Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 6:51 ` Adrian Hunter
2016-05-10 6:51 ` Adrian Hunter
2016-05-17 4:31 ` Ritesh Harjani
2016-05-17 4:31 ` Ritesh Harjani
2016-05-17 5:58 ` Adrian Hunter
2016-05-17 5:58 ` Adrian Hunter
2016-05-26 14:59 ` Ritesh Harjani
2016-05-26 14:59 ` Ritesh Harjani
2016-05-26 11:41 ` Dong Aisheng
2016-05-26 11:41 ` Dong Aisheng
2016-05-26 11:59 ` Adrian Hunter
2016-05-26 11:59 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 10/23] mmc: core: disable auto retune during card detection process Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-22 12:48 ` Adrian Hunter
2016-04-22 12:48 ` Adrian Hunter
2016-04-24 10:47 ` Dong Aisheng
2016-04-24 10:47 ` Dong Aisheng
2016-04-28 7:04 ` Adrian Hunter
2016-04-28 7:04 ` Adrian Hunter
2016-04-28 13:22 ` Dong Aisheng
2016-04-28 13:22 ` Dong Aisheng
2016-04-29 6:54 ` Adrian Hunter
2016-04-29 6:54 ` Adrian Hunter
2016-04-29 7:42 ` Dong Aisheng
2016-04-29 7:42 ` Dong Aisheng
2016-05-10 6:55 ` Adrian Hunter
2016-05-10 6:55 ` Adrian Hunter
2016-05-31 10:18 ` Dong Aisheng
2016-05-31 10:18 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 11/23] mmc: sdhci-esdhci-imx: remove SDHCI_QUIRK_BROKEN_TIMEOUT_VAL Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 9:30 ` Adrian Hunter
2016-05-10 9:30 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 12/23] mmc: sdhci-esdhc-imx: add esdhc specific suspend resume callback Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 9:35 ` Adrian Hunter
2016-05-10 9:35 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 13/23] mmc: sdhci-esdhc-imx: restore watermark level setting after resume Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 9:30 ` Adrian Hunter
2016-05-10 9:30 ` Adrian Hunter
2016-05-31 7:18 ` Dong Aisheng
2016-05-31 7:18 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 14/23] mmc: sdhci-esdhci-imx: disable DLL delay line settings explicitly Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 11:02 ` Adrian Hunter
2016-05-10 11:02 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 15/23] mmc: sdhci-esdhc-imx: support setting tuning start point Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 11:17 ` Adrian Hunter [this message]
2016-05-10 11:17 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 16/23] doc: dt: fsl-imx-esdhc: add set tuning start point binding Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 17/23] mmc: sdhci: add standard hw auto retuning support Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 8:35 ` Adrian Hunter
2016-05-10 8:35 ` Adrian Hunter
2016-05-26 12:11 ` Dong Aisheng
2016-05-26 12:11 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 18/23] mmc: sdhci-esdhc-imx: enable hw auto retuning for STD_TUNING Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 11:19 ` Adrian Hunter
2016-05-10 11:19 ` Adrian Hunter
2016-05-26 12:21 ` Dong Aisheng
2016-05-26 12:21 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 19/23] mmc: sdhci-esdhc-imx: enable hw auto retuning for MAN_TUNING Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 11:24 ` Adrian Hunter
2016-05-10 11:24 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 20/23] mmc: sdhci-esdhc-imx: fix strobe DLL lock wrong clock issue Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 12:03 ` Adrian Hunter
2016-05-10 12:03 ` Adrian Hunter
2016-05-26 11:47 ` Dong Aisheng
2016-05-26 11:47 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 21/23] mmc: sdhci-esdhc-imx: factor out hw related intialization into function Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 12:15 ` Adrian Hunter
2016-05-10 12:15 ` Adrian Hunter
2016-05-26 11:45 ` Dong Aisheng
2016-05-26 11:45 ` Dong Aisheng
2016-04-15 17:29 ` [PATCH 22/23] mmc: sdhci-esdhc-imx: move tuning static configuration into hwinit function Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 13:07 ` Adrian Hunter
2016-05-10 13:07 ` Adrian Hunter
2016-04-15 17:29 ` [PATCH 23/23] mmc: sdhci-esdhc-imx: clear tuning bits during hwinit Dong Aisheng
2016-04-15 17:29 ` Dong Aisheng
2016-05-10 13:10 ` Adrian Hunter
2016-05-10 13:10 ` Adrian Hunter
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=5731C342.5060309@intel.com \
--to=adrian.hunter@intel.com \
--cc=aisheng.dong@nxp.com \
--cc=chris@printf.net \
--cc=dongas86@gmail.com \
--cc=haibo.chen@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=shawnguo@kernel.org \
--cc=ulf.hansson@linaro.org \
/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.