diff options
author | Wu Guoxing <b02248@freescale.com> | 2008-03-28 13:27:15 +0800 |
---|---|---|
committer | Daniel Schaeffer <daniel.schaeffer@timesys.com> | 2008-08-25 15:20:56 -0400 |
commit | 1df3caa390e1da90c47dc6ae1d53d679a04cda76 (patch) | |
tree | 05cb82a5351456fb2628bbf7278f280b08e6f71d | |
parent | 5057bd85940115ed4af1a971ef5bbe7951b23c67 (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.c | 33 |
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); |