From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752897AbdEEJkQ (ORCPT ); Fri, 5 May 2017 05:40:16 -0400 Received: from mga07.intel.com ([134.134.136.100]:48045 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751919AbdEEJkO (ORCPT ); Fri, 5 May 2017 05:40:14 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,291,1491289200"; d="scan'208";a="1126773671" Date: Fri, 5 May 2017 12:40:09 +0300 From: Mika Westerberg To: Jan Kiszka Cc: Jonathan Cameron , linux-iio@vger.kernel.org, Linux Kernel Mailing List , Sascha Weisenberger , Andy Shevchenko , Peter Meerwald-Stadler , Rob Herring Subject: Re: [PATCH v3] iio: adc: Add support for TI ADC108S102 and ADC128S102 Message-ID: <20170505094009.GP2697@lahna.fi.intel.com> References: <6d6bf102-1bc9-7019-13fa-b8f86b002dc8@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6d6bf102-1bc9-7019-13fa-b8f86b002dc8@siemens.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 05, 2017 at 08:31:32AM +0200, Jan Kiszka wrote: > +static int adc108s102_probe(struct spi_device *spi) > +{ > + struct adc108s102_state *st; > + struct iio_dev *indio_dev; > + int ret; > + > + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); > + if (!indio_dev) > + return -ENOMEM; > + > + st = iio_priv(indio_dev); > + > + if (ACPI_COMPANION(&spi->dev)) { > + st->reg = NULL; > + ret = device_property_read_u32(&spi->dev, "va-millivolt", > + &st->va_millivolt); Please try to avoid things like this for now. You can just hard code the voltage now and we can think how to solve this in ACPI if there will be an actual user needing anything else than the voltage you are using on your board. > + if (ret < 0) { > + dev_err(&spi->dev, > + "Missing va-millivolt device property\n"); > + return -ENODEV; > + } > + } else { > + st->reg = devm_regulator_get(&spi->dev, "vref"); > + if (IS_ERR(st->reg)) > + return PTR_ERR(st->reg); This should be an optional regulator and in case of ACPI you just don't have it. > + > + ret = regulator_enable(st->reg); > + if (ret < 0) { > + dev_err(&spi->dev, "Cannot enable vref regulator\n"); > + return ret; > + } > + }