Message ID | 20170703084003.31184-5-sebastian.reichel@collabora.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 03 Jul 2017, Sebastian Reichel wrote: > If the touchscreen pins are used as general purpose analogue > input, the touchscreen driver should not be used. The pins > will be handled by the existing hwmon driver instead. > > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> > --- > drivers/mfd/da9052-core.c | 28 +++++++++++++++++++++++++--- > 1 file changed, 25 insertions(+), 3 deletions(-) > > diff --git a/drivers/mfd/da9052-core.c b/drivers/mfd/da9052-core.c > index 977418ca9117..a671c18381d7 100644 > --- a/drivers/mfd/da9052-core.c > +++ b/drivers/mfd/da9052-core.c > @@ -18,6 +18,7 @@ > #include <linux/mfd/core.h> > #include <linux/slab.h> > #include <linux/module.h> > +#include <linux/property.h> > > #include <linux/mfd/da9052/da9052.h> > #include <linux/mfd/da9052/pdata.h> > @@ -521,9 +522,6 @@ static const struct mfd_cell da9052_subdev_info[] = { > .name = "da9052-wled3", > }, > { > - .name = "da9052-tsi", > - }, > - { > .name = "da9052-bat", > }, > { > @@ -531,6 +529,12 @@ static const struct mfd_cell da9052_subdev_info[] = { > }, > }; > > +static const struct mfd_cell da9052_tsi_subdev_info[] = { > + { > + .name = "da9052-tsi", > + }, > +}; I normally prefer these one a single line. Once fixed: For my own reference: Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org> > const struct regmap_config da9052_regmap_config = { > .reg_bits = 8, > .val_bits = 8, > @@ -621,9 +625,27 @@ int da9052_device_init(struct da9052 *da9052, u8 chip_id) > goto err; > } > > + /* > + * Check if touchscreen pins are used are analogue input instead > + * of having a touchscreen connected to them. The analogue input > + * functionality will be provided by hwmon driver (if enabled). > + */ > + if (!device_property_read_bool(da9052->dev, "dlg,tsi-as-adc")) { > + ret = mfd_add_devices(da9052->dev, PLATFORM_DEVID_AUTO, > + da9052_tsi_subdev_info, > + ARRAY_SIZE(da9052_tsi_subdev_info), > + NULL, 0, NULL); > + if (ret) { > + dev_err(da9052->dev, "failed to add TSI subdev: %d\n", > + ret); > + goto err; > + } > + } > + > return 0; > > err: > + mfd_remove_devices(da9052->dev); > da9052_irq_exit(da9052); > > return ret;
diff --git a/drivers/mfd/da9052-core.c b/drivers/mfd/da9052-core.c index 977418ca9117..a671c18381d7 100644 --- a/drivers/mfd/da9052-core.c +++ b/drivers/mfd/da9052-core.c @@ -18,6 +18,7 @@ #include <linux/mfd/core.h> #include <linux/slab.h> #include <linux/module.h> +#include <linux/property.h> #include <linux/mfd/da9052/da9052.h> #include <linux/mfd/da9052/pdata.h> @@ -521,9 +522,6 @@ static const struct mfd_cell da9052_subdev_info[] = { .name = "da9052-wled3", }, { - .name = "da9052-tsi", - }, - { .name = "da9052-bat", }, { @@ -531,6 +529,12 @@ static const struct mfd_cell da9052_subdev_info[] = { }, }; +static const struct mfd_cell da9052_tsi_subdev_info[] = { + { + .name = "da9052-tsi", + }, +}; + const struct regmap_config da9052_regmap_config = { .reg_bits = 8, .val_bits = 8, @@ -621,9 +625,27 @@ int da9052_device_init(struct da9052 *da9052, u8 chip_id) goto err; } + /* + * Check if touchscreen pins are used are analogue input instead + * of having a touchscreen connected to them. The analogue input + * functionality will be provided by hwmon driver (if enabled). + */ + if (!device_property_read_bool(da9052->dev, "dlg,tsi-as-adc")) { + ret = mfd_add_devices(da9052->dev, PLATFORM_DEVID_AUTO, + da9052_tsi_subdev_info, + ARRAY_SIZE(da9052_tsi_subdev_info), + NULL, 0, NULL); + if (ret) { + dev_err(da9052->dev, "failed to add TSI subdev: %d\n", + ret); + goto err; + } + } + return 0; err: + mfd_remove_devices(da9052->dev); da9052_irq_exit(da9052); return ret;
If the touchscreen pins are used as general purpose analogue input, the touchscreen driver should not be used. The pins will be handled by the existing hwmon driver instead. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> --- drivers/mfd/da9052-core.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-)