Skip to content

GigaDisplayTouch - issues with the gt911 object and defer-init #488

@KurtE

Description

@KurtE

I was trying to get the GigaDisplay shield touch code working again with the current ArduinoCore-zephyr
and went into the zephyr branch of the Arduino_GigaDisplayTouch project and added in the call
(void)zephyr::arduino::init_dev_apply_pinctrl(dev);
arduino-libraries/Arduino_GigaDisplayTouch#18

And it still did not work the issue appears to be with the giga device tree overlay file contained within the variant has:

&i2c4 {
	status = "okay";
	zephyr,deferred-init;
	gc2145: gc2145@3c {
		compatible = "galaxycore,gc2145";
		reg = <0x3c>;
		zephyr,deferred-init;
		reset-gpios = <&gpiod 4 GPIO_ACTIVE_LOW>;
		pwdn-gpios = <&gpioa 1 GPIO_ACTIVE_LOW>;

		port {
			gc2145_ep_out: endpoint {
				remote-endpoint-label = "dcmi_ep_in";
			};
		};
	};
}

But the display Device tree information is defined within zephyr in the boards/shields/arduino_giga_display_shield
under boards and the giga and is currently defined as:

&i2c4 {
	pinctrl-0 = <&i2c4_scl_pb6 &i2c4_sda_ph12>;
	pinctrl-names = "default";
	clock-frequency = <I2C_BITRATE_FAST>;
	status = "okay";

	gt911: gt911@5d {
		compatible = "goodix,gt911";
		reg = <0x5d>;
		alt-addr = <0x14>;
		reset-gpios = <&gpioi 2 GPIO_ACTIVE_LOW>;
		irq-gpios = <&gpioi 1 GPIO_ACTIVE_HIGH>;
	};
};

So in the device tree the I2c4 object is deferred-init but the gt911 object is not that relies on it.
I was able to get touch to work again by marking it here under zephyr as deferred-init.

Question is, do you want to change it at that level? Or in the variant? But what if you have different
variant that does not include the shield?

EDIT: Can be closed after these are merged:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions