* [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 @ 2013-02-18 18:06 Dongjin Kim 2013-02-18 22:36 ` Arnd Bergmann ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Dongjin Kim @ 2013-02-18 18:06 UTC (permalink / raw) Cc: Dongjin Kim, Jaehoon Chung, Sachin Kamat, Chris Ball, Arnd Bergmann, Thomas Abraham, Will Newton, linux-mmc, linux-kernel 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. Cc: Jaehoon Chung <jh80.chung@samsung.com> Cc: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Dongjin Kim <tobetter@gmail.com> --- 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 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-18 18:06 [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 Dongjin Kim @ 2013-02-18 22:36 ` Arnd Bergmann 2013-02-19 10:19 ` Seungwon Jeon 2013-02-22 15:17 ` [PATCH v4] " Dongjin Kim 2 siblings, 0 replies; 11+ messages in thread From: Arnd Bergmann @ 2013-02-18 22:36 UTC (permalink / raw) To: Dongjin Kim Cc: Jaehoon Chung, Sachin Kamat, Chris Ball, Thomas Abraham, Will Newton, linux-mmc, linux-kernel On Monday 18 February 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. > > Cc: Jaehoon Chung <jh80.chung@samsung.com> > Cc: Sachin Kamat <sachin.kamat@linaro.org> > Signed-off-by: Dongjin Kim <tobetter@gmail.com> If they are completely compatibly, you can just list "samsung,exynos4412-dw-mshc" in the compatible property of the exynos5250 device tree, along with the other ones like: compatible = "samsung,exynos5250-dw-mshc", "samsung,exynos4412-dw-mshc", "snps,dw-mshc"; then you don't need to change the driver at all. Arnd ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-18 18:06 [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 Dongjin Kim 2013-02-18 22:36 ` Arnd Bergmann @ 2013-02-19 10:19 ` Seungwon Jeon 2013-02-19 12:34 ` Dongjin Kim 2013-02-22 15:17 ` [PATCH v4] " Dongjin Kim 2 siblings, 1 reply; 11+ messages in thread From: Seungwon Jeon @ 2013-02-19 10:19 UTC (permalink / raw) To: 'Dongjin Kim', 'unlisted-recipients:', 'no To-header on input' Cc: 'Jaehoon Chung', 'Sachin Kamat', 'Chris Ball', 'Arnd Bergmann', 'Thomas Abraham', 'Will Newton', linux-mmc, linux-kernel 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@samsung.com> > Cc: Sachin Kamat <sachin.kamat@linaro.org> > Signed-off-by: Dongjin Kim <tobetter@gmail.com> > --- > 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-19 10:19 ` Seungwon Jeon @ 2013-02-19 12:34 ` Dongjin Kim 2013-02-19 16:40 ` Alim Akhtar 0 siblings, 1 reply; 11+ messages in thread From: Dongjin Kim @ 2013-02-19 12:34 UTC (permalink / raw) To: Seungwon Jeon Cc: 'unlisted-recipients:', 'no To-header on input', Jaehoon Chung, Sachin Kamat, Chris Ball, Arnd Bergmann, Thomas Abraham, Will Newton, linux-mmc, linux-kernel 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? Regards, Dongjin. On Tue, Feb 19, 2013 at 7:19 PM, Seungwon Jeon <tgih.jun@samsung.com> 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@samsung.com> >> Cc: Sachin Kamat <sachin.kamat@linaro.org> >> Signed-off-by: Dongjin Kim <tobetter@gmail.com> >> --- >> 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@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-19 12:34 ` Dongjin Kim @ 2013-02-19 16:40 ` Alim Akhtar 2013-02-21 10:53 ` Seungwon Jeon 0 siblings, 1 reply; 11+ messages in thread From: Alim Akhtar @ 2013-02-19 16:40 UTC (permalink / raw) To: Dongjin Kim Cc: Seungwon Jeon, 'unlisted-recipients:', 'no To-header on input', Jaehoon Chung, Sachin Kamat, Chris Ball, Arnd Bergmann, Thomas Abraham, Will Newton, linux-mmc, linux-kernel Hi, On Tue, Feb 19, 2013 at 6:04 PM, Dongjin Kim <tobetter@gmail.com> 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? 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@samsung.com> 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@samsung.com> >>> Cc: Sachin Kamat <sachin.kamat@linaro.org> >>> Signed-off-by: Dongjin Kim <tobetter@gmail.com> >>> --- >>> 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@vger.kernel.org >>> 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Regards, Alim ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-19 16:40 ` Alim Akhtar @ 2013-02-21 10:53 ` Seungwon Jeon 2013-02-22 1:39 ` Dongjin Kim 0 siblings, 1 reply; 11+ messages in thread From: Seungwon Jeon @ 2013-02-21 10:53 UTC (permalink / raw) To: 'Alim Akhtar', 'Dongjin Kim' Cc: 'unlisted-recipients:', 'no To-header on input', 'Jaehoon Chung', 'Sachin Kamat', 'Chris Ball', 'Arnd Bergmann', 'Thomas Abraham', 'Will Newton', linux-mmc, linux-kernel On Wednesday, February 20, 2013, Alim Akhtar wrote: > Hi, > > On Tue, Feb 19, 2013 at 6:04 PM, Dongjin Kim <tobetter@gmail.com> 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@samsung.com> 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@samsung.com> > >>> Cc: Sachin Kamat <sachin.kamat@linaro.org> > >>> Signed-off-by: Dongjin Kim <tobetter@gmail.com> > >>> --- > >>> 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@vger.kernel.org > >>> 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@vger.kernel.org > > 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-21 10:53 ` Seungwon Jeon @ 2013-02-22 1:39 ` Dongjin Kim 2013-02-22 11:16 ` Seungwon Jeon 0 siblings, 1 reply; 11+ messages in thread From: Dongjin Kim @ 2013-02-22 1:39 UTC (permalink / raw) To: Seungwon Jeon Cc: Alim Akhtar, 'unlisted-recipients:', 'no To-header on input', Jaehoon Chung, Sachin Kamat, Chris Ball, Arnd Bergmann, Thomas Abraham, Will Newton, linux-mmc, linux-kernel 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. Similar situation would be happened to Exynos4210 which is not supported by dw_mmc-exynos.c yet. Regards, Dongjin. On Thu, Feb 21, 2013 at 7:53 PM, Seungwon Jeon <tgih.jun@samsung.com> wrote: > On Wednesday, February 20, 2013, Alim Akhtar wrote: >> Hi, >> >> On Tue, Feb 19, 2013 at 6:04 PM, Dongjin Kim <tobetter@gmail.com> 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@samsung.com> 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@samsung.com> >> >>> Cc: Sachin Kamat <sachin.kamat@linaro.org> >> >>> Signed-off-by: Dongjin Kim <tobetter@gmail.com> >> >>> --- >> >>> 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@vger.kernel.org >> >>> 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@vger.kernel.org >> > 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@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-22 1:39 ` Dongjin Kim @ 2013-02-22 11:16 ` Seungwon Jeon 0 siblings, 0 replies; 11+ messages in thread From: Seungwon Jeon @ 2013-02-22 11:16 UTC (permalink / raw) To: 'Dongjin Kim' Cc: 'Alim Akhtar', 'unlisted-recipients:', 'Jaehoon Chung', 'Sachin Kamat', 'Chris Ball', 'Arnd Bergmann', 'Thomas Abraham', 'Will Newton', linux-mmc, linux-kernel 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@samsung.com> wrote: > > On Wednesday, February 20, 2013, Alim Akhtar wrote: > >> Hi, > >> > >> On Tue, Feb 19, 2013 at 6:04 PM, Dongjin Kim <tobetter@gmail.com> 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@samsung.com> 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@samsung.com> > >> >>> Cc: Sachin Kamat <sachin.kamat@linaro.org> > >> >>> Signed-off-by: Dongjin Kim <tobetter@gmail.com> > >> >>> --- > >> >>> 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@vger.kernel.org > >> >>> 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@vger.kernel.org > >> > 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@vger.kernel.org > >> 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-18 18:06 [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 Dongjin Kim 2013-02-18 22:36 ` Arnd Bergmann 2013-02-19 10:19 ` Seungwon Jeon @ 2013-02-22 15:17 ` Dongjin Kim 2013-03-13 14:17 ` Seungwon Jeon 2 siblings, 1 reply; 11+ messages in thread From: Dongjin Kim @ 2013-02-22 15:17 UTC (permalink / raw) Cc: Dongjin Kim, Seungwon Jeon, Jaehoon Chung, Sachin Kamat, Chris Ball, Arnd Bergmann, Thomas Abraham, Will Newton, linux-mmc, linux-kernel This patch adds the compatible string for MSHC controller of Exynos4412. And exynos5250_dwmmc_caps is renamed to exynos_dwmmc_caps, since it has the capablities of common feature supported by Exynos4 and Exynos5. Cc: Seungwon Jeon <tgih.jun@samsung.com> Cc: Jaehoon Chung <jh80.chung@samsung.com> Cc: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Dongjin Kim <tobetter@gmail.com> --- 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..dd8f58c 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] = { +/* Common capabilities of Exynos4/Exynos5 SoC */ +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 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* RE: [PATCH v4] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-02-22 15:17 ` [PATCH v4] " Dongjin Kim @ 2013-03-13 14:17 ` Seungwon Jeon 2013-03-22 16:56 ` Chris Ball 0 siblings, 1 reply; 11+ messages in thread From: Seungwon Jeon @ 2013-03-13 14:17 UTC (permalink / raw) To: 'Dongjin Kim' Cc: 'Jaehoon Chung', 'Sachin Kamat', 'Chris Ball', 'Arnd Bergmann', 'Thomas Abraham', 'Will Newton', linux-mmc, linux-kernel On Saturday, February 23, 2013, Dongjin Kim wrote: > This patch adds the compatible string for MSHC controller of Exynos4412. > And exynos5250_dwmmc_caps is renamed to exynos_dwmmc_caps, since it has the > capablities of common feature supported by Exynos4 and Exynos5. > > Cc: Seungwon Jeon <tgih.jun@samsung.com> Acked-by: Seungwon Jeon <tgih.jun@samsung.com> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4] mmc: dw_mmc: Add MSHC compatible for Exynos4412 2013-03-13 14:17 ` Seungwon Jeon @ 2013-03-22 16:56 ` Chris Ball 0 siblings, 0 replies; 11+ messages in thread From: Chris Ball @ 2013-03-22 16:56 UTC (permalink / raw) To: Seungwon Jeon Cc: 'Dongjin Kim', 'Jaehoon Chung', 'Sachin Kamat', 'Arnd Bergmann', 'Thomas Abraham', 'Will Newton', linux-mmc, linux-kernel Hi, On Wed, Mar 13 2013, Seungwon Jeon wrote: > On Saturday, February 23, 2013, Dongjin Kim wrote: >> This patch adds the compatible string for MSHC controller of Exynos4412. >> And exynos5250_dwmmc_caps is renamed to exynos_dwmmc_caps, since it has the >> capablities of common feature supported by Exynos4 and Exynos5. >> >> Cc: Seungwon Jeon <tgih.jun@samsung.com> > > Acked-by: Seungwon Jeon <tgih.jun@samsung.com> Thanks, pushed to mmc-next for 3.10. - Chris. -- Chris Ball <cjb@laptop.org> <http://printf.net/> One Laptop Per Child ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-03-22 16:56 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-02-18 18:06 [PATCH v3] mmc: dw_mmc: Add MSHC compatible for Exynos4412 Dongjin Kim 2013-02-18 22:36 ` Arnd Bergmann 2013-02-19 10:19 ` Seungwon Jeon 2013-02-19 12:34 ` Dongjin Kim 2013-02-19 16:40 ` Alim Akhtar 2013-02-21 10:53 ` Seungwon Jeon 2013-02-22 1:39 ` Dongjin Kim 2013-02-22 11:16 ` Seungwon Jeon 2013-02-22 15:17 ` [PATCH v4] " Dongjin Kim 2013-03-13 14:17 ` Seungwon Jeon 2013-03-22 16:56 ` Chris Ball
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).