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

Road from pinmux to pinctrl #39740

Closed
24 of 29 tasks
carlescufi opened this issue Oct 26, 2021 · 31 comments
Closed
24 of 29 tasks

Road from pinmux to pinctrl #39740

carlescufi opened this issue Oct 26, 2021 · 31 comments
Assignees
Labels
area: Pinctrl area: Pinmux Deprecation API planned for deprecation Enhancement Changes/Updates/Additions to existing features Meta A collection of features, enhancements or bugs
Milestone

Comments

@carlescufi
Copy link
Member

carlescufi commented Oct 26, 2021

Goals of the transition for each SoC family

  • nRF
    • Allow users to continue using <signal>-pin properties during the transition period (when CONFIG_PINCTRL=n)
    • No pre-defined combinations since almost every pin can take any function
  • NXP
    • i.MX
    • Kinetis
    • LPC
  • STM32
    • Existing Devicetree representation will be kept
    • Pinmux driver will be kept in tree during the transition period, but will not be used by any driver

Timeline

  • Grace period between 2.7.99 and 3.1 where both pinctrl and pinmux coexist, no deprecation
  • By 3.1 all in-tree boards must've switched to pinctrl:
    • Pinctrl driver complete
    • All peripheral drivers for the SoC family supporting pinctrl
    • In-tree boards use the new pinctrl representation
  • After 3.1 is released (3.1.99) we deprecate pinmux
  • Zephyr 3.2 deprecates pinmux, Zephyr 3.4 removes pinmux

Porting status

Custom APIs

New drivers

List of new driver proposals for SoCs that did not have an existing pinmux driver.

@carlescufi carlescufi added area: Pinmux Meta A collection of features, enhancements or bugs area: Pinctrl labels Oct 26, 2021
@carlescufi carlescufi added Deprecation API planned for deprecation and removed Meta A collection of features, enhancements or bugs labels Oct 26, 2021
@carlescufi carlescufi added the dev-review To be discussed in dev-review meeting label Oct 26, 2021
@nashif
Copy link
Member

nashif commented Oct 28, 2021

pinctrl documentation and migration: https://docs.zephyrproject.org/latest/guides/pinctrl/index.html

@erwango
Copy link
Member

erwango commented Nov 9, 2021

Updated STM32 reference (#40194 takes place of #30430)

@henrikbrixandersen
Copy link
Member

I have added assignees to the various conversions from pinmux to pinctrl drivers. Please confirm, comment, or reassign as needed.

@ifyall
Copy link
Collaborator

ifyall commented Jun 1, 2022

@carlescufi, for the Cypress part migration, can you confirm that this is the existing parts introduced by @nandojve? I believe he is the current code owner there.

What is the timeline for the 3.1 release?

Thank you,

Ian

@nandojve
Copy link
Member

nandojve commented Jun 1, 2022

@carlescufi, for the Cypress part migration, can you confirm that this is the existing parts introduced by @nandojve? I believe he is the current code owner there.

What is the timeline for the 3.1 release?

Thank you,

Ian

Infineon have joined to Zephyr Project as a Silver Member and they have plans to improve PSoC-6 support.
Maybe @npal-cy can give a more accurate info about current pinctrl API migration plans.

@carlescufi carlescufi modified the milestones: v3.1.0, v3.2.0 Jun 5, 2022
@gmarull
Copy link
Member

gmarull commented Jun 6, 2022

@jvasanth1 MEC1501 boards seem to depend on pinmux API, are they going to be ported?

@npal-cy
Copy link
Contributor

npal-cy commented Jun 9, 2022

@carlescufi, for the Cypress part migration, can you confirm that this is the existing parts introduced by @nandojve? I believe he is the current code owner there.
What is the timeline for the 3.1 release?
Thank you,
Ian

Infineon have joined to Zephyr Project as a Silver Member and they have plans to improve PSoC-6 support. Maybe @npal-cy can give a more accurate info about current pinctrl API migration plans.

Current PSoC 6 implementation is not using pinmux, so it is not block this migration. We will remove current PSoC 6 integration, once new one add (so we do not want add any updates here, if it is not real critical).

In new PSoC 6 we implemented pinctrl driver. It can be review in scope of #44211.

Regards,
Nazar

@ruuddw
Copy link
Member

ruuddw commented Jun 16, 2022

For ARC emsk, with a different custom API: I'm not sure yet, need to investigate (see #45771) is pinctl would be the right solution for our connector-level pmod muxing.

@fabiobaltieri
Copy link
Member

@carlescufi do you think we can close this if the MEC1501 support gets merged? Thinking that the remaining 5 platforms that currently have no multiplexing driver at all should be covered separately (if at all).

@gmarull
Copy link
Member

gmarull commented Aug 11, 2022

I think we should give at most a couple more releases for those platforms to move to pinctrl or be removed (these are likely platforms with poor maintenance). Many of the migrated platforms (e.g. Nordic or STM32) did not use pinmux API at all, but they were included in the migration list.

@fabiobaltieri
Copy link
Member

Cool, was just thinking about this in the context of v3.2 and keeping as a target to remove the last pinmux users, and then track implementing new platforms separately for v3.3.

@cfriedt
Copy link
Member

cfriedt commented Aug 11, 2022

@carlescufi @cfriedt I will volunteer to transition TI CC32x, will try to get the PR ready by coming Monday.

@vaishnavachath - was this one already merged? I can't recall

@vaishnavachath
Copy link
Collaborator

@carlescufi @cfriedt I will volunteer to transition TI CC32x, will try to get the PR ready by coming Monday.

@vaishnavachath - was this one already merged? I can't recall

@cfriedt , No sorry I missed the CC32XX platforms I am working on this and will send a PR soon.

@cfriedt
Copy link
Member

cfriedt commented Sep 6, 2022

@carlescufi @cfriedt I will volunteer to transition TI CC32x, will try to get the PR ready by coming Monday.

@vaishnavachath - was this one already merged? I can't recall

@cfriedt , No sorry I missed the CC32XX platforms I am working on this and will send a PR soon.

@vaishnavachath - please ping me when you're ready. Release is scheduled very soon, and this needs to be in - otherwise, the board could be removed.

@henrikbrixandersen
Copy link
Member

Closing this issue as I have opened enhancement issues for the remaining, custom implementations in-tree.

@str4t0m str4t0m added the Meta A collection of features, enhancements or bugs label Jul 26, 2023
@nandojve
Copy link
Member

Hi @henrikbrixandersen , @gmarull ,

Zephyr is moving to a LTS version using custom implementations in this topic (and maybe in others). I can be wrong but as far I remember it was agreed that they should be moved to the official API.

IMHO this is open a bad precedent in Zephyr were the rules/agreement are imposed for a few and for the others are just convenience. The project should enforce participants to be in sync with project roadmap and not the contrary.

This is clearly accumulating debit since after one year there are participants that not even have a plan.

Can you clarify what is going on?

@gmarull
Copy link
Member

gmarull commented Dec 29, 2023

Hi @henrikbrixandersen , @gmarull ,

Zephyr is moving to a LTS version using custom implementations in this topic (and maybe in others). I can be wrong but as far I remember it was agreed that they should be moved to the official API.

IMHO this is open a bad precedent in Zephyr were the rules/agreement are imposed for a few and for the others are just convenience. The project should enforce participants to be in sync with project roadmap and not the contrary.

This is clearly accumulating debit since after one year there are participants that not even have a plan.

Can you clarify what is going on?

I don't know who can decide on this topic (TSC? A maintainer? A WG?). I'd be brave and drop all those who haven't migrated. If they care about Zephyr, they'll eventually come back with a PR adding the platform back with a proper driver.

@microbuilder
Copy link
Member

For the two Arm parts that need updating, this is completely my bad that it fell off my radar. I've asked @ithinuel if he can have a look at those since both those platforms come from Arm itself and are a bit unusual, but if he doesn't have the free cycles to update these I'll try to remember the details of those two platforms myself. Thanks for calling this out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Pinctrl area: Pinmux Deprecation API planned for deprecation Enhancement Changes/Updates/Additions to existing features Meta A collection of features, enhancements or bugs
Projects
Archived in project
Development

No branches or pull requests