Open
Conversation
I2C driver, following structure of opentitan i2c Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
Set I2C1 address (zynqmp internal hw) Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
Add i2c to kria .mk snippet Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
add kria to example supported boards Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
Remove unused #defines from earlier testing Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
a19a4dc to
3a8af79
Compare
trim whitespace + formatting Signed-off-by: SeedRizvi <syedasadrazarizvi1@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
General
This PR adds an I2C driver for the ZynqMP platform, tested on the Kria K26 board using the
i2c_bus_scanexample. Made in collaboration with @potanin.The driver follows the structure of the existing OpenTitan I2C driver and was implemented by referencing the Xilinx I2C driver and TRM.
tf_sizeregister. Larger reads are queued through FSM.Limitations
Differences from OpenTitan
await_wrrdstate machine (WRRD_WRADDR->WRRD_SUBADDR-> read).setup_master()checks bus activity before initiating transfers with HOLD-aware logic to avoid false positives during multi-phase operations.Other
I have refrained from adding ZCU102 to the
i2c_bus_scanexample as I haven't tested it, but it would be nice to do that as part of this PR.