[PATCH] ep93xx: update i2c support

Ryan Mallon ryan at bluewatersys.com
Wed Sep 30 21:55:29 EDT 2009


H Hartley Sweeten wrote:
> Update the ep93xx i2c support:
> 
>   1) The platform init code passes the configuration data for the
>      i2c-gpio driver.  This allows any gpio pin do be used for the
>      sda and scl pins.  It also allows the platform to specify the
>      udelay and timeout.
>   2) Program the gpio configuration register to enable/disable the
>      open drain drivers.  Note that this really only works if the
>      sda and scl pins are set to EP93XX_GPIO_LINE_EEDAT and
>      EP93XX_GPIO_LINE_EECLK.
>   3) Update the edb93xx.c platform init to use the new support.
> 
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> 
> ---
> 
> -void __init ep93xx_register_i2c(struct i2c_board_info *devices, int num)
> +void __init ep93xx_register_i2c(struct i2c_gpio_platform_data *data,
> +				struct i2c_board_info *devices, int num)
>  {
> +	ep93xx_i2c_data = *data;
> +
> +	/*
> +	 * Set the EEPROM interface pin drive type control.
> +	 * Defines the driver type for the EECLK and EEDAT pins as either
> +	 * open drain, which will require an external pull-up, or a normal
> +	 * CMOS driver.
> +	 */
> +	if (data->sda_is_open_drain && data->sda_pin != EP93XX_GPIO_LINE_EEDAT)
> +		printk("ep93xx: sda != EEDAT, open drain has no effect\n");
> +	if (data->scl_is_open_drain && data->scl_pin != EP93XX_GPIO_LINE_EECLK)
> +		printk("ep93xx: scl != EECLK, open drain has no effect\n");

pr_warning on these. Otherwise:

Acked-by: Ryan Mallon <ryan at bluewatersys.com>

-- 
Bluewater Systems Ltd - ARM Technology Solution Centre

Ryan Mallon         		5 Amuri Park, 404 Barbadoes St
ryan at bluewatersys.com         	PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com	New Zealand
Phone: +64 3 3779127		Freecall: Australia 1800 148 751
Fax:   +64 3 3779135			  USA 1800 261 2934



More information about the linux-arm-kernel mailing list