On Wed, Mar 11, 2026 at 01:47:48PM +0100, Konrad Dybcio wrote:
> On 3/10/26 11:49 PM, Dmitry Baryshkov wrote:
> > On Tue, Mar 10, 2026 at 02:08:40PM +0100, Konrad Dybcio wrote:
> >> On 3/8/26 4:52 PM, Cristian Cozzolino via B4 Relay wrote:
> >>> From: Cristian Cozzolino <[email protected]>
> >>>
> >>> This device uses a Goodix GT5688 touch controller, connected to i2c_3.
> >>> Add it to the device tree.
> >>>
> >>> Signed-off-by: Cristian Cozzolino <[email protected]>
> >>> ---
> >>>  .../arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts | 32 
> >>> ++++++++++++++++++++++
> >>>  1 file changed, 32 insertions(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts 
> >>> b/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
> >>> index 7b2849405462..709ea6fc9fbb 100644
> >>> --- a/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
> >>> +++ b/arch/arm64/boot/dts/qcom/msm8953-flipkart-rimob.dts
> >>> @@ -94,6 +94,31 @@ &hsusb_phy {
> >>>   status = "okay";
> >>>  };
> >>>  
> >>> +&i2c_3 {
> >>> + status = "okay";
> >>> +
> >>> + touchscreen@5d {
> >>> +         compatible = "goodix,gt5688";
> >>> +         reg = <0x5d>;
> >>> +
> >>> +         interrupts-extended = <&tlmm 65 IRQ_TYPE_LEVEL_LOW>;
> >>
> >> interrupts *and* irq-gpios sounds wrong.. and I think the driver doesn't
> >> even consume the former. Trying to read through some of that, I think
> > 
> > I think you need both, take a look, there are enough users of
> > ts->gpiod_int.
> 
> I said irq-gpios was necessary, interrupts is not. The only retrieval
> happens through:
> 
> if (soc_intel_is_cht() && ts->gpio_count == 2 && ts->gpio_int_idx != -1) {
>       irq = acpi_dev_gpio_irq_get(ACPI_COMPANION(dev), 0);
>       if (irq > 0 && irq != ts->client->irq) {
>               dev_warn(dev, "Overriding IRQ %d -> %d\n", ts->client->irq, 
> irq);
>               ts->client->irq = irq;
>       }
> }

static int goodix_request_irq(struct goodix_ts_data *ts)
{
        if (!ts->client->irq)
                return 0;

        return devm_request_threaded_irq(&ts->client->dev, ts->client->irq,
                                         NULL, goodix_ts_irq_handler,
                                         ts->irq_flags, ts->client->name, ts);
}

I thought that i2c_client->irq is handled by the core.

> 
> Konrad

-- 
With best wishes
Dmitry

Reply via email to