From 28eb01ea61a05be331b6bccd8fa5aac7781c48b9 Mon Sep 17 00:00:00 2001 From: Mario Haustein Date: Wed, 21 Sep 2016 18:50:52 +0200 Subject: refactor I2C support of AVR32 Grasshopper board - I2C can now be enabled in the config menu --- .../patches/4.7.3/0004-grasshopper-i2c.patch | 27 ++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'target/avr32') diff --git a/target/avr32/grasshopper/patches/4.7.3/0004-grasshopper-i2c.patch b/target/avr32/grasshopper/patches/4.7.3/0004-grasshopper-i2c.patch index da81cac3a..b0796ed5a 100644 --- a/target/avr32/grasshopper/patches/4.7.3/0004-grasshopper-i2c.patch +++ b/target/avr32/grasshopper/patches/4.7.3/0004-grasshopper-i2c.patch @@ -1,12 +1,25 @@ +diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/Kconfig linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/Kconfig +--- linux-4.7.3/arch/avr32/boards/grasshopper/Kconfig 2016-09-20 11:29:35.780351249 +0200 ++++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/Kconfig 2016-09-20 11:39:58.981762577 +0200 +@@ -44,4 +44,9 @@ + depends on BOARD_GRASSHOPPER_MMC + default n + ++config BOARD_GRASSHOPPER_I2C ++ bool "Enable I2C interface" ++ depends on I2C && I2C_GPIO ++ default y ++ + endif # BOARD_GRASSHOPPER diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/setup.c linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c ---- linux-4.7.3/arch/avr32/boards/grasshopper/setup.c 2016-09-14 10:48:53.403638569 +0200 -+++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c 2016-09-14 11:40:15.735513299 +0200 +--- linux-4.7.3/arch/avr32/boards/grasshopper/setup.c 2016-09-20 11:29:35.781351262 +0200 ++++ linux-4.7.3.grasshopper/arch/avr32/boards/grasshopper/setup.c 2016-09-20 11:32:21.270587433 +0200 @@ -129,6 +129,28 @@ }; #endif +/* I2C/TWI */ -+#ifdef CONFIG_I2C ++#ifdef CONFIG_BOARD_GRASSHOPPER_I2C +static struct i2c_gpio_platform_data i2c_gpio_data = { + .sda_pin = GPIO_PIN_PA(6), + .scl_pin = GPIO_PIN_PA(7), @@ -28,14 +41,14 @@ diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/setup.c linux-4.7.3.grassho +#endif + /* MCI */ - #ifdef CONFIG_MMC_ATMELMCI + #ifdef CONFIG_BOARD_GRASSHOPPER_MMC static struct mci_platform_data __initdata mci0_data = { @@ -168,6 +190,22 @@ ATMEL_LCDC_PRI_CONTROL | ATMEL_LCDC_PRI_24BIT); #endif + // I2C / TWI -+#ifdef CONFIG_I2C ++#ifdef CONFIG_BOARD_GRASSHOPPER_I2C + /* all these i2c/smbus pins should have external pullups for + * open-drain sharing among all I2C devices. SDA and SCL do; + * PB28/EXTINT3 doesn't; it should be SMBALERT# (for PMBus), @@ -50,6 +63,6 @@ diff -Naur linux-4.7.3/arch/avr32/boards/grasshopper/setup.c linux-4.7.3.grassho + i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); +#endif + - #ifdef CONFIG_MMC_ATMELMCI - // at32_add_device_mci(0, &mci0_data); /* MMC/SD */ + #ifdef CONFIG_BOARD_GRASSHOPPER_MMC + at32_add_device_mci(0, &mci0_data); /* MMC/SD */ #endif -- cgit v1.2.3