mbox series

[RFC/RFT,0/3] Add support to Novatek's touch IC nt36xxx

Message ID 20241015-nt36xxx-v1-0-3919d0bffee6@gmail.com (mailing list archive)
Headers show
Series Add support to Novatek's touch IC nt36xxx | expand

Message

George Chan via B4 Relay Oct. 15, 2024, 12:53 p.m. UTC
Initially support for nt36xxx series spi device. Below 
list all supported varients:

 - NT36675
 - NT36672A
 - NT36772(?)
 - NT36525
 - NT36676F

I had tested it with Redmi note 9 pro, aka NT36675 chip.

This series is based on my repo below:
https://github.com/99degree/linux/tree/nt36xxx

There is a boot-and-functional tree for miatoll device:
https://github.com/99degree/linux/tree/working-20241015

And the older dev history:
https://github.com/99degree/linux/tree/nt36xxx_old
https://github.com/99degree/linux/tree/working-20230528/drivers/input/touchscreen

This driver is based on 
AngeloGioacchino Del Regno for i2c based drive
https://patchwork.kernel.org/project/linux-input/cover/20201028221302.66583-1-kholk11@gmail.com/#24831734

_AND_
Neil Armstrong for the spi device codes
https://patchwork.kernel.org/project/linux-input/patch/20231213-topic-goodix-berlin-upstream-initial-v13-2-5d7a26a5eaa2@linaro.org/

Download fw function is adapted from original vendor driver
https://github.com/LineageOS/android_kernel_xiaomi_sm6250/tree/lineage-21/drivers/input/touchscreen/nt36xxx_spi/

Panel follower functionality is finally added.

Since the driver is split into core+spi so i2c function is relatively
easily to add.

Signed-off-by: George Chan <gchan9527@gmail.com>
---
George Chan (3):
      dt-bindings: touchscreen: Add binding for Novatek NT36xxx series driver
      [RFC/RFT]Input: Add Novatek NT36xxx touchscreen driver
      dts: sm7125-xiaomi-joyeuse: Sample device tree for reference

 .../bindings/input/touchscreen/nt36xxx.yaml        |   70 +
 arch/arm64/boot/dts/qcom/Makefile                  |    1 +
 .../boot/dts/qcom/sm7125-xiaomi-joyeuse-touch.dts  |  183 +++
 drivers/input/touchscreen/Kconfig                  |   13 +
 drivers/input/touchscreen/Makefile                 |    2 +
 drivers/input/touchscreen/nt36xxx.h                |  142 ++
 drivers/input/touchscreen/nt36xxx_core.c           | 1422 ++++++++++++++++++++
 drivers/input/touchscreen/nt36xxx_spi.c            |  256 ++++
 8 files changed, 2089 insertions(+)
---
base-commit: b852e1e7a0389ed6168ef1d38eb0bad71a6b11e8
change-id: 20241015-nt36xxx-07e458ba2877

Best regards,

Comments

Rob Herring (Arm) Oct. 15, 2024, 2:17 p.m. UTC | #1
On Tue, 15 Oct 2024 20:53:28 +0800, George Chan wrote:
> Initially support for nt36xxx series spi device. Below
> list all supported varients:
> 
>  - NT36675
>  - NT36672A
>  - NT36772(?)
>  - NT36525
>  - NT36676F
> 
> I had tested it with Redmi note 9 pro, aka NT36675 chip.
> 
> This series is based on my repo below:
> https://github.com/99degree/linux/tree/nt36xxx
> 
> There is a boot-and-functional tree for miatoll device:
> https://github.com/99degree/linux/tree/working-20241015
> 
> And the older dev history:
> https://github.com/99degree/linux/tree/nt36xxx_old
> https://github.com/99degree/linux/tree/working-20230528/drivers/input/touchscreen
> 
> This driver is based on
> AngeloGioacchino Del Regno for i2c based drive
> https://patchwork.kernel.org/project/linux-input/cover/20201028221302.66583-1-kholk11@gmail.com/#24831734
> 
> _AND_
> Neil Armstrong for the spi device codes
> https://patchwork.kernel.org/project/linux-input/patch/20231213-topic-goodix-berlin-upstream-initial-v13-2-5d7a26a5eaa2@linaro.org/
> 
> Download fw function is adapted from original vendor driver
> https://github.com/LineageOS/android_kernel_xiaomi_sm6250/tree/lineage-21/drivers/input/touchscreen/nt36xxx_spi/
> 
> Panel follower functionality is finally added.
> 
> Since the driver is split into core+spi so i2c function is relatively
> easily to add.
> 
> Signed-off-by: George Chan <gchan9527@gmail.com>
> ---
> George Chan (3):
>       dt-bindings: touchscreen: Add binding for Novatek NT36xxx series driver
>       [RFC/RFT]Input: Add Novatek NT36xxx touchscreen driver
>       dts: sm7125-xiaomi-joyeuse: Sample device tree for reference
> 
>  .../bindings/input/touchscreen/nt36xxx.yaml        |   70 +
>  arch/arm64/boot/dts/qcom/Makefile                  |    1 +
>  .../boot/dts/qcom/sm7125-xiaomi-joyeuse-touch.dts  |  183 +++
>  drivers/input/touchscreen/Kconfig                  |   13 +
>  drivers/input/touchscreen/Makefile                 |    2 +
>  drivers/input/touchscreen/nt36xxx.h                |  142 ++
>  drivers/input/touchscreen/nt36xxx_core.c           | 1422 ++++++++++++++++++++
>  drivers/input/touchscreen/nt36xxx_spi.c            |  256 ++++
>  8 files changed, 2089 insertions(+)
> ---
> base-commit: b852e1e7a0389ed6168ef1d38eb0bad71a6b11e8
> change-id: 20241015-nt36xxx-07e458ba2877
> 
> Best regards,
> --
> George Chan <gchan9527@gmail.com>
> 
> 
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y qcom/sm7125-xiaomi-joyeuse-touch.dtb' for 20241015-nt36xxx-v1-0-3919d0bffee6@gmail.com:

arch/arm64/boot/dts/qcom/sm7125-xiaomi-joyeuse-touch.dts:9:10: fatal error: sm7125-xiaomi-joyeuse-display.dts: No such file or directory
    9 | #include "sm7125-xiaomi-joyeuse-display.dts"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.dtbs:131: arch/arm64/boot/dts/qcom/sm7125-xiaomi-joyeuse-touch.dtb] Error 1
make[2]: *** [scripts/Makefile.build:478: arch/arm64/boot/dts/qcom] Error 2
make[2]: Target 'arch/arm64/boot/dts/qcom/sm7125-xiaomi-joyeuse-touch.dtb' not remade because of errors.
make[1]: *** [/home/rob/proj/linux-dt-testing/Makefile:1412: qcom/sm7125-xiaomi-joyeuse-touch.dtb] Error 2
make: *** [Makefile:224: __sub-make] Error 2
make: Target 'qcom/sm7125-xiaomi-joyeuse-touch.dtb' not remade because of errors.