diff --git a/touch_gpio.c b/touch_gpio.c
index a8137b72a5d0953d15b3b462ea373bd99e7ddf06..4bcbfc0d42f12a7d1c5d3ac6c219e17961d22478 100644
--- a/touch_gpio.c
+++ b/touch_gpio.c
@@ -91,6 +91,8 @@ static int request_gpios(struct touch_gpio * gpios)
 	if (gpio_is_valid(gpios->irq_pin)) {
 		// request the gpio
 		error = devm_gpio_request_one(dev, gpios->irq_pin, GPIOF_IN, dev_name(dev));
+		trace_printk("devm_gpio_request_on error: %d - irq_pin: %d\n", error, gpios->irq_pin);
+
 		if (error) {
 			dev_err(dev, "Failed to request GPIO %d as irq pin, error %d\n", gpios->irq_pin, error);
 			gpios->irq_pin = -EINVAL;
@@ -294,10 +296,18 @@ struct touch_gpio * touch_gpio_read_from_dt( struct device *dev, int  usage)
 	}
 	if( usage & irq_mandatory )
 	{
+		trace_printk("irq_pin: %d\n", gpios->irq_pin);
+
 		// Read the irq gpio from dt, allow both irq-gpios and irq-gpio
 		gpios->irq_pin = of_get_named_gpio(np, "irq-gpios", 0);
+
+		trace_printk("irq_pin: %d\n", gpios->irq_pin);
+
 		if (!gpio_is_valid(gpios->irq_pin)) {
 			gpios->irq_pin = of_get_named_gpio(np, "irq-gpio", 0);
+
+			trace_printk("irq_pin: %d\n", gpios->irq_pin);
+
 			if (!gpio_is_valid(gpios->irq_pin)) {
 				error = gpios->irq_pin;
 				gpios->irq_pin = -EINVAL;	
@@ -310,6 +320,8 @@ struct touch_gpio * touch_gpio_read_from_dt( struct device *dev, int  usage)
 			};
 		};
 
+		trace_printk("irq_pin: %d\n", gpios->irq_pin);
+
 		/* Zusätzlich oder alternativ oder nur
 		if( 0 == of_property_read_u32_index( np, "interrupts", 1, &i))
 			p_egalax_i2c_dev->irq_flags = i;
@@ -320,15 +332,22 @@ struct touch_gpio * touch_gpio_read_from_dt( struct device *dev, int  usage)
 		}
 
 	}
+
+	trace_printk("irq_flags #1: %d\n", gpios->irq_flags);
+
 	if( 0 != of_property_read_u32( np, "irq-flags", &gpios->irq_flags))
 	{
 		if(gpios->irq_low_active )
 		{
+			trace_printk("Set low trigger\n");
 			gpios->irq_flags = IRQF_TRIGGER_LOW;
 		}else{
+			trace_printk("Set high trigger\n");
 			gpios->irq_flags = IRQF_TRIGGER_HIGH;
 		}
 	}
+
+	trace_printk("irq_flags #2: %d\n", gpios->irq_flags);
 	
 	error = request_gpios(gpios);
 	dev_dbg(dev, "gpios initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
@@ -349,6 +368,7 @@ EXPORT_SYMBOL(touch_gpio_read_from_dt);
 
 int touch_gpio_get_irq_flags ( const struct touch_gpio * gpios)
 {
+	trace_printk("irq_flags: %d\n", gpios->irq_flags);
 	return gpios->irq_flags;
 }
 EXPORT_SYMBOL(touch_gpio_get_irq_flags);
@@ -368,6 +388,8 @@ void touch_gpio_reset_out ( const struct touch_gpio * gpios, bool state )
 	if(gpios->reset_low_active)
 		pin_state=!pin_state;
 
+	trace_printk("pin_state: %d\n", pin_state);
+
 	gpio_set_value_cansleep(gpios->reset_pin, pin_state);
 }
 EXPORT_SYMBOL(touch_gpio_reset_out);
@@ -411,7 +433,8 @@ EXPORT_SYMBOL(touch_gpio_wake_out);
 /* Returns true if irq pin is active, false if it is not active */
 bool touch_gpio_get_irq_state ( const struct touch_gpio * gpios)
 {
-	int pin_state;
+	int pin_state, pin_state_out;
+
 	if (!gpio_is_valid(gpios->irq_pin)) {
 		if(!(gpios->usage & irq_optional))
 			pr_err("irq gpio is invalid\n");
@@ -421,9 +444,13 @@ bool touch_gpio_get_irq_state ( const struct touch_gpio * gpios)
 	pin_state = gpio_get_value_cansleep(gpios->irq_pin);
 
 	if(gpios->irq_low_active)
-		pin_state=!pin_state;
+		pin_state_out=!pin_state;
+	else
+		pin_state_out=pin_state;
+
+	trace_printk("pin_state: %d / %d\n", pin_state, pin_state_out);
 
-	return pin_state==0 ? false : true;
+	return pin_state_out==0 ? false : true;
 }
 EXPORT_SYMBOL(touch_gpio_get_irq_state);