RE: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412

From: Seungwon Jeon
Date: Fri Feb 22 2013 - 06:16:58 EST


On Friday, February 22, 2013, Dongjin Kim wrote:
> Hello Seungwon,
>
> OK, I will change the commit message. And I also think Alim's idea is
> good but need more detail about functional features of Synopsis' IP.
Yes, Alim gave good suggestions.
It would be useful. But I think it's close to platform rather than Synopsys itself.
I'm starting to compare the new generic parsing with dw_mmc.
> Similar situation would be happened to Exynos4210 which is not
> supported by dw_mmc-exynos.c yet.
Maybe not, it should be done.

Thanks,
Seungwon Jeon
>
> Regards,
> Dongjin.
>
> On Thu, Feb 21, 2013 at 7:53 PM, Seungwon Jeon <tgih.jun@xxxxxxxxxxx> wrote:
> > On Wednesday, February 20, 2013, Alim Akhtar wrote:
> >> Hi,
> >>
> >> On Tue, Feb 19, 2013 at 6:04 PM, Dongjin Kim <tobetter@xxxxxxxxx> wrote:
> >> > Hello Seungwon,
> >> >
> >> > Thank you for reviewing and I understand what you mean.
> >> >
> >> > I agree that Exynos5250 and Exynos4412 are not same, no idea how much
> >> > they are different because no Exynos5250 spec on my hand. But at least
> >> > I assumed that the capabilities below are supported by Exynos4412 in
> >> > terms of its datasheet and it does work on my end as expected. :) Also
> >> > I assumed it will be separated if one of both become different to add
> >> > more capabilities.
> >> >
> >> > MMC_CAP_UHS_DDR50 | MMC_CAP_1_8V_DDR |
> >> > MMC_CAP_8_BIT_DATA | MMC_CAP_CMD23,
> >> >
> >> > Maybe my understanding or approach is wrong since I do not have the
> >> > information of Exynos5250.
> >> > And suggestion do you have?
> > At least, these capabilities can be shared because of common feature, not fully same.
> > Dongjin, could you modify the commit message and comments of code?
> >
> > Let me introduce the functional feature of Exynos5250 and capability extension.
> > I guess I'll send soon.
> >
> > Thanks,
> > Seungwon Jeon
> >
> >>
> >> Recently Guennadi Liakhovetski has done some work to centralize the
> >> mmc capabilities. See [1] and [2].
> >> Those patches are pushed to Chris's mmc-next tree.
> >> Is it possible to extend [1] and [2] and add more capabilities (at
> >> least all known one) and let these caps being passed from DT instead?
> >>
> >> Second thought is, let the common minimum caps as a part of .caps
> >> field in dw_mmc-exynos.c itself and pass the extra/advance controller
> >> caps from DT and parse them via dw_mci_parse_dt() in dw_mmc.c itself.
> >>
> >> [1] https://patchwork.kernel.org/patch/1991851/
> >> [2] https://patchwork.kernel.org/patch/2106531/
> >>
> >> > Regards,
> >> > Dongjin.
> >> >
> >> > On Tue, Feb 19, 2013 at 7:19 PM, Seungwon Jeon <tgih.jun@xxxxxxxxxxx> wrote:
> >> >> On Tuesday, February 19, 2013, Dongjin Kim wrote:
> >> >>> This patch adds the compatible string for MSHC controller of Exynos4412, and
> >> >>> share the controller specific properties with Exynos5250 since they have same
> >> >>> features. Its driver data name is changed to exynos_drv_data instead SoC
> >> >>> specific name.
> >> >>
> >> >> It's not actually same.
> >> >> Exynos4412 doesn't have forward compatibilities for Exynos5250.
> >> >> I agree that functionality of exynos_drv_data is common.
> >> >> These functions have been implemented for existing Exynos*.
> >> >> But in case of caps, it can't applied completely.
> >> >> I'm concerning about this.
> >> >>
> >> >> Thanks,
> >> >> Seungwon Jeon
> >> >>>
> >> >>> Cc: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
> >> >>> Cc: Sachin Kamat <sachin.kamat@xxxxxxxxxx>
> >> >>> Signed-off-by: Dongjin Kim <tobetter@xxxxxxxxx>
> >> >>> ---
> >> >>> drivers/mmc/host/dw_mmc-exynos.c | 12 +++++++-----
> >> >>> 1 file changed, 7 insertions(+), 5 deletions(-)
> >> >>>
> >> >>> diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
> >> >>> index 4d50da6..38cd03c 100644
> >> >>> --- a/drivers/mmc/host/dw_mmc-exynos.c
> >> >>> +++ b/drivers/mmc/host/dw_mmc-exynos.c
> >> >>> @@ -199,8 +199,8 @@ static int dw_mci_exynos_setup_bus(struct dw_mci *host,
> >> >>> return 0;
> >> >>> }
> >> >>>
> >> >>> -/* Exynos5250 controller specific capabilities */
> >> >>> -static unsigned long exynos5250_dwmmc_caps[4] = {
> >> >>> +/* Exynos4412/Exynos5250 controller specific capabilities */
> >> >>> +static unsigned long exynos_dwmmc_caps[4] = {
> >> >>> MMC_CAP_UHS_DDR50 | MMC_CAP_1_8V_DDR |
> >> >>> MMC_CAP_8_BIT_DATA | MMC_CAP_CMD23,
> >> >>> MMC_CAP_CMD23,
> >> >>> @@ -208,8 +208,8 @@ static unsigned long exynos5250_dwmmc_caps[4] = {
> >> >>> MMC_CAP_CMD23,
> >> >>> };
> >> >>>
> >> >>> -static const struct dw_mci_drv_data exynos5250_drv_data = {
> >> >>> - .caps = exynos5250_dwmmc_caps,
> >> >>> +static const struct dw_mci_drv_data exynos_drv_data = {
> >> >>> + .caps = exynos_dwmmc_caps,
> >> >>> .init = dw_mci_exynos_priv_init,
> >> >>> .setup_clock = dw_mci_exynos_setup_clock,
> >> >>> .prepare_command = dw_mci_exynos_prepare_command,
> >> >>> @@ -219,8 +219,10 @@ static const struct dw_mci_drv_data exynos5250_drv_data = {
> >> >>> };
> >> >>>
> >> >>> static const struct of_device_id dw_mci_exynos_match[] = {
> >> >>> + { .compatible = "samsung,exynos4412-dw-mshc",
> >> >>> + .data = &exynos_drv_data, },
> >> >>> { .compatible = "samsung,exynos5250-dw-mshc",
> >> >>> - .data = &exynos5250_drv_data, },
> >> >>> + .data = &exynos_drv_data, },
> >> >>> {},
> >> >>> };
> >> >>> MODULE_DEVICE_TABLE(of, dw_mci_exynos_match);
> >> >>> --
> >> >>> 1.7.10.4
> >> >>>
> >> >>> --
> >> >>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> >> >>> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> >>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >> >>
> >> > --
> >> > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> >> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >>
> >> --
> >> Regards,
> >> Alim
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/