Private
Public Access
2
0
Commit Graph

67 Commits

Author SHA1 Message Date
Ivan Mikhaylov
307a6f3bdd mux: add mux interface
Add mux_init_reg interface with different mux modes for GPIO, UART, SPI,
I2C, PWM, AIO.

Signed-off-by: Le Jin <le.jin@siemens.com>
Signed-off-by: Ivan Mikhaylov <ivan.mikhaylov@siemens.com>
2022-08-05 12:04:23 -07:00
Thomas Ingleby
170bdd104f spdx: add spdx tags to most files
Large change that removes the duplicated MIT notice withe a spdx tag

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2019-05-23 10:09:12 -07:00
Martino Facchin
86e7ece2f6 pwm.c: Fix crash if pin == phy_pin_count
Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-07-20 11:27:30 +02:00
Alex Tereschenko
98e755d147 pwm.c: remove surplus variable assignment
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-05-29 18:47:45 +02:00
Alex Tereschenko
0654183b9a stability: replace sprintf with snprintf to avoid potential overflows
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
2017-05-15 21:04:18 +02:00
Sanrio Alvares
35e17ee25a periphmraa: fix pwm calls to PIO
Signed-off-by: Sanrio Alvares <sanrio.alvares@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2017-04-30 16:39:22 -07:00
Sanrio Alvares
ef2fddc1e1 periphmraa: fix pwm init sequence
Signed-off-by: Sanrio Alvares <sanrio.alvares@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
2017-04-28 10:54:58 -07:00
Alex Tereschenko
21e0ff7c02 pwm.c: properly close duty file when disabling PWM
Fixes #669.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-16 11:15:35 +01:00
Thomas Ingleby
fce4daab02 mraa: Correct spelling of capabilities
Type was correctly spelt, but the member in the platform strut was not.
My mistake from 2014.

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2016-08-08 21:44:00 +02:00
Brendan Le Foll
aed965c27d pwm.c: Remove manual gpio muxing when using a pin that has both pwm & gpio enabled
This fixes PWM on the GT platform. The code was only used on gen1 galileo and
is rarely used because it's the only platform in mraa that supports 2 functions
on the same pin without any time of advanced function pointer being called
(gen2/edison). GT however has kernel side muxing which causes the gpio to be
initialised meaning the PWM channel is never set to active as it's activated
after the GPIO is opened and the GPIO keeps precendence

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-08-03 13:25:32 +01:00
Alex Tereschenko
8af6843566 PWM: added workaround for Edison's problem with 0% duty
As described in issue #91, on Edison setting 0% duty doesn't
disable the PWM on a pin completely.

Therefore we add a couple of Edison-specific _pre functions
and an internal PWM state variable, which we use to toggle PWM
enabled/disabled based on what duty is set for the pin.

Closes #91.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-06-16 14:12:33 +01:00
Brendan Le Foll
4195a61e52 pwm: remove pwm config_* apis as unused
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-25 15:37:50 +01:00
wda2945
2404b0a683 pwm.c: Improve pwm error handling
Signed-off-by: Martin G Lane-Smith <mlanesmith@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-15 14:02:02 +01:00
Fathi Boudra
e1c500414b docs: fix spelling errors
Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-11 15:13:06 +01:00
Mihai Tudor Panu
0e5dadeb8c pwm: removed unused code and optimized flow for subplatform support
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 18:12:30 +00:00
Mihai Tudor Panu
603834461f pwm: added hooks for subplatform support
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 18:12:29 +00:00
Henry Bruce
078218f680 pwm: Check for out of range pin number in pwm_init()
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-22 15:06:47 +00:00
Ian Johnson
ab14b9de43 mraa: Prefer calloc over malloc
Switch to using calloc on all calls to malloc where the memory isn't
initialized. For things like the mraa_board_t, not allocating all to zero
causes issues such as with the sub_platform member, where if that's not zero
mraa_get_platform_type will try to dereference a random memory location for the
sub_platform->platform_name, which can result in segmentation faults and other
issues.

Note that in some places where immediately after the malloc call is a copy
operation, there is no need for calloc, as all the memory gets overwritten
anyways, but in cases where there may or may not be memory written to (such as
in mraa_file_contains, with reading from a file), even though in most cases the
memory is overwritten, it could be the case that the read operation does
nothing, but the memory still has non-zero values, by virtue of the fact it
wasn't overwritten.

Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-20 08:20:28 +00:00
Brendan Le Foll
07343e2ee7 mraa: Remove global advance_func struct and place it in platform configuration
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Salah-Eddine Missri
80485c942d pwm.c: Fix warnings due to unescaped %
Signed-off-by: Salah-Eddine Missri <missrisalaheddine@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-07-31 10:33:48 +01:00
Jon Trulson
b8b5c935a2 pwm: mraa_pwm_write() should accept 1.0 as a valid percentage
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2015-06-30 00:40:52 +01:00
Michael Ring
d0c466e81c mraa_adv_func.h: Added pwm initialization replace
current code in pwm does not work for beaglebone src/pwm/pwm.c Implemented
check for pwm_init_replace

Signed-off-by: Michael Ring <mail@michael-ring.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-04-04 17:29:24 +01:00
Thomas Ingleby
be4312e506 pwm: add syslog warning when value greater than 100% used
Resolves #121

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2015-03-24 16:51:56 +00:00
Thomas Ingleby
64f962d15c pwm: add calls for getting PWM max and min period
Resolves #176

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2015-03-24 16:48:06 +00:00
Brendan Le Foll
ffcf3d7d07 clang-format: run clang-format on C/C++ code
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-03-23 15:15:48 +00:00
Kurt Eckhardt
41956b07d6 pwm.c: cache period
There is an issue that  mraa_pwm_write would fail, because mraa_pwm_read
would fail and return 0.  When the read fails, journalctl shows an
error:
Dec 28 18:01:38 Edison libmraa[365]: pwm: Error in reading period

So now trying version, where the pwm object caches the period, that is
updated whenever you do a read or write of the period.  Side benefit is
that the write should be sped up.

Signed-off-by: Kurt Eckhardt <kurte@rockisland.com>
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2015-01-05 15:24:28 +00:00
Brendan Le Foll
acc3476326 pwm.c: Fix error in mraa_pwm_read_duty
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-12-02 10:50:17 +00:00
Brendan Le Foll
7ad78d01e5 pwm.c: Fix error in mraa_pwm_read_period
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-12-02 10:37:44 +00:00
Brendan Le Foll
0289c63c4c pwm.c: remove possibility of division by 0
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-11-26 14:00:17 +00:00
Brendan Le Foll
9f3cc6e890 pwm.c: check error condition when doing read operations
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-11-26 13:59:59 +00:00
Henry Bruce
7aea3459a9 pwm.c: Must write period before duty_cycle to avoid sysfs error
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
2014-11-20 15:08:31 +00:00
Thomas Ingleby
5d7c85c7a1 pwm: move pwm setup to module
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-11-17 17:41:47 +00:00
Matthias Hahn
cf6c3dd144 pwm: syslog message typo correction
Signed-off-by: Matthias Hahn <matthias.hahn@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-11-06 15:23:25 +00:00
Thomas Ingleby
3b01af1da1 pwm: add period limits, warn over syslog
Added minimum, maximum and default period settings to board definitions
PWM will now have a default period as defined in the board defintion.
When using pwm_write() writing 1.0f or above will default to 100%.

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-10-30 12:22:40 +00:00
Maximilian von Tschirschnitz
a202b3fd17 pwm: fixed wrong line ending being checked by strtol
Move from fopen to POSIX open introduced this bug in strtol

Signed-off-by: Maximilian von Tschirschnitz <maximilian.tschirschnitz@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-10-29 13:01:53 +00:00
Brendan Le Foll
a6b3d384b2 syslog: unify error msg style
syslog messages should be written as <module>: Message in order to increase
readability and usefulness

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-10-22 21:09:11 +01:00
Thomas Ingleby
c5102dffba pwm: fix incorrect hook check
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-10-08 14:59:37 +01:00
Brendan Le Foll
2b5e38b40c coverity: Fix issues found by coverity scan
* Fix a few resource leaks in error conditions
* Makes strtol() calls safer in pwm module
* Make sure buffer is terminated after read() in aio

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-10-03 22:50:18 +01:00
Brendan Le Foll
32d8a6f0ca syslog: remove all fprintf calls and use syslog instead
Syslog is now used for all error messages, return values in the code should be
used by programmers to see the status of the library/board and syslog can be
used to see quickly from a debugging perspective what has gone wrong. A few
cosmetics where improved as well as a mraa_set_log_level() call where the
syslog log mask can be set directly from libmraa.

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-25 14:31:04 +01:00
Thomas Ingleby
dd9129d411 hook: add pwm hook around init
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-09-09 18:01:23 +01:00
Mark Ceisel
9cf6cad45a pwm: add config_ms and config_percent.
* Allows user to set both at the same time. Will reset to previous if
* period for duty cycle fails to write

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-09-01 12:18:01 +01:00
Thomas Ingleby
a8bbd55562 pwm: rename internal functions from get to read
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-09-01 11:30:58 +01:00
Thomas Ingleby
595eec2737 pwm: move internal context structure to internal header
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-07-24 14:21:06 +01:00
Thomas Ingleby
715863cd28 pwm: add period write replace hook
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-07-24 14:20:01 +01:00
Thomas Ingleby
6853997a92 mraa: rename from maa to mraa
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-06-24 17:24:54 +01:00
Thomas Ingleby
3e88578754 pwm: disable pwm before unexporting
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-06-20 16:26:08 +01:00
Brendan Le Foll
0fe7bd335c src: add unistd.h to pwm and spi modules to remove compiler warnings
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-22 14:54:19 +01:00
Brendan Le Foll
55403793e3 pwm: equality comparison should be assignment
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2014-05-22 14:53:18 +01:00
Thomas Ingleby
a2c7eb5458 pwm: made export functions static
* removed functions from external api also.

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-05-21 14:56:11 +01:00
Thomas Ingleby
7cc5d6b2b8 pwm: fix writing of period
Incorrect value attempted to be written

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2014-05-21 14:49:32 +01:00