Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(PeriphDrivers): Add MAX32657 I3C driver #1026

Draft
wants to merge 2 commits into
base: feat/ME30
Choose a base branch
from
Draft

Conversation

ttmut
Copy link
Contributor

@ttmut ttmut commented May 28, 2024

Description

Add I3C driver for MAX32657. Basic controller and target APIs are provided.

Note: Will be tested when the test environment is ready.

Checklist Before Requesting Review

  • PR Title follows correct guidelines.
  • Description of changes and all other relevant information.
  • (Optional) Provide info on any relevant functional testing/validation. For API changes or significant features, this is not optional.

@github-actions github-actions bot added the Register Change This issue or pull request involves a change to the MSDK registers. label May 28, 2024
@sihyung-maxim
Copy link
Contributor

sihyung-maxim commented May 28, 2024

Please refer to the feat/ME30 branch to keep in sync with all design and user guide changes. All internal teams requiring the bare metal SDK are referencing this branch.

The i3c_regs.h file is scrubbed for the user guide and synced with design's finalization of the IP configuration.

Also, please note that the I3C source drivers will require hardware revision files for easier portability across parts. That means, there will at least be an i3c_me30.c, i3c_reva.c, i3c_reva.h, and i3c_reva_regs.h files.

The i3c_me30.c level only contains code specific to the ME30 (such as pin configuration, enabling I3C peripheral clock, and any peripheral API setup), and it generally does not contain any direct register access to the I3C IP.

The i3c_reva* files contain the pure driver implementation of the IP at the register level. This file contains the functions that the i3c_me30.c file will call. The i3c_reva_regs.h file is the universal, superset register file that i3c_reva.* uses. The i3c_regs.h file contains the register set specific to an MCU, and design could vary the IP configuration/register set depending on customer needs for future MCUs reusing the same IP, so having a "universal" register file prevents build errors resulting from feature differences.

You can reference our other peripheral drivers to see how this is all set up. Let me know if you have any questions.

@ttmut
Copy link
Contributor Author

ttmut commented May 28, 2024

I missed the latest register updates so put my own for the work in progress. I will look into adapting into feat/ME30 branch. Thanks for the response.

@github-actions github-actions bot added MAX32655 Related to the MAX32655 (ME17) MAX32670 Related to the MAX32670 (ME15) MAX32672 Related to the MAX32672 (ME21) MAX32675 Related to the MAX32675 (ME16) MAX32680 Related to the MAX32680 (ME20) MAX32690 Related to the MAX32690 (ME18) MAX78000 Related to the MAX78000 (AI85) MAX78002 Related to the MAX78002 (AI87) Tools This issue or pull request involves a change to the Tools Workflow Related to Workflow development MAX32662 Related to the MAX32662 (ME12) MAX32572 Related to the MAX32572 (ME55) labels Jun 3, 2024
@ttmut ttmut changed the base branch from main to feat/ME30 June 3, 2024 12:43
@ttmut ttmut marked this pull request as ready for review June 3, 2024 12:43
@github-actions github-actions bot removed MAX32655 Related to the MAX32655 (ME17) MAX32670 Related to the MAX32670 (ME15) MAX32672 Related to the MAX32672 (ME21) MAX32675 Related to the MAX32675 (ME16) MAX32680 Related to the MAX32680 (ME20) MAX32690 Related to the MAX32690 (ME18) MAX78000 Related to the MAX78000 (AI85) MAX78002 Related to the MAX78002 (AI87) Tools This issue or pull request involves a change to the Tools Workflow Related to Workflow development MAX32662 Related to the MAX32662 (ME12) labels Jun 3, 2024
@github-actions github-actions bot removed the MAX32572 Related to the MAX32572 (ME55) label Jun 3, 2024
@ttmut ttmut added the WIP work in progress label Jun 4, 2024
@ttmut ttmut marked this pull request as draft June 4, 2024 15:36
@ttmut ttmut force-pushed the feat/ME30-I3C branch 4 times, most recently from 73209f4 to 4c0fb2a Compare June 10, 2024 10:13
CONT_REQ must be 2 and HOTJOIN_REQ must be 3.

Signed-off-by: Tahsin Mutlugun <[email protected]>
Add I3C driver support for ME30.c. Supports controller and target modes.

Signed-off-by: Tahsin Mutlugun <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Register Change This issue or pull request involves a change to the MSDK registers. WIP work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants