diff mbox series

[v7,3/4] mmc: renesas-sdhi: Add SDHI quirks for R-Car M3-N and RZ/G2N

Message ID 20201127145300.7359-4-biju.das.jz@bp.renesas.com
State Superseded
Delegated to: Marek Vasut
Headers show
Series Add CPU identification support for RZ/G2 SoC's | expand

Commit Message

Biju Das Nov. 27, 2020, 2:52 p.m. UTC
Add SDHI quirks for R-Car M3-N and RZ/G2N SoC.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v7:
 * No Change.
v6: 
 * New patch. quirks using soc_device_match.
---
 drivers/mmc/renesas-sdhi.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

Comments

Jaehoon Chung Dec. 3, 2020, 10:20 a.m. UTC | #1
On 11/27/20 11:52 PM, Biju Das wrote:
> Add SDHI quirks for R-Car M3-N and RZ/G2N SoC.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Reviewed-by: Jaehoon chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung

> ---
> v7:
>  * No Change.
> v6: 
>  * New patch. quirks using soc_device_match.
> ---
>  drivers/mmc/renesas-sdhi.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c
> index 7e3ea92cbf..b84cfaa9a3 100644
> --- a/drivers/mmc/renesas-sdhi.c
> +++ b/drivers/mmc/renesas-sdhi.c
> @@ -890,6 +890,11 @@ static const struct renesas_sdhi_quirks sdhi_quirks_r8a7796_es13 = {
>  	.hs400_calib_table = r8a7796_rev3_calib_table,
>  };
>  
> +static const struct renesas_sdhi_quirks sdhi_quirks_r8a77965 = {
> +	.hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7),
> +	.hs400_calib_table = r8a77965_calib_table,
> +};
> +
>  /*
>   * Note for r8a7796 / r8a774a1: we can't distinguish ES1.1 and 1.2 as of now.
>   * So, we want to treat them equally and only have a match for ES1.2 to enforce
> @@ -912,6 +917,9 @@ static const struct soc_attr sdhi_quirks_match[]  = {
>  	  .revision = "ES1.3",
>  	  .data = &sdhi_quirks_r8a7796_es13
>  	},
> +	{ .soc_id = "r8a774b1",
> +	  .data = &sdhi_quirks_r8a77965
> +	},
>  	{ .soc_id = "r8a7796",
>  	  .revision = "ES1.0",
>  	  .data = &sdhi_quirks_4tap_nohs400_b17_dtrend
> @@ -928,6 +936,9 @@ static const struct soc_attr sdhi_quirks_match[]  = {
>  	  .revision = "ES1.3",
>  	  .data = &sdhi_quirks_r8a7796_es13
>  	},
> +	{ .soc_id = "r8a77965",
> +	  .data = &sdhi_quirks_r8a77965
> +	},
>  	{ /* Sentinel. */ },
>  };
>  
> @@ -957,7 +968,8 @@ static void renesas_sdhi_add_quirks(struct tmio_sd_plat *plat,
>  		priv->adjust_hs400_enable = true;
>  		priv->adjust_hs400_calib_table =
>  			quirks->hs400_calib_table[!rmobile_is_gen3_mmc0(priv)];
> -		if (quirks == &sdhi_quirks_r8a7796_es12)
> +		if (quirks == &sdhi_quirks_r8a7796_es12 ||
> +		    quirks == &sdhi_quirks_r8a77965)
>  			priv->adjust_hs400_offset = 3;
>  		else if (quirks == &sdhi_quirks_r8a7796_es13)
>  			priv->adjust_hs400_offset = 0;
>
diff mbox series

Patch

diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c
index 7e3ea92cbf..b84cfaa9a3 100644
--- a/drivers/mmc/renesas-sdhi.c
+++ b/drivers/mmc/renesas-sdhi.c
@@ -890,6 +890,11 @@  static const struct renesas_sdhi_quirks sdhi_quirks_r8a7796_es13 = {
 	.hs400_calib_table = r8a7796_rev3_calib_table,
 };
 
+static const struct renesas_sdhi_quirks sdhi_quirks_r8a77965 = {
+	.hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7),
+	.hs400_calib_table = r8a77965_calib_table,
+};
+
 /*
  * Note for r8a7796 / r8a774a1: we can't distinguish ES1.1 and 1.2 as of now.
  * So, we want to treat them equally and only have a match for ES1.2 to enforce
@@ -912,6 +917,9 @@  static const struct soc_attr sdhi_quirks_match[]  = {
 	  .revision = "ES1.3",
 	  .data = &sdhi_quirks_r8a7796_es13
 	},
+	{ .soc_id = "r8a774b1",
+	  .data = &sdhi_quirks_r8a77965
+	},
 	{ .soc_id = "r8a7796",
 	  .revision = "ES1.0",
 	  .data = &sdhi_quirks_4tap_nohs400_b17_dtrend
@@ -928,6 +936,9 @@  static const struct soc_attr sdhi_quirks_match[]  = {
 	  .revision = "ES1.3",
 	  .data = &sdhi_quirks_r8a7796_es13
 	},
+	{ .soc_id = "r8a77965",
+	  .data = &sdhi_quirks_r8a77965
+	},
 	{ /* Sentinel. */ },
 };
 
@@ -957,7 +968,8 @@  static void renesas_sdhi_add_quirks(struct tmio_sd_plat *plat,
 		priv->adjust_hs400_enable = true;
 		priv->adjust_hs400_calib_table =
 			quirks->hs400_calib_table[!rmobile_is_gen3_mmc0(priv)];
-		if (quirks == &sdhi_quirks_r8a7796_es12)
+		if (quirks == &sdhi_quirks_r8a7796_es12 ||
+		    quirks == &sdhi_quirks_r8a77965)
 			priv->adjust_hs400_offset = 3;
 		else if (quirks == &sdhi_quirks_r8a7796_es13)
 			priv->adjust_hs400_offset = 0;