Geert Uytterhoeven
1e77fc8211
gpio: Add missing open drain/source handling to gpiod_set_value_cansleep()
...
Since commit f11a04464ae57e8d ("i2c: gpio: Enable working over slow
can_sleep GPIOs"), probing the i2c RTC connected to an i2c-gpio bus on
r8a7740/armadillo fails with:
rtc-s35390a 0-0030: error resetting chip
rtc-s35390a: probe of 0-0030 failed with error -5
More debug code reveals:
i2c i2c-0: master_xfer[0] R, addr=0x30, len=1
i2c i2c-0: NAK from device addr 0x30 msg #0
s35390a_get_reg: ret = -6
Commit 02e479808b5d62f8 ("gpio: Alter semantics of *raw* operations to
actually be raw") moved open drain/source handling from
gpiod_set_raw_value_commit() to gpiod_set_value(), but forgot to take
into account that gpiod_set_value_cansleep() also needs this handling.
The i2c protocol mandates that i2c signals are open drain, hence i2c
communication fails.
Fix this by adding the missing handling to gpiod_set_value_cansleep(),
using a new common helper gpiod_set_value_nocheck().
Fixes: 02e479808b5d62f8 ("gpio: Alter semantics of *raw* operations to actually be raw")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
[removed underscore syntax, added kerneldoc]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-01-10 14:17:17 +01:00
..
2017-08-14 15:01:13 +02:00
2017-11-30 15:31:14 +01:00
2016-02-23 20:19:42 +05:30
2017-11-08 14:06:21 +01:00
2017-11-08 14:06:21 +01:00
2017-11-08 14:06:21 +01:00
2017-11-08 14:06:21 +01:00
2016-02-23 20:34:06 +05:30
2017-05-29 13:36:45 +02:00
2017-08-14 15:01:12 +02:00
2017-11-08 14:06:21 +01:00
2016-02-16 00:19:52 +01:00
2016-03-30 10:38:51 +02:00
2017-05-29 11:09:01 +02:00
2017-11-09 09:38:42 +01:00
2017-11-08 14:06:21 +01:00
2016-11-24 16:19:02 +01:00
2017-12-28 12:26:35 +01:00
2017-04-28 09:47:46 +02:00
2017-12-29 16:37:09 +01:00
2016-01-05 11:21:03 +01:00
2016-06-08 10:49:58 +02:00
2017-11-08 14:06:21 +01:00
2016-02-23 20:35:28 +05:30
2016-09-13 10:35:56 +02:00
2016-09-13 10:35:56 +02:00
2017-11-30 15:40:01 +01:00
2017-11-08 14:06:21 +01:00
2017-10-25 11:25:10 +02:00
2017-09-22 11:02:10 +02:00
2017-01-26 15:27:37 +01:00
2017-11-02 11:10:55 +01:00
2017-08-01 13:43:55 +02:00
2017-04-28 10:09:16 +02:00
2017-11-14 17:23:44 -08:00
2017-08-14 15:01:12 +02:00
2017-04-20 12:02:32 +01:00
2017-10-25 11:25:38 +02:00
2016-11-13 11:50:22 +01:00
2016-02-16 00:19:53 +01:00
2017-11-08 14:06:21 +01:00
2017-11-08 14:06:21 +01:00
2016-09-12 15:28:18 +02:00
2017-08-14 15:03:38 +02:00
2016-02-23 20:35:33 +05:30
2016-02-23 20:35:34 +05:30
2016-02-19 00:20:30 +01:00
2017-10-25 11:25:38 +02:00
2016-01-05 11:21:20 +01:00
2017-01-26 15:27:37 +01:00
2016-03-09 22:00:27 +07:00
2017-07-31 15:26:57 +02:00
2016-09-13 10:35:56 +02:00
2016-09-12 14:23:37 +02:00
2017-11-08 14:06:21 +01:00
2016-08-10 15:40:44 +02:00
2017-11-08 14:06:21 +01:00
2017-10-19 22:40:07 +02:00
2015-11-30 09:31:00 +01:00
2015-10-28 10:30:17 +09:00
2017-08-14 16:06:24 +02:00
2017-10-31 13:13:34 +01:00
2016-03-31 15:02:09 +02:00
2016-01-05 11:21:07 +01:00
2017-01-26 15:27:37 +01:00
2017-11-08 14:06:21 +01:00
2017-08-21 00:06:35 +02:00
2016-12-30 09:18:10 +01:00
2017-10-30 08:35:32 +01:00
2017-08-31 15:21:07 +02:00
2017-10-25 11:25:40 +02:00
2016-02-16 00:20:03 +01:00
2017-08-14 15:03:38 +02:00
2017-08-14 15:00:43 +02:00
2017-08-21 00:09:33 +02:00
2017-08-21 00:10:00 +02:00
2016-03-30 10:38:51 +02:00
2017-11-14 17:23:44 -08:00
2016-09-15 13:57:43 +02:00
2017-12-02 22:41:43 +01:00
2017-11-08 14:06:21 +01:00
2017-08-21 00:08:52 +02:00
2017-11-08 14:06:21 +01:00
2016-09-13 10:35:56 +02:00
2017-11-08 14:06:21 +01:00
2017-10-07 00:01:08 +02:00
2016-04-05 17:02:35 +02:00
2017-11-09 09:38:42 +01:00
2016-06-07 09:35:16 +02:00
2017-12-22 15:24:31 +01:00
2017-03-24 14:04:37 +01:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-03-15 11:16:36 +01:00
2016-08-23 11:23:41 +02:00
2017-08-21 00:06:04 +02:00
2017-11-08 14:10:18 +01:00
2016-12-30 09:18:10 +01:00
2016-06-08 10:48:17 +02:00
2017-09-21 14:14:17 +02:00
2017-11-08 14:06:21 +01:00
2017-11-13 11:43:10 +01:00
2017-12-28 12:26:35 +01:00
2017-09-22 15:31:55 +02:00
2016-05-11 13:49:11 +02:00
2016-09-13 10:35:56 +02:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-01-26 15:27:37 +01:00
2016-06-07 09:35:16 +02:00
2016-09-13 10:35:56 +02:00
2017-08-14 15:37:38 +02:00
2016-10-21 14:55:07 +02:00
2016-09-13 10:35:56 +02:00
2016-02-23 20:35:49 +05:30
2017-09-04 14:41:02 +01:00
2017-08-23 10:20:16 +02:00
2016-01-05 11:21:16 +01:00
2017-09-22 11:02:10 +02:00
2016-02-23 20:35:50 +05:30
2017-11-14 17:23:44 -08:00
2017-11-08 14:06:21 +01:00
2016-06-07 09:35:16 +02:00
2016-01-05 11:21:20 +01:00
2017-01-26 15:27:37 +01:00
2017-11-08 14:06:21 +01:00
2017-03-23 11:45:55 +00:00
2016-09-13 10:35:56 +02:00
2017-01-26 15:27:37 +01:00
2017-11-08 14:06:21 +01:00
2017-12-29 21:13:04 +01:00
2017-03-06 14:35:22 +01:00
2017-08-14 15:01:12 +02:00
2017-11-08 14:06:21 +01:00
2017-05-22 17:48:41 +02:00
2016-01-05 11:21:20 +01:00
2017-08-23 09:21:54 +02:00
2017-11-08 14:06:21 +01:00
2017-11-08 14:06:21 +01:00
2017-12-22 15:24:31 +01:00
2017-12-22 15:24:31 +01:00
2016-07-04 16:51:29 +02:00
2017-12-22 15:24:31 +01:00
2017-09-05 11:49:48 -07:00
2018-01-10 14:17:17 +01:00
2017-12-22 15:24:31 +01:00
2017-11-16 10:57:11 -08:00
2017-11-14 17:23:44 -08:00