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

A solution for the fifth hw (concurrency and synchronization) #21

Open
wants to merge 12 commits into
base: Andrii.Revva
Choose a base branch
from

Conversation

Renalime
Copy link

This is a solution for the fifth homework.
This solution is based on the tsl2580 driver.
All the necessary details are provided via commit messages.
It's probably better to check the original driver PR, before dealing with this one.

Driver consists of the source file, dts overlay and registers description.
When the device is detected, it's initialized with a default configuration,
that can be seen in the source file. It also has a single sysfs entry,
which reads from the device its id, and prints what type of device is
attached, if it's supported.

Signed-off-by: Andrii Revva <[email protected]>
It seems like a redundant thing, because to precicely calculate lux values
from adc0 and adc1 it's beneficial to have floating point arithmetic. So
it would be nice to pass this obligation to user space.
The method to approximately calculate lux values comes from the datasheet
and it is _absolutely_ arcane and obscure.

Signed-off-by: Andrii Revva <[email protected]>
Three additional fields were declared in the tsl2580 device struct
to store previously read values.

Signed-off-by: Andrii Revva <[email protected]>
A mutex is used to make protection. The mutex use is coarse, since
this particular protection isn't really neccessary, because only one
thread is writing data to structure, and other threads wait for completeion.

Signed-off-by: Andrii Revva <[email protected]>
By default, the device can be accessed every second, although it can be
changed with 'rt' attribute in sysfs.

Signed-off-by: Andrii Revva <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant