summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/magician.c
diff options
context:
space:
mode:
authorPetr Cvek <petr.cvek@tul.cz>2015-09-28 23:33:55 +0200
committerRobert Jarzmik <robert.jarzmik@free.fr>2015-10-14 23:06:57 +0200
commit0fb58abb5d75eea47e001ef47ad8cbca545ac4ca (patch)
treeadcd3ff86b1135cb8221cd32875cf6576ef76503 /arch/arm/mach-pxa/magician.c
parentARM: pxa: magician: Fix and add charging detection functions (diff)
downloadlinux-0fb58abb5d75eea47e001ef47ad8cbca545ac4ca.tar.xz
linux-0fb58abb5d75eea47e001ef47ad8cbca545ac4ca.zip
ARM: pxa: magician: Fix platform data for both PXA27x I2C controllers
This patch changes fast_mode settings for the normal and power I2C controller on the HTC Magician machine. Connected device on the Power I2C: - MAX1587A: working in the fast mode Connected devices on the Normal I2C: - UDA1380: working in the fast mode - OV9640: bus became stuck in the fast mode The OV9640 is not using a standard I2C protocol, but an SCCB variant. Maybe it is not fully compatible in the fast mode. Therefore fast mode for normal I2C is disabled. If you not using the OV9640 then you can enable the fast mode for the UDA1380. Signed-off-by: Petr Cvek <petr.cvek@tul.cz> [included Philipp Zabel's comment change] Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Diffstat (limited to 'arch/arm/mach-pxa/magician.c')
-rw-r--r--arch/arm/mach-pxa/magician.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 8b60bd829d17..835c7f8fdbf8 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -740,7 +740,16 @@ static struct platform_device strataflash = {
*/
static struct i2c_pxa_platform_data i2c_info = {
- .fast_mode = 1,
+ /* OV9640 I2C device doesn't support fast mode */
+ .fast_mode = 0,
+};
+
+/*
+ * PXA I2C power controller
+ */
+
+static struct i2c_pxa_platform_data magician_i2c_power_info = {
+ .fast_mode = 1,
};
/*
@@ -789,7 +798,7 @@ static void __init magician_init(void)
platform_add_devices(ARRAY_AND_SIZE(devices));
pxa_set_ficp_info(&magician_ficp_info);
- pxa27x_set_i2c_power_info(NULL);
+ pxa27x_set_i2c_power_info(&magician_i2c_power_info);
pxa_set_i2c_info(&i2c_info);
pxa_set_mci_info(&magician_mci_info);
pxa_set_ohci_info(&magician_ohci_info);