All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Reichel <sre@kernel.org>
To: Sebastian Reichel <sre@kernel.org>,
	Marcel Holtmann <marcel@holtmann.org>,
	Gustavo Padovan <gustavo@padovan.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Rob Herring <robh+dt@kernel.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Pavel Machek <pavel@ucw.cz>, Tony Lindgren <tony@atomide.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.com>, Mark Rutland <mark.rutland@arm.com>,
	linux-bluetooth@vger.kernel.org, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCHv3 04/10] serdev: add helpers for cts and rts handling
Date: Tue, 28 Mar 2017 17:59:33 +0200	[thread overview]
Message-ID: <20170328155939.31566-5-sre@kernel.org> (raw)
In-Reply-To: <20170328155939.31566-1-sre@kernel.org>

Add serdev helper functions for handling of cts and rts
lines using the serdev's tiocm functions.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
---
Changes since PATCHv2:
 * use time_is_after_jiffies(xyz) instead of !time_after(jiffies, xyz)
 * drop OUT2 handling in rts function
---
 include/linux/serdev.h | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/include/linux/serdev.h b/include/linux/serdev.h
index e29a270f603c..37395b8eb8f1 100644
--- a/include/linux/serdev.h
+++ b/include/linux/serdev.h
@@ -16,6 +16,7 @@
 #include <linux/types.h>
 #include <linux/device.h>
 #include <linux/termios.h>
+#include <linux/delay.h>
 
 struct serdev_controller;
 struct serdev_device;
@@ -254,6 +255,36 @@ static inline int serdev_device_write_room(struct serdev_device *sdev)
 
 #endif /* CONFIG_SERIAL_DEV_BUS */
 
+static inline bool serdev_device_get_cts(struct serdev_device *serdev)
+{
+	int status = serdev_device_get_tiocm(serdev);
+	return !!(status & TIOCM_CTS);
+}
+
+static inline int serdev_device_wait_for_cts(struct serdev_device *serdev, bool state, int timeout_ms)
+{
+	unsigned long timeout;
+	bool signal;
+
+	timeout = jiffies + msecs_to_jiffies(timeout_ms);
+	while (time_is_after_jiffies(timeout)) {
+		signal = serdev_device_get_cts(serdev);
+		if (signal == state)
+			return 0;
+		usleep_range(1000, 2000);
+	}
+
+	return -ETIMEDOUT;
+}
+
+static inline int serdev_device_set_rts(struct serdev_device *serdev, bool enable)
+{
+	if (enable)
+		return serdev_device_set_tiocm(serdev, TIOCM_RTS, 0);
+	else
+		return serdev_device_set_tiocm(serdev, 0, TIOCM_RTS);
+}
+
 /*
  * serdev hooks into TTY core
  */
-- 
2.11.0

  parent reply	other threads:[~2017-03-28 16:00 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-28 15:59 [PATCHv3 00/10] Nokia H4+ support Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 01/10] tty: serial: omap: add UPF_BOOT_AUTOCONF flag for DT init Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 02/10] serdev: add serdev_device_wait_until_sent Sebastian Reichel
2017-03-28 15:59   ` Sebastian Reichel
2017-04-08 16:57   ` Greg Kroah-Hartman
2017-04-10 13:46     ` Rob Herring
2017-04-10 13:46       ` Rob Herring
2017-04-10 14:03       ` Greg Kroah-Hartman
2017-04-10 16:12         ` Rob Herring
2017-04-10 16:12           ` Rob Herring
2017-04-10 17:10           ` Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 03/10] serdev: implement get/set tiocm Sebastian Reichel
2017-03-28 15:59 ` Sebastian Reichel [this message]
2017-03-28 15:59 ` [PATCHv3 05/10] Bluetooth: hci_uart: add support for word alignment Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 06/10] Bluetooth: hci_uart: add serdev driver support library Sebastian Reichel
2017-03-28 15:59   ` Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 07/10] Bluetooth: hci_serdev: do not open device in hci open Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 08/10] Bluetooth: hci_serdev: allow modular drivers Sebastian Reichel
2017-03-28 15:59   ` Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 09/10] dt-bindings: net: bluetooth: Add nokia-bluetooth Sebastian Reichel
2017-03-28 15:59   ` Sebastian Reichel
2017-03-28 15:59 ` [PATCHv3 10/10] Bluetooth: add nokia driver Sebastian Reichel
2017-03-28 15:59   ` Sebastian Reichel
2017-03-29 21:17 ` [PATCHv3 00/10] Nokia H4+ support Rob Herring
2017-03-29 21:33   ` Marcel Holtmann
2017-03-31 13:33     ` Greg Kroah-Hartman
2017-04-05 18:16       ` Rob Herring
2017-04-05 20:28         ` Pavel Machek
2017-04-05 20:28           ` Pavel Machek
2017-04-10 23:10         ` Sebastian Reichel
2017-04-10 23:10           ` Sebastian Reichel
2017-04-11 11:36           ` Marcel Holtmann
2017-04-11 11:36             ` Marcel Holtmann
2017-04-11 14:06             ` Greg Kroah-Hartman
2017-04-11 14:06               ` Greg Kroah-Hartman
2017-04-12 20:19               ` Marcel Holtmann
2017-04-12 20:19                 ` Marcel Holtmann
2017-04-13  0:26                 ` Sebastian Reichel
2017-04-13  0:26                   ` Sebastian Reichel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170328155939.31566-5-sre@kernel.org \
    --to=sre@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo@padovan.org \
    --cc=johan.hedberg@gmail.com \
    --cc=jslaby@suse.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=mark.rutland@arm.com \
    --cc=pavel@ucw.cz \
    --cc=robh+dt@kernel.org \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.