Thread (22 messages) 22 messages, 7 authors, 2021-12-23

Re: [PATCH v2 1/4] Input: Add driver for Cypress Generation 5 touchscreen

From: Andreas Kemnade <andreas@kemnade.info>
Date: 2021-11-05 15:01:59
Also in: linux-arm-kernel, linux-devicetree, lkml

On Wed,  3 Nov 2021 21:48:27 +1000
Alistair Francis [off-list ref] wrote:

[...]
+static int cyttsp5_probe(struct device *dev, struct regmap *regmap, int irq,
+			 const char *name)
+{
+	struct cyttsp5 *ts;
+	struct cyttsp5_sysinfo *si;
+	int rc = 0, i;
+
+	ts = devm_kzalloc(dev, sizeof(*ts), GFP_KERNEL);
+	if (!ts)
+		return -ENOMEM;
+
+	/* Initialize device info */
+	ts->regmap = regmap;
+	ts->dev = dev;
+	si = &ts->sysinfo;
+	dev_set_drvdata(dev, ts);
+
+	/* Initialize mutexes and spinlocks */
+	mutex_init(&ts->system_lock);
+
+	/* Initialize wait queue */
+	init_waitqueue_head(&ts->wait_q);
+
+	/* Power up the device */
+	ts->vdd = regulator_get(dev, "vdd");
+	if (IS_ERR(ts->vdd)) {
+		rc = PTR_ERR(ts->vdd);
+		dev_set_drvdata(dev, NULL);
+		kfree(ts);
+		return rc;
+	}
+
+	rc = regulator_enable(ts->vdd);
+	if (rc) {
+		regulator_put(ts->vdd);
+		dev_set_drvdata(dev, NULL);
+		kfree(ts);
+		return rc;
+	}
+
+	/* Reset the gpio to be in a reset state */
+	ts->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
        so we deassert reset for
+	if (IS_ERR(ts->reset_gpio)) {
+		rc = PTR_ERR(ts->reset_gpio);	
+		dev_err(dev, "Failed to request reset gpio, error %d\n", rc);
+		return rc;
+	}
	
	almost no time 
+	gpiod_set_value(ts->reset_gpio, 1);
        and then assert it, keeping the chip in reset
+
+	/* Need a delay to have device up */
+	msleep(20);
+
	and why it should wake up?

	I reversed the logic here to test. I have 

        reset-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;

	in my tests.
+	rc = devm_request_threaded_irq(dev, irq, NULL, cyttsp5_handle_irq,
+				       IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+				       name, ts);
        falling or level low (according to the example in the
        dt schema)?	

Regards,
Andreas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help