view i2c.h @ 1925:039553703c20

Don't apply address and cd register changes to the 'live' registers until pending flag is cleared, but do preserve the upper address bits in the latch. Fixes regression in Overdrive 2 while preserving fix to Mona in 344 bytes
author Michael Pavone <pavone@retrodev.com>
date Mon, 13 Apr 2020 20:43:25 -0700
parents d94855080529
children
line wrap: on
line source

#ifndef I2C_H_
#define I2C_H_

typedef struct {
	char        *buffer;
	uint32_t    size;
	uint16_t    address;
	uint8_t     host_sda;
	uint8_t     slave_sda;
	uint8_t     scl;
	uint8_t     state;
	uint8_t     counter;
	uint8_t     latch;
} eeprom_state;

void eeprom_init(eeprom_state *state, uint8_t *buffer, uint32_t size);
void * write_eeprom_i2c_w(uint32_t address, void * context, uint16_t value);
void * write_eeprom_i2c_b(uint32_t address, void * context, uint8_t value);
uint16_t read_eeprom_i2c_w(uint32_t address, void * context);
uint8_t read_eeprom_i2c_b(uint32_t address, void * context);

#endif //I2C_H_