Skip to content

driver: gpio: update gpio_mcux.c driver #89020

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

Conversation

NeilChen93
Copy link
Collaborator

GPIO interrupts do not work on MCXA, MCXA has ICR register but feature FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT value is 0, can't use this feature to support ICR. So adjust feature judgment to adapt to mcxa156.

GPIO interrupts do not work on MCXA, MCXA has ICR register but feature
FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT value is 0, can't use
this feature to support ICR. So adjust feature judgment to adapt to
mcxa156.

Signed-off-by: Neil Chen <[email protected]>
#if (defined(FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT) && \
FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT)
#if (defined(FSL_FEATURE_PORT_HAS_NO_INTERRUPT) && FSL_FEATURE_PORT_HAS_NO_INTERRUPT) || \
(!defined(FSL_FEATURE_SOC_PORT_COUNT))
Copy link
Collaborator

@hakehuang hakehuang Apr 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the logic seems not correct. use to be FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT but now FSL_FEATURE_PORT_HAS_NO_INTERRUPT, this could impact other platform

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi hake, as my comment in this PR, cannot use FSL_FEATURE_GPIO_HAS_INTERRUPT_CHANNEL_SELECT to judge if ICR register exist. This feature only use to judge if bitfield IRQS exist in ICR register. So suggest to use feature FSL_FEATURE_PORT_HAS_NO_INTERRUPT to do this judgment. This judgment is also used in our sdk, it can work fine. the comment you mentioned that this may impact other platform need to be considered, I tested the boards(frdmmcxn947,frdmmcxn236,frdmmcxa156,frdmmcxa153) I have, all can work fine. Could you help do some tests on other platform?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please take a look at #88979. this avoid such potential issue

@hakehuang
Copy link
Collaborator

@NeilChen93 can you enable arduino-header-r3 in dts? as I see those are supported in board, and gpio_basic_api can then enabled to test gpio without other code change

@NeilChen93
Copy link
Collaborator Author

@NeilChen93 can you enable arduino-header-r3 in dts? as I see those are supported in board, and gpio_basic_api can then enabled to test gpio without other code change

Hi Hake, OK. I will do this update recently.

@robertinant
Copy link

I opened a similar pull request yesterday: #88979. Is this pull a follow up on mine? Duplicate perhaps? If duplicate and this is the pull that is going to fix the issue, then I am OK with mine being closed.

@hakehuang
Copy link
Collaborator

I opened a similar pull request yesterday: #88979. Is this pull a follow up on mine? Duplicate perhaps? If duplicate and this is the pull that is going to fix the issue, then I am OK with mine being closed.

@NeilChen93 I think @robertinant pr is much better.

@NeilChen93
Copy link
Collaborator Author

Hi hake, OK, I will close this PR.

@NeilChen93 NeilChen93 closed this Apr 25, 2025
@NeilChen93 NeilChen93 deleted the fix_mcxa156_gpio_interrupt_issue branch April 25, 2025 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: GPIO platform: NXP Drivers NXP Semiconductors, drivers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants