mmc: dw_mmc: use the mmc_of_parse() instead of local parser
PATCH v4 1/7 mmc: dw_mmc: use the mmc_of_parse() instead of local parser
mmc_of_parse() have been already parsed the general capability. Didn't need to use the local parser.
---
Changelog V4:
- None
Changelog V3:
- Remove the caps2-mmc-hs-1_8v/1_2v into synopsys-dw-mshc.txt
Changelog V2:
- None
.../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 5 -- drivers/mmc/host/dw_mmc.c | 49 +------------------- 2 files changed, 1 insertion(+), 53 deletions(-)
Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +0 -5
@@ -69,10 +69,6 @@ Optional properties: * supports-highspeed: Enables support for high speed cards (up to 50MHz) -* caps2-mmc-hs200-1_8v: Supports mmc HS200 SDR 1.8V mode - -* caps2-mmc-hs200-1_2v: Supports mmc HS200 SDR 1.2V mode - * broken-cd: as documented in mmc core bindings. * vmmc-supply: The phandle to the regulator to use for vmmc. If this is
@@ -103,7 +99,6 @@ board specific portions as listed below. clock-freq-min-max = <400000 200000000>; num-slots = <1>; supports-highspeed; - caps2-mmc-hs200-1_8v; broken-cd; fifo-depth = <0x80>; card-detect-delay = <200>;
drivers/mmc/host/dw_mmc.c +1 -48
82 lines not on this page · raw message
Signature · 1 line
1.7.9.5
Jaehoon Chung
maintainerDear, All.
Do you have any other comment for this patchset?
I have tested with exynos4/5 board. it's working fine.(eMMC/SD)
If it needs to change more, let me know, plz.
Best Regards,
Jaehoon Chung
Quoted 130 lines · Jaehoon Chung
mmc_of_parse()have been already parsed the general capability. Didn't need to use the local parser.Signed-off-by Jaehoon Chung <[email protected]>---
Changelog V4:
- None
Changelog V3:
- Remove the caps2-mmc-hs-1_8v/1_2v into synopsys-dw-mshc.txt
Changelog V2:
- None.../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 5 -- drivers/mmc/host/dw_mmc.c | 49 +------------------- 2 files changed, 1 insertion(+), 53 deletions(-)Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +0
-5@@ -69,10 +69,6 @@ Optional properties: * supports-highspeed: Enables support for high speed cards (up to 50MHz) -* caps2-mmc-hs200-1_8v: Supports mmc HS200 SDR 1.8V mode - -* caps2-mmc-hs200-1_2v: Supports mmc HS200 SDR 1.2V mode - * broken-cd: as documented in mmc core bindings. * vmmc-supply: The phandle to the regulator to use for vmmc. If this is@@ -103,7 +99,6 @@ board specific portions as listed below. clock-freq-min-max = <400000 200000000>; num-slots = <1>; supports-highspeed; - caps2-mmc-hs200-1_8v; broken-cd; fifo-depth = <0x80>; card-detect-delay = <200>;drivers/mmc/host/dw_mmc.c +1
-48@@ -2046,21 +2046,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)return quirks; } -/* find out bus-width for a given slot */ -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -struct device_node *np =dw_mci_of_find_slot_node (dev, slot); -u32 bus_wd =1 ; - -if (!np) -return 1 ; - -if (of_property_read_u32 (np,"bus-width" , &bus_wd)) -dev_err (dev,"bus-width property not found, assuming width" -" as 1\n" ); -return bus_wd; -} -/* find the write protect gpio for a given slot; or -1 if none specified */ static int dw_mci_of_get_wp_gpio (struct device *dev,u8 slot) {@@ -2108,10 +2093,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot) {return 0 ; } -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -return 1 ; -}static struct device_node *dw_mci_of_find_slot_node (struct device *dev,u8 slot) {return NULL ;@@ -2134,7 +2115,6 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)const struct dw_mci_drv_data *drv_data = host->drv_data;int ctrl_id, ret;u32 freq[2 ]; -u8 bus_width; mmc =mmc_alloc_host (sizeof (struct dw_mci_slot ), host->dev);if (!mmc)@@ -2189,19 +2169,7 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)if (host->pdata->caps2) mmc->caps2 = host->pdata->caps2; -if (host->pdata->get_bus_wd) - bus_width = host->pdata->get_bus_wd (slot->id); -else if (host->dev->of_node) - bus_width =dw_mci_of_get_bus_wd (host->dev, slot->id); -else - bus_width =1 ; - -switch (bus_width) { -case 8 : - mmc->caps |=MMC_CAP_8_BIT_DATA ; -case 4 : - mmc->caps |=MMC_CAP_4_BIT_DATA ; - } +mmc_of_parse (mmc);if (host->pdata->blk_settings) { mmc->max_segs = host->pdata->blk_settings->max_segs;@@ -2399,24 +2367,9 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host)return ERR_PTR (ret); } -if (of_find_property (np,"keep-power-in-suspend" ,NULL )) - pdata->pm_caps |=MMC_PM_KEEP_POWER ; - -if (of_find_property (np,"enable-sdio-wakeup" ,NULL )) - pdata->pm_caps |=MMC_PM_WAKE_SDIO_IRQ ; -if (of_find_property (np,"supports-highspeed" ,NULL )) pdata->caps |=MMC_CAP_SD_HIGHSPEED |MMC_CAP_MMC_HIGHSPEED ; -if (of_find_property (np,"caps2-mmc-hs200-1_8v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_8V_SDR ; - -if (of_find_property (np,"caps2-mmc-hs200-1_2v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_2V_SDR ; - -if (of_get_property (np,"cd-inverted" ,NULL )) - pdata->caps2 |=MMC_CAP2_CD_ACTIVE_HIGH ; -return pdata; }
Quoted 106 lines · Jaehoon Chung
mmc_of_parse()have been already parsed the general capability. Didn't need to use the local parser.Signed-off-by Jaehoon Chung <[email protected]>---
Changelog V4:
- None
Changelog V3:
- Remove the caps2-mmc-hs-1_8v/1_2v into synopsys-dw-mshc.txt
Changelog V2:
- None.../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 5 -- drivers/mmc/host/dw_mmc.c | 49 +------------------- 2 files changed, 1 insertion(+), 53 deletions(-)Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +0
-5@@ -69,10 +69,6 @@ Optional properties: * supports-highspeed: Enables support for high speed cards (up to 50MHz) -* caps2-mmc-hs200-1_8v: Supports mmc HS200 SDR 1.8V mode - -* caps2-mmc-hs200-1_2v: Supports mmc HS200 SDR 1.2V mode - * broken-cd: as documented in mmc core bindings. * vmmc-supply: The phandle to the regulator to use for vmmc. If this is@@ -103,7 +99,6 @@ board specific portions as listed below. clock-freq-min-max = <400000 200000000>; num-slots = <1>; supports-highspeed; - caps2-mmc-hs200-1_8v; broken-cd; fifo-depth = <0x80>; card-detect-delay = <200>;drivers/mmc/host/dw_mmc.c +1
-33@@ -2046,21 +2046,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)return quirks; } -/* find out bus-width for a given slot */ -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -struct device_node *np =dw_mci_of_find_slot_node (dev, slot); -u32 bus_wd =1 ; - -if (!np) -return 1 ; - -if (of_property_read_u32 (np,"bus-width" , &bus_wd)) -dev_err (dev,"bus-width property not found, assuming width" -" as 1\n" ); -return bus_wd; -} -/* find the write protect gpio for a given slot; or -1 if none specified */ static int dw_mci_of_get_wp_gpio (struct device *dev,u8 slot) {@@ -2108,10 +2093,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot) {return 0 ; } -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -return 1 ; -}static struct device_node *dw_mci_of_find_slot_node (struct device *dev,u8 slot) {return NULL ;@@ -2134,7 +2115,6 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)const struct dw_mci_drv_data *drv_data = host->drv_data;int ctrl_id, ret;u32 freq[2 ]; -u8 bus_width; mmc =mmc_alloc_host (sizeof (struct dw_mci_slot ), host->dev);if (!mmc)@@ -2189,19 +2169,7 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)if (host->pdata->caps2) mmc->caps2 = host->pdata->caps2; -if (host->pdata->get_bus_wd) - bus_width = host->pdata->get_bus_wd (slot->id); -else if (host->dev->of_node) - bus_width =dw_mci_of_get_bus_wd (host->dev, slot->id); -else - bus_width =1 ; - -switch (bus_width) { -case 8 : - mmc->caps |=MMC_CAP_8_BIT_DATA ; -case 4 : - mmc->caps |=MMC_CAP_4_BIT_DATA ; - } +mmc_of_parse (mmc);if (host->pdata->blk_settings) { mmc->max_segs = host->pdata->blk_settings->max_segs;@@ -2399,24 +2367,9 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host)return ERR_PTR (ret);
drivers/mmc/host/dw_mmc.c static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) · line 2371
Quoted 10 lines
drivers/mmc/host/dw_mmc.c +0
-6} -if (of_find_property (np,"keep-power-in-suspend" ,NULL )) - pdata->pm_caps |=MMC_PM_KEEP_POWER ; - -if (of_find_property (np,"enable-sdio-wakeup" ,NULL )) - pdata->pm_caps |=MMC_PM_WAKE_SDIO_IRQ ; -if (of_find_property (np,"supports-highspeed" ,NULL )) pdata->caps |=MMC_CAP_SD_HIGHSPEED |MMC_CAP_MMC_HIGHSPEED ;
We should convert to the common bindings for highspeed modes as well, but that's outside this patch though.
Quoted 14 lines
drivers/mmc/host/dw_mmc.c +0
-10-if (of_find_property (np,"caps2-mmc-hs200-1_8v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_8V_SDR ; - -if (of_find_property (np,"caps2-mmc-hs200-1_2v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_2V_SDR ; - -if (of_get_property (np,"cd-inverted" ,NULL )) - pdata->caps2 |=MMC_CAP2_CD_ACTIVE_HIGH ; -return pdata; } --
Quoted 1 line
1.7.9.5
Seungwon Jeon
Acked-byQuoted 5 lines · Jaehoon Chung
Dear, All.
Do you have any other comment for this patchset?
I have tested with exynos4/5 board. it's working fine.(eMMC/SD)
Quoted 10 lines
If it needs to change more, let me know, plz.
Best Regards,
Jaehoon ChungQuoted 4 lines · Jaehoon Chung
mmc_of_parse()have been already parsed the general capability. Didn't need to use the local parser.Signed-off-by Jaehoon Chung <[email protected]>
Thank you for changes.
I add my ack on all patches including V4's others.
Thanks,
Seungwon Jeon
Jaehoon Chung
maintainerQuoted 109 lines · Ulf Hansson
Quoted 108 lines · Jaehoon Chung
mmc_of_parse()have been already parsed the general capability. Didn't need to use the local parser.Signed-off-by Jaehoon Chung <[email protected]>---
Changelog V4:
- None
Changelog V3:
- Remove the caps2-mmc-hs-1_8v/1_2v into synopsys-dw-mshc.txt
Changelog V2:
- None.../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 5 -- drivers/mmc/host/dw_mmc.c | 49 +------------------- 2 files changed, 1 insertion(+), 53 deletions(-)Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt +0
-5@@ -69,10 +69,6 @@ Optional properties: * supports-highspeed: Enables support for high speed cards (up to 50MHz) -* caps2-mmc-hs200-1_8v: Supports mmc HS200 SDR 1.8V mode - -* caps2-mmc-hs200-1_2v: Supports mmc HS200 SDR 1.2V mode - * broken-cd: as documented in mmc core bindings. * vmmc-supply: The phandle to the regulator to use for vmmc. If this is@@ -103,7 +99,6 @@ board specific portions as listed below. clock-freq-min-max = <400000 200000000>; num-slots = <1>; supports-highspeed; - caps2-mmc-hs200-1_8v; broken-cd; fifo-depth = <0x80>; card-detect-delay = <200>;drivers/mmc/host/dw_mmc.c +1
-33@@ -2046,21 +2046,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot)return quirks; } -/* find out bus-width for a given slot */ -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -struct device_node *np =dw_mci_of_find_slot_node (dev, slot); -u32 bus_wd =1 ; - -if (!np) -return 1 ; - -if (of_property_read_u32 (np,"bus-width" , &bus_wd)) -dev_err (dev,"bus-width property not found, assuming width" -" as 1\n" ); -return bus_wd; -} -/* find the write protect gpio for a given slot; or -1 if none specified */ static int dw_mci_of_get_wp_gpio (struct device *dev,u8 slot) {@@ -2108,10 +2093,6 @@ static int dw_mci_of_get_slot_quirks(struct device *dev, u8 slot) {return 0 ; } -static u32 dw_mci_of_get_bus_wd (struct device *dev,u8 slot) -{ -return 1 ; -}static struct device_node *dw_mci_of_find_slot_node (struct device *dev,u8 slot) {return NULL ;@@ -2134,7 +2115,6 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)const struct dw_mci_drv_data *drv_data = host->drv_data;int ctrl_id, ret;u32 freq[2 ]; -u8 bus_width; mmc =mmc_alloc_host (sizeof (struct dw_mci_slot ), host->dev);if (!mmc)@@ -2189,19 +2169,7 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)if (host->pdata->caps2) mmc->caps2 = host->pdata->caps2; -if (host->pdata->get_bus_wd) - bus_width = host->pdata->get_bus_wd (slot->id); -else if (host->dev->of_node) - bus_width =dw_mci_of_get_bus_wd (host->dev, slot->id); -else - bus_width =1 ; - -switch (bus_width) { -case 8 : - mmc->caps |=MMC_CAP_8_BIT_DATA ; -case 4 : - mmc->caps |=MMC_CAP_4_BIT_DATA ; - } +mmc_of_parse (mmc);if (host->pdata->blk_settings) { mmc->max_segs = host->pdata->blk_settings->max_segs;@@ -2399,24 +2367,9 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host)return ERR_PTR (ret); }
Quoted 11 lines
drivers/mmc/host/dw_mmc.c static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) · line 2371
Quoted 8 lines
drivers/mmc/host/dw_mmc.c +0
-6-if (of_find_property (np,"keep-power-in-suspend" ,NULL )) - pdata->pm_caps |=MMC_PM_KEEP_POWER ; - -if (of_find_property (np,"enable-sdio-wakeup" ,NULL )) - pdata->pm_caps |=MMC_PM_WAKE_SDIO_IRQ ; -if (of_find_property (np,"supports-highspeed" ,NULL )) pdata->caps |=MMC_CAP_SD_HIGHSPEED |MMC_CAP_MMC_HIGHSPEED ;We should convert to the common bindings for highspeed modes as well, but that's outside this patch though.
It can be used "caps-sd-highspeed" and "caps-mmc-highspeed" instead of "support-highspeed". I will send the other patch for this.
Thanks for your acked.
Best Regards,
Jaehoon Chung
Quoted 19 lines
Quoted 15 lines
drivers/mmc/host/dw_mmc.c +0
-10-if (of_find_property (np,"caps2-mmc-hs200-1_8v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_8V_SDR ; - -if (of_find_property (np,"caps2-mmc-hs200-1_2v" ,NULL )) - pdata->caps2 |=MMC_CAP2_HS200_1_2V_SDR ; - -if (of_get_property (np,"cd-inverted" ,NULL )) - pdata->caps2 |=MMC_CAP2_CD_ACTIVE_HIGH ; -return pdata; } --Quoted 1 line
1.7.9.5
Acked-by Ulf Hansson <[email protected]>