Pass n900 MMC slot names in pdata for legacy user space
Subsystems (5)
Tony Lindgren
maintainercover Pass n900 MMC slot names in pdata for legacy user space
Hi all,
N900 needs the MMC slot names to work. Let's pass them in pdata for now to remove the last remaining blocker for removing omap3 legacy booting support for v4.8.
Then when we have a generic DT binding for the slot names, we can use that assuming it will work for the n900 legacy user space.
Regards,
Tony
Tony Lindgren (2):
ARM: OMAP2+: n900 needs MMC slot names for legacy user space
mmc: omap_hsmmc: Check if MMC slot name is passed in pdata
arch/arm/mach-omap2/pdata-quirks.c | 7 +++++++ drivers/mmc/host/omap_hsmmc.c | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-)
Signature · 1 line
2.8.1
Tony Lindgren
maintainerPATCH 1/2 ARM: OMAP2+: n900 needs MMC slot names for legacy user space
Let's pass the slot names in pdata like the legacy code does. Once we have a generic DT binding for the slot names we can switch to that.
--- arch/arm/mach-omap2/pdata-quirks.c | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/mach-omap2/pdata-quirks.c +7 -0
@@ -21,6 +21,7 @@#include <linux/regulator/fixed.h> #include <linux/platform_data/pinctrl-single.h> +#include <linux/platform_data/hsmmc-omap.h> #include <linux/platform_data/iommu-omap.h> #include <linux/platform_data/wkup_m3.h> #include <linux/platform_data/pwm_omap_dmtimer.h>
@@ -35,6 +36,8 @@#include "soc.h" #include "hsmmc.h" +static struct __maybe_unused omap_hsmmc_platform_data mmc_pdata[2 ]; +struct pdata_init {const char *compatible;void (*fn)(void );
@@ -271,6 +274,8 @@ static struct platform_device omap3_rom_rng_device = {static void __init nokia_n900_legacy_init (void ) {hsmmc2_internal_input_clk (); + mmc_pdata[0 ].name ="external" ; + mmc_pdata[1 ].name ="internal" ;if (omap_type () ==OMAP2_DEVICE_TYPE_SEC ) {if (IS_ENABLED (CONFIG_ARM_ERRATA_430973 )) {
@@ -497,6 +502,8 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {OF_DEV_AUXDATA ("ti,omap3-padconf" ,0x48002a00 ,"48002a00.pinmux" , &pcs_pdata),OF_DEV_AUXDATA ("ti,omap2-iommu" ,0x5d000000 ,"5d000000.mmu" , &omap3_iommu_pdata), +OF_DEV_AUXDATA ("ti,omap3-hsmmc" ,0x4809c000 ,"4809c000.mmc" , &mmc_pdata[0 ]), +OF_DEV_AUXDATA ("ti,omap3-hsmmc" ,0x480b4000 ,"480b4000.mmc" , &mmc_pdata[1 ]),/* Only on am3517 */ OF_DEV_AUXDATA ("ti,davinci_mdio" ,0x5c030000 ,"davinci_mdio.0" ,NULL ), OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
Signature · 1 line
2.8.1
PATCH 1/2 ARM: OMAP2+: n900 needs MMC slot names for legacy user space
Quoted 3 lines · Tony Lindgren
Let's pass the slot names in pdata like the legacy code does. Once we have a generic DT binding for the slot names we can switch to that.
I am not sure we ever will get a DT binding accepted for the slot name. It seem far from being a HW description. :-)
Instead, the long term and proper solution, is to enable userspace to be able to use UUID/PARTID instead.
Until that happens, I guess this will have to do.
Kind regards
Uffe
Quoted 48 lines
Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/pdata-quirks.c | 7 +++++++ 1 file changed, 7 insertions(+)arch/arm/mach-omap2/pdata-quirks.c +7
-1@@ -21,6 +21,7 @@#include <linux/regulator/fixed.h> #include <linux/platform_data/pinctrl-single.h> +#include <linux/platform_data/hsmmc-omap.h> #include <linux/platform_data/iommu-omap.h> #include <linux/platform_data/wkup_m3.h> #include <linux/platform_data/pwm_omap_dmtimer.h> @@ -35,6 +36,8 @@#include "soc.h" #include "hsmmc.h" +static struct __maybe_unused omap_hsmmc_platform_data mmc_pdata[2 ]; +struct pdata_init {const char *compatible;void (*fn)(void );@@ -271,6 +274,8 @@ static struct platform_device omap3_rom_rng_device = {static void __init nokia_n900_legacy_init (void ) {hsmmc2_internal_input_clk (); + mmc_pdata[0 ].name ="external" ; + mmc_pdata[1 ].name ="internal" ;if (omap_type () ==OMAP2_DEVICE_TYPE_SEC ) {if (IS_ENABLED (CONFIG_ARM_ERRATA_430973 )) {@@ -497,6 +502,8 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {OF_DEV_AUXDATA ("ti,omap3-padconf" ,0x48002a00 ,"48002a00.pinmux" , &pcs_pdata),OF_DEV_AUXDATA ("ti,omap2-iommu" ,0x5d000000 ,"5d000000.mmu" , &omap3_iommu_pdata), +OF_DEV_AUXDATA ("ti,omap3-hsmmc" ,0x4809c000 ,"4809c000.mmc" , &mmc_pdata[0 ]), +OF_DEV_AUXDATA ("ti,omap3-hsmmc" ,0x480b4000 ,"480b4000.mmc" , &mmc_pdata[1 ]),/* Only on am3517 */ OF_DEV_AUXDATA ("ti,davinci_mdio" ,0x5c030000 ,"davinci_mdio.0" ,NULL ), OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", --2.8.1
Tony Lindgren
maintainerPATCH 1/2 ARM: OMAP2+: n900 needs MMC slot names for legacy user space
Quoted 7 lines · Ulf Hansson
Quoted 3 lines · Tony Lindgren
Let's pass the slot names in pdata like the legacy code does. Once we have a generic DT binding for the slot names we can switch to that.
I am not sure we ever will get a DT binding accepted for the slot name. It seem far from being a HW description. :-)
Hmm it does describe where on the the device the MMC is located though as in "external" or "internal".
Quoted 2 lines
Instead, the long term and proper solution, is to enable userspace to be able to use UUID/PARTID instead.
OK.
Quoted 1 line
Until that happens, I guess this will have to do.
Yeah especially as that has been working with the legacy booting for years.
Regards,
Tony
PATCH 1/2 ARM: OMAP2+: n900 needs MMC slot names for legacy user space
In reply to Tony LindgrenQuoted 5 lines · Tony Lindgren
Let's pass the slot names in pdata like the legacy code does. Once we have a generic DT binding for the slot names we can switch to that.
Signed-off-by Tony Lindgren <[email protected]>
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Tony Lindgren
maintainerPATCH 2/2 mmc: omap_hsmmc: Check if MMC slot name is passed in pdata
In reply to Tony LindgrenThe legacy user space for n900 relies on the MMC slot names. Let's check if those are passed in pdata and use them.
Then when we have a generic MMC slot name binding we can switch to use that assuming it works for the n900 legacy user space too.
As this makes the DT booting compatible with legacy booting, we should be able to start dropping omap3 legacy booting support in v4.8.
---
Ulf, this is safe to pick separately to the MMC tree if it looks acceptable to you.
drivers/mmc/host/omap_hsmmc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/mmc/host/omap_hsmmc.c +5 -1
@@ -1946,13 +1946,17 @@ MODULE_DEVICE_TABLE(of, omap_mmc_of_match);static struct omap_hsmmc_platform_data *of_get_hsmmc_pdata (struct device *dev) { -struct omap_hsmmc_platform_data *pdata; +struct omap_hsmmc_platform_data *pdata, *legacy;struct device_node *np = dev->of_node; pdata =devm_kzalloc (dev,sizeof (*pdata),GFP_KERNEL );if (!pdata)return ERR_PTR (-ENOMEM );/* out of memory */ + legacy =dev_get_platdata (dev); +if (legacy && legacy->name) + pdata->name = legacy->name; +if (of_find_property (np,"ti,dual-volt" ,NULL )) pdata->controller_flags |=OMAP_HSMMC_SUPPORTS_DUAL_VOLT ;
Signature · 1 line
2.8.1
Ulf Hansson
AppliedPATCH 2/2 mmc: omap_hsmmc: Check if MMC slot name is passed in pdata
Quoted 6 lines · Tony Lindgren
The legacy user space for n900 relies on the MMC slot names. Let's check if those are passed in pdata and use them.
Then when we have a generic MMC slot name binding we can switch to use that assuming it works for the n900 legacy user space too.
I dropped this section, because I don't think it will happen.
Quoted 9 lines
As this makes the DT booting compatible with legacy booting, we should be able to start dropping omap3 legacy booting support in v4.8.
Cc Ulf Hansson <[email protected]>Cc Kishon Vijay Abraham I <[email protected]>Cc linux-mmc at vger.kernel.orgSigned-off-by Tony Lindgren <[email protected]>
Thanks, applied for next!
Kind regards
Uffe
Quoted 35 lines
---
Ulf, this is safe to pick separately to the MMC tree if it looks acceptable to you.
drivers/mmc/host/omap_hsmmc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)drivers/mmc/host/omap_hsmmc.c +5
-2@@ -1946,13 +1946,17 @@ MODULE_DEVICE_TABLE(of, omap_mmc_of_match);static struct omap_hsmmc_platform_data *of_get_hsmmc_pdata (struct device *dev) { -struct omap_hsmmc_platform_data *pdata; +struct omap_hsmmc_platform_data *pdata, *legacy;struct device_node *np = dev->of_node; pdata =devm_kzalloc (dev,sizeof (*pdata),GFP_KERNEL );if (!pdata)return ERR_PTR (-ENOMEM );/* out of memory */ + legacy =dev_get_platdata (dev); +if (legacy && legacy->name) + pdata->name = legacy->name; +if (of_find_property (np,"ti,dual-volt" ,NULL )) pdata->controller_flags |=OMAP_HSMMC_SUPPORTS_DUAL_VOLT ; --2.8.1
Tony Lindgren
maintainerPATCH 2/2 mmc: omap_hsmmc: Check if MMC slot name is passed in pdata
Quoted 9 lines · Ulf Hansson
Quoted 6 lines · Tony Lindgren
The legacy user space for n900 relies on the MMC slot names. Let's check if those are passed in pdata and use them.
Then when we have a generic MMC slot name binding we can switch to use that assuming it works for the n900 legacy user space too.
I dropped this section, because I don't think it will happen.
Yeah fine with me.
Quoted 1 line
Thanks, applied for next!
Thanks!
Tony
cover Pass n900 MMC slot names in pdata for legacy user space
In reply to Tony LindgrenHi,
Quoted 14 lines · Tony Lindgren
Hi all,
N900 needs the MMC slot names to work. Let's pass them in pdata for now to remove the last remaining blocker for removing omap3 legacy booting support for v4.8.
Then when we have a generic DT binding for the slot names, we can use that assuming it will work for the n900 legacy user space.
Regards,
Tony
Quoted 8 lines
Tony Lindgren (2):
ARM: OMAP2+: n900 needs MMC slot names for legacy user space
mmc:omap_hsmmc: Check if MMC slot name is passed in pdataarch/arm/mach-omap2/pdata-quirks.c | 7 +++++++ drivers/mmc/host/omap_hsmmc.c | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-)
For both patches, you may add:
Thanks,
Ivo