ad7887.c (27eb2c4b3d3e13f376a359e293c212a2e9407af5) | ad7887.c (82429e0d33ece550378852539827916cda0a6b69) |
---|---|
1/* 2 * AD7887 SPI ADC driver 3 * 4 * Copyright 2010-2011 Analog Devices Inc. 5 * 6 * Licensed under the GPL-2. 7 */ 8 --- 223 unchanged lines hidden (view full) --- 232 .read_raw = &ad7887_read_raw, 233 .driver_module = THIS_MODULE, 234}; 235 236static int ad7887_probe(struct spi_device *spi) 237{ 238 struct ad7887_platform_data *pdata = spi->dev.platform_data; 239 struct ad7887_state *st; | 1/* 2 * AD7887 SPI ADC driver 3 * 4 * Copyright 2010-2011 Analog Devices Inc. 5 * 6 * Licensed under the GPL-2. 7 */ 8 --- 223 unchanged lines hidden (view full) --- 232 .read_raw = &ad7887_read_raw, 233 .driver_module = THIS_MODULE, 234}; 235 236static int ad7887_probe(struct spi_device *spi) 237{ 238 struct ad7887_platform_data *pdata = spi->dev.platform_data; 239 struct ad7887_state *st; |
240 struct iio_dev *indio_dev = iio_device_alloc(sizeof(*st)); | 240 struct iio_dev *indio_dev; |
241 uint8_t mode; 242 int ret; 243 | 241 uint8_t mode; 242 int ret; 243 |
244 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); |
|
244 if (indio_dev == NULL) 245 return -ENOMEM; 246 247 st = iio_priv(indio_dev); 248 249 if (!pdata || !pdata->use_onchip_ref) { | 245 if (indio_dev == NULL) 246 return -ENOMEM; 247 248 st = iio_priv(indio_dev); 249 250 if (!pdata || !pdata->use_onchip_ref) { |
250 st->reg = regulator_get(&spi->dev, "vref"); 251 if (IS_ERR(st->reg)) { 252 ret = PTR_ERR(st->reg); 253 goto error_free; 254 } | 251 st->reg = devm_regulator_get(&spi->dev, "vref"); 252 if (IS_ERR(st->reg)) 253 return PTR_ERR(st->reg); |
255 256 ret = regulator_enable(st->reg); 257 if (ret) | 254 255 ret = regulator_enable(st->reg); 256 if (ret) |
258 goto error_put_reg; | 257 return ret; |
259 } 260 261 st->chip_info = 262 &ad7887_chip_info_tbl[spi_get_device_id(spi)->driver_data]; 263 264 spi_set_drvdata(spi, indio_dev); 265 st->spi = spi; 266 --- 59 unchanged lines hidden (view full) --- 326 goto error_unregister_ring; 327 328 return 0; 329error_unregister_ring: 330 iio_triggered_buffer_cleanup(indio_dev); 331error_disable_reg: 332 if (st->reg) 333 regulator_disable(st->reg); | 258 } 259 260 st->chip_info = 261 &ad7887_chip_info_tbl[spi_get_device_id(spi)->driver_data]; 262 263 spi_set_drvdata(spi, indio_dev); 264 st->spi = spi; 265 --- 59 unchanged lines hidden (view full) --- 325 goto error_unregister_ring; 326 327 return 0; 328error_unregister_ring: 329 iio_triggered_buffer_cleanup(indio_dev); 330error_disable_reg: 331 if (st->reg) 332 regulator_disable(st->reg); |
334error_put_reg: 335 if (st->reg) 336 regulator_put(st->reg); 337error_free: 338 iio_device_free(indio_dev); | |
339 340 return ret; 341} 342 343static int ad7887_remove(struct spi_device *spi) 344{ 345 struct iio_dev *indio_dev = spi_get_drvdata(spi); 346 struct ad7887_state *st = iio_priv(indio_dev); 347 348 iio_device_unregister(indio_dev); 349 iio_triggered_buffer_cleanup(indio_dev); | 333 334 return ret; 335} 336 337static int ad7887_remove(struct spi_device *spi) 338{ 339 struct iio_dev *indio_dev = spi_get_drvdata(spi); 340 struct ad7887_state *st = iio_priv(indio_dev); 341 342 iio_device_unregister(indio_dev); 343 iio_triggered_buffer_cleanup(indio_dev); |
350 if (st->reg) { | 344 if (st->reg) |
351 regulator_disable(st->reg); | 345 regulator_disable(st->reg); |
352 regulator_put(st->reg); 353 } 354 iio_device_free(indio_dev); | |
355 356 return 0; 357} 358 359static const struct spi_device_id ad7887_id[] = { 360 {"ad7887", ID_AD7887}, 361 {} 362}; --- 16 unchanged lines hidden --- | 346 347 return 0; 348} 349 350static const struct spi_device_id ad7887_id[] = { 351 {"ad7887", ID_AD7887}, 352 {} 353}; --- 16 unchanged lines hidden --- |