Closed fivdi closed 2 years ago
indicating that they are configuration constants for the Synopsys I2C hardware
I believe that's correct? ping @nickfrancis55
So
So I think we need to figure out exactly how the parameters listed in that struct header ended up being incorrect, and fix them. We should also commit all the config-dependent if
clauses in the register docs to avoid future confusion.
For reference here is a raw configuration export from the I2C hardware on RP2040
This has been fixed in v1.4.1 of the PDF documentation.
There's one occurrence left. MST_ON_HOLD on page 484.
Doh! I didn't spot that because it wasn't named MASTER_ON_HOLD
:facepalm:
Thanks, will fix...
Thanks, will fix...
@lurch Did you fix though? 😄
Still in backlog.
Thanks, will be fixed in the next PDF release of the databooks.
The description of the MASTER_ON_HOLD bit in the IC_RAW_INTR_STAT register on page 499 of release 1.3.1 of the RP2040 Datasheet is as follows:
Unfortunately, there is no documentation for I2C_DYNAMIC_TAR_UPDATE or IC_EMPTYFIFO_HOLD_MASTER_EN in the datasheet which makes things difficult to understand. My initial assumption was that these must be bits in a register but this is not the case.
In the pico-sdk, I2C_DYNAMIC_TAR_UPDATE is mentioned here and IC_EMPTYFIFO_HOLD_MASTER_EN is mentioned here indicating that they are configuration constants for the Synopsys I2C hardware. Both have the value one indicating that the MASTER_ON_HOLD bit in the IC_RAW_INTR_STAT is enabled.
It would be better if it was easier to figure things out here.