* [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek @ 2026-01-12 23:44 Marek Vasut 2026-01-12 23:44 ` [PATCH 2/2] Input: ili210x - add support for polling mode Marek Vasut 2026-01-13 16:35 ` [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Frank Li 0 siblings, 2 replies; 8+ messages in thread From: Marek Vasut @ 2026-01-12 23:44 UTC (permalink / raw) To: linux-input Cc: Marek Vasut, Conor Dooley, Dmitry Torokhov, Frank Li, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc The old Ilitek touch controllers V3 and V6 can operate without interrupt line, in polling mode. Drop the 'interrupts' property requirement for those four controllers. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> --- Cc: Conor Dooley <conor+dt@kernel.org> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Frank Li <Frank.Li@nxp.com> Cc: Job Noorman <job@noorman.info> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Cc: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org --- .../input/touchscreen/trivial-touch.yaml | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml b/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml index fa27c6754ca4e..a2145a62f9723 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml +++ b/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml @@ -57,13 +57,25 @@ properties: wakeup-source: true -allOf: - - $ref: touchscreen.yaml - required: - compatible - reg - - interrupts + +allOf: + - $ref: touchscreen.yaml + - if: + not: + properties: + compatible: + contains: + enum: + - ilitek,ili210x + - ilitek,ili2117 + - ilitek,ili2120 + - ilitek,ili251x + then: + required: + - interrupts unevaluatedProperties: false -- 2.51.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] Input: ili210x - add support for polling mode 2026-01-12 23:44 [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Marek Vasut @ 2026-01-12 23:44 ` Marek Vasut 2026-01-13 16:41 ` Frank Li 2026-01-13 16:35 ` [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Frank Li 1 sibling, 1 reply; 8+ messages in thread From: Marek Vasut @ 2026-01-12 23:44 UTC (permalink / raw) To: linux-input Cc: Marek Vasut, Conor Dooley, Dmitry Torokhov, Frank Li, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc There are designs incorporating Ilitek ILI2xxx touch controller that do not connect interrupt pin, for example Waveshare 13.3" DSI display. To support such systems use polling mode for the input device when I2C client does not have interrupt assigned to it. Factor out ili210x_firmware_update_noirq() to allow conditional scoped guard around this code. The scoped guard has to be applied only in case the IRQ line is connected, and not applied otherwise. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> --- Cc: Conor Dooley <conor+dt@kernel.org> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Frank Li <Frank.Li@nxp.com> Cc: Job Noorman <job@noorman.info> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Cc: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org --- drivers/input/touchscreen/ili210x.c | 84 ++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 24 deletions(-) diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c index fa38d70aded7b..3220848a4b843 100644 --- a/drivers/input/touchscreen/ili210x.c +++ b/drivers/input/touchscreen/ili210x.c @@ -327,9 +327,8 @@ static bool ili210x_report_events(struct ili210x *priv, u8 *touchdata) return contact; } -static irqreturn_t ili210x_irq(int irq, void *irq_data) +static void ili210x_process_events(struct ili210x *priv) { - struct ili210x *priv = irq_data; struct i2c_client *client = priv->client; const struct ili2xxx_chip *chip = priv->chip; u8 touchdata[ILI210X_DATA_SIZE] = { 0 }; @@ -356,8 +355,22 @@ static irqreturn_t ili210x_irq(int irq, void *irq_data) usleep_range(time_delta, time_delta + 1000); } } while (!priv->stop && keep_polling); +} + +static irqreturn_t ili210x_irq(int irq, void *irq_data) +{ + struct ili210x *priv = irq_data; + + ili210x_process_events(priv); return IRQ_HANDLED; +}; + +static void ili210x_work_i2c_poll(struct input_dev *input) +{ + struct ili210x *priv = input_get_drvdata(input); + + ili210x_process_events(priv); } static int ili251x_firmware_update_resolution(struct device *dev) @@ -829,12 +842,32 @@ static int ili210x_do_firmware_update(struct ili210x *priv, return 0; } +static ssize_t ili210x_firmware_update_noirq(struct device *dev, + const u8 *fwbuf, u16 ac_end, u16 df_end) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ili210x *priv = i2c_get_clientdata(client); + const char *fwname = ILI251X_FW_FILENAME; + int error; + + dev_dbg(dev, "Firmware update started, firmware=%s\n", fwname); + + ili210x_hardware_reset(priv->reset_gpio); + + error = ili210x_do_firmware_update(priv, fwbuf, ac_end, df_end); + + ili210x_hardware_reset(priv->reset_gpio); + + dev_dbg(dev, "Firmware update ended, error=%i\n", error); + + return error; +} + static ssize_t ili210x_firmware_update_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct i2c_client *client = to_i2c_client(dev); - struct ili210x *priv = i2c_get_clientdata(client); const char *fwname = ILI251X_FW_FILENAME; u16 ac_end, df_end; int error; @@ -860,16 +893,12 @@ static ssize_t ili210x_firmware_update_store(struct device *dev, * the touch controller to disable the IRQs during update, so we have * to do it this way here. */ - scoped_guard(disable_irq, &client->irq) { - dev_dbg(dev, "Firmware update started, firmware=%s\n", fwname); - - ili210x_hardware_reset(priv->reset_gpio); - - error = ili210x_do_firmware_update(priv, fwbuf, ac_end, df_end); - - ili210x_hardware_reset(priv->reset_gpio); - - dev_dbg(dev, "Firmware update ended, error=%i\n", error); + if (!client->irq) { + scoped_guard(disable_irq, &client->irq) { + error = ili210x_firmware_update_noirq(dev, fwbuf, ac_end, df_end); + } + } else { + error = ili210x_firmware_update_noirq(dev, fwbuf, ac_end, df_end); } return error ?: count; @@ -947,11 +976,6 @@ static int ili210x_i2c_probe(struct i2c_client *client) return -ENODEV; } - if (client->irq <= 0) { - dev_err(dev, "No IRQ!\n"); - return -EINVAL; - } - reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(reset_gpio)) return PTR_ERR(reset_gpio); @@ -1003,12 +1027,24 @@ static int ili210x_i2c_probe(struct i2c_client *client) return error; } - error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, - IRQF_ONESHOT, client->name, priv); - if (error) { - dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", - error); - return error; + input_set_drvdata(input, priv); + + if (client->irq) { + error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, + IRQF_ONESHOT, client->name, priv); + if (error) { + dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", + error); + return error; + } + } else { + error = input_setup_polling(input, ili210x_work_i2c_poll); + if (error) { + dev_err(dev, "Could not set up polling mode, err: %d\n", + error); + return error; + } + input_set_poll_interval(input, ILI2XXX_POLL_PERIOD); } error = devm_add_action_or_reset(dev, ili210x_stop, priv); -- 2.51.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Input: ili210x - add support for polling mode 2026-01-12 23:44 ` [PATCH 2/2] Input: ili210x - add support for polling mode Marek Vasut @ 2026-01-13 16:41 ` Frank Li 2026-01-14 9:37 ` Geert Uytterhoeven 2026-01-15 2:10 ` Marek Vasut 0 siblings, 2 replies; 8+ messages in thread From: Frank Li @ 2026-01-13 16:41 UTC (permalink / raw) To: Marek Vasut Cc: linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc On Tue, Jan 13, 2026 at 12:44:57AM +0100, Marek Vasut wrote: > There are designs incorporating Ilitek ILI2xxx touch controller that > do not connect interrupt pin, for example Waveshare 13.3" DSI display. > To support such systems use polling mode for the input device when I2C > client does not have interrupt assigned to it. > > Factor out ili210x_firmware_update_noirq() to allow conditional scoped > guard around this code. The scoped guard has to be applied only in case > the IRQ line is connected, and not applied otherwise. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> > --- > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Cc: Frank Li <Frank.Li@nxp.com> > Cc: Job Noorman <job@noorman.info> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> > Cc: Rob Herring <robh@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-input@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-renesas-soc@vger.kernel.org > --- > drivers/input/touchscreen/ili210x.c | 84 ++++++++++++++++++++--------- > 1 file changed, 60 insertions(+), 24 deletions(-) > > diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c > index fa38d70aded7b..3220848a4b843 100644 > --- a/drivers/input/touchscreen/ili210x.c > +++ b/drivers/input/touchscreen/ili210x.c > @@ -327,9 +327,8 @@ static bool ili210x_report_events(struct ili210x *priv, u8 *touchdata) > return contact; > } > > -static irqreturn_t ili210x_irq(int irq, void *irq_data) > +static void ili210x_process_events(struct ili210x *priv) > { > - struct ili210x *priv = irq_data; > struct i2c_client *client = priv->client; > const struct ili2xxx_chip *chip = priv->chip; > u8 touchdata[ILI210X_DATA_SIZE] = { 0 }; > @@ -356,8 +355,22 @@ static irqreturn_t ili210x_irq(int irq, void *irq_data) > usleep_range(time_delta, time_delta + 1000); > } > } while (!priv->stop && keep_polling); > +} > + > +static irqreturn_t ili210x_irq(int irq, void *irq_data) > +{ > + struct ili210x *priv = irq_data; > + > + ili210x_process_events(priv); > > return IRQ_HANDLED; > +}; > + > +static void ili210x_work_i2c_poll(struct input_dev *input) > +{ > + struct ili210x *priv = input_get_drvdata(input); > + > + ili210x_process_events(priv); > } > > static int ili251x_firmware_update_resolution(struct device *dev) > @@ -829,12 +842,32 @@ static int ili210x_do_firmware_update(struct ili210x *priv, > return 0; > } > > +static ssize_t ili210x_firmware_update_noirq(struct device *dev, > + const u8 *fwbuf, u16 ac_end, u16 df_end) > +{ > + struct i2c_client *client = to_i2c_client(dev); > + struct ili210x *priv = i2c_get_clientdata(client); > + const char *fwname = ILI251X_FW_FILENAME; > + int error; > + > + dev_dbg(dev, "Firmware update started, firmware=%s\n", fwname); > + > + ili210x_hardware_reset(priv->reset_gpio); > + > + error = ili210x_do_firmware_update(priv, fwbuf, ac_end, df_end); > + > + ili210x_hardware_reset(priv->reset_gpio); > + > + dev_dbg(dev, "Firmware update ended, error=%i\n", error); > + > + return error; > +} > + > static ssize_t ili210x_firmware_update_store(struct device *dev, > struct device_attribute *attr, > const char *buf, size_t count) > { > struct i2c_client *client = to_i2c_client(dev); > - struct ili210x *priv = i2c_get_clientdata(client); > const char *fwname = ILI251X_FW_FILENAME; > u16 ac_end, df_end; > int error; > @@ -860,16 +893,12 @@ static ssize_t ili210x_firmware_update_store(struct device *dev, > * the touch controller to disable the IRQs during update, so we have > * to do it this way here. > */ > - scoped_guard(disable_irq, &client->irq) { > - dev_dbg(dev, "Firmware update started, firmware=%s\n", fwname); > - > - ili210x_hardware_reset(priv->reset_gpio); > - > - error = ili210x_do_firmware_update(priv, fwbuf, ac_end, df_end); > - > - ili210x_hardware_reset(priv->reset_gpio); > - > - dev_dbg(dev, "Firmware update ended, error=%i\n", error); > + if (!client->irq) { > + scoped_guard(disable_irq, &client->irq) { > + error = ili210x_firmware_update_noirq(dev, fwbuf, ac_end, df_end); > + } > + } else { > + error = ili210x_firmware_update_noirq(dev, fwbuf, ac_end, df_end); > } > > return error ?: count; > @@ -947,11 +976,6 @@ static int ili210x_i2c_probe(struct i2c_client *client) > return -ENODEV; > } > > - if (client->irq <= 0) { > - dev_err(dev, "No IRQ!\n"); > - return -EINVAL; > - } > - > reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); > if (IS_ERR(reset_gpio)) > return PTR_ERR(reset_gpio); > @@ -1003,12 +1027,24 @@ static int ili210x_i2c_probe(struct i2c_client *client) > return error; > } > > - error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, > - IRQF_ONESHOT, client->name, priv); > - if (error) { > - dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", > - error); > - return error; > + input_set_drvdata(input, priv); > + > + if (client->irq) { 0 is validated irq number https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L284 if (irq < 0) But it is strange that touch don't connect irq line althougth it works, touch generally is wakeup source of system. Frank > + error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, > + IRQF_ONESHOT, client->name, priv); > + if (error) { > + dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", > + error); > + return error; > + } > + } else { > + error = input_setup_polling(input, ili210x_work_i2c_poll); > + if (error) { > + dev_err(dev, "Could not set up polling mode, err: %d\n", > + error); > + return error; > + } > + input_set_poll_interval(input, ILI2XXX_POLL_PERIOD); > } > > error = devm_add_action_or_reset(dev, ili210x_stop, priv); > -- > 2.51.0 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Input: ili210x - add support for polling mode 2026-01-13 16:41 ` Frank Li @ 2026-01-14 9:37 ` Geert Uytterhoeven 2026-01-14 15:12 ` Frank Li 2026-01-15 2:10 ` Marek Vasut 1 sibling, 1 reply; 8+ messages in thread From: Geert Uytterhoeven @ 2026-01-14 9:37 UTC (permalink / raw) To: Frank Li Cc: Marek Vasut, linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc Hi Frank, On Tue, 13 Jan 2026 at 17:41, Frank Li <Frank.li@nxp.com> wrote: > On Tue, Jan 13, 2026 at 12:44:57AM +0100, Marek Vasut wrote: > > There are designs incorporating Ilitek ILI2xxx touch controller that > > do not connect interrupt pin, for example Waveshare 13.3" DSI display. > > To support such systems use polling mode for the input device when I2C > > client does not have interrupt assigned to it. > > > > Factor out ili210x_firmware_update_noirq() to allow conditional scoped > > guard around this code. The scoped guard has to be applied only in case > > the IRQ line is connected, and not applied otherwise. > > > > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> > > --- a/drivers/input/touchscreen/ili210x.c > > +++ b/drivers/input/touchscreen/ili210x.c > > @@ -1003,12 +1027,24 @@ static int ili210x_i2c_probe(struct i2c_client *client) > > return error; > > } > > > > - error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, > > - IRQF_ONESHOT, client->name, priv); > > - if (error) { > > - dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", > > - error); > > - return error; > > + input_set_drvdata(input, priv); > > + > > + if (client->irq) { > > 0 is validated irq number > > https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L284 Not anymore ;-) https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L299 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Input: ili210x - add support for polling mode 2026-01-14 9:37 ` Geert Uytterhoeven @ 2026-01-14 15:12 ` Frank Li 0 siblings, 0 replies; 8+ messages in thread From: Frank Li @ 2026-01-14 15:12 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Marek Vasut, linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc On Wed, Jan 14, 2026 at 10:37:15AM +0100, Geert Uytterhoeven wrote: > Hi Frank, > > On Tue, 13 Jan 2026 at 17:41, Frank Li <Frank.li@nxp.com> wrote: > > On Tue, Jan 13, 2026 at 12:44:57AM +0100, Marek Vasut wrote: > > > There are designs incorporating Ilitek ILI2xxx touch controller that > > > do not connect interrupt pin, for example Waveshare 13.3" DSI display. > > > To support such systems use polling mode for the input device when I2C > > > client does not have interrupt assigned to it. > > > > > > Factor out ili210x_firmware_update_noirq() to allow conditional scoped > > > guard around this code. The scoped guard has to be applied only in case > > > the IRQ line is connected, and not applied otherwise. > > > > > > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> > > > --- a/drivers/input/touchscreen/ili210x.c > > > +++ b/drivers/input/touchscreen/ili210x.c > > > > @@ -1003,12 +1027,24 @@ static int ili210x_i2c_probe(struct i2c_client *client) > > > return error; > > > } > > > > > > - error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, > > > - IRQF_ONESHOT, client->name, priv); > > > - if (error) { > > > - dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", > > > - error); > > > - return error; > > > + input_set_drvdata(input, priv); > > > + > > > + if (client->irq) { > > > > 0 is validated irq number > > > > https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L284 > > Not anymore ;-) > > https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L299 > > Gr{oetje,eeting}s, Thanks, negative error number on failure It should be if (client->irq > 0) Frank > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Input: ili210x - add support for polling mode 2026-01-13 16:41 ` Frank Li 2026-01-14 9:37 ` Geert Uytterhoeven @ 2026-01-15 2:10 ` Marek Vasut 1 sibling, 0 replies; 8+ messages in thread From: Marek Vasut @ 2026-01-15 2:10 UTC (permalink / raw) To: Frank Li Cc: linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc On 1/13/26 5:41 PM, Frank Li wrote: [...] >> @@ -1003,12 +1027,24 @@ static int ili210x_i2c_probe(struct i2c_client *client) >> return error; >> } >> >> - error = devm_request_threaded_irq(dev, client->irq, NULL, ili210x_irq, >> - IRQF_ONESHOT, client->name, priv); >> - if (error) { >> - dev_err(dev, "Unable to request touchscreen IRQ, err: %d\n", >> - error); >> - return error; >> + input_set_drvdata(input, priv); >> + >> + if (client->irq) { > > 0 is validated irq number > > https://elixir.bootlin.com/linux/v6.19-rc4/source/drivers/base/platform.c#L284 > > if (irq < 0) > > But it is strange that touch don't connect irq line althougth it works, > touch generally is wakeup source of system. Raspi is like that, they poll the touch controllers. It is unfortunate. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek 2026-01-12 23:44 [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Marek Vasut 2026-01-12 23:44 ` [PATCH 2/2] Input: ili210x - add support for polling mode Marek Vasut @ 2026-01-13 16:35 ` Frank Li 2026-01-15 2:09 ` Marek Vasut 1 sibling, 1 reply; 8+ messages in thread From: Frank Li @ 2026-01-13 16:35 UTC (permalink / raw) To: Marek Vasut Cc: linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc On Tue, Jan 13, 2026 at 12:44:56AM +0100, Marek Vasut wrote: > The old Ilitek touch controllers V3 and V6 can operate without > interrupt line, in polling mode. Drop the 'interrupts' property > requirement for those four controllers. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> > --- > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Cc: Frank Li <Frank.Li@nxp.com> > Cc: Job Noorman <job@noorman.info> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> > Cc: Rob Herring <robh@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: linux-input@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-renesas-soc@vger.kernel.org > --- > .../input/touchscreen/trivial-touch.yaml | 20 +++++++++++++++---- > 1 file changed, 16 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml b/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml > index fa27c6754ca4e..a2145a62f9723 100644 > --- a/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml > +++ b/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml > @@ -57,13 +57,25 @@ properties: > > wakeup-source: true > > -allOf: > - - $ref: touchscreen.yaml > - > required: > - compatible > - reg > - - interrupts > + > +allOf: > + - $ref: touchscreen.yaml > + - if: > + not: > + properties: > + compatible: > + contains: > + enum: > + - ilitek,ili210x > + - ilitek,ili2117 > + - ilitek,ili2120 > + - ilitek,ili251x > + then: > + required: > + - interrupts Generally, if there are special requirements, move these to dedicated yaml file to avoid complex if-else in trivial-touch.yaml. Frank > > unevaluatedProperties: false > > -- > 2.51.0 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek 2026-01-13 16:35 ` [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Frank Li @ 2026-01-15 2:09 ` Marek Vasut 0 siblings, 0 replies; 8+ messages in thread From: Marek Vasut @ 2026-01-15 2:09 UTC (permalink / raw) To: Frank Li, Marek Vasut Cc: linux-input, Conor Dooley, Dmitry Torokhov, Job Noorman, Krzysztof Kozlowski, Rob Herring, devicetree, linux-kernel, linux-renesas-soc On 1/13/26 5:35 PM, Frank Li wrote: Hello Frank, >> +++ b/Documentation/devicetree/bindings/input/touchscreen/trivial-touch.yaml >> @@ -57,13 +57,25 @@ properties: >> >> wakeup-source: true >> >> -allOf: >> - - $ref: touchscreen.yaml >> - >> required: >> - compatible >> - reg >> - - interrupts >> + >> +allOf: >> + - $ref: touchscreen.yaml >> + - if: >> + not: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - ilitek,ili210x >> + - ilitek,ili2117 >> + - ilitek,ili2120 >> + - ilitek,ili251x >> + then: >> + required: >> + - interrupts > > Generally, if there are special requirements, move these to dedicated > yaml file to avoid complex if-else in trivial-touch.yaml. Done in V2, thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-01-15 3:19 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-01-12 23:44 [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Marek Vasut 2026-01-12 23:44 ` [PATCH 2/2] Input: ili210x - add support for polling mode Marek Vasut 2026-01-13 16:41 ` Frank Li 2026-01-14 9:37 ` Geert Uytterhoeven 2026-01-14 15:12 ` Frank Li 2026-01-15 2:10 ` Marek Vasut 2026-01-13 16:35 ` [PATCH 1/2] dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek Frank Li 2026-01-15 2:09 ` Marek Vasut
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox