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

Merge topic-gpio back to master #21789

Closed
11 of 13 tasks
carlescufi opened this issue Jan 9, 2020 · 4 comments
Closed
11 of 13 tasks

Merge topic-gpio back to master #21789

carlescufi opened this issue Jan 9, 2020 · 4 comments
Assignees
Labels
area: API Changes to public APIs area: GPIO Meta A collection of features, enhancements or bugs
Milestone

Comments

@carlescufi
Copy link
Member

carlescufi commented Jan 9, 2020

In order to merge topic-gpio back to master we need to finalize:


Post-merge:

  • [@carlescufi] Send an email to devel@ with a warning of potential master breakage if CI is not rerun on all PRs
  • [@mnkp] Add to release notes: summary of changes and impact, e.g. pin enable/disable callback operations deprecated, explain how to use the new API to achieve the same result
  • (optional) Make the porting guide available to users
  • Document the revision range of the lifetime of the topic-gpio branch

Post effort:

  • Never go through this again
@jfischer-no
Copy link
Collaborator

Could we skip #20017 and convert GPIO users on master? That would avoid conflict and locks.

@carlescufi
Copy link
Member Author

Could we skip #20017 and convert GPIO users on master? That would avoid conflict and locks.

As discussed before, this would cause sanitycheck to fail because in-tree samples would be using deprecated functions. If you want to propose an alternative mechanism to merge topic-gpio I suggest you take a look first at @pabigot's initial roadmap proposal.

@jhedberg jhedberg added the Meta A collection of features, enhancements or bugs label Jan 14, 2020
@pabigot
Copy link
Collaborator

pabigot commented Jan 27, 2020

This comment provides more detail on how I intend to address several of the main issue bullet points. It may be adjusted based on discoveries and feedback.

Work will begin once #18530 is complete, and #20017 is nearly complete. At that point the topic branch will again be rebased on master.

The exact order and breakdown of changes into into commits and PRs will be determined as I get into it. Work-in-progress will probably be exposed in a draft PR. My intent is to have all this submitted for review by 01 February so we can merge the topic branch to master the week of 03 February. The deadline is 07 February, but there's no reason to wait until the last minute.

Generic

  • API documentation clarifications not covered by other updates.

Role-based typedef cleanup

  • Change public GPIO API to use gpio_pin_t for all parameters that are pin indexes.
  • Replace gpio_devicetree_flags_t to gpio_dt_flags_t.
  • Replace u32_t by gpio_port_value_t for all port API value parameters.

Function and macro deprecation

  • Re-implement gpio_pin_write() as gpio_pin_set_raw() and deprecate it. Replace all in-tree uses.
  • Re-implement gpio_pin_read() as gpio_pin_get_raw() and deprecate it. Replace all in-tree uses.
  • Macro deprecation details TBD.

Implementation cleanup

  • (all drivers) Remove the write and read API functions and references to GPIO_ACCESS_BY_ macros.
  • (all drivers) Remove access_op parameter from API functions.
  • (all drivers) Update API function declarations to use role-specific typedefs
  • Remove the write and read API functions and GPIO_ACCESS_BY_ macros from the API function table and generic header.
  • Fix return value for internal get_pending_int function declaration.

@carlescufi
Copy link
Member Author

Closing this since it's not relevant anymore

Architecture Project automation moved this from Triage to Done Feb 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: API Changes to public APIs area: GPIO Meta A collection of features, enhancements or bugs
Projects
No open projects
Development

No branches or pull requests

7 participants