Lines Matching defs:data
78 .data = (void *)TMP464_NUM_CHANNELS
82 .data = (void *)TMP468_NUM_CHANNELS
120 static int tmp464_enable_channels(struct tmp464_data *data)
122 struct regmap *regmap = data->regmap;
126 for (i = 0; i < data->channels; i++)
127 if (data->channel[i].enabled)
135 struct tmp464_data *data = dev_get_drvdata(dev);
139 *val = data->update_interval;
148 struct tmp464_data *data = dev_get_drvdata(dev);
149 struct regmap *regmap = data->regmap;
153 mutex_lock(&data->update_lock);
175 if (!data->valid || time_after(jiffies, data->last_updated +
176 msecs_to_jiffies(data->update_interval))) {
180 data->open_reg = regval;
181 data->last_updated = jiffies;
182 data->valid = true;
184 *val = !!(data->open_reg & BIT(channel + 7));
225 if (!data->channel[channel].enabled) {
235 *val = data->channel[channel].enabled;
242 mutex_unlock(&data->update_lock);
263 struct tmp464_data *data = dev_get_drvdata(dev);
265 *str = data->channel[channel].label;
270 static int tmp464_set_convrate(struct tmp464_data *data, long interval)
288 data->update_interval = 125 << (7 - rate);
290 return regmap_update_bits(data->regmap, TMP464_CONFIG_REG,
295 static int tmp464_chip_write(struct tmp464_data *data, u32 attr, int channel, long val)
299 return tmp464_set_convrate(data, val);
305 static int tmp464_temp_write(struct tmp464_data *data, u32 attr, int channel, long val)
307 struct regmap *regmap = data->regmap;
334 data->channel[channel].enabled = !!val;
335 err = tmp464_enable_channels(data);
348 struct tmp464_data *data = dev_get_drvdata(dev);
351 mutex_lock(&data->update_lock);
355 err = tmp464_chip_write(data, attr, channel, val);
358 err = tmp464_temp_write(data, attr, channel, val);
365 mutex_unlock(&data->update_lock);
373 const struct tmp464_data *data = _data;
375 if (channel >= data->channels)
399 if (data->channel[channel].label)
422 struct tmp464_data *data = _data;
424 regmap_write(data->regmap, TMP464_CONFIG_REG, data->config_orig);
427 static int tmp464_init_client(struct device *dev, struct tmp464_data *data)
429 struct regmap *regmap = data->regmap;
450 data->config_orig = regval;
451 err = devm_add_action_or_reset(dev, tmp464_restore_config, data);
463 data->update_interval = 500;
465 return tmp464_enable_channels(data);
520 struct tmp464_data *data)
523 struct regmap *regmap = data->regmap;
534 if (channel >= data->channels) {
539 of_property_read_string(child, "label", &data->channel[channel].label);
541 data->channel[channel].enabled = of_device_is_available(child);
565 static int tmp464_probe_from_dt(struct device *dev, struct tmp464_data *data)
575 err = tmp464_probe_child_from_dt(dev, child, data);
656 struct tmp464_data *data;
663 data = devm_kzalloc(dev, sizeof(struct tmp464_data), GFP_KERNEL);
664 if (!data)
667 mutex_init(&data->update_lock);
670 data->channels = (int)(unsigned long)of_device_get_match_data(&client->dev);
672 data->channels = i2c_match_id(tmp464_id, client)->driver_data;
674 data->regmap = devm_regmap_init_i2c(client, &tmp464_regmap_config);
675 if (IS_ERR(data->regmap))
676 return PTR_ERR(data->regmap);
678 for (i = 0; i < data->channels; i++)
679 data->channel[i].enabled = true;
681 err = tmp464_init_client(dev, data);
686 err = tmp464_probe_from_dt(dev, data);
692 data, &tmp464_chip_info, NULL);