Lines Matching refs:data
34 #define MAX197_SCALE 12207 /* Scale coefficient for raw data */
40 * struct max197_data - device instance specific data
41 * @pdata: Platform data.
57 static inline void max197_set_unipolarity(struct max197_data *data, int channel)
59 data->ctrl_bytes[channel] &= ~MAX197_BIP;
62 static inline void max197_set_bipolarity(struct max197_data *data, int channel)
64 data->ctrl_bytes[channel] |= MAX197_BIP;
67 static inline void max197_set_half_range(struct max197_data *data, int channel)
69 data->ctrl_bytes[channel] &= ~MAX197_RNG;
72 static inline void max197_set_full_range(struct max197_data *data, int channel)
74 data->ctrl_bytes[channel] |= MAX197_RNG;
77 static inline bool max197_is_bipolar(struct max197_data *data, int channel)
79 return data->ctrl_bytes[channel] & MAX197_BIP;
82 static inline bool max197_is_full_range(struct max197_data *data, int channel)
84 return data->ctrl_bytes[channel] & MAX197_RNG;
91 struct max197_data *data = dev_get_drvdata(dev);
97 if (mutex_lock_interruptible(&data->lock))
100 range = max197_is_full_range(data, channel) ?
101 data->limit : data->limit / 2;
103 if (max197_is_bipolar(data, channel))
109 mutex_unlock(&data->lock);
119 struct max197_data *data = dev_get_drvdata(dev);
124 int half = data->limit / 2;
125 int full = data->limit;
144 if (mutex_lock_interruptible(&data->lock))
149 max197_set_unipolarity(data, channel);
151 max197_set_bipolarity(data, channel);
152 max197_set_half_range(data, channel);
154 max197_set_bipolarity(data, channel);
155 max197_set_full_range(data, channel);
158 max197_set_half_range(data, channel);
161 max197_set_full_range(data, channel);
164 mutex_unlock(&data->lock);
174 struct max197_data *data = dev_get_drvdata(dev);
180 if (mutex_lock_interruptible(&data->lock))
183 ret = data->pdata->convert(data->ctrl_bytes[channel]);
194 if (data->scale) {
196 if (max197_is_full_range(data, channel))
204 mutex_unlock(&data->lock);
261 struct max197_data *data;
266 dev_err(&pdev->dev, "no platform data supplied\n");
275 data = devm_kzalloc(&pdev->dev, sizeof(struct max197_data), GFP_KERNEL);
276 if (!data)
279 data->pdata = pdata;
280 mutex_init(&data->lock);
283 data->limit = MAX197_LIMIT;
284 data->scale = true;
286 data->limit = MAX199_LIMIT;
287 data->scale = false;
291 data->ctrl_bytes[ch] = (u8) ch;
293 platform_set_drvdata(pdev, data);
301 data->hwmon_dev = hwmon_device_register(&pdev->dev);
302 if (IS_ERR(data->hwmon_dev)) {
303 ret = PTR_ERR(data->hwmon_dev);
317 struct max197_data *data = platform_get_drvdata(pdev);
319 hwmon_device_unregister(data->hwmon_dev);