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:
diijkstra
2026-02-01 12:58:16 +01:00
parent 2c200417b5
commit 7d62b24a42
7 changed files with 129 additions and 35 deletions
-5
View File
@@ -7,11 +7,6 @@
#define SYS_TICK_HZ 200
// SCL and SDA pin numbers for SFP cage 0 and SFP cage 1
#define SCL_PIN 3
#define SDA_PIN_0 4
#define SDA_PIN_1 3
#define CPU_PORT 9
// Define Port-masks for 9-port devices and 6-port devices