mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Advanced I2C pin definition
RTL has up to 3 SCL pins and up to 4 SDA pins. Lets allow configuring I2C with individual BUS numbers instead of 0/1 I2C. This enables support for devices where SCL line is not shared between SFP modules. MUX registry is now initialized depending on needed pin function. More over, some SFP pins require special MUX settings, lets initialize those depending on SFP configuration. This adds TX Disable pin, which right now is set to low at startup. Caveats: - We may still override MUX registry later - Not sure how to handle invalid bus definitions - Without SFP is it fine to *not* initialize anything? - Do to RAM limitation we do inititalize output GPIO to low
This commit is contained in:
@@ -16,12 +16,21 @@
|
||||
|
||||
// #define DEFAULT_5C_1SFP
|
||||
|
||||
struct i2c_bus {
|
||||
// These are I2C bus identifiers refer to GPIO MUX document
|
||||
// for GPIO pin assignments for given bus numbers
|
||||
uint8_t sda : 3; // SDA pin number 0-4
|
||||
uint8_t scl : 3; // SCL pin number 0-3
|
||||
uint8_t reserved : 2;
|
||||
};
|
||||
|
||||
struct sfp_port
|
||||
{
|
||||
uint8_t pin_detect; // gpio number 0-63, 0xFF = don't have it?
|
||||
uint8_t pin_los; // gpio number 0-63, 0xFF = don't have it?
|
||||
uint8_t pin_tx_disable; // gpio number 0-63, 0xFF = not present
|
||||
uint8_t sds;
|
||||
uint8_t i2c;
|
||||
struct i2c_bus i2c_bus;
|
||||
};
|
||||
|
||||
typedef struct machine {
|
||||
|
||||
Reference in New Issue
Block a user