at91sam9263: add i2c support
use i2c-gpio as the hw ip is broken Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
71a67b33d1
commit
8da098f460
|
@ -19,6 +19,7 @@
|
|||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/io.h>
|
||||
#include <i2c/i2c-gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
@ -156,6 +157,36 @@ void at91_add_device_nand(struct atmel_nand_data *data)
|
|||
void at91_add_device_nand(struct atmel_nand_data *data) {}
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* TWI (i2c)
|
||||
* -------------------------------------------------------------------- */
|
||||
#if defined(CONFIG_I2C_GPIO)
|
||||
static struct i2c_gpio_platform_data pdata_i2c = {
|
||||
.sda_pin = AT91_PIN_PB4,
|
||||
.sda_is_open_drain = 1,
|
||||
.scl_pin = AT91_PIN_PB5,
|
||||
.scl_is_open_drain = 1,
|
||||
.udelay = 5, /* ~100 kHz */
|
||||
};
|
||||
|
||||
void at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices)
|
||||
{
|
||||
struct i2c_gpio_platform_data *pdata = &pdata_i2c;
|
||||
|
||||
i2c_register_board_info(0, devices, nr_devices);
|
||||
|
||||
at91_set_GPIO_periph(pdata->sda_pin, 1); /* TWD (SDA) */
|
||||
at91_set_multi_drive(pdata->sda_pin, 1);
|
||||
|
||||
at91_set_GPIO_periph(pdata->scl_pin, 1); /* TWCK (SCL) */
|
||||
at91_set_multi_drive(pdata->scl_pin, 1);
|
||||
|
||||
add_generic_device_res("i2c-gpio", 0, NULL, 0, pdata);
|
||||
}
|
||||
#else
|
||||
void at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices) {}
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* SPI
|
||||
* -------------------------------------------------------------------- */
|
||||
|
|
Loading…
Reference in New Issue