* [PATCH 0/3] iio: adc: add LTC2309 support @ 2023-08-24 16:55 Liam Beguin 2023-08-24 16:55 ` [PATCH 1/3] iio: adc: add ltc2309 support Liam Beguin ` (2 more replies) 0 siblings, 3 replies; 14+ messages in thread From: Liam Beguin @ 2023-08-24 16:55 UTC (permalink / raw) To: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree, Liam Beguin The LTC2309 is an 8-Channel, 12-Bit SAR ADC with an I2C Interface. This implements support for all single-ended and differential channels, in unipolar mode only. Signed-off-by: Liam Beguin <liambeguin@gmail.com> --- Liam Beguin (3): iio: adc: add ltc2309 support iio: adc: ltc2309: switch to new .probe() dt-bindings: iio: adc: add lltc,ltc2309 bindings .../devicetree/bindings/iio/adc/lltc,ltc2309.yaml | 52 +++++ drivers/iio/adc/Kconfig | 10 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ltc2309.c | 231 +++++++++++++++++++++ 4 files changed, 294 insertions(+) --- base-commit: a5e505a99ca748583dbe558b691be1b26f05d678 change-id: 20230823-ltc2309-1945e1e94931 Best regards, -- Liam Beguin <liambeguin@gmail.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] iio: adc: add ltc2309 support 2023-08-24 16:55 [PATCH 0/3] iio: adc: add LTC2309 support Liam Beguin @ 2023-08-24 16:55 ` Liam Beguin 2023-08-24 18:00 ` Krzysztof Kozlowski 2023-08-24 16:55 ` [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() Liam Beguin 2023-08-24 16:55 ` [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings Liam Beguin 2 siblings, 1 reply; 14+ messages in thread From: Liam Beguin @ 2023-08-24 16:55 UTC (permalink / raw) To: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree, Liam Beguin The LTC2309 is an 8-Channel, 12-Bit SAR ADC with an I2C Interface. This implements support for all single-ended and differential channels, in unipolar mode only. Signed-off-by: Liam Beguin <liambeguin@gmail.com> --- drivers/iio/adc/Kconfig | 10 ++ drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ltc2309.c | 232 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 243 insertions(+) diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index dc14bde31ac1..6ec18e02faf9 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -607,6 +607,16 @@ config LPC32XX_ADC activate only one via device tree selection. Provides direct access via sysfs. +config LTC2309 + tristate "Linear Technology LTC2309 ADC driver" + depends on I2C + help + Say yes here to build support for Linear Technology LTC2309, a low + noise, low power, 8-channel, 12-bit SAR ADC + + This driver can also be built as a module. If so, the module will + be called ltc2309. + config LTC2471 tristate "Linear Technology LTC2471 and LTC2473 ADC driver" depends on I2C diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index eb6e891790fb..fbd86184ec94 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -56,6 +56,7 @@ obj-$(CONFIG_INTEL_MRFLD_ADC) += intel_mrfld_adc.o obj-$(CONFIG_LP8788_ADC) += lp8788_adc.o obj-$(CONFIG_LPC18XX_ADC) += lpc18xx_adc.o obj-$(CONFIG_LPC32XX_ADC) += lpc32xx_adc.o +obj-$(CONFIG_LTC2309) += ltc2309.o obj-$(CONFIG_LTC2471) += ltc2471.o obj-$(CONFIG_LTC2485) += ltc2485.o obj-$(CONFIG_LTC2496) += ltc2496.o ltc2497-core.o diff --git a/drivers/iio/adc/ltc2309.c b/drivers/iio/adc/ltc2309.c new file mode 100644 index 000000000000..ee1fd9b82e2a --- /dev/null +++ b/drivers/iio/adc/ltc2309.c @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * The LTC2309 is an 8-Channel, 12-Bit SAR ADC with an I2C Interface. + * + * Datasheet: + * https://www.analog.com/media/en/technical-documentation/data-sheets/2309fd.pdf + * + * Copyright (c) 2023, Liam Beguin <liambeguin@gmail.com> + * + */ +#include <linux/bitfield.h> +#include <linux/i2c.h> +#include <linux/iio/iio.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/mutex.h> +#include <linux/regulator/consumer.h> + +#define DRIVER_NAME "ltc2309" +#define LTC2309_ADC_RESOLUTION 12 + +#define LTC2309_DIN_CH_MASK GENMASK(7, 4) +#define LTC2309_DIN_SDN BIT(7) +#define LTC2309_DIN_OSN BIT(6) +#define LTC2309_DIN_S1 BIT(5) +#define LTC2309_DIN_S0 BIT(4) +#define LTC2309_DIN_UNI BIT(3) +#define LTC2309_DIN_SLEEP BIT(2) + +/* struct ltc2309 - internal device data structure + * + * @dev: Device reference + * @client: I2C reference + * @refcomp: External reference source + * @lock: Lock to protect against multiple access to the device + * @vref_mv Internal voltage reference + */ +struct ltc2309 { + struct device *dev; + struct i2c_client *client; + struct regulator *refcomp; + struct mutex lock; + int vref_mv; +}; + +/* Order matches expected channel address, See datasheet Table 1. */ +enum ltc2309_channels { + LTC2309_CH0_CH1 = 0, + LTC2309_CH2_CH3, + LTC2309_CH4_CH5, + LTC2309_CH6_CH7, + LTC2309_CH1_CH0, + LTC2309_CH3_CH2, + LTC2309_CH5_CH4, + LTC2309_CH7_CH6, + LTC2309_CH0, + LTC2309_CH2, + LTC2309_CH4, + LTC2309_CH6, + LTC2309_CH1, + LTC2309_CH3, + LTC2309_CH5, + LTC2309_CH7, +}; + +#define LTC2309_CHAN(_chan, _addr) { \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .address = _addr, \ + .channel = _chan, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ + .datasheet_name = "CH"#_chan, \ +} + +#define LTC2309_DIFF_CHAN(_chan, _chan2, _addr) { \ + .type = IIO_VOLTAGE, \ + .differential = 1, \ + .indexed = 1, \ + .address = _addr, \ + .channel = _chan, \ + .channel2 = _chan2, \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ + .datasheet_name = "CH"#_chan"-CH"#_chan2, \ +} + +static const struct iio_chan_spec ltc2309_channels[] = { + LTC2309_CHAN(0, LTC2309_CH0), + LTC2309_CHAN(1, LTC2309_CH1), + LTC2309_CHAN(2, LTC2309_CH2), + LTC2309_CHAN(3, LTC2309_CH3), + LTC2309_CHAN(4, LTC2309_CH4), + LTC2309_CHAN(5, LTC2309_CH5), + LTC2309_CHAN(6, LTC2309_CH6), + LTC2309_CHAN(7, LTC2309_CH7), + LTC2309_DIFF_CHAN(0, 1, LTC2309_CH0_CH1), + LTC2309_DIFF_CHAN(2, 3, LTC2309_CH2_CH3), + LTC2309_DIFF_CHAN(4, 5, LTC2309_CH4_CH5), + LTC2309_DIFF_CHAN(6, 7, LTC2309_CH6_CH7), + LTC2309_DIFF_CHAN(1, 0, LTC2309_CH1_CH0), + LTC2309_DIFF_CHAN(3, 2, LTC2309_CH3_CH2), + LTC2309_DIFF_CHAN(5, 4, LTC2309_CH5_CH4), + LTC2309_DIFF_CHAN(7, 6, LTC2309_CH7_CH6), +}; + +static int ltc2309_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int *val, + int *val2, long mask) +{ + struct ltc2309 *ltc2309 = iio_priv(indio_dev); + u16 buf; + int ret; + u8 din; + + mutex_lock(<c2309->lock); + + switch (mask) { + case IIO_CHAN_INFO_RAW: + din = FIELD_PREP(LTC2309_DIN_CH_MASK, chan->address & 0x0f) | + FIELD_PREP(LTC2309_DIN_UNI, 1) | + FIELD_PREP(LTC2309_DIN_SLEEP, 0); + + ret = i2c_smbus_write_byte(ltc2309->client, din); + if (ret < 0) { + dev_err(ltc2309->dev, "i2c command failed: %pe\n", + ERR_PTR(ret)); + goto out; + } + + ret = i2c_master_recv(ltc2309->client, (char *)&buf, 2); + if (ret < 0) { + dev_err(ltc2309->dev, "i2c read failed: %pe\n", + ERR_PTR(ret)); + goto out; + } + + *val = be16_to_cpu(buf) >> 4; + + ret = IIO_VAL_INT; + break; + case IIO_CHAN_INFO_SCALE: + *val = ltc2309->vref_mv; + *val2 = LTC2309_ADC_RESOLUTION; + ret = IIO_VAL_FRACTIONAL_LOG2; + break; + default: + ret = -EINVAL; + break; + } + +out: + mutex_unlock(<c2309->lock); + return ret; +} + +static const struct iio_info ltc2309_info = { + .read_raw = ltc2309_read_raw, +}; + +static int ltc2309_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct iio_dev *indio_dev; + struct ltc2309 *ltc2309; + int ret = 0; + + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*ltc2309)); + if (!indio_dev) + return -ENOMEM; + + i2c_set_clientdata(client, indio_dev); + + ltc2309 = iio_priv(indio_dev); + ltc2309->dev = &indio_dev->dev; + ltc2309->client = client; + ltc2309->vref_mv = 4096; /* Default to the internal ref */ + + indio_dev->name = DRIVER_NAME; + indio_dev->dev.parent = &client->dev; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = ltc2309_channels; + indio_dev->num_channels = ARRAY_SIZE(ltc2309_channels); + indio_dev->info = <c2309_info; + + ltc2309->refcomp = devm_regulator_get_optional(&client->dev, "refcomp"); + if (!IS_ERR_OR_NULL(ltc2309->refcomp)) { + ret = regulator_enable(ltc2309->refcomp); + if (ret) { + dev_err(ltc2309->dev, "failed to enable REFCOMP\n"); + return ret; + } + + ret = regulator_get_voltage(ltc2309->refcomp); + if (ret < 0) + return ret; + + ltc2309->vref_mv = ret / 1000; + if (ret) + return ret; + } + + mutex_init(<c2309->lock); + + return devm_iio_device_register(&client->dev, indio_dev); +} + +static const struct of_device_id ltc2309_of_match[] = { + { .compatible = "lltc,ltc2309" }, + { } +}; +MODULE_DEVICE_TABLE(of, ltc2309_of_match); + +static const struct i2c_device_id ltc2309_id[] = { + {"ltc2309", 0}, + {}, +}; +MODULE_DEVICE_TABLE(i2c, ltc2309_id); + +static struct i2c_driver ltc2309_driver = { + .driver = { + .name = DRIVER_NAME, + .of_match_table = ltc2309_of_match, + }, + .probe = ltc2309_probe, + .id_table = ltc2309_id, +}; +module_i2c_driver(ltc2309_driver); + +MODULE_AUTHOR("Liam Beguin <liambeguin@gmail.com>"); +MODULE_DESCRIPTION("Linear Technology LTC2309 ADC"); +MODULE_LICENSE("GPL v2"); -- 2.39.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] iio: adc: add ltc2309 support 2023-08-24 16:55 ` [PATCH 1/3] iio: adc: add ltc2309 support Liam Beguin @ 2023-08-24 18:00 ` Krzysztof Kozlowski 2023-08-24 19:32 ` Liam Beguin 0 siblings, 1 reply; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-08-24 18:00 UTC (permalink / raw) To: Liam Beguin, Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree On 24/08/2023 18:55, Liam Beguin wrote: > The LTC2309 is an 8-Channel, 12-Bit SAR ADC with an I2C Interface. > > This implements support for all single-ended and differential channels, > in unipolar mode only. > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> > --- > drivers/iio/adc/Kconfig | 10 ++ > drivers/iio/adc/Makefile | 1 + > drivers/iio/adc/ltc2309.c | 232 ++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 243 insertions(+) > > +static int ltc2309_read_raw(struct iio_dev *indio_dev, > + struct iio_chan_spec const *chan, int *val, > + int *val2, long mask) > +{ > + struct ltc2309 *ltc2309 = iio_priv(indio_dev); > + u16 buf; > + int ret; > + u8 din; > + > + mutex_lock(<c2309->lock); > + > + switch (mask) { > + case IIO_CHAN_INFO_RAW: > + din = FIELD_PREP(LTC2309_DIN_CH_MASK, chan->address & 0x0f) | > + FIELD_PREP(LTC2309_DIN_UNI, 1) | > + FIELD_PREP(LTC2309_DIN_SLEEP, 0); > + > + ret = i2c_smbus_write_byte(ltc2309->client, din); > + if (ret < 0) { > + dev_err(ltc2309->dev, "i2c command failed: %pe\n", > + ERR_PTR(ret)); > + goto out; > + } > + > + ret = i2c_master_recv(ltc2309->client, (char *)&buf, 2); > + if (ret < 0) { > + dev_err(ltc2309->dev, "i2c read failed: %pe\n", > + ERR_PTR(ret)); > + goto out; > + } > + > + *val = be16_to_cpu(buf) >> 4; > + > + ret = IIO_VAL_INT; > + break; > + case IIO_CHAN_INFO_SCALE: > + *val = ltc2309->vref_mv; > + *val2 = LTC2309_ADC_RESOLUTION; > + ret = IIO_VAL_FRACTIONAL_LOG2; Why this case is in critical section? > + break; > + default: > + ret = -EINVAL; > + break; > + } > + > +out: > + mutex_unlock(<c2309->lock); > + return ret; > +} > + > +static const struct iio_info ltc2309_info = { > + .read_raw = ltc2309_read_raw, > +}; > + > +static int ltc2309_probe(struct i2c_client *client, > + const struct i2c_device_id *id) > +{ > + struct iio_dev *indio_dev; > + struct ltc2309 *ltc2309; > + int ret = 0; > + > + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*ltc2309)); > + if (!indio_dev) > + return -ENOMEM; > + > + i2c_set_clientdata(client, indio_dev); > + > + ltc2309 = iio_priv(indio_dev); > + ltc2309->dev = &indio_dev->dev; > + ltc2309->client = client; > + ltc2309->vref_mv = 4096; /* Default to the internal ref */ > + > + indio_dev->name = DRIVER_NAME; > + indio_dev->dev.parent = &client->dev; > + indio_dev->modes = INDIO_DIRECT_MODE; > + indio_dev->channels = ltc2309_channels; > + indio_dev->num_channels = ARRAY_SIZE(ltc2309_channels); > + indio_dev->info = <c2309_info; > + > + ltc2309->refcomp = devm_regulator_get_optional(&client->dev, "refcomp"); > + if (!IS_ERR_OR_NULL(ltc2309->refcomp)) { > + ret = regulator_enable(ltc2309->refcomp); > + if (ret) { > + dev_err(ltc2309->dev, "failed to enable REFCOMP\n"); > + return ret; > + } > + > + ret = regulator_get_voltage(ltc2309->refcomp); > + if (ret < 0) You have unbalanced regulator. Same in all further error paths. > + return ret; > + > + ltc2309->vref_mv = ret / 1000; > + if (ret) > + return ret; > + } > + > + mutex_init(<c2309->lock); > + > + return devm_iio_device_register(&client->dev, indio_dev); > +} > + Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] iio: adc: add ltc2309 support 2023-08-24 18:00 ` Krzysztof Kozlowski @ 2023-08-24 19:32 ` Liam Beguin 0 siblings, 0 replies; 14+ messages in thread From: Liam Beguin @ 2023-08-24 19:32 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree On Thu, Aug 24, 2023 at 08:00:11PM +0200, Krzysztof Kozlowski wrote: > On 24/08/2023 18:55, Liam Beguin wrote: > > The LTC2309 is an 8-Channel, 12-Bit SAR ADC with an I2C Interface. > > > > This implements support for all single-ended and differential channels, > > in unipolar mode only. > > > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> > > --- > > drivers/iio/adc/Kconfig | 10 ++ > > drivers/iio/adc/Makefile | 1 + > > drivers/iio/adc/ltc2309.c | 232 ++++++++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 243 insertions(+) > > > > > > > +static int ltc2309_read_raw(struct iio_dev *indio_dev, > > + struct iio_chan_spec const *chan, int *val, > > + int *val2, long mask) > > +{ > > + struct ltc2309 *ltc2309 = iio_priv(indio_dev); > > + u16 buf; > > + int ret; > > + u8 din; > > + > > + mutex_lock(<c2309->lock); > > + > > + switch (mask) { > > + case IIO_CHAN_INFO_RAW: > > + din = FIELD_PREP(LTC2309_DIN_CH_MASK, chan->address & 0x0f) | > > + FIELD_PREP(LTC2309_DIN_UNI, 1) | > > + FIELD_PREP(LTC2309_DIN_SLEEP, 0); > > + > > + ret = i2c_smbus_write_byte(ltc2309->client, din); > > + if (ret < 0) { > > + dev_err(ltc2309->dev, "i2c command failed: %pe\n", > > + ERR_PTR(ret)); > > + goto out; > > + } > > + > > + ret = i2c_master_recv(ltc2309->client, (char *)&buf, 2); > > + if (ret < 0) { > > + dev_err(ltc2309->dev, "i2c read failed: %pe\n", > > + ERR_PTR(ret)); > > + goto out; > > + } > > + > > + *val = be16_to_cpu(buf) >> 4; > > + > > + ret = IIO_VAL_INT; > > + break; > > + case IIO_CHAN_INFO_SCALE: > > + *val = ltc2309->vref_mv; > > + *val2 = LTC2309_ADC_RESOLUTION; > > + ret = IIO_VAL_FRACTIONAL_LOG2; > > Why this case is in critical section? > my bad, I'll reduce it to INFO_RAW. > > + break; > > + default: > > + ret = -EINVAL; > > + break; > > + } > > + > > +out: > > + mutex_unlock(<c2309->lock); > > + return ret; > > +} > > + > > +static const struct iio_info ltc2309_info = { > > + .read_raw = ltc2309_read_raw, > > +}; > > + > > +static int ltc2309_probe(struct i2c_client *client, > > + const struct i2c_device_id *id) > > +{ > > + struct iio_dev *indio_dev; > > + struct ltc2309 *ltc2309; > > + int ret = 0; > > + > > + indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*ltc2309)); > > + if (!indio_dev) > > + return -ENOMEM; > > + > > + i2c_set_clientdata(client, indio_dev); > > + > > + ltc2309 = iio_priv(indio_dev); > > + ltc2309->dev = &indio_dev->dev; > > + ltc2309->client = client; > > + ltc2309->vref_mv = 4096; /* Default to the internal ref */ > > + > > + indio_dev->name = DRIVER_NAME; > > + indio_dev->dev.parent = &client->dev; > > + indio_dev->modes = INDIO_DIRECT_MODE; > > + indio_dev->channels = ltc2309_channels; > > + indio_dev->num_channels = ARRAY_SIZE(ltc2309_channels); > > + indio_dev->info = <c2309_info; > > + > > + ltc2309->refcomp = devm_regulator_get_optional(&client->dev, "refcomp"); > > + if (!IS_ERR_OR_NULL(ltc2309->refcomp)) { > > + ret = regulator_enable(ltc2309->refcomp); > > + if (ret) { > > + dev_err(ltc2309->dev, "failed to enable REFCOMP\n"); > > + return ret; > > + } > > + > > + ret = regulator_get_voltage(ltc2309->refcomp); > > + if (ret < 0) > > You have unbalanced regulator. Same in all further error paths. > Right, will fix. I was going to add an action with devm_add_action_or_reset(), and noticed a lot of duplicate code adding a custom disable action. Does adding something like this make sense? -- >8 -- diff --git a/drivers/regulator/devres.c b/drivers/regulator/devres.c index 90bb0d178885..ff94f35fad87 100644 --- a/drivers/regulator/devres.c +++ b/drivers/regulator/devres.c @@ -70,12 +70,17 @@ struct regulator *devm_regulator_get_exclusive(struct device *dev, } EXPORT_SYMBOL_GPL(devm_regulator_get_exclusive); -static void regulator_action_disable(void *d) +/** + * regulator_action_disable - Generic disable action for managed resource + * @d: regulator to disable + */ +void regulator_action_disable(void *d) { struct regulator *r = (struct regulator *)d; regulator_disable(r); } +EXPORT_SYMBOL_GPL(regulator_action_disable); static int _devm_regulator_get_enable(struct device *dev, const char *id, int get_type) diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index 39b666b40ea6..4c018af5d008 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h @@ -207,6 +207,8 @@ struct regulator *__must_check regulator_get_optional(struct device *dev, const char *id); struct regulator *__must_check devm_regulator_get_optional(struct device *dev, const char *id); + +void regulator_action_disable(void *d); int devm_regulator_get_enable(struct device *dev, const char *id); int devm_regulator_get_enable_optional(struct device *dev, const char *id); void regulator_put(struct regulator *regulator); -- >8 -- This would let consumers reuse it directly with something like: devm_add_action_or_reset(ltc2309->dev, regulator_action_disable, ltc2309->vref); Maybe it should be a separate series, including the cleanup? > > + return ret; > > + > > + ltc2309->vref_mv = ret / 1000; > > + if (ret) > > + return ret; I just noticed this extra if. will remove too. > > + } > > + > > + mutex_init(<c2309->lock); > > + > > + return devm_iio_device_register(&client->dev, indio_dev); > > +} > > + > > > Best regards, > Krzysztof > Thanks, Liam ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() 2023-08-24 16:55 [PATCH 0/3] iio: adc: add LTC2309 support Liam Beguin 2023-08-24 16:55 ` [PATCH 1/3] iio: adc: add ltc2309 support Liam Beguin @ 2023-08-24 16:55 ` Liam Beguin 2023-08-24 18:01 ` Krzysztof Kozlowski 2023-09-05 20:44 ` kernel test robot 2023-08-24 16:55 ` [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings Liam Beguin 2 siblings, 2 replies; 14+ messages in thread From: Liam Beguin @ 2023-08-24 16:55 UTC (permalink / raw) To: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree, Liam Beguin Recent changes to the I2C subsystem removed the id parameter of the probe function. Update driver to use the new prototype, and keep this as an independent commit to facilitate backporting. Signed-off-by: Liam Beguin <liambeguin@gmail.com> --- drivers/iio/adc/ltc2309.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/iio/adc/ltc2309.c b/drivers/iio/adc/ltc2309.c index ee1fd9b82e2a..d26bbd70b0ff 100644 --- a/drivers/iio/adc/ltc2309.c +++ b/drivers/iio/adc/ltc2309.c @@ -158,8 +158,7 @@ static const struct iio_info ltc2309_info = { .read_raw = ltc2309_read_raw, }; -static int ltc2309_probe(struct i2c_client *client, - const struct i2c_device_id *id) +static int ltc2309_probe(struct i2c_client *client) { struct iio_dev *indio_dev; struct ltc2309 *ltc2309; -- 2.39.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() 2023-08-24 16:55 ` [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() Liam Beguin @ 2023-08-24 18:01 ` Krzysztof Kozlowski 2023-08-24 19:38 ` Liam Beguin 2023-09-05 20:44 ` kernel test robot 1 sibling, 1 reply; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-08-24 18:01 UTC (permalink / raw) To: Liam Beguin, Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree On 24/08/2023 18:55, Liam Beguin wrote: > Recent changes to the I2C subsystem removed the id parameter of the > probe function. Update driver to use the new prototype, and keep this as > an independent commit to facilitate backporting. > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> > --- > drivers/iio/adc/ltc2309.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/iio/adc/ltc2309.c b/drivers/iio/adc/ltc2309.c > index ee1fd9b82e2a..d26bbd70b0ff 100644 > --- a/drivers/iio/adc/ltc2309.c > +++ b/drivers/iio/adc/ltc2309.c > @@ -158,8 +158,7 @@ static const struct iio_info ltc2309_info = { > .read_raw = ltc2309_read_raw, > }; > > -static int ltc2309_probe(struct i2c_client *client, > - const struct i2c_device_id *id) > +static int ltc2309_probe(struct i2c_client *client) This patch does not make sense. Do not send patch (1/3) which does not compile and is buggy, just to immediately fix it. We do not add known wrong code. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() 2023-08-24 18:01 ` Krzysztof Kozlowski @ 2023-08-24 19:38 ` Liam Beguin 0 siblings, 0 replies; 14+ messages in thread From: Liam Beguin @ 2023-08-24 19:38 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree On Thu, Aug 24, 2023 at 08:01:01PM +0200, Krzysztof Kozlowski wrote: > On 24/08/2023 18:55, Liam Beguin wrote: > > Recent changes to the I2C subsystem removed the id parameter of the > > probe function. Update driver to use the new prototype, and keep this as > > an independent commit to facilitate backporting. > > > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> > > --- > > drivers/iio/adc/ltc2309.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/iio/adc/ltc2309.c b/drivers/iio/adc/ltc2309.c > > index ee1fd9b82e2a..d26bbd70b0ff 100644 > > --- a/drivers/iio/adc/ltc2309.c > > +++ b/drivers/iio/adc/ltc2309.c > > @@ -158,8 +158,7 @@ static const struct iio_info ltc2309_info = { > > .read_raw = ltc2309_read_raw, > > }; > > > > -static int ltc2309_probe(struct i2c_client *client, > > - const struct i2c_device_id *id) > > +static int ltc2309_probe(struct i2c_client *client) > > This patch does not make sense. Do not send patch (1/3) which does not > compile and is buggy, just to immediately fix it. We do not add known > wrong code. Sorry about that! You're right, I missed that 1/3 doesn't build without this change. I might've pressed send too quickly here.. > Best regards, > Krzysztof > Thanks, Liam ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() 2023-08-24 16:55 ` [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() Liam Beguin 2023-08-24 18:01 ` Krzysztof Kozlowski @ 2023-09-05 20:44 ` kernel test robot 1 sibling, 0 replies; 14+ messages in thread From: kernel test robot @ 2023-09-05 20:44 UTC (permalink / raw) To: Liam Beguin, Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: oe-kbuild-all, linux-kernel, linux-iio, devicetree, Liam Beguin Hi Liam, kernel test robot noticed the following build warnings: [auto build test WARNING on a5e505a99ca748583dbe558b691be1b26f05d678] url: https://github.com/intel-lab-lkp/linux/commits/Liam-Beguin/iio-adc-add-ltc2309-support/20230825-005720 base: a5e505a99ca748583dbe558b691be1b26f05d678 patch link: https://lore.kernel.org/r/20230824-ltc2309-v1-2-b87b4eb8030c%40gmail.com patch subject: [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() config: i386-randconfig-061-20230906 (https://download.01.org/0day-ci/archive/20230906/202309060456.UYGqTIBd-lkp@intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230906/202309060456.UYGqTIBd-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202309060456.UYGqTIBd-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/iio/adc/ltc2309.c:138:24: sparse: sparse: cast to restricted __be16 vim +138 drivers/iio/adc/ltc2309.c a967828958b014 Liam Beguin 2023-08-24 106 a967828958b014 Liam Beguin 2023-08-24 107 static int ltc2309_read_raw(struct iio_dev *indio_dev, a967828958b014 Liam Beguin 2023-08-24 108 struct iio_chan_spec const *chan, int *val, a967828958b014 Liam Beguin 2023-08-24 109 int *val2, long mask) a967828958b014 Liam Beguin 2023-08-24 110 { a967828958b014 Liam Beguin 2023-08-24 111 struct ltc2309 *ltc2309 = iio_priv(indio_dev); a967828958b014 Liam Beguin 2023-08-24 112 u16 buf; a967828958b014 Liam Beguin 2023-08-24 113 int ret; a967828958b014 Liam Beguin 2023-08-24 114 u8 din; a967828958b014 Liam Beguin 2023-08-24 115 a967828958b014 Liam Beguin 2023-08-24 116 mutex_lock(<c2309->lock); a967828958b014 Liam Beguin 2023-08-24 117 a967828958b014 Liam Beguin 2023-08-24 118 switch (mask) { a967828958b014 Liam Beguin 2023-08-24 119 case IIO_CHAN_INFO_RAW: a967828958b014 Liam Beguin 2023-08-24 120 din = FIELD_PREP(LTC2309_DIN_CH_MASK, chan->address & 0x0f) | a967828958b014 Liam Beguin 2023-08-24 121 FIELD_PREP(LTC2309_DIN_UNI, 1) | a967828958b014 Liam Beguin 2023-08-24 122 FIELD_PREP(LTC2309_DIN_SLEEP, 0); a967828958b014 Liam Beguin 2023-08-24 123 a967828958b014 Liam Beguin 2023-08-24 124 ret = i2c_smbus_write_byte(ltc2309->client, din); a967828958b014 Liam Beguin 2023-08-24 125 if (ret < 0) { a967828958b014 Liam Beguin 2023-08-24 126 dev_err(ltc2309->dev, "i2c command failed: %pe\n", a967828958b014 Liam Beguin 2023-08-24 127 ERR_PTR(ret)); a967828958b014 Liam Beguin 2023-08-24 128 goto out; a967828958b014 Liam Beguin 2023-08-24 129 } a967828958b014 Liam Beguin 2023-08-24 130 a967828958b014 Liam Beguin 2023-08-24 131 ret = i2c_master_recv(ltc2309->client, (char *)&buf, 2); a967828958b014 Liam Beguin 2023-08-24 132 if (ret < 0) { a967828958b014 Liam Beguin 2023-08-24 133 dev_err(ltc2309->dev, "i2c read failed: %pe\n", a967828958b014 Liam Beguin 2023-08-24 134 ERR_PTR(ret)); a967828958b014 Liam Beguin 2023-08-24 135 goto out; a967828958b014 Liam Beguin 2023-08-24 136 } a967828958b014 Liam Beguin 2023-08-24 137 a967828958b014 Liam Beguin 2023-08-24 @138 *val = be16_to_cpu(buf) >> 4; a967828958b014 Liam Beguin 2023-08-24 139 a967828958b014 Liam Beguin 2023-08-24 140 ret = IIO_VAL_INT; a967828958b014 Liam Beguin 2023-08-24 141 break; a967828958b014 Liam Beguin 2023-08-24 142 case IIO_CHAN_INFO_SCALE: a967828958b014 Liam Beguin 2023-08-24 143 *val = ltc2309->vref_mv; a967828958b014 Liam Beguin 2023-08-24 144 *val2 = LTC2309_ADC_RESOLUTION; a967828958b014 Liam Beguin 2023-08-24 145 ret = IIO_VAL_FRACTIONAL_LOG2; a967828958b014 Liam Beguin 2023-08-24 146 break; a967828958b014 Liam Beguin 2023-08-24 147 default: a967828958b014 Liam Beguin 2023-08-24 148 ret = -EINVAL; a967828958b014 Liam Beguin 2023-08-24 149 break; a967828958b014 Liam Beguin 2023-08-24 150 } a967828958b014 Liam Beguin 2023-08-24 151 a967828958b014 Liam Beguin 2023-08-24 152 out: a967828958b014 Liam Beguin 2023-08-24 153 mutex_unlock(<c2309->lock); a967828958b014 Liam Beguin 2023-08-24 154 return ret; a967828958b014 Liam Beguin 2023-08-24 155 } a967828958b014 Liam Beguin 2023-08-24 156 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-24 16:55 [PATCH 0/3] iio: adc: add LTC2309 support Liam Beguin 2023-08-24 16:55 ` [PATCH 1/3] iio: adc: add ltc2309 support Liam Beguin 2023-08-24 16:55 ` [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() Liam Beguin @ 2023-08-24 16:55 ` Liam Beguin 2023-08-24 17:56 ` Krzysztof Kozlowski 2 siblings, 1 reply; 14+ messages in thread From: Liam Beguin @ 2023-08-24 16:55 UTC (permalink / raw) To: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree, Liam Beguin Add devicetree bindings for the Linear Technology LTC2309 ADC driver. Signed-off-by: Liam Beguin <liambeguin@gmail.com> --- .../devicetree/bindings/iio/adc/lltc,ltc2309.yaml | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml new file mode 100644 index 000000000000..7874290dad75 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/lltc,ltc2309.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Linear Technology / Analog Devices LTC2309 ADC + +maintainers: + - Liam Beguin <liambeguin@gmail.com> + +properties: + compatible: + enum: + - lltc,ltc2309 + + refcomp-supply: + description: Power supply for the reference voltage + + reg: + enum: + - 0x08 + - 0x09 + - 0x0a + - 0x0b + - 0x18 + - 0x19 + - 0x1a + - 0x1b + - 0x28 + + "#io-channel-cells": + const: 1 + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + adc@28 { + #io-channel-cells = <1>; + compatible = "lltc,ltc2309"; + reg = <0x28>; + }; + }; -- 2.39.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-24 16:55 ` [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings Liam Beguin @ 2023-08-24 17:56 ` Krzysztof Kozlowski 2023-08-24 18:50 ` Liam Beguin 0 siblings, 1 reply; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-08-24 17:56 UTC (permalink / raw) To: Liam Beguin, Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-kernel, linux-iio, devicetree On 24/08/2023 18:55, Liam Beguin wrote: > Add devicetree bindings for the Linear Technology LTC2309 ADC driver. > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> Thank you for your patch. There is something to discuss/improve. > +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml > @@ -0,0 +1,52 @@ > +# SPDX-License-Identifier: GPL-2.0 Wrong license. Run checkpatch before sending patches. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/lltc,ltc2309.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Linear Technology / Analog Devices LTC2309 ADC > + > +maintainers: > + - Liam Beguin <liambeguin@gmail.com> > + > +properties: > + compatible: > + enum: > + - lltc,ltc2309 > + > + refcomp-supply: > + description: Power supply for the reference voltage refcomp is not a supply. It is called "Reference Buffer Output.". You probably wanted vref-supply, which suggests you should just add it to ltc2497 bindings. I don't see any differences. > + > + reg: > + enum: > + - 0x08 > + - 0x09 > + - 0x0a > + - 0x0b > + - 0x18 > + - 0x19 > + - 0x1a > + - 0x1b > + - 0x28 > + > + "#io-channel-cells": > + const: 1 > + > +required: > + - compatible > + - reg > + > +unevaluatedProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + adc@28 { > + #io-channel-cells = <1>; > + compatible = "lltc,ltc2309"; > + reg = <0x28>; If the example stays, then order is compatible first, then reg, then the rest. Also add the supply to make example complete. But I think this should be squashed with other binding so no need for the example. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-24 17:56 ` Krzysztof Kozlowski @ 2023-08-24 18:50 ` Liam Beguin 2023-08-25 6:15 ` Krzysztof Kozlowski 0 siblings, 1 reply; 14+ messages in thread From: Liam Beguin @ 2023-08-24 18:50 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree On Thu, Aug 24, 2023 at 07:56:29PM +0200, Krzysztof Kozlowski wrote: > On 24/08/2023 18:55, Liam Beguin wrote: > > Add devicetree bindings for the Linear Technology LTC2309 ADC driver. > > > > Signed-off-by: Liam Beguin <liambeguin@gmail.com> > > Thank you for your patch. There is something to discuss/improve. > > > +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml > > @@ -0,0 +1,52 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > Wrong license. Run checkpatch before sending patches. > Sorry about that, I ran it through checkpatch but it didn't flag anything. > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/iio/adc/lltc,ltc2309.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Linear Technology / Analog Devices LTC2309 ADC > > + > > +maintainers: > > + - Liam Beguin <liambeguin@gmail.com> > > + > > +properties: > > + compatible: > > + enum: > > + - lltc,ltc2309 > > + > > + refcomp-supply: > > + description: Power supply for the reference voltage > > refcomp is not a supply. It is called "Reference Buffer Output.". You That makes sense, I was going for the PIN name from the datasheet. > probably wanted vref-supply, which suggests you should just add it to > ltc2497 bindings. I don't see any differences. > I hadn't thought of reusing an existing bindings file for a different driver. I'll update ltc2497.yaml instead since it avoids duplicating the whole file. > > + > > + reg: > > + enum: > > + - 0x08 > > + - 0x09 > > + - 0x0a > > + - 0x0b > > + - 0x18 > > + - 0x19 > > + - 0x1a > > + - 0x1b > > + - 0x28 > > + > > + "#io-channel-cells": > > + const: 1 > > + > > +required: > > + - compatible > > + - reg > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + adc@28 { > > + #io-channel-cells = <1>; > > + compatible = "lltc,ltc2309"; > > + reg = <0x28>; > > If the example stays, then order is compatible first, then reg, then the > rest. Also add the supply to make example complete. Thanks for pointing out the proper order. > But I think this should be squashed with other binding so no need for > the example. > > Best regards, > Krzysztof > Thanks for your time! Liam ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-24 18:50 ` Liam Beguin @ 2023-08-25 6:15 ` Krzysztof Kozlowski 2023-08-25 15:53 ` Liam Beguin 0 siblings, 1 reply; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-08-25 6:15 UTC (permalink / raw) To: Liam Beguin Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree On 24/08/2023 20:50, Liam Beguin wrote: > On Thu, Aug 24, 2023 at 07:56:29PM +0200, Krzysztof Kozlowski wrote: >> On 24/08/2023 18:55, Liam Beguin wrote: >>> Add devicetree bindings for the Linear Technology LTC2309 ADC driver. >>> >>> Signed-off-by: Liam Beguin <liambeguin@gmail.com> >> >> Thank you for your patch. There is something to discuss/improve. >> >>> +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml >>> @@ -0,0 +1,52 @@ >>> +# SPDX-License-Identifier: GPL-2.0 >> >> Wrong license. Run checkpatch before sending patches. >> > > Sorry about that, I ran it through checkpatch but it didn't flag > anything. No, you didn't, because checkpatch flags it easily: WARNING: DT binding documents should be licensed (GPL-2.0-only OR BSD-2-Clause) #21: FILE: Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml:1: +# SPDX-License-Identifier: GPL-2.0 total: 0 errors, 2 warnings, 52 lines checked Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-25 6:15 ` Krzysztof Kozlowski @ 2023-08-25 15:53 ` Liam Beguin 2023-08-26 8:36 ` Krzysztof Kozlowski 0 siblings, 1 reply; 14+ messages in thread From: Liam Beguin @ 2023-08-25 15:53 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree Hi Krzysztof, On Fri, Aug 25, 2023 at 08:15:57AM +0200, Krzysztof Kozlowski wrote: > On 24/08/2023 20:50, Liam Beguin wrote: > > On Thu, Aug 24, 2023 at 07:56:29PM +0200, Krzysztof Kozlowski wrote: > >> On 24/08/2023 18:55, Liam Beguin wrote: > >>> Add devicetree bindings for the Linear Technology LTC2309 ADC driver. > >>> > >>> Signed-off-by: Liam Beguin <liambeguin@gmail.com> > >> > >> Thank you for your patch. There is something to discuss/improve. > >> > >>> +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml > >>> @@ -0,0 +1,52 @@ > >>> +# SPDX-License-Identifier: GPL-2.0 > >> > >> Wrong license. Run checkpatch before sending patches. > >> > > > > Sorry about that, I ran it through checkpatch but it didn't flag > > anything. > > No, you didn't, because checkpatch flags it easily: > > WARNING: DT binding documents should be licensed (GPL-2.0-only OR > BSD-2-Clause) > #21: FILE: Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml:1: > +# SPDX-License-Identifier: GPL-2.0 > > total: 0 errors, 2 warnings, 52 lines checked It seems like I wasn't running checkpatch in strict mode. Thanks for pointing that out. > > Best regards, > Krzysztof Cheers, Liam ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings 2023-08-25 15:53 ` Liam Beguin @ 2023-08-26 8:36 ` Krzysztof Kozlowski 0 siblings, 0 replies; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-08-26 8:36 UTC (permalink / raw) To: Liam Beguin Cc: Jonathan Cameron, Lars-Peter Clausen, Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-kernel, linux-iio, devicetree On 25/08/2023 17:53, Liam Beguin wrote: > Hi Krzysztof, > > On Fri, Aug 25, 2023 at 08:15:57AM +0200, Krzysztof Kozlowski wrote: >> On 24/08/2023 20:50, Liam Beguin wrote: >>> On Thu, Aug 24, 2023 at 07:56:29PM +0200, Krzysztof Kozlowski wrote: >>>> On 24/08/2023 18:55, Liam Beguin wrote: >>>>> Add devicetree bindings for the Linear Technology LTC2309 ADC driver. >>>>> >>>>> Signed-off-by: Liam Beguin <liambeguin@gmail.com> >>>> >>>> Thank you for your patch. There is something to discuss/improve. >>>> >>>>> +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml >>>>> @@ -0,0 +1,52 @@ >>>>> +# SPDX-License-Identifier: GPL-2.0 >>>> >>>> Wrong license. Run checkpatch before sending patches. >>>> >>> >>> Sorry about that, I ran it through checkpatch but it didn't flag >>> anything. >> >> No, you didn't, because checkpatch flags it easily: >> >> WARNING: DT binding documents should be licensed (GPL-2.0-only OR >> BSD-2-Clause) >> #21: FILE: Documentation/devicetree/bindings/iio/adc/lltc,ltc2309.yaml:1: >> +# SPDX-License-Identifier: GPL-2.0 >> >> total: 0 errors, 2 warnings, 52 lines checked > > It seems like I wasn't running checkpatch in strict mode. No. This was not a strict mode but a regular run. I don't understand why you are turning this all the time around... You can easily check by yourself and reproduce the warning any time. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-09-05 20:44 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-08-24 16:55 [PATCH 0/3] iio: adc: add LTC2309 support Liam Beguin 2023-08-24 16:55 ` [PATCH 1/3] iio: adc: add ltc2309 support Liam Beguin 2023-08-24 18:00 ` Krzysztof Kozlowski 2023-08-24 19:32 ` Liam Beguin 2023-08-24 16:55 ` [PATCH 2/3] iio: adc: ltc2309: switch to new .probe() Liam Beguin 2023-08-24 18:01 ` Krzysztof Kozlowski 2023-08-24 19:38 ` Liam Beguin 2023-09-05 20:44 ` kernel test robot 2023-08-24 16:55 ` [PATCH 3/3] dt-bindings: iio: adc: add lltc,ltc2309 bindings Liam Beguin 2023-08-24 17:56 ` Krzysztof Kozlowski 2023-08-24 18:50 ` Liam Beguin 2023-08-25 6:15 ` Krzysztof Kozlowski 2023-08-25 15:53 ` Liam Beguin 2023-08-26 8:36 ` Krzysztof Kozlowski
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).