* [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver @ 2022-11-07 10:56 Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Job Noorman @ 2022-11-07 10:56 UTC (permalink / raw) To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg Cc: linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss Hi all, This series adds support for the Himax hx83112b. The hx83112b supports 10 point multitouch with hardware tracking of touch points. It is the touchschreen used by the Fairphone 3. Note that a datasheet was unavailable for this device, so it was built based on the Android driver that was tagged as GPLv2. This series is a complete rewrite, though, and the code bears no resemblence to the original implementation. It is expected that this driver can be made to work on other hx83xxx devices, especially the hx83112a used in the Fairphone 4. However, since we have been unable to verify this, this driver only declares compatibility with the hx83112b and uses very specific file names. Changes since v5 (based on Jeff LaBundy's 3rd round of comments): - Consistently reuse local variable dev in himax_probe() Changes since v4 (based on Jeff LaBundy's 2nd round of comments): - Kconfig: depend on I2C and select REGMAP_I2C - Don't suppress dev_err() on EPROBE_DEFER - Some minor coding style updates Changes since v3 (based on Dmitry Torokhov's comments): - Use gpiod_set_value_cansleep (instead of gpiod_set_value) during probe - Inline some small helper functions - Use DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() - Use PTR_ERR_OR_ZERO instead of IS_ERR+PTR_ERR - Some minor coding style updates (e.g., use C-style comments) Changes since v2 (based on Jeff LaBundy's comments): - Kconfig: depend on REGMAP_I2C instead of I2C - Don't use dev_err_probe() - Return IRQ_NONE on failed register reads to prevent possible interrupt storm - Add small delay after de-asserting reset pin - Some minor coding style updates - dt-bindings: make touchscreen-size-{x,y} required Changes since v1: - Fix sparse warnings. Reported-by: kernel test robot <lkp@intel.com>. - Fix dt_binding_check. Best regards, Job Previous versions: - v5: https://lore.kernel.org/lkml/20221023163032.144150-1-job@noorman.info/ - v4: https://lore.kernel.org/lkml/20221017100409.189293-1-job@noorman.info/ - v3: https://lore.kernel.org/lkml/20221016102756.40345-1-job@noorman.info/ - v2: https://lore.kernel.org/lkml/20221012202341.295351-1-job@noorman.info/ - v1: https://lore.kernel.org/lkml/20221011190729.14747-1-job@noorman.info/ Job Noorman (3): dt-bindings: touchscreen: add Himax hx83112b bindings Input: add driver for Himax hx83112b touchscreen devices arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen .../input/touchscreen/himax,hx83112b.yaml | 63 +++ MAINTAINERS | 7 + .../boot/dts/qcom/sdm632-fairphone-fp3.dts | 14 + drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/himax_hx83112b.c | 361 ++++++++++++++++++ 6 files changed, 458 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml create mode 100644 drivers/input/touchscreen/himax_hx83112b.c base-commit: 153a197077d33861744be5a2d4bd17cec2c2dca3 -- 2.38.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings 2022-11-07 10:56 [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman @ 2022-11-07 10:56 ` Job Noorman 2022-11-07 19:29 ` Dmitry Torokhov 2022-11-07 10:56 ` [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman 2 siblings, 1 reply; 7+ messages in thread From: Job Noorman @ 2022-11-07 10:56 UTC (permalink / raw) To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg Cc: Rob Herring, linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss This patch adds device tree bindings for Himax 83112b touchscreen devices. Signed-off-by: Job Noorman <job@noorman.info> Reviewed-by: Rob Herring <robh@kernel.org> --- .../input/touchscreen/himax,hx83112b.yaml | 63 +++++++++++++++++++ MAINTAINERS | 6 ++ 2 files changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml diff --git a/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml new file mode 100644 index 000000000000..be2ba185c086 --- /dev/null +++ b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/input/touchscreen/himax,hx83112b.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Himax hx83112b touchscreen controller bindings + +maintainers: + - Job Noorman <job@noorman.info> + +allOf: + - $ref: touchscreen.yaml# + +properties: + compatible: + enum: + - himax,hx83112b + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + reset-gpios: + maxItems: 1 + + touchscreen-inverted-x: true + touchscreen-inverted-y: true + touchscreen-size-x: true + touchscreen-size-y: true + touchscreen-swapped-x-y: true + +additionalProperties: false + +required: + - compatible + - reg + - interrupts + - reset-gpios + - touchscreen-size-x + - touchscreen-size-y + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/gpio/gpio.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + touchscreen@48 { + compatible = "himax,hx83112b"; + reg = <0x48>; + interrupt-parent = <&tlmm>; + interrupts = <65 IRQ_TYPE_LEVEL_LOW>; + touchscreen-size-x = <1080>; + touchscreen-size-y = <2160>; + reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>; + }; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index cf0f18502372..469ab6382906 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9162,6 +9162,12 @@ W: http://www.highpoint-tech.com F: Documentation/scsi/hptiop.rst F: drivers/scsi/hptiop.c +HIMAX HX83112B TOUCHSCREEN SUPPORT +M: Job Noorman <job@noorman.info> +L: linux-input@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml + HIPPI M: Jes Sorensen <jes@trained-monkey.org> L: linux-hippi@sunsite.dk -- 2.38.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings 2022-11-07 10:56 ` [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman @ 2022-11-07 19:29 ` Dmitry Torokhov 0 siblings, 0 replies; 7+ messages in thread From: Dmitry Torokhov @ 2022-11-07 19:29 UTC (permalink / raw) To: Job Noorman Cc: Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg, Rob Herring, linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss On Mon, Nov 07, 2022 at 11:56:02AM +0100, Job Noorman wrote: > This patch adds device tree bindings for Himax 83112b touchscreen > devices. > > Signed-off-by: Job Noorman <job@noorman.info> > Reviewed-by: Rob Herring <robh@kernel.org> Applied, thank you. -- Dmitry ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices 2022-11-07 10:56 [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman @ 2022-11-07 10:56 ` Job Noorman 2022-11-07 19:29 ` Dmitry Torokhov 2022-11-07 10:56 ` [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman 2 siblings, 1 reply; 7+ messages in thread From: Job Noorman @ 2022-11-07 10:56 UTC (permalink / raw) To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg Cc: Jeff LaBundy, linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss This patch adds support for Himax hx83112b touchscreen devices. As there are no publicly available data sheets for these devices, the implementation is based on the driver of the downstream Android kernel used in the Fairphone 3. This patch is a complete rewrite, though, and the code bears no resemblence to the original implementation. The driver has been tested on the aforementioned phone. Signed-off-by: Job Noorman <job@noorman.info> Reviewed-by: Jeff LaBundy <jeff@labundy.com> --- MAINTAINERS | 1 + drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/himax_hx83112b.c | 361 +++++++++++++++++++++ 4 files changed, 375 insertions(+) create mode 100644 drivers/input/touchscreen/himax_hx83112b.c diff --git a/MAINTAINERS b/MAINTAINERS index 469ab6382906..8d9fe0ac632c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9167,6 +9167,7 @@ M: Job Noorman <job@noorman.info> L: linux-input@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml +F: drivers/input/touchscreen/himax_hx83112b.c HIPPI M: Jes Sorensen <jes@trained-monkey.org> diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index 317250b62e08..3f68eee71a4e 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -1407,4 +1407,16 @@ config TOUCHSCREEN_ZINITIX To compile this driver as a module, choose M here: the module will be called zinitix. +config TOUCHSCREEN_HIMAX_HX83112B + tristate "Himax hx83112b touchscreen driver" + depends on I2C + select REGMAP_I2C + help + Say Y here to enable support for Himax hx83112b touchscreens. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called himax_hx83112b. + endif diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile index 03ad13f3fcce..4968c370479a 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -118,3 +118,4 @@ obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023) += rohm_bu21023.o obj-$(CONFIG_TOUCHSCREEN_RASPBERRYPI_FW) += raspberrypi-ts.o obj-$(CONFIG_TOUCHSCREEN_IQS5XX) += iqs5xx.o obj-$(CONFIG_TOUCHSCREEN_ZINITIX) += zinitix.o +obj-$(CONFIG_TOUCHSCREEN_HIMAX_HX83112B) += himax_hx83112b.o diff --git a/drivers/input/touchscreen/himax_hx83112b.c b/drivers/input/touchscreen/himax_hx83112b.c new file mode 100644 index 000000000000..ed550cd33eb7 --- /dev/null +++ b/drivers/input/touchscreen/himax_hx83112b.c @@ -0,0 +1,361 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Driver for Himax hx83112b touchscreens + * + * Copyright (C) 2022 Job Noorman <job@noorman.info> + * + * This code is based on "Himax Android Driver Sample Code for QCT platform": + * + * Copyright (C) 2017 Himax Corporation. + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/gpio/consumer.h> +#include <linux/i2c.h> +#include <linux/input.h> +#include <linux/input/mt.h> +#include <linux/input/touchscreen.h> +#include <linux/interrupt.h> +#include <linux/kernel.h> +#include <linux/regmap.h> + +#define HIMAX_ID_83112B 0x83112b + +#define HIMAX_MAX_POINTS 10 + +#define HIMAX_REG_CFG_SET_ADDR 0x00 +#define HIMAX_REG_CFG_INIT_READ 0x0c +#define HIMAX_REG_CFG_READ_VALUE 0x08 +#define HIMAX_REG_READ_EVENT 0x30 + +#define HIMAX_CFG_PRODUCT_ID 0x900000d0 + +#define HIMAX_INVALID_COORD 0xffff + +struct himax_event_point { + __be16 x; + __be16 y; +} __packed; + +struct himax_event { + struct himax_event_point points[HIMAX_MAX_POINTS]; + u8 majors[HIMAX_MAX_POINTS]; + u8 pad0[2]; + u8 num_points; + u8 pad1[2]; + u8 checksum_fix; +} __packed; + +static_assert(sizeof(struct himax_event) == 56); + +struct himax_ts_data { + struct gpio_desc *gpiod_rst; + struct input_dev *input_dev; + struct i2c_client *client; + struct regmap *regmap; + struct touchscreen_properties props; +}; + +static const struct regmap_config himax_regmap_config = { + .reg_bits = 8, + .val_bits = 32, + .val_format_endian = REGMAP_ENDIAN_LITTLE, +}; + +static int himax_read_config(struct himax_ts_data *ts, u32 address, u32 *dst) +{ + int error; + + error = regmap_write(ts->regmap, HIMAX_REG_CFG_SET_ADDR, address); + if (error) + return error; + + error = regmap_write(ts->regmap, HIMAX_REG_CFG_INIT_READ, 0x0); + if (error) + return error; + + error = regmap_read(ts->regmap, HIMAX_REG_CFG_READ_VALUE, dst); + if (error) + return error; + + return 0; +} + +static void himax_reset(struct himax_ts_data *ts) +{ + gpiod_set_value_cansleep(ts->gpiod_rst, 1); + + /* Delay copied from downstream driver */ + msleep(20); + gpiod_set_value_cansleep(ts->gpiod_rst, 0); + + /* + * The downstream driver doesn't contain this delay but is seems safer + * to include it. The range is just a guess that seems to work well. + */ + usleep_range(1000, 1100); +} + +static int himax_read_product_id(struct himax_ts_data *ts, u32 *product_id) +{ + int error; + + error = himax_read_config(ts, HIMAX_CFG_PRODUCT_ID, product_id); + if (error) + return error; + + *product_id >>= 8; + return 0; +} + +static int himax_check_product_id(struct himax_ts_data *ts) +{ + int error; + u32 product_id; + + error = himax_read_product_id(ts, &product_id); + if (error) + return error; + + dev_dbg(&ts->client->dev, "Product id: %x\n", product_id); + + switch (product_id) { + case HIMAX_ID_83112B: + return 0; + + default: + dev_err(&ts->client->dev, + "Unknown product id: %x\n", product_id); + return -EINVAL; + } +} + +static int himax_input_register(struct himax_ts_data *ts) +{ + int error; + + ts->input_dev = devm_input_allocate_device(&ts->client->dev); + if (!ts->input_dev) { + dev_err(&ts->client->dev, "Failed to allocate input device\n"); + return -ENOMEM; + } + + ts->input_dev->name = "Himax Touchscreen"; + + input_set_capability(ts->input_dev, EV_ABS, ABS_MT_POSITION_X); + input_set_capability(ts->input_dev, EV_ABS, ABS_MT_POSITION_Y); + input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 200, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 200, 0, 0); + + touchscreen_parse_properties(ts->input_dev, true, &ts->props); + + error = input_mt_init_slots(ts->input_dev, HIMAX_MAX_POINTS, + INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED); + if (error) { + dev_err(&ts->client->dev, + "Failed to initialize MT slots: %d\n", error); + return error; + } + + error = input_register_device(ts->input_dev); + if (error) { + dev_err(&ts->client->dev, + "Failed to register input device: %d\n", error); + return error; + } + + return 0; +} + +static u8 himax_event_get_num_points(const struct himax_event *event) +{ + if (event->num_points == 0xff) + return 0; + else + return event->num_points & 0x0f; +} + +static bool himax_process_event_point(struct himax_ts_data *ts, + const struct himax_event *event, + int point_index) +{ + const struct himax_event_point *point = &event->points[point_index]; + u16 x = be16_to_cpu(point->x); + u16 y = be16_to_cpu(point->y); + u8 w = event->majors[point_index]; + + if (x == HIMAX_INVALID_COORD || y == HIMAX_INVALID_COORD) + return false; + + input_mt_slot(ts->input_dev, point_index); + input_mt_report_slot_state(ts->input_dev, MT_TOOL_FINGER, true); + touchscreen_report_pos(ts->input_dev, &ts->props, x, y, true); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + return true; +} + +static void himax_process_event(struct himax_ts_data *ts, + const struct himax_event *event) +{ + int i; + int num_points_left = himax_event_get_num_points(event); + + for (i = 0; i < HIMAX_MAX_POINTS && num_points_left > 0; i++) { + if (himax_process_event_point(ts, event, i)) + num_points_left--; + } + + input_mt_sync_frame(ts->input_dev); + input_sync(ts->input_dev); +} + +static bool himax_verify_checksum(struct himax_ts_data *ts, + const struct himax_event *event) +{ + u8 *data = (u8 *)event; + int i; + u16 checksum = 0; + + for (i = 0; i < sizeof(*event); i++) + checksum += data[i]; + + if ((checksum & 0x00ff) != 0) { + dev_err(&ts->client->dev, "Wrong event checksum: %04x\n", + checksum); + return false; + } + + return true; +} + +static int himax_handle_input(struct himax_ts_data *ts) +{ + int error; + struct himax_event event; + + error = regmap_raw_read(ts->regmap, HIMAX_REG_READ_EVENT, &event, + sizeof(event)); + if (error) { + dev_err(&ts->client->dev, "Failed to read input event: %d\n", + error); + return error; + } + + /* + * Only process the current event when it has a valid checksum but + * don't consider it a fatal error when it doesn't. + */ + if (himax_verify_checksum(ts, &event)) + himax_process_event(ts, &event); + + return 0; +} + +static irqreturn_t himax_irq_handler(int irq, void *dev_id) +{ + int error; + struct himax_ts_data *ts = dev_id; + + error = himax_handle_input(ts); + if (error) + return IRQ_NONE; + + return IRQ_HANDLED; +} + +static int himax_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + int error; + struct device *dev = &client->dev; + struct himax_ts_data *ts; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(dev, "I2C check functionality failed\n"); + return -ENXIO; + } + + ts = devm_kzalloc(dev, sizeof(*ts), GFP_KERNEL); + if (!ts) + return -ENOMEM; + + i2c_set_clientdata(client, ts); + ts->client = client; + + ts->regmap = devm_regmap_init_i2c(client, &himax_regmap_config); + error = PTR_ERR_OR_ZERO(ts->regmap); + if (error) { + dev_err(dev, "Failed to initialize regmap: %d\n", error); + return error; + } + + ts->gpiod_rst = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); + error = PTR_ERR_OR_ZERO(ts->gpiod_rst); + if (error) { + dev_err(dev, "Failed to get reset GPIO: %d\n", error); + return error; + } + + himax_reset(ts); + + error = himax_check_product_id(ts); + if (error) + return error; + + error = himax_input_register(ts); + if (error) + return error; + + return devm_request_threaded_irq(dev, client->irq, NULL, + himax_irq_handler, IRQF_ONESHOT, + client->name, ts); +} + +static int himax_suspend(struct device *dev) +{ + struct himax_ts_data *ts = dev_get_drvdata(dev); + + disable_irq(ts->client->irq); + return 0; +} + +static int himax_resume(struct device *dev) +{ + struct himax_ts_data *ts = dev_get_drvdata(dev); + + enable_irq(ts->client->irq); + return 0; +} + +static DEFINE_SIMPLE_DEV_PM_OPS(himax_pm_ops, himax_suspend, himax_resume); + +static const struct i2c_device_id himax_ts_id[] = { + { "hx83112b", 0 }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(i2c, himax_ts_id); + +#ifdef CONFIG_OF +static const struct of_device_id himax_of_match[] = { + { .compatible = "himax,hx83112b" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, himax_of_match); +#endif + +static struct i2c_driver himax_ts_driver = { + .probe = himax_probe, + .id_table = himax_ts_id, + .driver = { + .name = "Himax-hx83112b-TS", + .of_match_table = of_match_ptr(himax_of_match), + .pm = pm_sleep_ptr(&himax_pm_ops), + }, +}; +module_i2c_driver(himax_ts_driver); + +MODULE_AUTHOR("Job Noorman <job@noorman.info>"); +MODULE_DESCRIPTION("Himax hx83112b touchscreen driver"); +MODULE_LICENSE("GPL"); -- 2.38.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices 2022-11-07 10:56 ` [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices Job Noorman @ 2022-11-07 19:29 ` Dmitry Torokhov 0 siblings, 0 replies; 7+ messages in thread From: Dmitry Torokhov @ 2022-11-07 19:29 UTC (permalink / raw) To: Job Noorman Cc: Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg, Jeff LaBundy, linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss On Mon, Nov 07, 2022 at 11:56:03AM +0100, Job Noorman wrote: > This patch adds support for Himax hx83112b touchscreen devices. As there > are no publicly available data sheets for these devices, the > implementation is based on the driver of the downstream Android kernel > used in the Fairphone 3. This patch is a complete rewrite, though, and > the code bears no resemblence to the original implementation. > > The driver has been tested on the aforementioned phone. > > Signed-off-by: Job Noorman <job@noorman.info> > Reviewed-by: Jeff LaBundy <jeff@labundy.com> Applied, thank you. -- Dmitry ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen 2022-11-07 10:56 [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices Job Noorman @ 2022-11-07 10:56 ` Job Noorman 2022-11-08 4:36 ` (subset) " Bjorn Andersson 2 siblings, 1 reply; 7+ messages in thread From: Job Noorman @ 2022-11-07 10:56 UTC (permalink / raw) To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Henrik Rydberg Cc: Krzysztof Kozlowski, linux-input, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio, Luca Weiss Add Himax hx83112b touchscreen to the FP3 DT. Signed-off-by: Job Noorman <job@noorman.info> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts index 891e314bc782..2920504461d3 100644 --- a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts +++ b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts @@ -49,6 +49,20 @@ &hsusb_phy { vdda-phy-dpdm-supply = <&pm8953_l13>; }; +&i2c_3 { + status = "okay"; + + touchscreen@48 { + compatible = "himax,hx83112b"; + reg = <0x48>; + interrupt-parent = <&tlmm>; + interrupts = <65 IRQ_TYPE_LEVEL_LOW>; + touchscreen-size-x = <1080>; + touchscreen-size-y = <2160>; + reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>; + }; +}; + &pm8953_resin { status = "okay"; linux,code = <KEY_VOLUMEDOWN>; -- 2.38.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen 2022-11-07 10:56 ` [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman @ 2022-11-08 4:36 ` Bjorn Andersson 0 siblings, 0 replies; 7+ messages in thread From: Bjorn Andersson @ 2022-11-08 4:36 UTC (permalink / raw) To: dmitry.torokhov, krzysztof.kozlowski+dt, job, robh+dt, Henrik Rydberg, agross Cc: krzysztof.kozlowski, luca, devicetree, konrad.dybcio, linux-input, linux-kernel, linux-arm-msm On Mon, 7 Nov 2022 11:56:04 +0100, Job Noorman wrote: > Add Himax hx83112b touchscreen to the FP3 DT. > > Applied, thanks! [3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen commit: 6d9a666d49bf57c6a176e5fcf1b39046ee6a728f Best regards, -- Bjorn Andersson <andersson@kernel.org> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-11-08 4:36 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-11-07 10:56 [PATCH RESEND v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman 2022-11-07 10:56 ` [PATCH RESEND v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman 2022-11-07 19:29 ` Dmitry Torokhov 2022-11-07 10:56 ` [PATCH RESEND v6 2/3] Input: add driver for Himax hx83112b touchscreen devices Job Noorman 2022-11-07 19:29 ` Dmitry Torokhov 2022-11-07 10:56 ` [PATCH RESEND v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman 2022-11-08 4:36 ` (subset) " Bjorn Andersson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).