platform/core/api/peripheral-io.git
2 years agouart: remove O_NONBLOCK flag 26/267726/3 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221110.060853 accepted/tizen/7.0/unified/hotfix/20221116.104803 accepted/tizen/unified/20211210.115150 submit/tizen/20211209.090954 tizen_7.0_m2_release
INSUN PYO [Thu, 9 Dec 2021 08:06:53 +0000 (17:06 +0900)]
uart: remove O_NONBLOCK flag

Sometimes, peripheral_uart_read() returns -EAGAIN.
If you retry it many times, it returns correct value.

Change-Id: I2a7f9aacc7d0ca47ca06cca52382c0185c76f4fb

2 years agoudev_rules: add ttyHS[0-9]* udev rules for UART device 33/267733/1
INSUN PYO [Thu, 9 Dec 2021 08:40:27 +0000 (17:40 +0900)]
udev_rules: add ttyHS[0-9]* udev rules for UART device

Change-Id: I2d9fc626311b59a7441c04ab636c9a02a4772b2c

2 years agoApply device nodes permission for new-style gpio and (legacy) uart 80/264380/3 accepted/tizen/6.5/unified/20211028.095416 accepted/tizen/unified/20210920.131400 submit/tizen/20210917.104742 submit/tizen_6.5/20211028.161801 tizen_6.5.m2_release
Karol Lewandowski [Thu, 16 Sep 2021 17:59:15 +0000 (19:59 +0200)]
Apply device nodes permission for new-style gpio and (legacy) uart

Change-Id: I2c0aa73a0a3bf70470aaf89579b3a32874342ac0

2 years agoFix a pointless check / race condition 51/263451/3 accepted/tizen/unified/20210914.053344 submit/tizen/20210910.102518
Michal Bloch [Thu, 2 Sep 2021 19:01:31 +0000 (21:01 +0200)]
Fix a pointless check / race condition

Using the open() call already tells us whether the file exists,
so there is little point checking that separately. Additionally
it's a minor race condition (the file can stop existing between
the calls, though no harm done in this particular case).

Add some commentary as well because the chunk is a bit confusing.

Change-Id: I8c3469aaddac2b30d9f60c0ce65abcb3bd9847b9
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 years agogpio: fix deallocator mismatch 72/262872/1
Youngjae Cho [Mon, 23 Aug 2021 01:40:50 +0000 (18:40 -0700)]
gpio: fix deallocator mismatch

Change-Id: Ia613bf7bb89d566245bb22103067d3e69ce9190c
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 years agogpio: use g_free instead of free 34/262834/1 accepted/tizen/unified/20210824.123804 submit/tizen/20210820.100048
Adrian Szyndela [Fri, 20 Aug 2021 09:40:36 +0000 (11:40 +0200)]
gpio: use g_free instead of free

Use g_free instead of free for data allocated by glib.

Change-Id: I7f5743e741a838c9e8ce32a2bbb3152cd88db4e0

2 years agogpio: eliminate file descriptor leak 30/262830/1
Adrian Szyndela [Fri, 20 Aug 2021 08:34:29 +0000 (10:34 +0200)]
gpio: eliminate file descriptor leak

Once in the loop, fd_chip can be left unclosed if configuration file
does not match the system and next iteration is required.

This commit makes fd_chip closed just at the end of the current iteration,
before entering another iteration.

Change-Id: I8d7102ba01d0ca30d63e5b634199792368a98297

2 years agopackaging: bump version to 0.3.0 76/262476/2 accepted/tizen/unified/20210816.122834 submit/tizen/20210813.142813
Mateusz Majewski [Wed, 11 Aug 2021 11:18:59 +0000 (13:18 +0200)]
packaging: bump version to 0.3.0

Change-Id: I8d4865e4fc4450aefaf323efe2c2ec92711f698d

2 years agoAdd RPi4 to tests 27/262227/2
Michal Bloch [Wed, 4 Aug 2021 13:12:10 +0000 (15:12 +0200)]
Add RPi4 to tests

Change-Id: I98a9b186ff5039b2ce3adc906c927714c364f4e3
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 years agoFix some miscellaneous flaws in the code. 26/262226/2
Michal Bloch [Tue, 3 Aug 2021 18:05:53 +0000 (20:05 +0200)]
Fix some miscellaneous flaws in the code.

Change-Id: I031b94add3465970352700a4ac8596e30b7f89ec
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 years agogpio: switch to new kernel API 25/261025/12
Adrian Szyndela [Thu, 22 Jul 2021 10:17:58 +0000 (12:17 +0200)]
gpio: switch to new kernel API

Change-Id: I628b7e88578f079d21d24513a1ecdfb3ee6ee255

2 years agogpio: encapsulate legacy kernel API usage 80/261580/7
Mateusz Majewski [Thu, 22 Jul 2021 06:53:42 +0000 (08:53 +0200)]
gpio: encapsulate legacy kernel API usage

Not useful by itself, but allows us to move to the new kernel API step
by step.

Change-Id: I23f224b091dbc600172fb38da4d55ab2bbc17636

2 years agogpio: don't allow direction change if there is poll/callback set 56/261656/5
Adrian Szyndela [Thu, 22 Jul 2021 06:53:12 +0000 (08:53 +0200)]
gpio: don't allow direction change if there is poll/callback set

This was missing. The function that sets the callback
(peripheral_gpio_set_interrupted_cb())
exits with error if the direction is not "in". Therefore,
the callback makes sense only when the direction is "in".
Therefore, we don't want to allow changing the direction if there
is a callback set.

Change-Id: Ib21746ee4c32706a4114a76fbd0f6bd80bc9b787

2 years agogpio: import new kernel API 46/262446/3
Mateusz Majewski [Wed, 11 Aug 2021 05:38:55 +0000 (07:38 +0200)]
gpio: import new kernel API

Import the kernel header representing the new GPIO kernel API.

For the record, this file comes from the
git://git.tizen.org/platform/kernel/linux-rpi3.git repository, from the
cec42e0a4e9704d1f428e96cb4f5e1902a6e2b11 commit.

Change-Id: I043cf329864f9f0892ed42c196b27c4f0be8df3c

2 years agouart: allow whitespace in config 54/261754/1 submit/tizen/20210805.103313
Adrian Szyndela [Fri, 23 Jul 2021 11:39:20 +0000 (13:39 +0200)]
uart: allow whitespace in config

Add spaces to the format string on the sides of the '=' char, to allow
any amount of whitespace, including none.
For example, all below lines are valid now:
17=/dev/ttyS0
17 =/dev/ttyS0
17= /dev/ttyS0
17 = /dev/ttyS0
17       =     /dev/ttyS0

Change-Id: I3369880b89ba865c3b3638f9874788a7eaf60580

2 years agoRemove GIO 04/261504/1
Mateusz Majewski [Tue, 20 Jul 2021 07:53:02 +0000 (09:53 +0200)]
Remove GIO

It seems we only needed it for GDbus.

Change-Id: Id50176585159085ec4d0013c1337c8fbbeb8079f

2 years agotest: add performance tests 47/260847/1
Adrian Szyndela [Mon, 5 Jul 2021 11:52:38 +0000 (13:52 +0200)]
test: add performance tests

Change-Id: Idd8f4989e4d630ca13f9d1c81cf5c7ba6ec70084

2 years agouart: try to open uart based on uart.ini 53/260753/2 accepted/tizen/unified/20210705.125135 submit/tizen/20210705.023617
Youngjae Cho [Fri, 2 Jul 2021 06:19:20 +0000 (15:19 +0900)]
uart: try to open uart based on uart.ini

Now try once to find which devpath corresponds to a port number. It is
specified in /hal/etc/peripheral-io/uart.ini. For example, if the
uart.ini contains
  [UART]
  0=/dev/ttyS0
then it returns "/dev/ttyS0" as devpath of the port number 0.
If the above process fail, follow normal opening routine.

Change-Id: Icec9d6601387f7f135b6e1a8692915553014ae8c
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 years agopwm: fix potential segfault 90/260690/3
Youngjae Cho [Thu, 1 Jul 2021 06:48:33 +0000 (15:48 +0900)]
pwm: fix potential segfault

Change-Id: I304ccf87409fea57abcde3329693416891a92ed8
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 years agoLinting: buffer size safety 11/260611/2
Michal Bloch [Tue, 29 Jun 2021 18:34:57 +0000 (20:34 +0200)]
Linting: buffer size safety

Make sure the buffer's actual size is used. This safeguards against
somebody changing the size of the buffer but forgetting to change
the value that gets passed as its size to other functions.

Change-Id: I12c78acf56daf55a785e9c994ca70ed34a38a1de

2 years agoLinting: improve some loop code 10/260610/2
Michal Bloch [Tue, 29 Jun 2021 18:33:04 +0000 (20:33 +0200)]
Linting: improve some loop code

Prevent signed/unsigned comparison in the loop condition
and reduce pyramidity.

Change-Id: I20a24f37810726d08a60a2791d1e2f8d7695b962

2 years agoLinting: storage and const correctness 09/260609/2
Michal Bloch [Tue, 29 Jun 2021 18:22:46 +0000 (20:22 +0200)]
Linting: storage and const correctness

Change-Id: I0c52f2e1e0642e1bbb48d3a02cb7f4cec6991747
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 years agoMinor improvements to the udev polling loop. 08/260608/2
Michal Bloch [Tue, 29 Jun 2021 18:17:54 +0000 (20:17 +0200)]
Minor improvements to the udev polling loop.

Change-Id: I068e2cbfe0243221f879961bb19ae8ea5e9b65f3

2 years agoLinting: improve variable scoping 07/260607/2
Michal Bloch [Tue, 29 Jun 2021 18:03:43 +0000 (20:03 +0200)]
Linting: improve variable scoping

Declare variables at their first site of use where possible, especially
those with the cleanup attribute, but also some arrays that have to be
zeroed before use. This way we won't have wasted time preparing them if
an earlier step fails.

Change-Id: Ic46bdd38915f709bac37c7bfff9ba6dcb19f7657

2 years agoLinting: reduce type repetition 06/260606/2
Michal Bloch [Tue, 29 Jun 2021 17:52:50 +0000 (19:52 +0200)]
Linting: reduce type repetition

Makes sure that the pointer and the pointee have the same type,
which is both less error-prone and more convenient.

Change-Id: I48887b4594a4bf2fcb2816f32ce4bc1e24bcffa8
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
2 years agoAdd .gitignore 22/260622/1
Hyotaek Shim [Wed, 30 Jun 2021 02:04:26 +0000 (11:04 +0900)]
Add .gitignore

Change-Id: Ife812dcdcee519dee22ec99b38616e8405f2c5eb
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
2 years agoRemove Conflicts: peripheral-bus to fix MIC errors 21/260621/2 accepted/tizen/unified/20210630.015242 submit/tizen/20210630.020200
Hyotaek Shim [Wed, 30 Jun 2021 01:59:40 +0000 (10:59 +0900)]
Remove Conflicts: peripheral-bus to fix MIC errors

Change-Id: I4d6435989b48c669330fae2f598790a51b6e73d0
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
2 years ago0.2.0: allow direct IO for clients in priv_peripheralio group 34/260034/5 accepted/tizen/unified/20210630.005908 submit/tizen/20210629.012223 submit/tizen/20210629.111329
Karol Lewandowski [Thu, 17 Jun 2021 22:38:19 +0000 (00:38 +0200)]
0.2.0: allow direct IO for clients in priv_peripheralio group

The priv_periperalio will be granted automatically for all apps having the
http://tizen.org/privilege/peripheralio privilege.

This bumps up the release number to 0.2.0.

Change-Id: I35bb10d72820c5696aed6842fd2ee92a51aa9bab

2 years agoAdd API function to open UART device with flags 38/260538/1 submit/tizen/20210629.011533
Adrian Szyndela [Mon, 28 Jun 2021 11:43:00 +0000 (13:43 +0200)]
Add API function to open UART device with flags

Extract translation from peripheral_open_flags to flock()'s lock type.

Change-Id: Ifcb933a70c30f077b55facd3f78ea5c3c47298e9

2 years agoname magic numbers in poll() calls 21/260521/3
Adrian Szyndela [Mon, 28 Jun 2021 07:55:22 +0000 (09:55 +0200)]
name magic numbers in poll() calls

It probably does not help much as it does not explain intentions.
They stay with the original authors of this code.

However, I believe it is a small step in the right direction.

Change-Id: I236a9b2b3dabb712ad7b1d0b6a8b1b33dd1e0230

2 years agorefactoring: beautify snprintf formats 00/260500/3
Adrian Szyndela [Fri, 25 Jun 2021 14:07:07 +0000 (16:07 +0200)]
refactoring: beautify snprintf formats

Change-Id: I40fe25dd18dc87e38dd522b6b1614ae7fd6a6465

2 years agorefactoring: extract common udev code 99/260499/3
Adrian Szyndela [Fri, 25 Jun 2021 13:14:35 +0000 (15:14 +0200)]
refactoring: extract common udev code

Change-Id: I40e73a8b266e634a1d51b4d1e010d4ecbf43e2a0

2 years agorefactoring: extract common code 98/260498/2
Adrian Szyndela [Fri, 25 Jun 2021 13:08:20 +0000 (15:08 +0200)]
refactoring: extract common code

Extract generic flocks.
Extract ARRAY_SIZE.
Extract close_fd.
Extract MAX_d_FMT.

Change-Id: I1f165414e95c0c3d4ac5c7e21b70896b8ae4a288

2 years agorefactoring: extract system_info feature handling 97/260497/1
Adrian Szyndela [Fri, 25 Jun 2021 12:51:13 +0000 (14:51 +0200)]
refactoring: extract system_info feature handling

Change-Id: I9ee561f1ba9498e8660555ec93dbae691b0b7287

2 years agoi2c: extract ioctl setup to separate function 30/260430/4
Adrian Szyndela [Thu, 24 Jun 2021 15:09:11 +0000 (17:09 +0200)]
i2c: extract ioctl setup to separate function

Change-Id: Id1af5824d0b25600bb0387b2008dae3ff290dcc5

2 years agomove and remove private headers 55/260355/6
Adrian Szyndela [Wed, 23 Jun 2021 15:17:50 +0000 (17:17 +0200)]
move and remove private headers

Leave only public header in include/.
Remove peripheral_handle.h by moving struct definitions into
respective source files.

Change-Id: I7a5042fbf68667499a1247bc8efcf704447e1d4d

2 years agopwm: flatten structure - remove 'interface' 54/260354/7
Adrian Szyndela [Wed, 23 Jun 2021 14:44:13 +0000 (16:44 +0200)]
pwm: flatten structure - remove 'interface'

Merge src/peripheral_pwm.c with src/interface/peripheral_interface_pwm.c,
with additions from include/interface/peripheral_interface_pwm.h.

Change-Id: Ic5343b93d9bd9ce01d22a7d8841c825a99611d96

2 years agoremove gdbus remainings 53/260353/7
Adrian Szyndela [Wed, 23 Jun 2021 14:33:37 +0000 (16:33 +0200)]
remove gdbus remainings

Change-Id: I5a527db12075b70b9c9cf092199ead6726dccc01

2 years agopwm: replace gdbus with direct implementation 52/260352/7
Adrian Szyndela [Wed, 23 Jun 2021 14:28:02 +0000 (16:28 +0200)]
pwm: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: If2554f2d30389836eb39794dffaf9e34df31176a

2 years agogpio: flatten structure - remove 'interface' 57/260257/5
Adrian Szyndela [Tue, 22 Jun 2021 14:28:06 +0000 (16:28 +0200)]
gpio: flatten structure - remove 'interface'

Merge src/peripheral_gpio.c with src/interface/peripheral_interface_gpio.c,
with additions from include/interface/peripheral_interface_gpio.h.

Change-Id: I45f9eda5cf4ab47995db43bf934ab7176670b867

2 years agogpio: replace gdbus with direct implementation 56/260256/5
Adrian Szyndela [Tue, 22 Jun 2021 10:51:37 +0000 (12:51 +0200)]
gpio: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: Ib54d4b8dbf4dcd7a1300b6c48ec8207fbbce2476

2 years agoadc: flatten structure - remove 'interface' 98/259798/5
Adrian Szyndela [Mon, 14 Jun 2021 08:48:14 +0000 (10:48 +0200)]
adc: flatten structure - remove 'interface'

Merge src/peripheral_adc.c with src/interface/peripheral_interface_adc.c,
with additions from include/interface/peripheral_interface_adc.h.

Change-Id: I95f03beb77a35b9f1c2d3f82f3d0590737cea59c

2 years agoadc: replace gdbus with direct implementation 97/259797/4
Adrian Szyndela [Mon, 14 Jun 2021 08:44:20 +0000 (10:44 +0200)]
adc: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: I696c87502d606b54a483f72990b57acf2904bb72

2 years agouart: flatten structure - remove 'interface' 58/259758/7
Adrian Szyndela [Fri, 11 Jun 2021 13:29:28 +0000 (15:29 +0200)]
uart: flatten structure - remove 'interface'

Merge src/peripheral_uart.c with src/interface/peripheral_interface_uart.c.

Change-Id: I1fdb5a0fb7c23a18bf591911a47eba1314246e91

2 years agouart: replace gdbus with direct implementation 57/259757/7
Adrian Szyndela [Fri, 11 Jun 2021 13:17:12 +0000 (15:17 +0200)]
uart: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: Ia74be68f4acad0a9a494c82ca6183077cc804e49

2 years agospi: flatten structure - remove 'interface' 56/259756/7
Adrian Szyndela [Fri, 11 Jun 2021 12:59:27 +0000 (14:59 +0200)]
spi: flatten structure - remove 'interface'

Merge src/peripheral_spi.c with src/interface/peripheral_interface_spi.c.

Change-Id: I9b45addfafe7c71e99cbd7797069df6f98fc69ec

2 years agospi: replace gdbus with direct implementation 55/259755/6
Adrian Szyndela [Fri, 11 Jun 2021 12:50:22 +0000 (14:50 +0200)]
spi: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: Id68566050afd74f1b6d0e42a87e239150ce4364f

2 years agoi2c: flatten structure - remove 'interface' 49/259749/6
Adrian Szyndela [Fri, 11 Jun 2021 11:09:26 +0000 (13:09 +0200)]
i2c: flatten structure - remove 'interface'

Merge src/peripheral_i2c.c with src/interface/peripheral_interface_i2c.c,
with additions from include/interface/peripheral_interface_i2c.h.

Change-Id: I4c0646d7b78b6753c929cb66fe2a696b4eab7ba9

2 years agoi2c: replace gdbus with direct implementation 44/259744/6
Adrian Szyndela [Wed, 9 Jun 2021 09:23:25 +0000 (11:23 +0200)]
i2c: replace gdbus with direct implementation

Move open/close code from peripheral-bus.
Add flocks() where appropriate.

Change-Id: I57bffbe463cacf2674484e8d8cf8fadfe672218f

2 years agoAdd API function to open i2c device with flags 34/259134/3 accepted/tizen/unified/20210607.124325 submit/tizen/20210607.045229
Karol Lewandowski [Tue, 1 Jun 2021 09:48:02 +0000 (11:48 +0200)]
Add API function to open i2c device with flags

Flags are going to be checked on the service side.

Change-Id: Ie7ee17a06ad76a7366236122a1a42c29dbbc56bd

3 years agoAdd information about GPIO pin value in callback. 67/255967/5 accepted/tizen/unified/20210413.021248 submit/tizen/20210412.185901
Ernest Borowski [Thu, 25 Mar 2021 16:16:35 +0000 (16:16 +0000)]
Add information about GPIO pin value in callback.

Change-Id: Ibc6ddc9c094b488236706cf2b9455c251b60f3ce
Signed-off-by: Ernest Borowski <e.borowski@samsung.com>
3 years agogdbus: Check pointer before dereference 34/253934/1 accepted/tizen/unified/20210222.215243 submit/tizen/20210219.120309
Konrad Kuchciak [Fri, 19 Feb 2021 11:16:18 +0000 (12:16 +0100)]
gdbus: Check pointer before dereference

Change-Id: I2093875c5de833536573a16af7afb23af9629753

3 years agodocs: Fix docs.tizen.org URLs 21/248921/1
Konrad Kuchciak [Thu, 3 Dec 2020 07:59:06 +0000 (08:59 +0100)]
docs: Fix docs.tizen.org URLs

Change-Id: I060c9cd1f53a8ea4c40128148cad9cabd50bb7f9

3 years agodocs: Change developer.tizen.org to docs.tizen.org 90/248690/1 submit/tizen/20201201.110307
Konrad Kuchciak [Tue, 1 Dec 2020 10:53:08 +0000 (11:53 +0100)]
docs: Change developer.tizen.org to docs.tizen.org

Change-Id: I86be1688252311b5922a54237cb9a1dce0a21417

3 years agouart: Fix read and write functions 29/239429/3
Konrad Kuchciak [Fri, 24 Jul 2020 12:34:03 +0000 (14:34 +0200)]
uart: Fix read and write functions

Return number of bytes read/written to fulfill declaration
given in docs.

Change-Id: I81e229a1b719c9370ed97d38316fbef8e712bba5

3 years agotest: Add skip test functionality 59/236959/7 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.121328 accepted/tizen/6.0/unified/hotfix/20201103.003528 accepted/tizen/6.0/unified/hotfix/20201103.050258 accepted/tizen/unified/20200812.143924 submit/tizen/20200811.122142 submit/tizen_6.0/20201029.205102 submit/tizen_6.0_hotfix/20201102.192502 submit/tizen_6.0_hotfix/20201103.114802 tizen_6.0.m2_release
Wiktor Gerstenstein [Thu, 25 Jun 2020 12:29:00 +0000 (14:29 +0200)]
test: Add skip test functionality

- add static array with function names to skip

Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5c

3 years agotest bugfix: check invalid function results in SPI tests 61/236961/2
Wiktor Gerstenstein [Tue, 23 Jun 2020 16:32:50 +0000 (18:32 +0200)]
test bugfix:  check invalid function results in SPI tests

Change-Id: I5b254a97e0df869666420c031fe10e122961d79c

4 years agotest: Init each test individually 36/231836/3
Konrad Kuchciak [Fri, 24 Apr 2020 10:42:41 +0000 (12:42 +0200)]
test: Init each test individually

Change-Id: I2d26dbfa63f3d454a6cc30330ac5327468ecae58
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
4 years agoBuild with gcov 25/231825/1
Konrad Kuchciak [Fri, 24 Apr 2020 09:33:06 +0000 (11:33 +0200)]
Build with gcov

 - build with gcov when --define "gcov 1" option is passed to gbs

Change-Id: I1997b14b8330eca41b5e8f2599b3b606b78ccb26
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
4 years agotest: search for i2c bus exposed by SMBus stub driver 27/224027/2 accepted/tizen/unified/20200217.213905 submit/tizen/20200214.101934 submit/tizen/20200217.095901
Konrad Kuchciak [Wed, 5 Feb 2020 16:50:49 +0000 (17:50 +0100)]
test: search for i2c bus exposed by SMBus stub driver

Change-Id: I1863416c93149bad73adaba734e5f2fc2c1fe16f

4 years agogpio: init pin after export 62/214162/1 accepted/tizen_5.5_unified accepted/tizen_5.5_unified_mobile_hotfix accepted/tizen_5.5_unified_wearable_hotfix tizen_5.5_mobile_hotfix tizen_5.5_tv tizen_5.5_wearable_hotfix accepted/tizen/5.5/unified/20191031.025744 accepted/tizen/5.5/unified/mobile/hotfix/20201027.064158 accepted/tizen/5.5/unified/wearable/hotfix/20201027.120549 accepted/tizen/unified/20190923.225255 submit/tizen/20190923.102122 submit/tizen/20190923.125435 submit/tizen_5.5/20191031.000002 submit/tizen_5.5_mobile_hotfix/20201026.185102 submit/tizen_5.5_wearable_hotfix/20201026.184302 tizen_5.5.m2_release
Konrad Kuchciak [Wed, 18 Sep 2019 11:58:46 +0000 (13:58 +0200)]
gpio: init pin after export

This will fully initialize the pin.
The problem is that edge attribute cannot be modified without explicitly
defining pin's direction after boot.
It seems like a kernel issue. This is just a workaround.

Change-Id: I6c9a2c8d20757c3f9d04779a820015c839b8ea5c
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agopio: don't return from close function too early 12/199412/3 accepted/tizen/unified/20190214.154127 submit/tizen/20190213.063316
Konrad Kuchciak [Mon, 11 Feb 2019 07:45:18 +0000 (08:45 +0100)]
pio: don't return from close function too early

We need to reach the end of the peripheral_xxx_close function in order
to free handle structure.

Change-Id: I51cf86a106397d52773875efe60424f662373c0f
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agogpio,adc: use pread instead of lseek + read 11/199411/3
Konrad Kuchciak [Mon, 11 Feb 2019 07:39:44 +0000 (08:39 +0100)]
gpio,adc: use pread instead of lseek + read

Change-Id: Ibfcffb46715e55d28a3c17749101158e4dbd48e2
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agogpio: make read function threadsafe 45/190645/1
Konrad Kuchciak [Thu, 4 Oct 2018 10:06:55 +0000 (12:06 +0200)]
gpio: make read function threadsafe

A new thread is created when setting interrupted callback on gpio pin,
which is polling and reading in loop. Reading at the same time from main
thread makes race condition as it is doing lseek() and read() on static
variable gpio->fd_value. This is fixed by adding mutex to
peripheral_gpio_read().

Change-Id: I55508fc36b91993226b373d460407c40d551276f
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agogpio: don't ignore return codes when setting/unsetting interrupted cb 44/190644/1
Konrad Kuchciak [Thu, 4 Oct 2018 09:54:36 +0000 (11:54 +0200)]
gpio: don't ignore return codes when setting/unsetting interrupted cb

Change-Id: Iaf3be22ee5939b6ff8ed239a803eabddd57e21dc
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agoadc: fix adc_read_n2 test case 32/188332/1 accepted/tizen/unified/20181031.153942 submit/tizen/20180907.001350 submit/tizen/20180924.110450 submit/tizen/20181010.111134 submit/tizen/20181022.095331 submit/vip/20181010.110708
Konrad Kuchciak [Tue, 4 Sep 2018 04:37:17 +0000 (06:37 +0200)]
adc: fix adc_read_n2 test case

Change-Id: I408ea83f787a5f48f883a3455dc660f1a7039d9e
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agoAdd API for the adc device 13/184513/7 accepted/tizen_5.0_unified accepted/tizen/5.0/unified/20181102.013255 accepted/tizen/unified/20180822.164537 submit/tizen/20180821.133358 submit/tizen_5.0/20181101.000002
Konrad Kuchciak [Wed, 18 Jul 2018 09:56:23 +0000 (11:56 +0200)]
Add API for the adc device

This commit adds support for the adc device.
For this to work, adc also has to be supported by peripheral-bus.

Change-Id: I3277815fde9e6b82e5d165ccb5003b11f505f0e9
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
5 years agogpio: fix documentation errors 52/186652/4
Konrad Kuchciak [Mon, 13 Aug 2018 06:18:00 +0000 (08:18 +0200)]
gpio: fix documentation errors

* Added '#' before enums to automatically create links in the HTML
documentation.
* Added description of errors received in GPIO interrupted callback

Change-Id: Idb818c52708b1e73de594f1b7ac77c09cda71534
Signed-off-by: Konrad Kuchciak <k.kuchciak@samsung.com>
6 years agopio: deliver user data to gpio interrupted callback function 00/170300/1 accepted/tizen/unified/20180219.142443 submit/tizen/20180219.102234
kibak.yoon [Mon, 19 Feb 2018 03:42:04 +0000 (12:42 +0900)]
pio: deliver user data to gpio interrupted callback function

Change-Id: Ib0048d8031a5799e0a495adafdbc4f824e117801
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
6 years agoMerge "doxygen: give additional prerequisites information for set APIs" into tizen
Segwon [Fri, 5 Jan 2018 03:58:40 +0000 (03:58 +0000)]
Merge "doxygen: give additional prerequisites information for set APIs" into tizen

6 years agogpio: fix to free a handle when peripheral_gdbus_gpio_close() is failed 43/165643/1 accepted/tizen/unified/20180103.151843 submit/tizen/20180103.062104
Segwon [Wed, 3 Jan 2018 04:22:51 +0000 (13:22 +0900)]
gpio: fix to free a handle when peripheral_gdbus_gpio_close() is failed

Change-Id: Ibab4d38a57e91b11f2c5a6e1b21e94d2c6e40eed
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: enhance the interrupted callback thread safty 41/165641/1
Segwon [Wed, 3 Jan 2018 03:10:20 +0000 (12:10 +0900)]
gpio: enhance the interrupted callback thread safty

Change-Id: Ib9374b0a62bdf7d8d71604365637d0dfacab69b6
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: do not join if the thread is null 36/165636/2
Segwon [Wed, 3 Jan 2018 03:00:19 +0000 (12:00 +0900)]
gpio: do not join if the thread is null

Change-Id: Ib1dafd777acaa7da520ac7aae050a05b1d607dca
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agopio: free the memory allocated by system_info_get_platform_string() 96/165596/2
kibak.yoon [Tue, 2 Jan 2018 09:17:53 +0000 (18:17 +0900)]
pio: free the memory allocated by system_info_get_platform_string()

Change-Id: Ibccb1798db42ac207ecb5f9d95858919b40371c6
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
6 years agopio: return error when open is failed 95/165595/1
kibak.yoon [Tue, 2 Jan 2018 08:16:54 +0000 (17:16 +0900)]
pio: return error when open is failed

- to prevent explicite null dereferenced, error should be returned when
  open is failed.

Change-Id: I645dec3879d54d43edec1ba52ace84af6c86b180
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
6 years agodoxygen: give additional prerequisites information for set APIs 47/165247/1
Segwon [Wed, 27 Dec 2017 08:13:59 +0000 (17:13 +0900)]
doxygen: give additional prerequisites information for set APIs

Change-Id: If1a69bdfb93ef06f1f1c6734850dbafe75ff5c20
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agointerface: add return type EINVAL in CHECK_ERROR 52/164452/4 accepted/tizen/unified/20171221.071344 submit/tizen/20171220.125854 submit/tizen/20171221.025332
Segwon [Tue, 19 Dec 2017 06:38:30 +0000 (15:38 +0900)]
interface: add return type EINVAL in CHECK_ERROR

Change-Id: I7dfb65fb371c428a7ef2f030cb5711bfb9d221af
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agospi: exclude the positive value in the ioctl error check, becasue of the ioctl return... 51/164451/1
Segwon [Tue, 19 Dec 2017 06:31:25 +0000 (15:31 +0900)]
spi: exclude the positive value in the ioctl error check, becasue of the ioctl return length

Change-Id: If7d4d517c519f6d41c6bde7a7716edda4cd6a25a
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: add interrupted callback 92/164192/5
Segwon [Mon, 18 Dec 2017 02:42:48 +0000 (11:42 +0900)]
gpio: add interrupted callback

Change-Id: I6d8d2b3e6382e3ecc2ebbc7cee8747fc2290fae9
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: enhance exception handling in interface function 94/163994/4
Segwon [Thu, 14 Dec 2017 11:13:04 +0000 (20:13 +0900)]
gpio: enhance exception handling in interface function

 - GPIO set type functions require prerequisites

 1) [edge_mode]                [direction]

    none ----------------------> in, out (O)

    rising, falling, both -----> in (O)
                           \
                            ---> out (X)

 2) [direction]                [edge_mode]

    in ------------------------> none, rising, falling, both (O)

    out -----------------------> none (O)
              \
               ----------------> rising, falling, both (X)

 3) [direction]                [value]

    in ------------------------> read (O)
              \
               ----------------> write (X)

    out -----------------------> read, write (O)

Change-Id: I72f8557568916b01c1e2e9edef79ed79f5bb20e6
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: set initially edge_mode and direction in handle 85/163985/6
Segwon [Thu, 14 Dec 2017 11:05:12 +0000 (20:05 +0900)]
gpio: set initially edge_mode and direction in handle

Change-Id: Ie9c50a3d680562c9f573ee006b816a3960096c46
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogdbus: communicate via gdbus when close 40/163240/3
Segwon [Fri, 8 Dec 2017 05:57:20 +0000 (14:57 +0900)]
gdbus: communicate via gdbus when close

Change-Id: Ieae106a611e8409c50996b68c08fcdbd3506d70b
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agotest: fix to wrong number of i2c bus 41/162541/2
Segwon [Mon, 4 Dec 2017 06:56:09 +0000 (15:56 +0900)]
test: fix to wrong number of i2c bus

Change-Id: Ifcd09204d585070d303eff86e73738772fbf2ab2
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agouart: flush the uart buffer when setting the flow control 31/160531/2
Segwon [Thu, 16 Nov 2017 14:35:59 +0000 (23:35 +0900)]
uart: flush the uart buffer when setting the flow control

Change-Id: Ie1c2609a243242ded2ecc1e4411ca07231a784b9
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agoi2c: try to call ioctl() to test i2c-stub when read()/write() is failed 26/160526/1
Segwon [Thu, 16 Nov 2017 14:20:55 +0000 (23:20 +0900)]
i2c: try to call ioctl() to test i2c-stub when read()/write() is failed

Change-Id: I71688ff99689de8b73d74166f0b8ef9cf1ebde67
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years ago[6/6] fd passing: replace to interface functions 23/160523/4
Segwon [Thu, 16 Nov 2017 12:23:40 +0000 (21:23 +0900)]
[6/6] fd passing: replace to interface functions

 - since return value of close interface function is meaningless, return type is modified to void.

Change-Id: I3ef4298ac5a47db29697bdbbca97ecfbc0e20a57
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agogpio: unuse pin in gpio handle 09/160509/1
Segwon [Thu, 16 Nov 2017 11:24:21 +0000 (20:24 +0900)]
gpio: unuse pin in gpio handle

Change-Id: I13df7070d2647a36752d46966bdb2fc71a2facfe
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agoerror: return a recongnizable error value 89/160489/1
Segwon [Thu, 16 Nov 2017 09:09:07 +0000 (18:09 +0900)]
error: return a recongnizable error value

 - unclear PERIPHERAL_ERROR_UNKNOWN error is returning too much
 - change linux error type usage to error value defined by peripheral_io

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I3196ed16afafa3a83ba5362287d7281dcd255192

6 years agointerface: remove unused constants defined from #define 49/160449/1
Segwon [Thu, 16 Nov 2017 07:46:26 +0000 (16:46 +0900)]
interface: remove unused constants defined from #define

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: Ie8f111ae53ea28e2c013e9e96a829d4d249a87ad

6 years agointerface: fix the CHECK_ERROR macro to receive various conditions 45/160445/1
Segwon [Thu, 16 Nov 2017 07:15:19 +0000 (16:15 +0900)]
interface: fix the CHECK_ERROR macro to receive various conditions

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: Iac30913f44ba239365a37e0dd9050623ea3f8d91

6 years agointerface: do not use the 'strlen' and 'strncmp' 27/160427/2
Segwon [Thu, 16 Nov 2017 06:09:39 +0000 (15:09 +0900)]
interface: do not use the 'strlen' and 'strncmp'

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I5113aff8d544f2e5411dbb3d158313c5e4dece2f

6 years agopackaging: expose only peripheral_io.h(API) at devel rpm 09/160409/2
Segwon [Thu, 16 Nov 2017 05:25:24 +0000 (14:25 +0900)]
packaging: expose only peripheral_io.h(API) at devel rpm

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I39f1e6a90bd774a73a2508a43b8dffc8869d86a3

6 years agocoding style: cannot put parameter in function defined to have no parameter. 08/160408/1
Segwon [Thu, 16 Nov 2017 05:19:19 +0000 (14:19 +0900)]
coding style: cannot put parameter in function defined to have no parameter.

 - function() -> function(void)

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I896916b02f45bdb84ed8120b3fb7273677ace9e1

6 years agointerface: do not close request to daemon by gdbus. 02/160402/1
Segwon [Thu, 16 Nov 2017 05:03:25 +0000 (14:03 +0900)]
interface: do not close request to daemon by gdbus.

 - daemon will be detect gdbus disconnection by g_bus_watch_name()

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: Id9882a8b576b9110eb21aa66a94b3fa7e9c4b14c

6 years agointerface: remove +1 length when writing a char array 95/160395/1
Segwon [Thu, 16 Nov 2017 04:15:27 +0000 (13:15 +0900)]
interface: remove +1 length when writing a char array

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I7bbbe2f8698ee1fb90268af6f6ca8c0eaf8edb38

6 years agospi: fix a build error due to missed before patch 92/160392/1
Segwon [Thu, 16 Nov 2017 04:10:10 +0000 (13:10 +0900)]
spi: fix a build error due to missed before patch

Signed-off-by: Segwon <segwon.han@samsung.com>
Change-Id: I34d0b37fab426cae2cc0210ca7a9a7b8101a5598

6 years agoi2c: replace 'i2c_smbus_ioctl()' with another functions. 81/160281/1
Segwon [Wed, 15 Nov 2017 07:55:08 +0000 (16:55 +0900)]
i2c: replace 'i2c_smbus_ioctl()' with another functions.

 - do not use 'i2c_smbus_ioctl_data' structure in caller.
 - remove : i2c_smbus_ioctl()
 - add : peripheral_interface_i2c_read_register_byte()
 - add : peripheral_interface_i2c_write_register_byte()
 - add : peripheral_interface_i2c_read_register_word()
 - add : peripheral_interface_i2c_write_register_word()

Change-Id: Ia73f3febcf1412a5101a83b2106a0d7c695a2ce4
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agointerface: do not check if fd is negative 74/160274/1
Segwon [Wed, 15 Nov 2017 07:40:18 +0000 (16:40 +0900)]
interface: do not check if fd is negative

 - it is checked by the caller.
 - the check is meaningless even if handle is not opened.

Change-Id: Id22083b04f4e95a0788a32f1cbc2929c08dd8c31
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agolog: change file name "peripheral_common.h" to "peripheral_log.h" 67/160267/2
Segwon [Wed, 15 Nov 2017 07:24:33 +0000 (16:24 +0900)]
log: change file name "peripheral_common.h" to "peripheral_log.h"

Change-Id: I96c150951c7cb2c5517b305e00909b0bca5cacff
Signed-off-by: Segwon <segwon.han@samsung.com>
6 years agoincluding: remove unnecessary header files 58/160258/2
Segwon [Wed, 15 Nov 2017 06:52:34 +0000 (15:52 +0900)]
including: remove unnecessary header files

Change-Id: Ice8e09e5654bbc2e94d5c41b5e1d5d86e5b78239
Signed-off-by: Segwon <segwon.han@samsung.com>