linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
@ 2019-09-09 21:44 Lukasz Majewski
  2019-09-09 21:44 ` [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support Lukasz Majewski
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Lukasz Majewski @ 2019-09-09 21:44 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman, Lukasz Majewski

This patch set provides several enhancements to mc13xxx MFD family
of devices by introducing mc34708 as a separate device.

This IC has dedicated pen detection feature, which allows better
touchscreen experience.

This is the fifth version of this code (v5).
Discussion regarding previous versions can be found here:
https://lkml.org/lkml/2018/4/12/351
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
https://lkml.org/lkml/2019/7/17/705

Sascha Hauer (3):
  mfd: mc13xxx: Add mc34708 adc support
  input: touchscreen mc13xxx: Make platform data optional
  input: touchscreen mc13xxx: Add mc34708 support

 drivers/input/touchscreen/mc13783_ts.c | 63 ++++++++++++++---
 drivers/mfd/mc13xxx-core.c             | 98 +++++++++++++++++++++++++-
 include/linux/mfd/mc34708.h            | 37 ++++++++++
 3 files changed, 185 insertions(+), 13 deletions(-)
 create mode 100644 include/linux/mfd/mc34708.h

-- 
2.20.1


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

* [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support
  2019-09-09 21:44 [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
@ 2019-09-09 21:44 ` Lukasz Majewski
  2019-10-04 13:58   ` Lee Jones
  2019-09-09 21:44 ` [PATCH v5 2/3] input: touchscreen mc13xxx: Make platform data optional Lukasz Majewski
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Lukasz Majewski @ 2019-09-09 21:44 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman, Lukasz Majewski

From: Sascha Hauer <s.hauer@pengutronix.de>

The mc34708 has an improved adc. The older variants will always convert
a fixed order of channels. The mc34708 can do up to eight conversions
in arbitrary channel order. Currently this extended feature is not
supported. We only support touchscreen conversions now, which will
be sampled in a data format compatible to the older chips in order
to keep the API between the mfd and the touchscreen driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Lukasz Majewski <lukma@denx.de>

---
Changes for v5:
- Remove adc_do_conversion() callbacks from struct mc13xxx_variant
- Remove duplicated MC13XXX_ADC_WORKING #define

Changes for v4:
- None

Changes for v3:
- None

Changes for v2:
- Change the return code patch when the mc13xxx ADC is performing conversion
- Introduce new include/linux/mfd/mc34708.h header file for mc34708 specific
  defines

Changes from the original patches:
- ADC conversion functions prototypes added to fix build error
- Adjustments to make checkpatch clean (-ENOSYS, line over 80 char)

This patch applies on top of Linux 5.3-rc8
SHA1: f74c2bb98776e2de508f4d607cd519873065118e
---
 drivers/mfd/mc13xxx-core.c  | 98 ++++++++++++++++++++++++++++++++++++-
 include/linux/mfd/mc34708.h | 37 ++++++++++++++
 2 files changed, 133 insertions(+), 2 deletions(-)
 create mode 100644 include/linux/mfd/mc34708.h

diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c
index 1abe7432aad8..b64c62366517 100644
--- a/drivers/mfd/mc13xxx-core.c
+++ b/drivers/mfd/mc13xxx-core.c
@@ -12,6 +12,7 @@
 #include <linux/of_device.h>
 #include <linux/platform_device.h>
 #include <linux/mfd/core.h>
+#include <linux/mfd/mc34708.h>
 
 #include "mc13xxx.h"
 
@@ -247,9 +248,9 @@ static irqreturn_t mc13xxx_handler_adcdone(int irq, void *data)
 	return IRQ_HANDLED;
 }
 
-#define MC13XXX_ADC_WORKING (1 << 0)
+#define MC13XXX_ADC_WORKING BIT(0)
 
-int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
+static int mc13xxx_adc_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
 		unsigned int channel, u8 ato, bool atox,
 		unsigned int *sample)
 {
@@ -358,6 +359,99 @@ int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
 
 	return ret;
 }
+
+static int mc34708_adc_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
+		unsigned int channel, u8 ato, bool atox,
+		unsigned int *sample)
+{
+	int ret, i;
+	u32 adc0, adc3, adc1, old_adc0;
+	struct mc13xxx_adcdone_data adcdone_data = {
+		.mc13xxx = mc13xxx,
+	};
+
+	switch (mode) {
+	case MC13XXX_ADC_MODE_TS:
+		adc0 = MC34708_ADC0_TSEN | MC34708_ADC0_TSSTART |
+			MC34708_ADC0_TSSTOP(7);
+
+		adc1 = MC34708_ADC1_TSDLY1(0xf) |
+			MC34708_ADC1_TSDLY2(0xf) |
+			MC34708_ADC1_TSDLY3(0xf);
+
+		adc3 = MC34708_ADC3_TSSEL(0, MC34708_TS_X) |
+			MC34708_ADC3_TSSEL(1, MC34708_TS_Y) |
+			MC34708_ADC3_TSSEL(2, MC34708_TS_X) |
+			MC34708_ADC3_TSSEL(3, MC34708_TS_Y) |
+			MC34708_ADC3_TSSEL(4, MC34708_TS_X) |
+			MC34708_ADC3_TSSEL(5, MC34708_TS_R) |
+			MC34708_ADC3_TSSEL(6, MC34708_TS_Y) |
+			MC34708_ADC3_TSSEL(7, MC34708_TS_R);
+		break;
+
+	case MC13XXX_ADC_MODE_SINGLE_CHAN:
+	case MC13XXX_ADC_MODE_MULT_CHAN:
+	default:
+		return -EINVAL;
+	}
+
+	init_completion(&adcdone_data.done);
+
+	mc13xxx_lock(mc13xxx);
+
+	if (mc13xxx->adcflags & MC13XXX_ADC_WORKING) {
+		mc13xxx_unlock(mc13xxx);
+		return -EBUSY;
+	}
+
+	mc13xxx->adcflags |= MC13XXX_ADC_WORKING;
+
+	mc13xxx_reg_read(mc13xxx, MC13XXX_ADC0, &old_adc0);
+
+	mc13xxx_irq_request(mc13xxx, MC34708_IRQ_TSDONE,
+			mc13xxx_handler_adcdone, __func__, &adcdone_data);
+	mc13xxx_irq_ack(mc13xxx, MC34708_IRQ_TSDONE);
+
+	mc13xxx_reg_write(mc13xxx, MC34708_ADC3, adc3);
+	mc13xxx_reg_write(mc13xxx, MC13XXX_ADC1, adc1);
+	mc13xxx_reg_write(mc13xxx, MC13XXX_ADC0, adc0);
+
+	mc13xxx_unlock(mc13xxx);
+
+	ret = wait_for_completion_interruptible_timeout(&adcdone_data.done, HZ);
+
+	mc13xxx_lock(mc13xxx);
+
+	mc13xxx_irq_free(mc13xxx, MC34708_IRQ_TSDONE, &adcdone_data);
+
+	if (!ret) {
+		ret = -ETIMEDOUT;
+		goto out;
+	}
+
+	for (i = 0; i < 4; i++)
+		mc13xxx_reg_read(mc13xxx, MC34708_ADC4 + i, &sample[i]);
+
+out:
+	ret = mc13xxx_reg_write(mc13xxx, MC13XXX_ADC0, old_adc0);
+
+	mc13xxx->adcflags &= ~MC13XXX_ADC_WORKING;
+	mc13xxx_unlock(mc13xxx);
+
+	return ret;
+}
+
+int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
+		unsigned int channel, u8 ato, bool atox,
+		unsigned int *sample)
+{
+	if (!strcmp(mc13xxx_get_chipname(mc13xxx), "mc34708"))
+		return mc34708_adc_conversion(mc13xxx, mode, channel, ato,
+					      atox, sample);
+	else
+		return mc13xxx_adc_conversion(mc13xxx, mode, channel, ato,
+					      atox, sample);
+}
 EXPORT_SYMBOL_GPL(mc13xxx_adc_do_conversion);
 
 static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx,
diff --git a/include/linux/mfd/mc34708.h b/include/linux/mfd/mc34708.h
new file mode 100644
index 000000000000..536e133f4f97
--- /dev/null
+++ b/include/linux/mfd/mc34708.h
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2019
+ * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+ */
+#ifndef __LINUX_MFD_MC34708_H
+#define __LINUX_MFD_MC34708_H
+
+#define MC34708_ADC3			46
+#define MC34708_ADC4			47
+
+#define MC34708_IRQ_TSDONE		1
+
+#define MC34708_ADC0_TSEN		BIT(12)
+#define MC34708_ADC0_TSSTART		BIT(13)
+#define MC34708_ADC0_TSCONT		BIT(14)
+#define MC34708_ADC0_TSHOLD		BIT(15)
+#define MC34708_ADC0_TSPENDETEN		BIT(20)
+
+#define MC34708_ADC0_TSMASK            (MC34708_ADC0_TSPENDETEN | \
+					MC34708_ADC0_TSEN |       \
+					MC34708_ADC0_TSSTART |    \
+					MC34708_ADC0_TSCONT |     \
+					MC34708_ADC0_TSHOLD)
+
+#define MC34708_ADC0_TSSTOP(x)		(((x) & 0x7) << 16)
+
+#define MC34708_ADC3_TSSEL(step, ch)	((ch) << (8 + 2 * (step)))
+#define MC34708_ADC1_TSDLY1(d)		((d) << 12)
+#define MC34708_ADC1_TSDLY2(d)		((d) << 16)
+#define MC34708_ADC1_TSDLY3(d)		((d) << 20)
+
+#define MC34708_TS_X			1
+#define MC34708_TS_Y			2
+#define MC34708_TS_R			3
+
+#endif /* __LINUX_MFD_MC34708_H */
-- 
2.20.1


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

* [PATCH v5 2/3] input: touchscreen mc13xxx: Make platform data optional
  2019-09-09 21:44 [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
  2019-09-09 21:44 ` [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support Lukasz Majewski
@ 2019-09-09 21:44 ` Lukasz Majewski
  2019-09-09 21:44 ` [PATCH v5 3/3] input: touchscreen mc13xxx: Add mc34708 support Lukasz Majewski
  2019-09-30  7:51 ` [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
  3 siblings, 0 replies; 10+ messages in thread
From: Lukasz Majewski @ 2019-09-09 21:44 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman, Lukasz Majewski

From: Sascha Hauer <s.hauer@pengutronix.de>

The platform data once was optional, make it optional again. This
is a first step towards device tree support for the mc13xxx touchscreen
driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

---
Changes for v5:
- None

Changes for v4:
- Add Dmitry's Acked-by:

Changes for v3:
- None

Changes for v2:
- None

Changes from the original patch:
- Commit message typo fixes
---
 drivers/input/touchscreen/mc13783_ts.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
index ae0d978c83bf..edd49e44e0c9 100644
--- a/drivers/input/touchscreen/mc13783_ts.c
+++ b/drivers/input/touchscreen/mc13783_ts.c
@@ -35,7 +35,8 @@ struct mc13783_ts_priv {
 	struct mc13xxx *mc13xxx;
 	struct delayed_work work;
 	unsigned int sample[4];
-	struct mc13xxx_ts_platform_data *touch;
+	u8 ato;
+	bool atox;
 };
 
 static irqreturn_t mc13783_ts_handler(int irq, void *data)
@@ -125,7 +126,7 @@ static void mc13783_ts_work(struct work_struct *work)
 
 	if (mc13xxx_adc_do_conversion(priv->mc13xxx,
 				mode, channel,
-				priv->touch->ato, priv->touch->atox,
+				priv->ato, priv->atox,
 				priv->sample) == 0)
 		mc13783_ts_report_sample(priv);
 }
@@ -169,6 +170,7 @@ static void mc13783_ts_close(struct input_dev *dev)
 static int __init mc13783_ts_probe(struct platform_device *pdev)
 {
 	struct mc13783_ts_priv *priv;
+	struct mc13xxx_ts_platform_data *pdata = dev_get_platdata(&pdev->dev);
 	struct input_dev *idev;
 	int ret = -ENOMEM;
 
@@ -180,11 +182,10 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
 	INIT_DELAYED_WORK(&priv->work, mc13783_ts_work);
 	priv->mc13xxx = dev_get_drvdata(pdev->dev.parent);
 	priv->idev = idev;
-	priv->touch = dev_get_platdata(&pdev->dev);
-	if (!priv->touch) {
-		dev_err(&pdev->dev, "missing platform data\n");
-		ret = -ENODEV;
-		goto err_free_mem;
+
+	if (pdata) {
+		priv->atox = pdata->atox;
+		priv->ato = pdata->ato;
 	}
 
 	idev->name = MC13783_TS_NAME;
-- 
2.20.1


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

* [PATCH v5 3/3] input: touchscreen mc13xxx: Add mc34708 support
  2019-09-09 21:44 [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
  2019-09-09 21:44 ` [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support Lukasz Majewski
  2019-09-09 21:44 ` [PATCH v5 2/3] input: touchscreen mc13xxx: Make platform data optional Lukasz Majewski
@ 2019-09-09 21:44 ` Lukasz Majewski
  2019-09-30  7:51 ` [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
  3 siblings, 0 replies; 10+ messages in thread
From: Lukasz Majewski @ 2019-09-09 21:44 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman, Lukasz Majewski

From: Sascha Hauer <s.hauer@pengutronix.de>

The mc34708 has a different bit to enable pen detection. This
adds the driver data and devtype necessary to probe the device
and to distinguish between the mc13783 and the mc34708.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

---
Changes for v5:
- None

Changes for v4:
- Remove type from struct mc13xx_chip
- Add Acked-by from Dmitry

Changes for v3:
- Replace forward declaration of mc13xxx_driver_data with
  structure definition
- Rename mc13xxx_driver_data with mc13xxx_chip
- Move static struct mc13xxx_chip mc13783_chip and mc34708_chip
  closer to ID table
- Do not check mc13xxx device type

Changes for v2:
- Change nested if statements to a single one (with cr0 > ...)
- Replace hardcoded max resistance value (4080) with a generic driver data
  value.
- Introduce new include/linux/mfd/mc34708.h header file for mc34708 specific
  defines
- Define as driver data mask and value for accessing mc13xxx registers

Changes from the original patch:
- Simplify the mcXXXXX_set_pen_detection functions
- Fix checkpatch warnings
---
---
 drivers/input/touchscreen/mc13783_ts.c | 48 +++++++++++++++++++++++---
 1 file changed, 44 insertions(+), 4 deletions(-)

diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
index edd49e44e0c9..1dd8ed396225 100644
--- a/drivers/input/touchscreen/mc13783_ts.c
+++ b/drivers/input/touchscreen/mc13783_ts.c
@@ -10,6 +10,7 @@
  */
 #include <linux/platform_device.h>
 #include <linux/mfd/mc13783.h>
+#include <linux/mfd/mc34708.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/input.h>
@@ -30,6 +31,12 @@ MODULE_PARM_DESC(sample_tolerance,
 		"is supposed to be wrong and is discarded.  Set to 0 to "
 		"disable this check.");
 
+struct mc13xxx_chip {
+	int max_resistance;
+	u32 reg_mask;
+	u32 reg_value;
+};
+
 struct mc13783_ts_priv {
 	struct input_dev *idev;
 	struct mc13xxx *mc13xxx;
@@ -37,6 +44,7 @@ struct mc13783_ts_priv {
 	unsigned int sample[4];
 	u8 ato;
 	bool atox;
+	const struct mc13xxx_chip *chip;
 };
 
 static irqreturn_t mc13783_ts_handler(int irq, void *data)
@@ -93,6 +101,9 @@ static void mc13783_ts_report_sample(struct mc13783_ts_priv *priv)
 
 	cr0 = (cr0 + cr1) / 2;
 
+	if (cr0 > priv->chip->max_resistance)
+		cr0 = 0;
+
 	if (!cr0 || !sample_tolerance ||
 			(x2 - x0 < sample_tolerance &&
 			 y2 - y0 < sample_tolerance)) {
@@ -102,14 +113,14 @@ static void mc13783_ts_report_sample(struct mc13783_ts_priv *priv)
 			input_report_abs(idev, ABS_Y, y1);
 
 			dev_dbg(&idev->dev, "report (%d, %d, %d)\n",
-					x1, y1, 0x1000 - cr0);
+				x1, y1, priv->chip->max_resistance - cr0);
 			schedule_delayed_work(&priv->work, HZ / 50);
 		} else {
 			dev_dbg(&idev->dev, "report release\n");
 		}
 
 		input_report_abs(idev, ABS_PRESSURE,
-				cr0 ? 0x1000 - cr0 : cr0);
+				 cr0 ? priv->chip->max_resistance - cr0 : 0);
 		input_report_key(idev, BTN_TOUCH, cr0);
 		input_sync(idev);
 	} else {
@@ -146,7 +157,8 @@ static int mc13783_ts_open(struct input_dev *dev)
 		goto out;
 
 	ret = mc13xxx_reg_rmw(priv->mc13xxx, MC13XXX_ADC0,
-			MC13XXX_ADC0_TSMOD_MASK, MC13XXX_ADC0_TSMOD0);
+			      priv->chip->reg_mask,
+			      priv->chip->reg_value);
 	if (ret)
 		mc13xxx_irq_free(priv->mc13xxx, MC13XXX_IRQ_TS, priv);
 out:
@@ -160,7 +172,7 @@ static void mc13783_ts_close(struct input_dev *dev)
 
 	mc13xxx_lock(priv->mc13xxx);
 	mc13xxx_reg_rmw(priv->mc13xxx, MC13XXX_ADC0,
-			MC13XXX_ADC0_TSMOD_MASK, 0);
+			priv->chip->reg_mask, 0);
 	mc13xxx_irq_free(priv->mc13xxx, MC13XXX_IRQ_TS, priv);
 	mc13xxx_unlock(priv->mc13xxx);
 
@@ -172,6 +184,7 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
 	struct mc13783_ts_priv *priv;
 	struct mc13xxx_ts_platform_data *pdata = dev_get_platdata(&pdev->dev);
 	struct input_dev *idev;
+	const struct platform_device_id *id = platform_get_device_id(pdev);
 	int ret = -ENOMEM;
 
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
@@ -182,6 +195,7 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
 	INIT_DELAYED_WORK(&priv->work, mc13783_ts_work);
 	priv->mc13xxx = dev_get_drvdata(pdev->dev.parent);
 	priv->idev = idev;
+	priv->chip = (void *)id->driver_data;
 
 	if (pdata) {
 		priv->atox = pdata->atox;
@@ -228,7 +242,33 @@ static int mc13783_ts_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static struct mc13xxx_chip mc13783_chip = {
+	.max_resistance = 4096,
+	.reg_mask = MC13XXX_ADC0_TSMOD_MASK,
+	.reg_value = MC13XXX_ADC0_TSMOD0,
+};
+
+static struct mc13xxx_chip mc34708_chip = {
+	.max_resistance = 4080,
+	.reg_mask = MC34708_ADC0_TSMASK,
+	.reg_value = MC34708_ADC0_TSPENDETEN,
+};
+
+static const struct platform_device_id mc13xxx_ts_idtable[] = {
+	{
+		.name = "mc13783-ts",
+		.driver_data = (kernel_ulong_t)&mc13783_chip,
+	}, {
+		.name = "mc34708-ts",
+		.driver_data = (kernel_ulong_t)&mc34708_chip,
+	}, {
+		/* sentinel */
+	}
+};
+MODULE_DEVICE_TABLE(platform, mc13xxx_ts_idtable);
+
 static struct platform_driver mc13783_ts_driver = {
+	.id_table	= mc13xxx_ts_idtable,
 	.remove		= mc13783_ts_remove,
 	.driver		= {
 		.name	= MC13783_TS_NAME,
-- 
2.20.1


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

* Re: [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
  2019-09-09 21:44 [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
                   ` (2 preceding siblings ...)
  2019-09-09 21:44 ` [PATCH v5 3/3] input: touchscreen mc13xxx: Add mc34708 support Lukasz Majewski
@ 2019-09-30  7:51 ` Lukasz Majewski
  2019-09-30  8:21   ` Greg Kroah-Hartman
  2019-10-01  6:41   ` Lee Jones
  3 siblings, 2 replies; 10+ messages in thread
From: Lukasz Majewski @ 2019-09-30  7:51 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman

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

Dear Lee,

> This patch set provides several enhancements to mc13xxx MFD family
> of devices by introducing mc34708 as a separate device.
> 
> This IC has dedicated pen detection feature, which allows better
> touchscreen experience.
> 
> This is the fifth version of this code (v5).
> Discussion regarding previous versions can be found here:
> https://lkml.org/lkml/2018/4/12/351
> https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
> https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
> https://lkml.org/lkml/2019/7/17/705

Gentle ping on this patch series. It is now 3 weeks without any reply...

> 
> Sascha Hauer (3):
>   mfd: mc13xxx: Add mc34708 adc support
>   input: touchscreen mc13xxx: Make platform data optional
>   input: touchscreen mc13xxx: Add mc34708 support
> 
>  drivers/input/touchscreen/mc13783_ts.c | 63 ++++++++++++++---
>  drivers/mfd/mc13xxx-core.c             | 98
> +++++++++++++++++++++++++- include/linux/mfd/mc34708.h            |
> 37 ++++++++++ 3 files changed, 185 insertions(+), 13 deletions(-)
>  create mode 100644 include/linux/mfd/mc34708.h
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
  2019-09-30  7:51 ` [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
@ 2019-09-30  8:21   ` Greg Kroah-Hartman
  2019-10-01  6:41   ` Lee Jones
  1 sibling, 0 replies; 10+ messages in thread
From: Greg Kroah-Hartman @ 2019-09-30  8:21 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Lee Jones, linux-kernel, Dmitry Torokhov, Sascha Hauer,
	Enrico Weigelt, Kate Stewart, linux-input

On Mon, Sep 30, 2019 at 09:51:59AM +0200, Lukasz Majewski wrote:
> Dear Lee,
> 
> > This patch set provides several enhancements to mc13xxx MFD family
> > of devices by introducing mc34708 as a separate device.
> > 
> > This IC has dedicated pen detection feature, which allows better
> > touchscreen experience.
> > 
> > This is the fifth version of this code (v5).
> > Discussion regarding previous versions can be found here:
> > https://lkml.org/lkml/2018/4/12/351
> > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
> > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
> > https://lkml.org/lkml/2019/7/17/705
> 
> Gentle ping on this patch series. It is now 3 weeks without any reply...

It's the middle of the merge window, 2 weeks where we can't add any new
code to any of our trees.  Please give people a chance...

greg k-h

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

* Re: [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
  2019-09-30  7:51 ` [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
  2019-09-30  8:21   ` Greg Kroah-Hartman
@ 2019-10-01  6:41   ` Lee Jones
  2019-10-01  8:19     ` Lukasz Majewski
  1 sibling, 1 reply; 10+ messages in thread
From: Lee Jones @ 2019-10-01  6:41 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman

On Mon, 30 Sep 2019, Lukasz Majewski wrote:

> Dear Lee,
> 
> > This patch set provides several enhancements to mc13xxx MFD family
> > of devices by introducing mc34708 as a separate device.
> > 
> > This IC has dedicated pen detection feature, which allows better
> > touchscreen experience.
> > 
> > This is the fifth version of this code (v5).
> > Discussion regarding previous versions can be found here:
> > https://lkml.org/lkml/2018/4/12/351
> > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
> > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
> > https://lkml.org/lkml/2019/7/17/705
> 
> Gentle ping on this patch series. It is now 3 weeks without any reply...

Please take note and follow the kernel release cycle.

These patches were sent after the release of -rc7 i.e. very late
in the release cycle and a point where most kernel maintainers stop
reviewing/applying patches and start to prepare for the impending
merge-window.

Also, there is no such thing as a gentle ping.  If you genuinely think
your patches have unlikely("slipped though the gaps"), then post a
[RESEND] complete with a note alluding your reasons doing such.

> > Sascha Hauer (3):
> >   mfd: mc13xxx: Add mc34708 adc support
> >   input: touchscreen mc13xxx: Make platform data optional
> >   input: touchscreen mc13xxx: Add mc34708 support
> > 
> >  drivers/input/touchscreen/mc13783_ts.c | 63 ++++++++++++++---
> >  drivers/mfd/mc13xxx-core.c             | 98
> > +++++++++++++++++++++++++- include/linux/mfd/mc34708.h            |
> > 37 ++++++++++ 3 files changed, 185 insertions(+), 13 deletions(-)
> >  create mode 100644 include/linux/mfd/mc34708.h

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
  2019-10-01  6:41   ` Lee Jones
@ 2019-10-01  8:19     ` Lukasz Majewski
  2019-10-04 14:07       ` Lee Jones
  0 siblings, 1 reply; 10+ messages in thread
From: Lukasz Majewski @ 2019-10-01  8:19 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman

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

Hi Lee,

> On Mon, 30 Sep 2019, Lukasz Majewski wrote:
> 
> > Dear Lee,
> >   
> > > This patch set provides several enhancements to mc13xxx MFD family
> > > of devices by introducing mc34708 as a separate device.
> > > 
> > > This IC has dedicated pen detection feature, which allows better
> > > touchscreen experience.
> > > 
> > > This is the fifth version of this code (v5).
> > > Discussion regarding previous versions can be found here:
> > > https://lkml.org/lkml/2018/4/12/351
> > > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
> > > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
> > > https://lkml.org/lkml/2019/7/17/705  
> > 
> > Gentle ping on this patch series. It is now 3 weeks without any
> > reply...  
> 
> Please take note and follow the kernel release cycle.
> 
> These patches were sent after the release of -rc7 i.e. very late
> in the release cycle and a point where most kernel maintainers stop
> reviewing/applying patches

Maybe something has changed recently, but I thought that the review is
an ongoing process (that the discussion about patches takes place all
the time to refine the code).

(and nobody expects maintainers pulling new patches after merge window).

> and start to prepare for the impending
> merge-window.
> 
> Also, there is no such thing as a gentle ping.

I'm a bit puzzled now. 
I do know that maintainers are overworked - and I do understand that.

However, NO reply for such a long time is at best confusing for
somebody who is willing to fix the kernel.

(Maybe this has changed too - but I do remember that there was a "rule
of thumb" to express any comment about the patch in 2 weeks time).

>  If you genuinely think
> your patches have unlikely("slipped though the gaps"), then post a
> [RESEND] complete with a note alluding your reasons doing such.
> 

Please forgive me, but are patches from this series eligible for pulling
(to v5.4 or even next release)?

> > > Sascha Hauer (3):
> > >   mfd: mc13xxx: Add mc34708 adc support
> > >   input: touchscreen mc13xxx: Make platform data optional
> > >   input: touchscreen mc13xxx: Add mc34708 support
> > > 
> > >  drivers/input/touchscreen/mc13783_ts.c | 63 ++++++++++++++---
> > >  drivers/mfd/mc13xxx-core.c             | 98
> > > +++++++++++++++++++++++++- include/linux/mfd/mc34708.h
> > > | 37 ++++++++++ 3 files changed, 185 insertions(+), 13
> > > deletions(-) create mode 100644 include/linux/mfd/mc34708.h  
> 


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support
  2019-09-09 21:44 ` [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support Lukasz Majewski
@ 2019-10-04 13:58   ` Lee Jones
  0 siblings, 0 replies; 10+ messages in thread
From: Lee Jones @ 2019-10-04 13:58 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman

On Mon, 09 Sep 2019, Lukasz Majewski wrote:

> From: Sascha Hauer <s.hauer@pengutronix.de>
> 
> The mc34708 has an improved adc. The older variants will always convert
> a fixed order of channels. The mc34708 can do up to eight conversions
> in arbitrary channel order. Currently this extended feature is not
> supported. We only support touchscreen conversions now, which will
> be sampled in a data format compatible to the older chips in order
> to keep the API between the mfd and the touchscreen driver.

Please take this opportunity to split all the ADC stuff out into an
ADC specific driver.

> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> 
> ---
> Changes for v5:
> - Remove adc_do_conversion() callbacks from struct mc13xxx_variant
> - Remove duplicated MC13XXX_ADC_WORKING #define
> 
> Changes for v4:
> - None
> 
> Changes for v3:
> - None
> 
> Changes for v2:
> - Change the return code patch when the mc13xxx ADC is performing conversion
> - Introduce new include/linux/mfd/mc34708.h header file for mc34708 specific
>   defines
> 
> Changes from the original patches:
> - ADC conversion functions prototypes added to fix build error
> - Adjustments to make checkpatch clean (-ENOSYS, line over 80 char)
> 
> This patch applies on top of Linux 5.3-rc8
> SHA1: f74c2bb98776e2de508f4d607cd519873065118e
> ---
>  drivers/mfd/mc13xxx-core.c  | 98 ++++++++++++++++++++++++++++++++++++-
>  include/linux/mfd/mc34708.h | 37 ++++++++++++++
>  2 files changed, 133 insertions(+), 2 deletions(-)
>  create mode 100644 include/linux/mfd/mc34708.h

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708
  2019-10-01  8:19     ` Lukasz Majewski
@ 2019-10-04 14:07       ` Lee Jones
  0 siblings, 0 replies; 10+ messages in thread
From: Lee Jones @ 2019-10-04 14:07 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: linux-kernel, Dmitry Torokhov, Sascha Hauer, Enrico Weigelt,
	Kate Stewart, linux-input, Greg Kroah-Hartman

On Tue, 01 Oct 2019, Lukasz Majewski wrote:
> > On Mon, 30 Sep 2019, Lukasz Majewski wrote:
> > 
> > > Dear Lee,
> > >   
> > > > This patch set provides several enhancements to mc13xxx MFD family
> > > > of devices by introducing mc34708 as a separate device.
> > > > 
> > > > This IC has dedicated pen detection feature, which allows better
> > > > touchscreen experience.
> > > > 
> > > > This is the fifth version of this code (v5).
> > > > Discussion regarding previous versions can be found here:
> > > > https://lkml.org/lkml/2018/4/12/351
> > > > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1661934.html
> > > > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1664296.html
> > > > https://lkml.org/lkml/2019/7/17/705  
> > > 
> > > Gentle ping on this patch series. It is now 3 weeks without any
> > > reply...  
> > 
> > Please take note and follow the kernel release cycle.
> > 
> > These patches were sent after the release of -rc7 i.e. very late
> > in the release cycle and a point where most kernel maintainers stop
> > reviewing/applying patches
> 
> Maybe something has changed recently, but I thought that the review is
> an ongoing process (that the discussion about patches takes place all
> the time to refine the code).
> 
> (and nobody expects maintainers pulling new patches after merge window).

Nothing changed recently.  Some maintainers will review just before
and during the merge windows, others use the time to prepare their
branches for submission and welcome the break from reviewing during
this time.  Either way, please do not *expect* a fast turn-around
during in this period of the cycle.

> > and start to prepare for the impending
> > merge-window.
> > 
> > Also, there is no such thing as a gentle ping.
> 
> I'm a bit puzzled now. 
> I do know that maintainers are overworked - and I do understand that.
> 
> However, NO reply for such a long time is at best confusing for
> somebody who is willing to fix the kernel.

If you respect the merge cycle, you will come to expect a short delay
at the end and during the merge-window.  Please also understand that
Maintainers also take vacation, attend conferences and have other work
to attend to.

> (Maybe this has changed too - but I do remember that there was a "rule
> of thumb" to express any comment about the patch in 2 weeks time).

Same rule of thumb applies.  If after 2 weeks you have not received a
review, feel free to send a [RESEND].  However, bumping threads with
contentless pings is considered bad form.

As an aside, I (and others) conduct reviews in batches and in
chronological order (first come, first served) of how the mails are
represented in my inbox.  Thus, if you bump a thread, it goes to the
back of the queue.

> >  If you genuinely think
> > your patches have unlikely("slipped though the gaps"), then post a
> > [RESEND] complete with a note alluding your reasons doing such.
> > 
> 
> Please forgive me, but are patches from this series eligible for pulling
> (to v5.4 or even next release)?

v5.4-rc1 has already been released.  No new functionality will hit
v5.4.  We have around 6-7 weeks to agree on acceptance for this set
for them to be eligible for v5.5.

> > > > Sascha Hauer (3):
> > > >   mfd: mc13xxx: Add mc34708 adc support
> > > >   input: touchscreen mc13xxx: Make platform data optional
> > > >   input: touchscreen mc13xxx: Add mc34708 support
> > > > 
> > > >  drivers/input/touchscreen/mc13783_ts.c | 63 ++++++++++++++---
> > > >  drivers/mfd/mc13xxx-core.c             | 98
> > > > +++++++++++++++++++++++++- include/linux/mfd/mc34708.h
> > > > | 37 ++++++++++ 3 files changed, 185 insertions(+), 13
> > > > deletions(-) create mode 100644 include/linux/mfd/mc34708.h  

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

end of thread, other threads:[~2019-10-04 14:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-09 21:44 [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
2019-09-09 21:44 ` [PATCH v5 1/3] mfd: mc13xxx: Add mc34708 adc support Lukasz Majewski
2019-10-04 13:58   ` Lee Jones
2019-09-09 21:44 ` [PATCH v5 2/3] input: touchscreen mc13xxx: Make platform data optional Lukasz Majewski
2019-09-09 21:44 ` [PATCH v5 3/3] input: touchscreen mc13xxx: Add mc34708 support Lukasz Majewski
2019-09-30  7:51 ` [PATCH v5 0/3] mfd: mc13xxx: Fixes and enhancements for NXP's mc34708 Lukasz Majewski
2019-09-30  8:21   ` Greg Kroah-Hartman
2019-10-01  6:41   ` Lee Jones
2019-10-01  8:19     ` Lukasz Majewski
2019-10-04 14:07       ` Lee Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).