All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 3/4] rtc: isl1208: add support for isl1219 with tamper detection
  2018-02-28 12:45 [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support Denis OSTERLAND
                   ` (2 preceding siblings ...)
  2018-02-28 12:45 ` [PATCH v2 4/4] rtc: isl1208: Add "evdet" interrupt source for isl1219 Denis OSTERLAND
@ 2018-02-28 12:45 ` Denis OSTERLAND
  3 siblings, 0 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-02-28 12:45 UTC (permalink / raw)
  To: a.zummo, alexandre.belloni
  Cc: linux-kernel, mgr, m.grzeschik, devicetree, linux, jdelvare,
	linux-rtc, kernel, Denis OSTERLAND

From: Michael Grzeschik <m.grzeschik@pengutronix.de>

We add support for the ISL1219 chip that got an integrated tamper
detection function. This patch implements the feature by adding
an additional timestamp0 file to sysfs device path.
This file contains seconds since epoch, if an event occurred,
or is empty, if none occurred.

The devicetree documentation for the ISL1219 device tree
binding is added with an short example. It is not a trivial
device, because it supports two interrupt souces.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
---
 .../devicetree/bindings/rtc/isil,isl1219.txt       |  28 ++++
 drivers/rtc/rtc-isl1208.c                          | 158 ++++++++++++++++++---
 2 files changed, 170 insertions(+), 16 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/rtc/isil,isl1219.txt

diff --git a/Documentation/devicetree/bindings/rtc/isil,isl1219.txt b/Documentation/devicetree/bindings/rtc/isil,isl1219.txt
new file mode 100644
index 0000000..7937c13
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/isil,isl1219.txt
@@ -0,0 +1,28 @@
+Intersil ISL1219 I2C RTC/Alarm chip with event in
+
+ISL1219 has additional pins EVIN and #EVDET for tamper detection.
+
+Required properties supported by the device:
+
+ - "compatible": must be "isil,isl1219"
+ - "reg": I2C bus address of the device
+
+Optional properties:
+
+ - "interrupt-names": list which may contains "irq" and "evdet"
+ - "interrupt-parent", "interrupts", "interrupts-extended":
+   for passing the interrupt line of the SoC connected to #IRQ pin
+   and #EVDET pin of the RTC chip.
+
+
+Example isl1219 node with #IRQ pin connected to SoC gpio1 pin12
+ and #EVDET pin connected to SoC gpio2 pin 24:
+
+	isl1219: rtc@68 {
+		compatible = "isil,isl1219";
+		reg = <0x68>;
+		interrupt-names = "irq", "evdet";
+		interrupts-extended = <&gpio1 12 IRQ_TYPE_EDGE_FALLING>,
+			<&gpio2 24 IRQ_TYPE_EDGE_FALLING>;
+	};
+
diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index 908fb4d..164371b 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -33,6 +33,7 @@
 #define ISL1208_REG_SR_ARST    (1<<7)	/* auto reset */
 #define ISL1208_REG_SR_XTOSCB  (1<<6)	/* crystal oscillator */
 #define ISL1208_REG_SR_WRTC    (1<<4)	/* write rtc */
+#define ISL1208_REG_SR_EVT     (1<<3)	/* event */
 #define ISL1208_REG_SR_ALM     (1<<2)	/* alarm */
 #define ISL1208_REG_SR_BAT     (1<<1)	/* battery */
 #define ISL1208_REG_SR_RTCF    (1<<0)	/* rtc fail */
@@ -57,8 +58,29 @@
 #define ISL1208_REG_USR2 0x13
 #define ISL1208_USR_SECTION_LEN 2
 
+/* event section */
+#define ISL1208_REG_SCT 0x14
+#define ISL1208_REG_MNT 0x15
+#define ISL1208_REG_HRT 0x16
+#define ISL1208_REG_DTT 0x17
+#define ISL1208_REG_MOT 0x18
+#define ISL1208_REG_YRT 0x19
+#define ISL1208_EVT_SECTION_LEN 6
+
 static struct i2c_driver isl1208_driver;
 
+/* ISL1208 various variants */
+enum {
+	TYPE_ISL1208 = 0,
+	TYPE_ISL1218,
+	TYPE_ISL1219,
+};
+
+struct isl1208 {
+	struct rtc_device *rtc;
+	const struct attribute_group *sysfs_files;
+};
+
 /* block read */
 static int
 isl1208_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[],
@@ -80,8 +102,8 @@ isl1208_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[],
 	};
 	int ret;
 
-	BUG_ON(reg > ISL1208_REG_USR2);
-	BUG_ON(reg + len > ISL1208_REG_USR2 + 1);
+	WARN_ON(reg > ISL1208_REG_YRT);
+	WARN_ON(reg + len > ISL1208_REG_YRT + 1);
 
 	ret = i2c_transfer(client->adapter, msgs, 2);
 	if (ret > 0)
@@ -104,8 +126,8 @@ isl1208_i2c_set_regs(struct i2c_client *client, u8 reg, u8 const buf[],
 	};
 	int ret;
 
-	BUG_ON(reg > ISL1208_REG_USR2);
-	BUG_ON(reg + len > ISL1208_REG_USR2 + 1);
+	WARN_ON(reg > ISL1208_REG_YRT);
+	WARN_ON(reg + len > ISL1208_REG_YRT + 1);
 
 	i2c_buf[0] = reg;
 	memcpy(&i2c_buf[1], &buf[0], len);
@@ -493,12 +515,78 @@ isl1208_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
 	return isl1208_i2c_set_alarm(to_i2c_client(dev), alarm);
 }
 
+static ssize_t isl1208_rtc_event_clear(struct device *dev,
+		struct device_attribute *attr,
+		const char *buf, size_t count)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	int sr;
+
+	sr = isl1208_i2c_get_sr(client);
+	if (sr < 0) {
+		dev_err(dev, "%s: reading SR failed\n", __func__);
+		return sr;
+	}
+
+	sr &= ~ISL1208_REG_SR_EVT;
+
+	sr = i2c_smbus_write_byte_data(client, ISL1208_REG_SR, sr);
+	if (sr < 0)
+		dev_err(dev, "%s: writing SR failed\n",
+			__func__);
+
+	return count;
+};
+
+static ssize_t isl1208_rtc_event_show_timestamp(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	u8 regs[ISL1208_EVT_SECTION_LEN] = { 0, };
+	struct timespec64 tv64;
+	struct rtc_time tm;
+	int sr;
+
+	sr = isl1208_i2c_get_sr(client);
+	if (sr < 0) {
+		dev_err(dev, "%s: reading SR failed\n", __func__);
+		return sr;
+	}
+
+	if (!(sr & ISL1208_REG_SR_EVT))
+		return sprintf(buf, "\n");
+
+	sr = isl1208_i2c_read_regs(client, ISL1208_REG_SCT, regs,
+				   ISL1208_EVT_SECTION_LEN);
+	if (sr < 0) {
+		dev_err(dev, "%s: reading event section failed\n",
+			__func__);
+		return 0;
+	}
+
+	/* MSB of each alarm register is an enable bit */
+	tm.tm_sec = bcd2bin(regs[ISL1208_REG_SCT - ISL1208_REG_SCT] & 0x7f);
+	tm.tm_min = bcd2bin(regs[ISL1208_REG_MNT - ISL1208_REG_SCT] & 0x7f);
+	tm.tm_hour = bcd2bin(regs[ISL1208_REG_HRT - ISL1208_REG_SCT] & 0x3f);
+	tm.tm_mday = bcd2bin(regs[ISL1208_REG_DTT - ISL1208_REG_SCT] & 0x3f);
+	tm.tm_mon =
+		bcd2bin(regs[ISL1208_REG_MOT - ISL1208_REG_SCT] & 0x1f) - 1;
+	tm.tm_year = bcd2bin(regs[ISL1208_REG_YRT - ISL1208_REG_SCT]) + 100;
+
+	tv64.tv_sec = rtc_tm_to_time64(&tm);
+
+	return sprintf(buf, "%lld\n", (long long) tv64.tv_sec);
+};
+
+static DEVICE_ATTR(timestamp0, 0640,
+		isl1208_rtc_event_show_timestamp, isl1208_rtc_event_clear);
+
 static irqreturn_t
 isl1208_rtc_interrupt(int irq, void *data)
 {
 	unsigned long timeout = jiffies + msecs_to_jiffies(1000);
 	struct i2c_client *client = data;
-	struct rtc_device *rtc = i2c_get_clientdata(client);
+	struct isl1208 *isl1208 = i2c_get_clientdata(client);
 	int handled = 0, sr, err;
 
 	/*
@@ -521,7 +609,7 @@ isl1208_rtc_interrupt(int irq, void *data)
 	if (sr & ISL1208_REG_SR_ALM) {
 		dev_dbg(&client->dev, "alarm!\n");
 
-		rtc_update_irq(rtc, 1, RTC_IRQF | RTC_AF);
+		rtc_update_irq(isl1208->rtc, 1, RTC_IRQF | RTC_AF);
 
 		/* Clear the alarm */
 		sr &= ~ISL1208_REG_SR_ALM;
@@ -538,6 +626,13 @@ isl1208_rtc_interrupt(int irq, void *data)
 			return err;
 	}
 
+	if (sr & ISL1208_REG_SR_EVT) {
+		sysfs_notify(&client->dev.kobj, NULL,
+			dev_attr_timestamp0.attr.name);
+		dev_warn(&client->dev, "event detected");
+		handled = 1;
+	}
+
 	return handled ? IRQ_HANDLED : IRQ_NONE;
 }
 
@@ -623,11 +718,23 @@ static const struct attribute_group isl1208_rtc_sysfs_files = {
 	.attrs	= isl1208_rtc_attrs,
 };
 
+static struct attribute *isl1219_rtc_attrs[] = {
+	&dev_attr_atrim.attr,
+	&dev_attr_dtrim.attr,
+	&dev_attr_usr.attr,
+	&dev_attr_timestamp0.attr,
+	NULL
+};
+
+static const struct attribute_group isl1219_rtc_sysfs_files = {
+	.attrs	= isl1219_rtc_attrs,
+};
+
 static int
 isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 {
 	int rc = 0;
-	struct rtc_device *rtc;
+	struct isl1208 *isl1208;
 
 	if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
 		return -ENODEV;
@@ -635,13 +742,18 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (isl1208_i2c_validate_client(client) < 0)
 		return -ENODEV;
 
-	rtc = devm_rtc_allocate_device(&client->dev);
-	if (IS_ERR(rtc))
-		return PTR_ERR(rtc);
+	isl1208 = devm_kzalloc(&client->dev, sizeof(struct isl1208),
+				GFP_KERNEL);
+	if (!isl1208)
+		return -ENOMEM;
 
-	rtc->ops = &isl1208_rtc_ops;
+	isl1208->rtc = devm_rtc_allocate_device(&client->dev);
+	if (IS_ERR(isl1208->rtc))
+		return PTR_ERR(isl1208->rtc);
 
-	i2c_set_clientdata(client, rtc);
+	isl1208->rtc->ops = &isl1208_rtc_ops;
+
+	i2c_set_clientdata(client, isl1208);
 
 	rc = isl1208_i2c_get_sr(client);
 	if (rc < 0) {
@@ -653,7 +765,18 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 		dev_warn(&client->dev, "rtc power failure detected, "
 			 "please set clock.\n");
 
-	rc = sysfs_create_group(&client->dev.kobj, &isl1208_rtc_sysfs_files);
+	if (id->driver_data == TYPE_ISL1219) {
+		rc = i2c_smbus_write_byte_data(client, ISL1208_REG_09, 0x10);
+		if (rc < 0) {
+			dev_err(&client->dev, "could not enable tamper detection\n");
+			return rc;
+		}
+		isl1208->sysfs_files = &isl1219_rtc_sysfs_files;
+	} else {
+		isl1208->sysfs_files = &isl1208_rtc_sysfs_files;
+	}
+
+	rc = sysfs_create_group(&client->dev.kobj, isl1208->sysfs_files);
 	if (rc)
 		return rc;
 
@@ -680,14 +803,17 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 static int
 isl1208_remove(struct i2c_client *client)
 {
-	sysfs_remove_group(&client->dev.kobj, &isl1208_rtc_sysfs_files);
+	struct isl1208 *isl1208 = i2c_get_clientdata(client);
+
+	sysfs_remove_group(&client->dev.kobj, isl1208->sysfs_files);
 
 	return 0;
 }
 
 static const struct i2c_device_id isl1208_id[] = {
-	{ "isl1208", 0 },
-	{ "isl1218", 0 },
+	{ "isl1208", TYPE_ISL1208 },
+	{ "isl1218", TYPE_ISL1218 },
+	{ "isl1219", TYPE_ISL1219 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, isl1208_id);
-- 
2.7.4


Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 4/4] rtc: isl1208: Add "evdet" interrupt source for isl1219.
  2018-02-28 12:45 [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 1/4] rtc: isl1208: enable interrupt after context preparation Denis OSTERLAND
@ 2018-02-28 12:45 ` Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 3/4] rtc: isl1208: add support for isl1219 with tamper detection Denis OSTERLAND
  3 siblings, 0 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-02-28 12:45 UTC (permalink / raw)
  To: a.zummo, alexandre.belloni
  Cc: linux-kernel, mgr, devicetree, linux, jdelvare, linux-rtc,
	kernel, Denis OSTERLAND

From: Denis Osterland <Denis.Osterland@diehl.com>

Add support for "evdet" named interrupt source.

The check if i2c client irq matches evdet irq is needed
for the case that there is only one interrupt named "evdet".
In this case i2c client code handles this like an unnamed
interrupt souce and assigns the value.

Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
Reviewed-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
 drivers/rtc/rtc-isl1208.c | 47 +++++++++++++++++++++++++++++++----------------
 1 file changed, 31 insertions(+), 16 deletions(-)

diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index 164371b..f2f148b 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -14,6 +14,7 @@
 #include <linux/i2c.h>
 #include <linux/bcd.h>
 #include <linux/rtc.h>
+#include <linux/of_irq.h>
 
 /* Register map */
 /* rtc section */
@@ -79,6 +80,7 @@ enum {
 struct isl1208 {
 	struct rtc_device *rtc;
 	const struct attribute_group *sysfs_files;
+	int evdet_irq;
 };
 
 /* block read */
@@ -730,6 +732,24 @@ static const struct attribute_group isl1219_rtc_sysfs_files = {
 	.attrs	= isl1219_rtc_attrs,
 };
 
+static int isl1208_setup_irq(struct i2c_client *client, int irq)
+{
+	int rc = devm_request_threaded_irq(&client->dev, irq, NULL,
+					isl1208_rtc_interrupt,
+					IRQF_SHARED | IRQF_ONESHOT,
+					isl1208_driver.driver.name,
+					client);
+	if (!rc) {
+		device_init_wakeup(&client->dev, 1);
+		enable_irq_wake(irq);
+	} else {
+		dev_err(&client->dev,
+			"Unable to request irq %d, no alarm support\n",
+			irq);
+	}
+	return rc;
+}
+
 static int
 isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 {
@@ -772,6 +792,8 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 			return rc;
 		}
 		isl1208->sysfs_files = &isl1219_rtc_sysfs_files;
+		isl1208->evdet_irq = of_irq_get_byname(client->dev.of_node,
+								"evdet");
 	} else {
 		isl1208->sysfs_files = &isl1208_rtc_sysfs_files;
 	}
@@ -780,22 +802,15 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (rc)
 		return rc;
 
-	if (client->irq > 0) {
-		rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
-					       isl1208_rtc_interrupt,
-					       IRQF_SHARED | IRQF_ONESHOT,
-					       isl1208_driver.driver.name,
-					       client);
-		if (!rc) {
-			device_init_wakeup(&client->dev, 1);
-			enable_irq_wake(client->irq);
-		} else {
-			dev_err(&client->dev,
-				"Unable to request irq %d, no alarm support\n",
-				client->irq);
-			client->irq = 0;
-		}
-	}
+	if (client->irq > 0)
+		rc = isl1208_setup_irq(client, client->irq);
+	if (rc)
+		return rc;
+
+	if (isl1208->evdet_irq > 0 && isl1208->evdet_irq != client->irq)
+		rc = isl1208_setup_irq(client, isl1208->evdet_irq);
+	if (rc)
+		return rc;
 
 	return rtc_register_device(isl1208->rtc);
 }
-- 
2.7.4


Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 1/4] rtc: isl1208: enable interrupt after context preparation
  2018-02-28 12:45 [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device Denis OSTERLAND
@ 2018-02-28 12:45 ` Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 4/4] rtc: isl1208: Add "evdet" interrupt source for isl1219 Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 3/4] rtc: isl1208: add support for isl1219 with tamper detection Denis OSTERLAND
  3 siblings, 0 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-02-28 12:45 UTC (permalink / raw)
  To: a.zummo, alexandre.belloni
  Cc: linux-kernel, mgr, m.grzeschik, devicetree, linux, jdelvare,
	linux-rtc, kernel, Denis OSTERLAND

From: Michael Grzeschik <m.grzeschik@pengutronix.de>

The interrupt handler got enabled very early. If the interrupt cause is
triggering immediately before the context is fully prepared. This can
lead to undefined behaviour. Therefor we move the interrupt enable code
to the end of the probe function.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
---
 drivers/rtc/rtc-isl1208.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index c8b4953..a13a4ba 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -635,23 +635,6 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (isl1208_i2c_validate_client(client) < 0)
 		return -ENODEV;
 
-	if (client->irq > 0) {
-		rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
-					       isl1208_rtc_interrupt,
-					       IRQF_SHARED | IRQF_ONESHOT,
-					       isl1208_driver.driver.name,
-					       client);
-		if (!rc) {
-			device_init_wakeup(&client->dev, 1);
-			enable_irq_wake(client->irq);
-		} else {
-			dev_err(&client->dev,
-				"Unable to request irq %d, no alarm support\n",
-				client->irq);
-			client->irq = 0;
-		}
-	}
-
 	rtc = devm_rtc_device_register(&client->dev, isl1208_driver.driver.name,
 				  &isl1208_rtc_ops,
 				  THIS_MODULE);
@@ -674,6 +657,23 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (rc)
 		return rc;
 
+	if (client->irq > 0) {
+		rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
+					       isl1208_rtc_interrupt,
+					       IRQF_SHARED | IRQF_ONESHOT,
+					       isl1208_driver.driver.name,
+					       client);
+		if (!rc) {
+			device_init_wakeup(&client->dev, 1);
+			enable_irq_wake(client->irq);
+		} else {
+			dev_err(&client->dev,
+				"Unable to request irq %d, no alarm support\n",
+				client->irq);
+			client->irq = 0;
+		}
+	}
+
 	return 0;
 }
 
-- 
2.7.4


Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support
@ 2018-02-28 12:45 Denis OSTERLAND
  2018-02-28 12:45 ` [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device Denis OSTERLAND
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-02-28 12:45 UTC (permalink / raw)
  To: a.zummo, alexandre.belloni
  Cc: linux-kernel, mgr, devicetree, linux, jdelvare, linux-rtc,
	kernel, Denis OSTERLAND

changes since v1:
Represent isl1219 tamper detection as RTC timestamp event,
instead of hwmon intrusion sensor.
Switch to rtc_register_device, to fix possible race conditions in probe.
Add documentation of the two possible interrupt sources for isl1219.
Support "evdet" named interrupt souce.

Michael Grzeschik (2):
  rtc: isl1208: enable interrupt after context preparation
  rtc: isl1208: add support for isl1219 with tamper detection

Denis Osterland (2):
  rtc: isl1208: switch to rtc_register_device
  rtc: isl1208: Add "evdet" interrupt source for isl1219.

 .../devicetree/bindings/rtc/isil,isl1219.txt       |  28 +++
 drivers/rtc/rtc-isl1208.c                          | 209 +++++++++++++++++----
 2 files changed, 203 insertions(+), 34 deletions(-)

Message-Id: 20180123121801.4214-1-m.grzeschik@pengutronix.de


Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device
  2018-02-28 12:45 [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support Denis OSTERLAND
@ 2018-02-28 12:45 ` Denis OSTERLAND
  2018-03-03  2:35     ` kbuild test robot
  2018-02-28 12:45 ` [PATCH v2 1/4] rtc: isl1208: enable interrupt after context preparation Denis OSTERLAND
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Denis OSTERLAND @ 2018-02-28 12:45 UTC (permalink / raw)
  To: a.zummo, alexandre.belloni
  Cc: linux-kernel, mgr, devicetree, linux, jdelvare, linux-rtc,
	kernel, Denis OSTERLAND

From: Denis Osterland <Denis.Osterland@diehl.com>

Fix possible race condition.
It is not allowed to return with an error code after RTC is registered.

Suggested-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
Reviewed-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
 drivers/rtc/rtc-isl1208.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index a13a4ba..908fb4d 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -635,12 +635,12 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (isl1208_i2c_validate_client(client) < 0)
 		return -ENODEV;
 
-	rtc = devm_rtc_device_register(&client->dev, isl1208_driver.driver.name,
-				  &isl1208_rtc_ops,
-				  THIS_MODULE);
+	rtc = devm_rtc_allocate_device(&client->dev);
 	if (IS_ERR(rtc))
 		return PTR_ERR(rtc);
 
+	rtc->ops = &isl1208_rtc_ops;
+
 	i2c_set_clientdata(client, rtc);
 
 	rc = isl1208_i2c_get_sr(client);
@@ -674,7 +674,7 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
 		}
 	}
 
-	return 0;
+	return rtc_register_device(isl1208->rtc);
 }
 
 static int
-- 
2.7.4


Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device
  2018-02-28 12:45 ` [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device Denis OSTERLAND
@ 2018-03-03  2:35     ` kbuild test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2018-03-03  2:35 UTC (permalink / raw)
  To: Denis OSTERLAND
  Cc: kbuild-all, a.zummo, alexandre.belloni, linux-kernel, mgr,
	devicetree, linux, jdelvare, linux-rtc, kernel, Denis OSTERLAND

[-- Attachment #1: Type: text/plain, Size: 3722 bytes --]

Hi Denis,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on abelloni/rtc-next]
[also build test ERROR on v4.16-rc3 next-20180302]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405
base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
config: x86_64-randconfig-x017-201808 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the linux-review/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405 HEAD 1d3cf882ecd061847968da1511ec956b9bf70d33 builds fine.
      It only hurts bisectibility.

All error/warnings (new ones prefixed by >>):

   In file included from drivers/rtc/rtc-isl1208.c:16:0:
   drivers/rtc/rtc-isl1208.c: In function 'isl1208_probe':
>> drivers/rtc/rtc-isl1208.c:677:29: error: 'isl1208' undeclared (first use in this function)
     return rtc_register_device(isl1208->rtc);
                                ^
   include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
     __rtc_register_device(THIS_MODULE, device)
                                        ^~~~~~
   drivers/rtc/rtc-isl1208.c:677:29: note: each undeclared identifier is reported only once for each function it appears in
     return rtc_register_device(isl1208->rtc);
                                ^
   include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
     __rtc_register_device(THIS_MODULE, device)
                                        ^~~~~~
>> drivers/rtc/rtc-isl1208.c:678:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

vim +/isl1208 +677 drivers/rtc/rtc-isl1208.c

   625	
   626	static int
   627	isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
   628	{
   629		int rc = 0;
   630		struct rtc_device *rtc;
   631	
   632		if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
   633			return -ENODEV;
   634	
   635		if (isl1208_i2c_validate_client(client) < 0)
   636			return -ENODEV;
   637	
   638		rtc = devm_rtc_allocate_device(&client->dev);
   639		if (IS_ERR(rtc))
   640			return PTR_ERR(rtc);
   641	
   642		rtc->ops = &isl1208_rtc_ops;
   643	
   644		i2c_set_clientdata(client, rtc);
   645	
   646		rc = isl1208_i2c_get_sr(client);
   647		if (rc < 0) {
   648			dev_err(&client->dev, "reading status failed\n");
   649			return rc;
   650		}
   651	
   652		if (rc & ISL1208_REG_SR_RTCF)
   653			dev_warn(&client->dev, "rtc power failure detected, "
   654				 "please set clock.\n");
   655	
   656		rc = sysfs_create_group(&client->dev.kobj, &isl1208_rtc_sysfs_files);
   657		if (rc)
   658			return rc;
   659	
   660		if (client->irq > 0) {
   661			rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
   662						       isl1208_rtc_interrupt,
   663						       IRQF_SHARED | IRQF_ONESHOT,
   664						       isl1208_driver.driver.name,
   665						       client);
   666			if (!rc) {
   667				device_init_wakeup(&client->dev, 1);
   668				enable_irq_wake(client->irq);
   669			} else {
   670				dev_err(&client->dev,
   671					"Unable to request irq %d, no alarm support\n",
   672					client->irq);
   673				client->irq = 0;
   674			}
   675		}
   676	
 > 677		return rtc_register_device(isl1208->rtc);
 > 678	}
   679	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26738 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device
@ 2018-03-03  2:35     ` kbuild test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2018-03-03  2:35 UTC (permalink / raw)
  Cc: kbuild-all, a.zummo, alexandre.belloni, linux-kernel, mgr,
	devicetree, linux, jdelvare, linux-rtc, kernel, Denis OSTERLAND

[-- Attachment #1: Type: text/plain, Size: 3722 bytes --]

Hi Denis,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on abelloni/rtc-next]
[also build test ERROR on v4.16-rc3 next-20180302]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405
base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
config: x86_64-randconfig-x017-201808 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the linux-review/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405 HEAD 1d3cf882ecd061847968da1511ec956b9bf70d33 builds fine.
      It only hurts bisectibility.

All error/warnings (new ones prefixed by >>):

   In file included from drivers/rtc/rtc-isl1208.c:16:0:
   drivers/rtc/rtc-isl1208.c: In function 'isl1208_probe':
>> drivers/rtc/rtc-isl1208.c:677:29: error: 'isl1208' undeclared (first use in this function)
     return rtc_register_device(isl1208->rtc);
                                ^
   include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
     __rtc_register_device(THIS_MODULE, device)
                                        ^~~~~~
   drivers/rtc/rtc-isl1208.c:677:29: note: each undeclared identifier is reported only once for each function it appears in
     return rtc_register_device(isl1208->rtc);
                                ^
   include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
     __rtc_register_device(THIS_MODULE, device)
                                        ^~~~~~
>> drivers/rtc/rtc-isl1208.c:678:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

vim +/isl1208 +677 drivers/rtc/rtc-isl1208.c

   625	
   626	static int
   627	isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
   628	{
   629		int rc = 0;
   630		struct rtc_device *rtc;
   631	
   632		if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
   633			return -ENODEV;
   634	
   635		if (isl1208_i2c_validate_client(client) < 0)
   636			return -ENODEV;
   637	
   638		rtc = devm_rtc_allocate_device(&client->dev);
   639		if (IS_ERR(rtc))
   640			return PTR_ERR(rtc);
   641	
   642		rtc->ops = &isl1208_rtc_ops;
   643	
   644		i2c_set_clientdata(client, rtc);
   645	
   646		rc = isl1208_i2c_get_sr(client);
   647		if (rc < 0) {
   648			dev_err(&client->dev, "reading status failed\n");
   649			return rc;
   650		}
   651	
   652		if (rc & ISL1208_REG_SR_RTCF)
   653			dev_warn(&client->dev, "rtc power failure detected, "
   654				 "please set clock.\n");
   655	
   656		rc = sysfs_create_group(&client->dev.kobj, &isl1208_rtc_sysfs_files);
   657		if (rc)
   658			return rc;
   659	
   660		if (client->irq > 0) {
   661			rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
   662						       isl1208_rtc_interrupt,
   663						       IRQF_SHARED | IRQF_ONESHOT,
   664						       isl1208_driver.driver.name,
   665						       client);
   666			if (!rc) {
   667				device_init_wakeup(&client->dev, 1);
   668				enable_irq_wake(client->irq);
   669			} else {
   670				dev_err(&client->dev,
   671					"Unable to request irq %d, no alarm support\n",
   672					client->irq);
   673				client->irq = 0;
   674			}
   675		}
   676	
 > 677		return rtc_register_device(isl1208->rtc);
 > 678	}
   679	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26738 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device
  2018-03-03  2:35     ` kbuild test robot
@ 2018-03-05  7:44       ` Denis OSTERLAND
  -1 siblings, 0 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-03-05  7:44 UTC (permalink / raw)
  To: lkp
  Cc: linux-kernel, mgr, devicetree, a.zummo, linux, jdelvare,
	alexandre.belloni, kbuild-all, linux-rtc, kernel

Hi,

an obvious mistake by me.
isl1208 is introduced in patch 3/4.
I will send v3.
Sorry for that.

Regards Denis

Am Samstag, den 03.03.2018, 10:35 +0800 schrieb kbuild test robot:
> Hi Denis,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on abelloni/rtc-next]
> [also build test ERROR on v4.16-rc3 next-20180302]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git rtc-next
> config: x86_64-randconfig-x017-201808 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=x86_64 
> 
> Note: the linux-review/Denis-OSTERLAND/rtc-isl1208-fixes-documentation-and-isl1219-support/20180303-093405 HEAD 1d3cf882ecd061847968da1511ec956b9bf70d33 builds fine.
>       It only hurts bisectibility.
> 
> All error/warnings (new ones prefixed by >>):
> 
>    In file included from drivers/rtc/rtc-isl1208.c:16:0:
>    drivers/rtc/rtc-isl1208.c: In function 'isl1208_probe':
> > 
> > > 
> > > drivers/rtc/rtc-isl1208.c:677:29: error: 'isl1208' undeclared (first use in this function)
>      return rtc_register_device(isl1208->rtc);
>                                 ^
>    include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
>      __rtc_register_device(THIS_MODULE, device)
>                                         ^~~~~~
>    drivers/rtc/rtc-isl1208.c:677:29: note: each undeclared identifier is reported only once for each function it appears in
>      return rtc_register_device(isl1208->rtc);
>                                 ^
>    include/linux/rtc.h:261:37: note: in definition of macro 'rtc_register_device'
>      __rtc_register_device(THIS_MODULE, device)
>                                         ^~~~~~
> > 
> > > 
> > > drivers/rtc/rtc-isl1208.c:678:1: warning: control reaches end of non-void function [-Wreturn-type]
>     }
>     ^
> 
> vim +/isl1208 +677 drivers/rtc/rtc-isl1208.c
> 
>    625	
>    626	static int
>    627	isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
>    628	{
>    629		int rc = 0;
>    630		struct rtc_device *rtc;
>    631	
>    632		if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
>    633			return -ENODEV;
>    634	
>    635		if (isl1208_i2c_validate_client(client) < 0)
>    636			return -ENODEV;
>    637	
>    638		rtc = devm_rtc_allocate_device(&client->dev);
>    639		if (IS_ERR(rtc))
>    640			return PTR_ERR(rtc);
>    641	
>    642		rtc->ops = &isl1208_rtc_ops;
>    643	
>    644		i2c_set_clientdata(client, rtc);
>    645	
>    646		rc = isl1208_i2c_get_sr(client);
>    647		if (rc < 0) {
>    648			dev_err(&client->dev, "reading status failed\n");
>    649			return rc;
>    650		}
>    651	
>    652		if (rc & ISL1208_REG_SR_RTCF)
>    653			dev_warn(&client->dev, "rtc power failure detected, "
>    654				 "please set clock.\n");
>    655	
>    656		rc = sysfs_create_group(&client->dev.kobj, &isl1208_rtc_sysfs_files);
>    657		if (rc)
>    658			return rc;
>    659	
>    660		if (client->irq > 0) {
>    661			rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
>    662						       isl1208_rtc_interrupt,
>    663						       IRQF_SHARED | IRQF_ONESHOT,
>    664						       isl1208_driver.driver.name,
>    665						       client);
>    666			if (!rc) {
>    667				device_init_wakeup(&client->dev, 1);
>    668				enable_irq_wake(client->irq);
>    669			} else {
>    670				dev_err(&client->dev,
>    671					"Unable to request irq %d, no alarm support\n",
>    672					client->irq);
>    673				client->irq = 0;
>    674			}
>    675		}
>    676	
>  > 677		return rtc_register_device(isl1208->rtc);
>  > 678	}
>    679	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Diehl AKO Stiftung & Co. KG, Pfannerstraße 75-83, 88239 Wangen im Allgäu
Bereichsvorstand: Dr.-Ing. Michael Siedentop (Sprecher), Josef Fellner (Mitglied)
Sitz der Gesellschaft: Wangen i.A. – Registergericht: Amtsgericht Ulm HRA 620609 – Persönlich haftende Gesellschafterin: Diehl Verwaltungs-Stiftung – Sitz: Nürnberg – Registergericht: Amtsgericht Nürnberg HRA 11756 –
Vorstand: Dr.-Ing. E.h. Thomas Diehl (†) (Vorsitzender), Herr Dipl.-Wirtsch.-Ing. Wolfgang Weggen (stellvertretender Vorsitzender), Dipl.-Kfm. Claus Günther, Dipl.-Kfm. Frank Gutzeit, Dr.-Ing. Heinrich Schunk, Dr.-Ing. Michael Siedentop , Dipl.-Kfm. Dr.-Ing. Martin Sommer, Dipl.-Ing. (FH) Rainer von Borstel, Vorsitzender des Aufsichtsrates: Dr. Klaus Maier
___________________________________________________________________________________________________
Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten haben. Bitte loeschen Sie in diesem Fall die Nachricht. Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail contains confidential and/or legally protected information. Please inform us if you have received this e-mail by mistake and delete it in such a case. Each unauthorized reproduction, disclosure, alteration, distribution and/or publication of this e-mail is strictly prohibited.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device
@ 2018-03-05  7:44       ` Denis OSTERLAND
  0 siblings, 0 replies; 9+ messages in thread
From: Denis OSTERLAND @ 2018-03-05  7:44 UTC (permalink / raw)
  To: lkp
  Cc: linux-kernel, mgr, devicetree, a.zummo, linux, jdelvare,
	alexandre.belloni, kbuild-all, linux-rtc, kernel

SGksDQoNCmFuIG9idmlvdXMgbWlzdGFrZSBieSBtZS4NCmlzbDEyMDggaXMgaW50cm9kdWNl
ZCBpbiBwYXRjaCAzLzQuDQpJIHdpbGwgc2VuZCB2My4NClNvcnJ5IGZvciB0aGF0Lg0KDQpS
ZWdhcmRzIERlbmlzDQoNCkFtIFNhbXN0YWcsIGRlbiAwMy4wMy4yMDE4LCAxMDozNSArMDgw
MCBzY2hyaWViIGtidWlsZCB0ZXN0IHJvYm90Og0KPiBIaSBEZW5pcywNCj4gDQo+IFRoYW5r
IHlvdSBmb3IgdGhlIHBhdGNoISBZZXQgc29tZXRoaW5nIHRvIGltcHJvdmU6DQo+IA0KPiBb
YXV0byBidWlsZCB0ZXN0IEVSUk9SIG9uIGFiZWxsb25pL3J0Yy1uZXh0XQ0KPiBbYWxzbyBi
dWlsZCB0ZXN0IEVSUk9SIG9uIHY0LjE2LXJjMyBuZXh0LTIwMTgwMzAyXQ0KPiBbaWYgeW91
ciBwYXRjaCBpcyBhcHBsaWVkIHRvIHRoZSB3cm9uZyBnaXQgdHJlZSwgcGxlYXNlIGRyb3Ag
dXMgYSBub3RlIHRvIGhlbHAgaW1wcm92ZSB0aGUgc3lzdGVtXQ0KPiANCj4gdXJsOsKgwqDC
oMKgaHR0cHM6Ly9naXRodWIuY29tLzBkYXktY2kvbGludXgvY29tbWl0cy9EZW5pcy1PU1RF
UkxBTkQvcnRjLWlzbDEyMDgtZml4ZXMtZG9jdW1lbnRhdGlvbi1hbmQtaXNsMTIxOS1zdXBw
b3J0LzIwMTgwMzAzLTA5MzQwNQ0KPiBiYXNlOsKgwqDCoGh0dHBzOi8vZ2l0Lmtlcm5lbC5v
cmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2FiZWxsb25pL2xpbnV4LmdpdCBydGMtbmV4
dA0KPiBjb25maWc6IHg4Nl82NC1yYW5kY29uZmlnLXgwMTctMjAxODA4IChhdHRhY2hlZCBh
cyAuY29uZmlnKQ0KPiBjb21waWxlcjogZ2NjLTcgKERlYmlhbiA3LjMuMC0xKSA3LjMuMA0K
PiByZXByb2R1Y2U6DQo+IMKgwqDCoMKgwqDCoMKgwqAjIHNhdmUgdGhlIGF0dGFjaGVkIC5j
b25maWcgdG8gbGludXggYnVpbGQgdHJlZQ0KPiDCoMKgwqDCoMKgwqDCoMKgbWFrZSBBUkNI
PXg4Nl82NMKgDQo+IA0KPiBOb3RlOiB0aGUgbGludXgtcmV2aWV3L0RlbmlzLU9TVEVSTEFO
RC9ydGMtaXNsMTIwOC1maXhlcy1kb2N1bWVudGF0aW9uLWFuZC1pc2wxMjE5LXN1cHBvcnQv
MjAxODAzMDMtMDkzNDA1IEhFQUQgMWQzY2Y4ODJlY2QwNjE4NDc5NjhkYTE1MTFlYzk1NmI5
YmY3MGQzMyBidWlsZHMgZmluZS4NCj4gwqDCoMKgwqDCoMKgSXQgb25seSBodXJ0cyBiaXNl
Y3RpYmlsaXR5Lg0KPiANCj4gQWxsIGVycm9yL3dhcm5pbmdzIChuZXcgb25lcyBwcmVmaXhl
ZCBieSA+Pik6DQo+IA0KPiDCoMKgwqBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJpdmVycy9y
dGMvcnRjLWlzbDEyMDguYzoxNjowOg0KPiDCoMKgwqBkcml2ZXJzL3J0Yy9ydGMtaXNsMTIw
OC5jOiBJbiBmdW5jdGlvbiAnaXNsMTIwOF9wcm9iZSc6DQo+ID4gDQo+ID4gPiANCj4gPiA+
IGRyaXZlcnMvcnRjL3J0Yy1pc2wxMjA4LmM6Njc3OjI5OiBlcnJvcjogJ2lzbDEyMDgnIHVu
ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQ0KPiDCoMKgwqDCoMKgcmV0
dXJuIHJ0Y19yZWdpc3Rlcl9kZXZpY2UoaXNsMTIwOC0+cnRjKTsNCj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoF4N
Cj4gwqDCoMKgaW5jbHVkZS9saW51eC9ydGMuaDoyNjE6Mzc6IG5vdGU6IGluIGRlZmluaXRp
b24gb2YgbWFjcm8gJ3J0Y19yZWdpc3Rlcl9kZXZpY2UnDQo+IMKgwqDCoMKgwqBfX3J0Y19y
ZWdpc3Rlcl9kZXZpY2UoVEhJU19NT0RVTEUsIGRldmljZSkNCj4gwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqBefn5+fn4NCj4gwqDCoMKgZHJpdmVycy9ydGMvcnRjLWlzbDEyMDguYzo2
Nzc6Mjk6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9u
bHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluDQo+IMKgwqDCoMKgwqBy
ZXR1cm4gcnRjX3JlZ2lzdGVyX2RldmljZShpc2wxMjA4LT5ydGMpOw0KPiDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
Xg0KPiDCoMKgwqBpbmNsdWRlL2xpbnV4L3J0Yy5oOjI2MTozNzogbm90ZTogaW4gZGVmaW5p
dGlvbiBvZiBtYWNybyAncnRjX3JlZ2lzdGVyX2RldmljZScNCj4gwqDCoMKgwqDCoF9fcnRj
X3JlZ2lzdGVyX2RldmljZShUSElTX01PRFVMRSwgZGV2aWNlKQ0KPiDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoF5+fn5+fg0KPiA+IA0KPiA+ID4gDQo+ID4gPiBkcml2ZXJzL3J0Yy9y
dGMtaXNsMTIwOC5jOjY3ODoxOiB3YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5v
bi12b2lkIGZ1bmN0aW9uIFstV3JldHVybi10eXBlXQ0KPiDCoMKgwqDCoH0NCj4gwqDCoMKg
wqBeDQo+IA0KPiB2aW0gKy9pc2wxMjA4ICs2NzcgZHJpdmVycy9ydGMvcnRjLWlzbDEyMDgu
Yw0KPiANCj4gwqDCoMKgNjI1CQ0KPiDCoMKgwqA2MjYJc3RhdGljIGludA0KPiDCoMKgwqA2
MjcJaXNsMTIwOF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCBzdHJ1
Y3QgaTJjX2RldmljZV9pZCAqaWQpDQo+IMKgwqDCoDYyOAl7DQo+IMKgwqDCoDYyOQkJaW50
IHJjID0gMDsNCj4gwqDCoMKgNjMwCQlzdHJ1Y3QgcnRjX2RldmljZSAqcnRjOw0KPiDCoMKg
wqA2MzEJDQo+IMKgwqDCoDYzMgkJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGll
bnQtPmFkYXB0ZXIsIEkyQ19GVU5DX0kyQykpDQo+IMKgwqDCoDYzMwkJCXJldHVybiAtRU5P
REVWOw0KPiDCoMKgwqA2MzQJDQo+IMKgwqDCoDYzNQkJaWYgKGlzbDEyMDhfaTJjX3ZhbGlk
YXRlX2NsaWVudChjbGllbnQpIDwgMCkNCj4gwqDCoMKgNjM2CQkJcmV0dXJuIC1FTk9ERVY7
DQo+IMKgwqDCoDYzNwkNCj4gwqDCoMKgNjM4CQlydGMgPSBkZXZtX3J0Y19hbGxvY2F0ZV9k
ZXZpY2UoJmNsaWVudC0+ZGV2KTsNCj4gwqDCoMKgNjM5CQlpZiAoSVNfRVJSKHJ0YykpDQo+
IMKgwqDCoDY0MAkJCXJldHVybiBQVFJfRVJSKHJ0Yyk7DQo+IMKgwqDCoDY0MQkNCj4gwqDC
oMKgNjQyCQlydGMtPm9wcyA9ICZpc2wxMjA4X3J0Y19vcHM7DQo+IMKgwqDCoDY0MwkNCj4g
wqDCoMKgNjQ0CQlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBydGMpOw0KPiDCoMKgwqA2
NDUJDQo+IMKgwqDCoDY0NgkJcmMgPSBpc2wxMjA4X2kyY19nZXRfc3IoY2xpZW50KTsNCj4g
wqDCoMKgNjQ3CQlpZiAocmMgPCAwKSB7DQo+IMKgwqDCoDY0OAkJCWRldl9lcnIoJmNsaWVu
dC0+ZGV2LCAicmVhZGluZyBzdGF0dXMgZmFpbGVkXG4iKTsNCj4gwqDCoMKgNjQ5CQkJcmV0
dXJuIHJjOw0KPiDCoMKgwqA2NTAJCX0NCj4gwqDCoMKgNjUxCQ0KPiDCoMKgwqA2NTIJCWlm
IChyYyAmIElTTDEyMDhfUkVHX1NSX1JUQ0YpDQo+IMKgwqDCoDY1MwkJCWRldl93YXJuKCZj
bGllbnQtPmRldiwgInJ0YyBwb3dlciBmYWlsdXJlIGRldGVjdGVkLCAiDQo+IMKgwqDCoDY1
NAkJCQnCoCJwbGVhc2Ugc2V0IGNsb2NrLlxuIik7DQo+IMKgwqDCoDY1NQkNCj4gwqDCoMKg
NjU2CQlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmY2xpZW50LT5kZXYua29iaiwgJmlzbDEy
MDhfcnRjX3N5c2ZzX2ZpbGVzKTsNCj4gwqDCoMKgNjU3CQlpZiAocmMpDQo+IMKgwqDCoDY1
OAkJCXJldHVybiByYzsNCj4gwqDCoMKgNjU5CQ0KPiDCoMKgwqA2NjAJCWlmIChjbGllbnQt
PmlycSA+IDApIHsNCj4gwqDCoMKgNjYxCQkJcmMgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRf
aXJxKCZjbGllbnQtPmRldiwgY2xpZW50LT5pcnEsIE5VTEwsDQo+IMKgwqDCoDY2MgkJCQkJ
CcKgwqDCoMKgwqDCoMKgaXNsMTIwOF9ydGNfaW50ZXJydXB0LA0KPiDCoMKgwqA2NjMJCQkJ
CQnCoMKgwqDCoMKgwqDCoElSUUZfU0hBUkVEIHwgSVJRRl9PTkVTSE9ULA0KPiDCoMKgwqA2
NjQJCQkJCQnCoMKgwqDCoMKgwqDCoGlzbDEyMDhfZHJpdmVyLmRyaXZlci5uYW1lLA0KPiDC
oMKgwqA2NjUJCQkJCQnCoMKgwqDCoMKgwqDCoGNsaWVudCk7DQo+IMKgwqDCoDY2NgkJCWlm
ICghcmMpIHsNCj4gwqDCoMKgNjY3CQkJCWRldmljZV9pbml0X3dha2V1cCgmY2xpZW50LT5k
ZXYsIDEpOw0KPiDCoMKgwqA2NjgJCQkJZW5hYmxlX2lycV93YWtlKGNsaWVudC0+aXJxKTsN
Cj4gwqDCoMKgNjY5CQkJfSBlbHNlIHsNCj4gwqDCoMKgNjcwCQkJCWRldl9lcnIoJmNsaWVu
dC0+ZGV2LA0KPiDCoMKgwqA2NzEJCQkJCSJVbmFibGUgdG8gcmVxdWVzdCBpcnEgJWQsIG5v
IGFsYXJtIHN1cHBvcnRcbiIsDQo+IMKgwqDCoDY3MgkJCQkJY2xpZW50LT5pcnEpOw0KPiDC
oMKgwqA2NzMJCQkJY2xpZW50LT5pcnEgPSAwOw0KPiDCoMKgwqA2NzQJCQl9DQo+IMKgwqDC
oDY3NQkJfQ0KPiDCoMKgwqA2NzYJDQo+IMKgPiA2NzcJCXJldHVybiBydGNfcmVnaXN0ZXJf
ZGV2aWNlKGlzbDEyMDgtPnJ0Yyk7DQo+IMKgPiA2NzgJfQ0KPiDCoMKgwqA2NzkJDQo+IA0K
PiAtLS0NCj4gMC1EQVkga2VybmVsIHRlc3QgaW5mcmFzdHJ1Y3R1cmXCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyDQo+IGh0
dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9rYnVpbGQtYWxswqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBJbnRlbCBDb3Jwb3JhdGlvbg0KRGllaGwgQUtPIFN0
aWZ0dW5nICYgQ28uIEtHLCBQZmFubmVyc3RyYcOfZSA3NS04MywgODgyMzkgV2FuZ2VuIGlt
IEFsbGfDpHUNCkJlcmVpY2hzdm9yc3RhbmQ6IERyLi1JbmcuIE1pY2hhZWwgU2llZGVudG9w
IChTcHJlY2hlciksIEpvc2VmIEZlbGxuZXIgKE1pdGdsaWVkKQ0KU2l0eiBkZXIgR2VzZWxs
c2NoYWZ0OiBXYW5nZW4gaS5BLiDigJMgUmVnaXN0ZXJnZXJpY2h0OiBBbXRzZ2VyaWNodCBV
bG0gSFJBIDYyMDYwOSDigJMgUGVyc8O2bmxpY2ggaGFmdGVuZGUgR2VzZWxsc2NoYWZ0ZXJp
bjogRGllaGwgVmVyd2FsdHVuZ3MtU3RpZnR1bmcg4oCTIFNpdHo6IE7DvHJuYmVyZyDigJMg
UmVnaXN0ZXJnZXJpY2h0OiBBbXRzZ2VyaWNodCBOw7xybmJlcmcgSFJBIDExNzU2IOKAkw0K
Vm9yc3RhbmQ6IERyLi1JbmcuIEUuaC4gVGhvbWFzIERpZWhsICjigKApIChWb3JzaXR6ZW5k
ZXIpLCBIZXJyIERpcGwuLVdpcnRzY2guLUluZy4gV29sZmdhbmcgV2VnZ2VuIChzdGVsbHZl
cnRyZXRlbmRlciBWb3JzaXR6ZW5kZXIpLCBEaXBsLi1LZm0uIENsYXVzIEfDvG50aGVyLCBE
aXBsLi1LZm0uIEZyYW5rIEd1dHplaXQsIERyLi1JbmcuIEhlaW5yaWNoIFNjaHVuaywgRHIu
LUluZy4gTWljaGFlbCBTaWVkZW50b3AgLCBEaXBsLi1LZm0uIERyLi1JbmcuIE1hcnRpbiBT
b21tZXIsIERpcGwuLUluZy4gKEZIKSBSYWluZXIgdm9uIEJvcnN0ZWwsIFZvcnNpdHplbmRl
ciBkZXMgQXVmc2ljaHRzcmF0ZXM6IERyLiBLbGF1cyBNYWllcg0KX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpEZXIgSW5oYWx0IGRlciB2b3JzdGVo
ZW5kZW4gRS1NYWlsIGlzdCBuaWNodCByZWNodGxpY2ggYmluZGVuZC4gRGllc2UgRS1NYWls
IGVudGhhZWx0IHZlcnRyYXVsaWNoZSB1bmQvb2RlciByZWNodGxpY2ggZ2VzY2h1ZXR6dGUg
SW5mb3JtYXRpb25lbi4NCkluZm9ybWllcmVuIFNpZSB1bnMgYml0dGUsIHdlbm4gU2llIGRp
ZXNlIEUtTWFpbCBmYWVsc2NobGljaGVyd2Vpc2UgZXJoYWx0ZW4gaGFiZW4uIEJpdHRlIGxv
ZXNjaGVuIFNpZSBpbiBkaWVzZW0gRmFsbCBkaWUgTmFjaHJpY2h0LiBKZWRlIHVuZXJsYXVi
dGUgRm9ybSBkZXIgUmVwcm9kdWt0aW9uLCBCZWthbm50Z2FiZSwgQWVuZGVydW5nLCBWZXJ0
ZWlsdW5nIHVuZC9vZGVyIFB1Ymxpa2F0aW9uIGRpZXNlciBFLU1haWwgaXN0IHN0cmVuZ3N0
ZW5zIHVudGVyc2FndC4NClRoZSBjb250ZW50cyBvZiB0aGUgYWJvdmUgbWVudGlvbmVkIGUt
bWFpbCBpcyBub3QgbGVnYWxseSBiaW5kaW5nLiBUaGlzIGUtbWFpbCBjb250YWlucyBjb25m
aWRlbnRpYWwgYW5kL29yIGxlZ2FsbHkgcHJvdGVjdGVkIGluZm9ybWF0aW9uLiBQbGVhc2Ug
aW5mb3JtIHVzIGlmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZS1tYWlsIGJ5IG1pc3Rha2Ug
YW5kIGRlbGV0ZSBpdCBpbiBzdWNoIGEgY2FzZS4gRWFjaCB1bmF1dGhvcml6ZWQgcmVwcm9k
dWN0aW9uLCBkaXNjbG9zdXJlLCBhbHRlcmF0aW9uLCBkaXN0cmlidXRpb24gYW5kL29yIHB1
YmxpY2F0aW9uIG9mIHRoaXMgZS1tYWlsIGlzIHN0cmljdGx5IHByb2hpYml0ZWQu

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-03-05  7:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-28 12:45 [PATCH v2 0/4] rtc: isl1208: fixes, documentation and isl1219 support Denis OSTERLAND
2018-02-28 12:45 ` [PATCH v2 2/4] rtc: isl1208: switch to rtc_register_device Denis OSTERLAND
2018-03-03  2:35   ` kbuild test robot
2018-03-03  2:35     ` kbuild test robot
2018-03-05  7:44     ` Denis OSTERLAND
2018-03-05  7:44       ` Denis OSTERLAND
2018-02-28 12:45 ` [PATCH v2 1/4] rtc: isl1208: enable interrupt after context preparation Denis OSTERLAND
2018-02-28 12:45 ` [PATCH v2 4/4] rtc: isl1208: Add "evdet" interrupt source for isl1219 Denis OSTERLAND
2018-02-28 12:45 ` [PATCH v2 3/4] rtc: isl1208: add support for isl1219 with tamper detection Denis OSTERLAND

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.