summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWu Guoxing <b02248@freescale.com>2008-03-28 13:27:15 +0800
committerDaniel Schaeffer <daniel.schaeffer@timesys.com>2008-08-25 15:20:56 -0400
commit1df3caa390e1da90c47dc6ae1d53d679a04cda76 (patch)
tree05cb82a5351456fb2628bbf7278f280b08e6f71d
parent5057bd85940115ed4af1a971ef5bbe7951b23c67 (diff)
ENGR00058738 MX35 I2C master driver
MX35 I2C master driver Signed-off-by: Guoxing Wu <b02248@freescale.com>
-rw-r--r--arch/arm/mach-mx35/mx35_3stack_gpio.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/arch/arm/mach-mx35/mx35_3stack_gpio.c b/arch/arm/mach-mx35/mx35_3stack_gpio.c
index 08c2c3f17ecc..645509bc70b7 100644
--- a/arch/arm/mach-mx35/mx35_3stack_gpio.c
+++ b/arch/arm/mach-mx35/mx35_3stack_gpio.c
@@ -192,25 +192,37 @@ EXPORT_SYMBOL(gpio_fec_inactive);
*/
void gpio_i2c_active(int i2c_num)
{
+
+#define PAD_CONFIG (PAD_CTL_HYS_SCHMITZ | PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PUD | PAD_CTL_ODE_OpenDrain)
+
switch (i2c_num) {
case 0:
mxc_request_iomux(MX35_PIN_I2C1_CLK, MUX_CONFIG_SION);
mxc_request_iomux(MX35_PIN_I2C1_DAT, MUX_CONFIG_SION);
- mxc_iomux_set_pad(MX35_PIN_I2C1_CLK, 0x1e8);
- mxc_iomux_set_pad(MX35_PIN_I2C1_DAT, 0x1e8);
+ mxc_iomux_set_pad(MX35_PIN_I2C1_CLK, PAD_CONFIG);
+ mxc_iomux_set_pad(MX35_PIN_I2C1_DAT, PAD_CONFIG);
break;
case 1:
mxc_request_iomux(MX35_PIN_I2C2_CLK, MUX_CONFIG_SION);
mxc_request_iomux(MX35_PIN_I2C2_DAT, MUX_CONFIG_SION);
- mxc_iomux_set_pad(MX35_PIN_I2C2_CLK, 0x1e8);
- mxc_iomux_set_pad(MX35_PIN_I2C2_DAT, 0x1e8);
+ mxc_iomux_set_pad(MX35_PIN_I2C2_CLK, PAD_CONFIG);
+ mxc_iomux_set_pad(MX35_PIN_I2C2_DAT, PAD_CONFIG);
break;
+ case 2:
+ mxc_request_iomux(MX35_PIN_TX3_RX2, MUX_CONFIG_ALT1);
+ mxc_request_iomux(MX35_PIN_TX2_RX3, MUX_CONFIG_ALT1);
+ mxc_iomux_set_pad(MX35_PIN_TX3_RX2, PAD_CONFIG);
+ mxc_iomux_set_pad(MX35_PIN_TX2_RX3, PAD_CONFIG);
+ break;
default:
break;
}
+
+#undef PAD_CONFIG
+
}
EXPORT_SYMBOL(gpio_i2c_active);
@@ -222,7 +234,18 @@ EXPORT_SYMBOL(gpio_i2c_active);
*/
void gpio_i2c_inactive(int i2c_num)
{
- /*TODO:complete inactive function */
+ switch (i2c_num) {
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ mxc_request_iomux(MX35_PIN_TX3_RX2, MUX_CONFIG_GPIO);
+ mxc_request_iomux(MX35_PIN_TX2_RX3, MUX_CONFIG_GPIO);
+ break;
+ default:
+ break;
+ }
}
EXPORT_SYMBOL(gpio_i2c_inactive);