Lines Matching refs:dev

31 static int check_channel(struct udevice *dev, int value, bool number_or_mask,  in check_channel()  argument
34 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in check_channel()
46 __FILE__, caller_function, dev->name); in check_channel()
51 static int adc_supply_enable(struct udevice *dev) in adc_supply_enable() argument
53 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_supply_enable()
58 pr_err("%s: can't enable vdd-supply!", dev->name); in adc_supply_enable()
64 pr_err("%s: can't enable vss-supply!", dev->name); in adc_supply_enable()
71 int adc_data_mask(struct udevice *dev, unsigned int *data_mask) in adc_data_mask() argument
73 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_data_mask()
82 int adc_channel_mask(struct udevice *dev, unsigned int *channel_mask) in adc_channel_mask() argument
84 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_channel_mask()
94 int adc_stop(struct udevice *dev) in adc_stop() argument
96 const struct adc_ops *ops = dev_get_driver_ops(dev); in adc_stop()
101 return ops->stop(dev); in adc_stop()
104 int adc_start_channel(struct udevice *dev, int channel) in adc_start_channel() argument
106 const struct adc_ops *ops = dev_get_driver_ops(dev); in adc_start_channel()
112 ret = check_channel(dev, channel, CHECK_NUMBER, __func__); in adc_start_channel()
116 ret = adc_supply_enable(dev); in adc_start_channel()
120 return ops->start_channel(dev, channel); in adc_start_channel()
123 int adc_start_channels(struct udevice *dev, unsigned int channel_mask) in adc_start_channels() argument
125 const struct adc_ops *ops = dev_get_driver_ops(dev); in adc_start_channels()
131 ret = check_channel(dev, channel_mask, CHECK_MASK, __func__); in adc_start_channels()
135 ret = adc_supply_enable(dev); in adc_start_channels()
139 return ops->start_channels(dev, channel_mask); in adc_start_channels()
142 int adc_channel_data(struct udevice *dev, int channel, unsigned int *data) in adc_channel_data() argument
144 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_channel_data()
145 const struct adc_ops *ops = dev_get_driver_ops(dev); in adc_channel_data()
152 ret = check_channel(dev, channel, CHECK_NUMBER, __func__); in adc_channel_data()
157 ret = ops->channel_data(dev, channel, data); in adc_channel_data()
168 int adc_channels_data(struct udevice *dev, unsigned int channel_mask, in adc_channels_data() argument
171 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_channels_data()
173 const struct adc_ops *ops = dev_get_driver_ops(dev); in adc_channels_data()
179 ret = check_channel(dev, channel_mask, CHECK_MASK, __func__); in adc_channels_data()
184 ret = ops->channels_data(dev, channel_mask, channels); in adc_channels_data()
197 struct udevice *dev; in adc_channel_single_shot() local
200 ret = uclass_get_device_by_name(UCLASS_ADC, name, &dev); in adc_channel_single_shot()
204 ret = adc_start_channel(dev, channel); in adc_channel_single_shot()
208 ret = adc_channel_data(dev, channel, data); in adc_channel_single_shot()
215 static int _adc_channels_single_shot(struct udevice *dev, in _adc_channels_single_shot() argument
227 ret = adc_start_channel(dev, channel); in _adc_channels_single_shot()
231 ret = adc_channel_data(dev, channel, &data); in _adc_channels_single_shot()
246 struct udevice *dev; in adc_channels_single_shot() local
249 ret = uclass_get_device_by_name(UCLASS_ADC, name, &dev); in adc_channels_single_shot()
253 ret = adc_start_channels(dev, channel_mask); in adc_channels_single_shot()
257 ret = adc_channels_data(dev, channel_mask, channels); in adc_channels_single_shot()
267 return _adc_channels_single_shot(dev, channel_mask, channels); in adc_channels_single_shot()
270 static int adc_vdd_plat_update(struct udevice *dev) in adc_vdd_plat_update() argument
272 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vdd_plat_update()
293 static int adc_vss_plat_update(struct udevice *dev) in adc_vss_plat_update() argument
295 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vss_plat_update()
310 int adc_vdd_value(struct udevice *dev, int *uV) in adc_vdd_value() argument
312 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vdd_value()
316 ret = adc_vdd_plat_update(dev); in adc_vdd_value()
328 int adc_vss_value(struct udevice *dev, int *uV) in adc_vss_value() argument
330 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vss_value()
334 ret = adc_vss_plat_update(dev); in adc_vss_value()
346 int adc_raw_to_uV(struct udevice *dev, unsigned int raw, int *uV) in adc_raw_to_uV() argument
352 ret = adc_vdd_value(dev, &vref); in adc_raw_to_uV()
356 if (!adc_vss_value(dev, &val)) in adc_raw_to_uV()
359 ret = adc_data_mask(dev, &data_mask); in adc_raw_to_uV()
370 static int adc_vdd_plat_set(struct udevice *dev) in adc_vdd_plat_set() argument
372 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vdd_plat_set()
377 uc_pdata->vdd_polarity_negative = dev_read_bool(dev, prop); in adc_vdd_plat_set()
380 ret = device_get_supply_regulator(dev, "vdd-supply", in adc_vdd_plat_set()
383 return adc_vdd_plat_update(dev); in adc_vdd_plat_set()
390 uc_pdata->vdd_microvolts = dev_read_u32_default(dev, prop, -ENODATA); in adc_vdd_plat_set()
395 static int adc_vss_plat_set(struct udevice *dev) in adc_vss_plat_set() argument
397 struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev); in adc_vss_plat_set()
402 uc_pdata->vss_polarity_negative = dev_read_bool(dev, prop); in adc_vss_plat_set()
404 ret = device_get_supply_regulator(dev, "vss-supply", in adc_vss_plat_set()
407 return adc_vss_plat_update(dev); in adc_vss_plat_set()
414 uc_pdata->vss_microvolts = dev_read_u32_default(dev, prop, -ENODATA); in adc_vss_plat_set()
419 static int adc_pre_probe(struct udevice *dev) in adc_pre_probe() argument
424 ret = adc_vdd_plat_set(dev); in adc_pre_probe()
426 pr_err("%s: Can't update Vdd. Error: %d", dev->name, ret); in adc_pre_probe()
429 ret = adc_vss_plat_set(dev); in adc_pre_probe()
431 pr_err("%s: Can't update Vss. Error: %d", dev->name, ret); in adc_pre_probe()