[PATCH 3/3] ARM: OMAP2+: Fix eMMC on n900 with device tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Looks like we need to configure the regulators and use the pdata
quirk to make eMMC work with device tree.

It seems that mostly vmmc2 is used, and only some earlier revisions
like the macro board used vaux3.

Note that we can add support for the macro board later as needed
by including the common n900 .dts file and configuring the vaux3
instead of vmmc2, and adding support for the smc91x Ethernet.

Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Pavel Machek <pavel@xxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxx>
Cc: Sebastian Reichel <sre@xxxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
---

Can you guys please test this on production n900 devices?

I've tested it with my old macro board where I had to patch in vaux3
instead of vmmc2. I think there's some confusion in the legacy code
comments, or else I'm confused. In any case, vaux3 works for the macro
board, and I suspect that the production versions have vmmc2.

If this does not work and vaux3 as regulator works, please also dump
out the system_rev from your board.

---
 arch/arm/boot/dts/omap3-n900.dts   | 6 +++++-
 arch/arm/mach-omap2/pdata-quirks.c | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index c4f20bf..392ced2 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -359,7 +359,11 @@
 };
 
 &mmc2 {
-	status = "disabled";
+	/* most boards use vmmc2, only the macro boards use vaux3 */
+	vmmc-supply = <&vmmc2>;
+	vmmc_aux-supply = <&vsim>;
+	bus-width = <8>;
+	non-removable;
 };
 
 &mmc3 {
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 10c7145..39f020c 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -139,6 +139,7 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
 
 static struct pdata_init pdata_quirks[] __initdata = {
 #ifdef CONFIG_ARCH_OMAP3
+	{ "nokia,omap3-n900", hsmmc2_internal_input_clk, },
 	{ "nokia,omap3-n9", hsmmc2_internal_input_clk, },
 	{ "nokia,omap3-n950", hsmmc2_internal_input_clk, },
 	{ "isee,omap3-igep0020", omap3_igep0020_legacy_init, },
-- 
1.8.1.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux