-
Notifications
You must be signed in to change notification settings - Fork 2k
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
[RFC] Introduce drivers as package #10506
Comments
I agree that there is no point in copying manufacturer's drivers into RIOT:
I'd say no. That would complicate the build system only to provide a filesystem-based organization, whose benefits are not clear to me.
That's a matter of convention.
There are two parts to a riot PGK, the third party code itself, and the "contrib". IMO the contrib should be optional if possible (i.e. another package)
See #9105 . It will allow "registry-like" functionality without any central file. For example init fuctions would be placed into a XFA. |
I completly agree. |
I agree.
I would prefer to use the prefix
I don't agree for driver packages. According to the driver design rules, a driver should be configured by a parameter set of type This also makes it easy to use SAUL. |
I especially agree on this point. Since you just reference some github repo, RIOT OS itself is separated with its LGPL license. It's the same for application implementations. It's an elegant way to have clear separation, even if you have combine it later in a binary. But from a legal perspective, RIOT has a really great design.
I think that is a nice design for drivers, since you still find the drivers in the driver directory, but the third party code is separated and can be found in pkg. A user need to clone the github repo, therefore, RIOT is not conflicting with any licenses. You could even use proprietary libraries. |
I must said that I like the way @gschorcht wrote #10363.
SAUL adaption will also benefits from this. IMHO this is the way to go. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
I try to summarize it to get an agreement on how to use vendor driver code:
|
There are now a couple of drivers provided from packages (bme680, atwinc15x0). I started to write one following the same approach and I know @fjmolinas is also working on a new one the same way. I think we can conclude that #10506 (comment) is the design to follow and close this issue. What do you think @gschorcht @fjmolinas @dylad ? |
of course 👍 from my side, the proposal came from me 😉 |
I am happy with this ! |
So let's close then! |
Description
I've created this issue to centralize discussions about package/drivers.
In some case, sensors configuration or computation are quite complicate and some vendors already provide some drivers. The idea here is to benefit from those drivers and integrate them as package. Thus, we will avoid maintenance on low-level stuff but we will still have to maintain an adaption layer to RIOT.
@gschorcht already asked some questions :
driverxxx_init()
,driverxxx_read()
anddriverxxx_t struct
,driverxxx_params_t
?Useful links
See also these PRs
#10363
#10502
The text was updated successfully, but these errors were encountered: