X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fi2c_avr.c;h=eb8b8da90d90a6c05aa01935c721014e59947e9b;hb=4635e332d9a489cb54a25b1bf37559c84181db74;hp=8e56d13599d24764c57fdbd8984a4801cf78fd66;hpb=53a85c63e98a7ec7456db33b665484df3da33fdb;p=bertos.git diff --git a/bertos/cpu/avr/drv/i2c_avr.c b/bertos/cpu/avr/drv/i2c_avr.c index 8e56d135..eb8b8da9 100644 --- a/bertos/cpu/avr/drv/i2c_avr.c +++ b/bertos/cpu/avr/drv/i2c_avr.c @@ -210,52 +210,6 @@ int i2c_builtin_get(bool ack) return (int)(uint8_t)TWDR; } - -MOD_DEFINE(i2c); - -/** - * Initialize TWI module. - */ -void i2c_builtin_init(void) -{ - ATOMIC( - /* - * This is pretty useless according to AVR's datasheet, - * but it helps us driving the TWI data lines on boards - * where the bus pull-up resistors are missing. This is - * probably due to some unwanted interaction between the - * port pin and the TWI lines. - */ -#if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 - PORTD |= BV(PD0) | BV(PD1); - DDRD |= BV(PD0) | BV(PD1); -#elif CPU_AVR_ATMEGA8 - PORTC |= BV(PC4) | BV(PC5); - DDRC |= BV(PC4) | BV(PC5); -#elif CPU_AVR_ATMEGA32 - PORTC |= BV(PC1) | BV(PC0); - DDRC |= BV(PC1) | BV(PC0); -#else - #error Unsupported architecture -#endif - - /* - * Set speed: - * F = CPU_FREQ / (16 + 2*TWBR * 4^TWPS) - */ - #ifndef CONFIG_I2C_FREQ - #warning Using default value of 300000L for CONFIG_I2C_FREQ - #define CONFIG_I2C_FREQ 300000L /* ~300 kHz */ - #endif - #define TWI_PRESC 1 /* 4 ^ TWPS */ - - TWBR = (CPU_FREQ / (2 * CONFIG_I2C_FREQ * TWI_PRESC)) - (8 / TWI_PRESC); - TWSR = 0; - TWCR = BV(TWEN); - ); - MOD_INIT(i2c); -} - #endif /* !CONFIG_I2C_DISABLE_OLD_API */ /* @@ -430,7 +384,7 @@ void i2c_hw_init(I2c *i2c, int dev, uint32_t clock) * probably due to some unwanted interaction between the * port pin and the TWI lines. */ - #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 + #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 || CPU_AVR_ATMEGA1280 || CPU_AVR_ATMEGA2560 PORTD |= BV(PD0) | BV(PD1); DDRD |= BV(PD0) | BV(PD1); #elif CPU_AVR_ATMEGA8