* [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver
@ 2026-03-11 15:54 Bartholomäus Steinmayr
2026-03-12 8:30 ` Michael Walle
0 siblings, 1 reply; 4+ messages in thread
From: Bartholomäus Steinmayr @ 2026-03-11 15:54 UTC (permalink / raw)
To: mwalle@kernel.org, dri-devel@lists.freedesktop.org
Hi,
this patch series adds support for the Densitron DMT050WVNMCMI-1A panel
to the ILI9806E DSI driver. The patch mainly contains initialization
code for the panel.
However, the display also has a peculiarity which required some more
changes to the driver. The display contains a Goodix GT911 touchpanel
controller. The GT911 and ILI9806E share a single reset line. The i2c
address of the GT911 chip is set by manipulating an IO line during
reset. This is already handled by the existing GT911 driver, but it
means that the reset line MUST be controlled by the Goodix driver
(drivers/input/touchscreen/goodix.c). The ILI9806E should defer its
probing until the Goodix driver has completed its reset. The ILI9806E
should then probe with asserting the reset line.
To achieve this, this patch adds an optional dt node "i2c-frag" to the
ILI9806E driver. If this node exists, the Ilitek driver defers its
probing until the i2c node has been initialized. Furthermore, the
reset-gpios property has been made optional. To keep the Ilitek driver
from asserting the reset line, the reset-gpios property should be left
out for the DMT050 display.
This solution does not seem particularly elegant, but I could not find a
more straight-forward one. This is also my first kernel patch, so I
appreciate your patience.
Thank you.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver
2026-03-11 15:54 [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver Bartholomäus Steinmayr
@ 2026-03-12 8:30 ` Michael Walle
0 siblings, 0 replies; 4+ messages in thread
From: Michael Walle @ 2026-03-12 8:30 UTC (permalink / raw)
To: Bartholomäus Steinmayr, dri-devel@lists.freedesktop.org
Cc: Saravana Kannan
[-- Attachment #1: Type: text/plain, Size: 2645 bytes --]
Hi,
[+ Saravana]
On Wed Mar 11, 2026 at 4:54 PM CET, Bartholomäus Steinmayr wrote:
> this patch series adds support for the Densitron DMT050WVNMCMI-1A panel
> to the ILI9806E DSI driver. The patch mainly contains initialization
> code for the panel.
>
> However, the display also has a peculiarity which required some more
> changes to the driver. The display contains a Goodix GT911 touchpanel
> controller. The GT911 and ILI9806E share a single reset line. The i2c
> address of the GT911 chip is set by manipulating an IO line during
> reset. This is already handled by the existing GT911 driver, but it
> means that the reset line MUST be controlled by the Goodix driver
> (drivers/input/touchscreen/goodix.c). The ILI9806E should defer its
> probing until the Goodix driver has completed its reset. The ILI9806E
> should then probe with asserting the reset line.
I see. This explanation should definitely go into the commit message
of the second patch.
So basically, you 'just' need to have the driver for the touch panel
probed first. I'm not really sure you can just move the reset line
to the touch controller or if it has to be shared between both.
Also, what happens if the dsi panel is turned off, which right now,
would assert the reset line.
I think device-links is what you need ([1], maybe
Documentation/driver-api/device_link.rst). IIRC they get added
automatically by parsing the device tree. So you might just need a
phandle pointint to the goodix touchscreen driver, to have it probed
first. But there is probably more you'd need to handle the "turn the
DSI display off and on again" case.
I'd start by adding a phandle called "touch-controller" to the panel
node (similar to your i2c-frag I think).
> To achieve this, this patch adds an optional dt node "i2c-frag" to the
> ILI9806E driver. If this node exists, the Ilitek driver defers its
> probing until the i2c node has been initialized. Furthermore, the
> reset-gpios property has been made optional. To keep the Ilitek driver
> from asserting the reset line, the reset-gpios property should be left
> out for the DMT050 display.
Any devicetree bindings (i2c-frag, optional reset) have to be
documented in the corresponding binding, i.e. see your first patch.
> This solution does not seem particularly elegant, but I could not find a
> more straight-forward one. This is also my first kernel patch, so I
> appreciate your patience.
Thanks for joining the linux kernel community and don't worry.
-michael
[1] https://lore.kernel.org/all/20190731221721.187713-1-saravanak@google.com/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver
@ 2026-03-12 8:37 Michael Walle
2026-03-13 7:35 ` Bartholomäus Steinmayr
0 siblings, 1 reply; 4+ messages in thread
From: Michael Walle @ 2026-03-12 8:37 UTC (permalink / raw)
To: Bartholomäus Steinmayr, dri-devel; +Cc: Saravana Kannan
[-- Attachment #1: Type: text/plain, Size: 2702 bytes --]
Hi,
[now with Saravana's correct mail, sorry for the noise]
[+ Saravana]
On Wed Mar 11, 2026 at 4:54 PM CET, Bartholomäus Steinmayr wrote:
> this patch series adds support for the Densitron DMT050WVNMCMI-1A panel
> to the ILI9806E DSI driver. The patch mainly contains initialization
> code for the panel.
>
> However, the display also has a peculiarity which required some more
> changes to the driver. The display contains a Goodix GT911 touchpanel
> controller. The GT911 and ILI9806E share a single reset line. The i2c
> address of the GT911 chip is set by manipulating an IO line during
> reset. This is already handled by the existing GT911 driver, but it
> means that the reset line MUST be controlled by the Goodix driver
> (drivers/input/touchscreen/goodix.c). The ILI9806E should defer its
> probing until the Goodix driver has completed its reset. The ILI9806E
> should then probe with asserting the reset line.
I see. This explanation should definitely go into the commit message
of the second patch.
So basically, you 'just' need to have the driver for the touch panel
probed first. I'm not really sure you can just move the reset line
to the touch controller or if it has to be shared between both.
Also, what happens if the dsi panel is turned off, which right now,
would assert the reset line.
I think device-links is what you need ([1], maybe
Documentation/driver-api/device_link.rst). IIRC they get added
automatically by parsing the device tree. So you might just need a
phandle pointint to the goodix touchscreen driver, to have it probed
first. But there is probably more you'd need to handle the "turn the
DSI display off and on again" case.
I'd start by adding a phandle called "touch-controller" to the panel
node (similar to your i2c-frag I think).
> To achieve this, this patch adds an optional dt node "i2c-frag" to the
> ILI9806E driver. If this node exists, the Ilitek driver defers its
> probing until the i2c node has been initialized. Furthermore, the
> reset-gpios property has been made optional. To keep the Ilitek driver
> from asserting the reset line, the reset-gpios property should be left
> out for the DMT050 display.
Any devicetree bindings (i2c-frag, optional reset) have to be
documented in the corresponding binding, i.e. see your first patch.
> This solution does not seem particularly elegant, but I could not find a
> more straight-forward one. This is also my first kernel patch, so I
> appreciate your patience.
Thanks for joining the linux kernel community and don't worry.
-michael
[1] https://lore.kernel.org/all/20190731221721.187713-1-saravanak@google.com/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver
2026-03-12 8:37 Michael Walle
@ 2026-03-13 7:35 ` Bartholomäus Steinmayr
0 siblings, 0 replies; 4+ messages in thread
From: Bartholomäus Steinmayr @ 2026-03-13 7:35 UTC (permalink / raw)
To: Michael Walle, dri-devel@lists.freedesktop.org; +Cc: Saravana Kannan
> Hi,
>
> [now with Saravana's correct mail, sorry for the noise] [+ Saravana]
>
> On Wed Mar 11, 2026 at 4:54 PM CET, Bartholomäus Steinmayr wrote:
>> this patch series adds support for the Densitron DMT050WVNMCMI-1A
>> panel to the ILI9806E DSI driver. The patch mainly contains
>> initialization code for the panel.
>>
>> However, the display also has a peculiarity which required some more
>> changes to the driver. The display contains a Goodix GT911 touchpanel
>> controller. The GT911 and ILI9806E share a single reset line. The i2c
>> address of the GT911 chip is set by manipulating an IO line during
>> reset. This is already handled by the existing GT911 driver, but it
>> means that the reset line MUST be controlled by the Goodix driver
>> (drivers/input/touchscreen/goodix.c). The ILI9806E should defer its
>> probing until the Goodix driver has completed its reset. The ILI9806E
>> should then probe with asserting the reset line.
>
> I see. This explanation should definitely go into the commit message of the second patch.
>
> So basically, you 'just' need to have the driver for the touch panel probed first. I'm not really sure you can just move the reset line to the touch controller or if it has to be shared between both.
> Also, what happens if the dsi panel is turned off, which right now, would assert the reset line.
>
> I think device-links is what you need ([1], maybe Documentation/driver-api/device_link.rst). IIRC they get added automatically by parsing the device tree. So you might just need a phandle pointint to the goodix touchscreen driver, to have it probed first. But there is probably more you'd need to handle the "turn the DSI display off and on again" case.
> I'd start by adding a phandle called "touch-controller" to the panel node (similar to your i2c-frag I think).
Thank you for the review and suggestions!
I will try to find a better solution and amend this thread. This might take a while, we currently have a rather tight product development schedule and the current, hacky solution works.
>> To achieve this, this patch adds an optional dt node "i2c-frag" to the
>> ILI9806E driver. If this node exists, the Ilitek driver defers its
>> probing until the i2c node has been initialized. Furthermore, the
>> reset-gpios property has been made optional. To keep the Ilitek driver
>> from asserting the reset line, the reset-gpios property should be left
>> out for the DMT050 display.
>
> Any devicetree bindings (i2c-frag, optional reset) have to be documented in the corresponding binding, i.e. see your first patch.
>
>> This solution does not seem particularly elegant, but I could not find
>> a more straight-forward one. This is also my first kernel patch, so I
>> appreciate your patience.
>
> Thanks for joining the linux kernel community and don't worry.
>
> -michael
>
> [1] https://lore.kernel.org/all/20190731221721.187713-1-saravanak@google.com/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-03-13 7:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-11 15:54 [PATCH 0/2] ili9806e: Add Densitron DMT050WVNMCMI-1A to ILI9806E DSI driver Bartholomäus Steinmayr
2026-03-12 8:30 ` Michael Walle
-- strict thread matches above, loose matches on Subject: below --
2026-03-12 8:37 Michael Walle
2026-03-13 7:35 ` Bartholomäus Steinmayr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox