-
Notifications
You must be signed in to change notification settings - Fork 4
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
Drivers for NXP SC18IS604 SPI to I2C/GPIO bridge #249
Conversation
bf1f6a1
to
ad0f7ac
Compare
You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds. Note: This comment is automatically posted by the Documentation Publishing GitHub Action. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we add a simple sample or implement our version of the all drivers test case that exists upstream?
I'll add this, good idea. Also I'll define a merge order in relation to the other outstanding PR #248:
|
This driver manages the MFD pseudo-bus on which child devices can be placed, and which itself is placed on an SPI bus. Child devices can register their own callbacks for interrupt handling, which are fired directly from the ISR context. Asynchronous transfer functions are necessary for correct interrupt handling of child devices in cases where that handling itself required bus communication. These functions are realized through a separate work queue per driver instance, since the particular communication needs of the SC18IS604 (very large, but exact time frame delays during SPI transfers) make it impossible to use asynchronous SPI transfers. Signed-off-by: Sarah Renkhoff <[email protected]> Signed-off-by: Stephan Linz <[email protected]>
This driver manages the GPIO controller part of an SC18IS604 MFD. It doesn't provide interrupt functionality, since the SC18IS604 doesn't generate interrupt signals for changes on its GPIO pins. Signed-off-by: Sarah Renkhoff <[email protected]> Signed-off-by: Stephan Linz <[email protected]>
This driver manages the I2C controller part of an SC18IS604 MFD, and relies on the asynchronous transfer functions provided by the MFD driver to handle interrupts through non-blocking system work queue items. The asynchronous API function is implemented via fully non-blocking work items running on the system work queue. Tracking each in-flight transfer requires ~100 bytes of heap allocation, so the driver requests some heap space by default. Signed-off-by: Sarah Renkhoff <[email protected]> Signed-off-by: Stephan Linz <[email protected]>
Support the SC18IS604 chip on build all MFD driver test. Signed-off-by: Stephan Linz <[email protected]>
Support the SC18IS604 chip on build all GPIO driver test. Signed-off-by: Stephan Linz <[email protected]>
Support the SC18IS604 chip on build all I2C driver test. Signed-off-by: Stephan Linz <[email protected]>
Add github issue resolved by the previous commits. Signed-off-by: Sarah Renkhoff <[email protected]> Signed-off-by: Stephan Linz <[email protected]>
ad0f7ac
to
8b08123
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tobiaskaestner now, we use the Zephyr upstream tests for build all drivers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm, many thanks
Adds drivers for the NXP SC18IS604 MFD, which provides an I2C bus and several (interrupt-less) GPIOs pins over SPI.
Closes #247.