From d4d4cfe7bf3aef4b4db88b6eb8160fa93c4400a9 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Oct 14 2012 09:21:34 +0000 Subject: arm-exynos4: add regulator fix patches for SMDK310 and Origen boards Without those patches, both drivers oopses, due to a bug at the dummy regulator on Kernel 3.6. Also, some board components don't work without it. Those patches could not be 100% correct, but all components that are known to work with the upstream Kernel are available with it. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/arm-origen-regulator-fix.patch b/arm-origen-regulator-fix.patch new file mode 100644 index 0000000..c91bfb8 --- /dev/null +++ b/arm-origen-regulator-fix.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c +index 4e574c2..5028fee 100644 +--- a/arch/arm/mach-exynos/mach-origen.c ++++ b/arch/arm/mach-exynos/mach-origen.c +@@ -121,6 +121,7 @@ static struct regulator_consumer_supply __initdata ldo14_consumer[] = { + }; + static struct regulator_consumer_supply __initdata ldo17_consumer[] = { + REGULATOR_SUPPLY("vdd33", "swb-a31"), /* AR6003 WLAN & CSR 8810 BT */ ++ REGULATOR_SUPPLY("vmmc", NULL), + }; + static struct regulator_consumer_supply __initdata buck1_consumer[] = { + REGULATOR_SUPPLY("vdd_arm", NULL), /* CPUFREQ */ diff --git a/arm-smdk310-regulator-fix.patch b/arm-smdk310-regulator-fix.patch new file mode 100644 index 0000000..0e0be1e --- /dev/null +++ b/arm-smdk310-regulator-fix.patch @@ -0,0 +1,36 @@ +--- linus.orig/arch/arm/mach-exynos/mach-smdkv310.c ++++ linus/arch/arm/mach-exynos/mach-smdkv310.c +@@ -14,6 +14,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -380,6 +382,14 @@ static void __init smdkv310_reserve(void + s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20); + } + ++static struct regulator_consumer_supply vddmmc_consumers[] __devinitdata = { ++ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), ++ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), ++ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), ++ REGULATOR_SUPPLY("vdd33a", "smsc911x"), ++ REGULATOR_SUPPLY("vddvario", "smsc911x"), ++}; ++ + static void __init smdkv310_machine_init(void) + { + s3c_i2c1_set_platdata(NULL); +@@ -387,6 +397,9 @@ static void __init smdkv310_machine_init + + smdkv310_smsc911x_init(); + ++ regulator_register_always_on(0, "fixed-3.3V", vddmmc_consumers, ++ ARRAY_SIZE(vddmmc_consumers), 3300000); ++ + s3c_sdhci0_set_platdata(&smdkv310_hsmmc0_pdata); + s3c_sdhci1_set_platdata(&smdkv310_hsmmc1_pdata); + s3c_sdhci2_set_platdata(&smdkv310_hsmmc2_pdata); diff --git a/kernel.spec b/kernel.spec index fe6bef9..7e526d6 100644 --- a/kernel.spec +++ b/kernel.spec @@ -741,6 +741,10 @@ Patch21006: arm-tegra-sdhci-module-fix.patch # ARM highbank patches Patch21010: arm-highbank-sata-fix.patch +# ARM exynos4 +Patch21020: arm-smdk310-regulator-fix.patch +Patch21021: arm-origen-regulator-fix.patch + Patch21094: power-x86-destdir.patch #rhbz 754518 @@ -1341,6 +1345,9 @@ ApplyPatch arm-tegra-nvec-kconfig.patch ApplyPatch arm-tegra-usb-no-reset-linux33.patch ApplyPatch arm-tegra-sdhci-module-fix.patch +ApplyPatch arm-smdk310-regulator-fix.patch +ApplyPatch arm-origen-regulator-fix.patch + # # bugfixes to drivers and filesystems #