mbox series

[v9,0/4] HID: i2c-hid: Reorganize to allow supporting goodix,gt7375p

Message ID 20210115170641.903392-1-dianders@chromium.org
Headers show
Series HID: i2c-hid: Reorganize to allow supporting goodix,gt7375p | expand

Message

Doug Anderson Jan. 15, 2021, 5:06 p.m. UTC
The goal of this series is to support the Goodix GT7375P touchscreen.
This touchscreen is special because it has power sequencing
requirements that necessitate driving a reset GPIO.

To do this, we totally rejigger the way i2c-hid is organized so that
it's easier to jam the Goodix support in there.

This series was:
- Tested on a device that uses normal i2c-hid.
- Tested on a device that has a Goodix i2c-hid device.
- Tested on an ACPI device, but an earlier version of the series.

I believe the plan is for Benjamin to land the whole series.  Will
said this about the arm64 defconfig change (and provided his Ack):
> ...there are a few things I really care about
> in defconfig (e.g. things like page size!), generally speaking we don't
> need to Ack everything that changes in there.
>
> That said, might be worth checking whether arm-soc have any defconfig
> changes queued in -next so you don't end up with conflicts.

Changes in v9:
- 120 ms delay => 180 ms delay
- Local variable in ACPI code "ihid_of" => "ihid_acpi".
- Squash Benjamin's change for ACPI power on.

Changes in v8:
- Mark suspend/resume as static as per patches robot.

Changes in v7:
- Rebase atop commit afdd34c5fa40 ("HID: i2c-hid: show the error ...")

Changes in v6:
- ACPI probe function should have been "static"
- Don't export suspend/resume, just export dev_pm_ops from core.
- Fixed crash in ACPI module (missing init of "client")
- No need for regulator include in the core.
- Removed i2c_device_id table from ACPI module.
- Suspend/resume are no longer exported from the core.

Changes in v5:
- Add shutdown_tail op and use it in ACPI.
- Added mention of i2c-hid in the yaml itself as per Rob.
- Adjusted subject as per Rob.
- i2chid_subclass_data => i2chid_ops.
- power_up_device => power_up (same with power_down).
- subclass => ops.

Changes in v4:
- ("arm64: defconfig: Update config names for i2c-hid rejigger") new for v4.
- Fully rejigger so ACPI and OF are full subclasses.
- Totally redid based on the new subclass system.

Changes in v3:
- Fixed compatible in example.
- Removed Benjamin as a maintainer.
- Rework to use subclassing.
- Updated description.

Changes in v2:
- ("dt-bindings: HID: i2c-hid: Introduce bindings for the Goodix GT7375P") new in v2.
- Get timings based on the compatible string.
- Use a separate compatible string for this new touchscreen.

Douglas Anderson (4):
  HID: i2c-hid: Reorganize so ACPI and OF are separate modules
  arm64: defconfig: Update config names for i2c-hid rejigger
  dt-bindings: input: HID: i2c-hid: Introduce bindings for the Goodix
    GT7375P
  HID: i2c-hid: Introduce goodix-i2c-hid using i2c-hid core

 .../bindings/input/goodix,gt7375p.yaml        |  65 +++++
 arch/arm64/configs/defconfig                  |   3 +-
 drivers/hid/Makefile                          |   2 +-
 drivers/hid/i2c-hid/Kconfig                   |  47 +++-
 drivers/hid/i2c-hid/Makefile                  |   6 +-
 drivers/hid/i2c-hid/i2c-hid-acpi.c            | 143 ++++++++++
 drivers/hid/i2c-hid/i2c-hid-core.c            | 252 +++---------------
 drivers/hid/i2c-hid/i2c-hid-of-goodix.c       | 116 ++++++++
 drivers/hid/i2c-hid/i2c-hid-of.c              | 143 ++++++++++
 drivers/hid/i2c-hid/i2c-hid.h                 |  22 ++
 include/linux/platform_data/i2c-hid.h         |  41 ---
 11 files changed, 578 insertions(+), 262 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/goodix,gt7375p.yaml
 create mode 100644 drivers/hid/i2c-hid/i2c-hid-acpi.c
 create mode 100644 drivers/hid/i2c-hid/i2c-hid-of-goodix.c
 create mode 100644 drivers/hid/i2c-hid/i2c-hid-of.c
 delete mode 100644 include/linux/platform_data/i2c-hid.h

Comments

Benjamin Tissoires Jan. 18, 2021, 4:30 p.m. UTC | #1
On Fri, Jan 15, 2021 at 6:07 PM Douglas Anderson <dianders@chromium.org> wrote:
>

>

> The goal of this series is to support the Goodix GT7375P touchscreen.

> This touchscreen is special because it has power sequencing

> requirements that necessitate driving a reset GPIO.

>

> To do this, we totally rejigger the way i2c-hid is organized so that

> it's easier to jam the Goodix support in there.

>

> This series was:

> - Tested on a device that uses normal i2c-hid.

> - Tested on a device that has a Goodix i2c-hid device.

> - Tested on an ACPI device, but an earlier version of the series.

>

> I believe the plan is for Benjamin to land the whole series.  Will

> said this about the arm64 defconfig change (and provided his Ack):

> > ...there are a few things I really care about

> > in defconfig (e.g. things like page size!), generally speaking we don't

> > need to Ack everything that changes in there.

> >

> > That said, might be worth checking whether arm-soc have any defconfig

> > changes queued in -next so you don't end up with conflicts.

>

> Changes in v9:

> - 120 ms delay => 180 ms delay

> - Local variable in ACPI code "ihid_of" => "ihid_acpi".

> - Squash Benjamin's change for ACPI power on.

>

> Changes in v8:

> - Mark suspend/resume as static as per patches robot.

>

> Changes in v7:

> - Rebase atop commit afdd34c5fa40 ("HID: i2c-hid: show the error ...")

>

> Changes in v6:

> - ACPI probe function should have been "static"

> - Don't export suspend/resume, just export dev_pm_ops from core.

> - Fixed crash in ACPI module (missing init of "client")

> - No need for regulator include in the core.

> - Removed i2c_device_id table from ACPI module.

> - Suspend/resume are no longer exported from the core.

>

> Changes in v5:

> - Add shutdown_tail op and use it in ACPI.

> - Added mention of i2c-hid in the yaml itself as per Rob.

> - Adjusted subject as per Rob.

> - i2chid_subclass_data => i2chid_ops.

> - power_up_device => power_up (same with power_down).

> - subclass => ops.

>

> Changes in v4:

> - ("arm64: defconfig: Update config names for i2c-hid rejigger") new for v4.

> - Fully rejigger so ACPI and OF are full subclasses.

> - Totally redid based on the new subclass system.

>

> Changes in v3:

> - Fixed compatible in example.

> - Removed Benjamin as a maintainer.

> - Rework to use subclassing.

> - Updated description.

>

> Changes in v2:

> - ("dt-bindings: HID: i2c-hid: Introduce bindings for the Goodix GT7375P") new in v2.

> - Get timings based on the compatible string.

> - Use a separate compatible string for this new touchscreen.

>

> Douglas Anderson (4):

>   HID: i2c-hid: Reorganize so ACPI and OF are separate modules

>   arm64: defconfig: Update config names for i2c-hid rejigger

>   dt-bindings: input: HID: i2c-hid: Introduce bindings for the Goodix

>     GT7375P

>   HID: i2c-hid: Introduce goodix-i2c-hid using i2c-hid core

>

>  .../bindings/input/goodix,gt7375p.yaml        |  65 +++++

>  arch/arm64/configs/defconfig                  |   3 +-

>  drivers/hid/Makefile                          |   2 +-

>  drivers/hid/i2c-hid/Kconfig                   |  47 +++-

>  drivers/hid/i2c-hid/Makefile                  |   6 +-

>  drivers/hid/i2c-hid/i2c-hid-acpi.c            | 143 ++++++++++

>  drivers/hid/i2c-hid/i2c-hid-core.c            | 252 +++---------------

>  drivers/hid/i2c-hid/i2c-hid-of-goodix.c       | 116 ++++++++

>  drivers/hid/i2c-hid/i2c-hid-of.c              | 143 ++++++++++

>  drivers/hid/i2c-hid/i2c-hid.h                 |  22 ++

>  include/linux/platform_data/i2c-hid.h         |  41 ---

>  11 files changed, 578 insertions(+), 262 deletions(-)

>  create mode 100644 Documentation/devicetree/bindings/input/goodix,gt7375p.yaml

>  create mode 100644 drivers/hid/i2c-hid/i2c-hid-acpi.c

>  create mode 100644 drivers/hid/i2c-hid/i2c-hid-of-goodix.c

>  create mode 100644 drivers/hid/i2c-hid/i2c-hid-of.c

>  delete mode 100644 include/linux/platform_data/i2c-hid.h

>


Many thanks for the wait. I have now scheduled this series in for-5.12/i2c-hid.

Cheers,
Benjamin