From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FB52386571 for ; Sat, 9 May 2026 20:59:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778360394; cv=none; b=SwjRECHgr2ZupxlZPpelDwoivJX/IMZn6pBoAEVjlLGMqV/fxuwvjUAtUwDNBGiK/kE3YKJZGgxEASydpAoWf6rg5vODHFq5XzLoixObMEK8JZku+Naz9yqrQaAPk19XOQJVepTFHMsvYsT/us+vDAedJx8CmfpwhsivwFArkHw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778360394; c=relaxed/simple; bh=ZzBP1B2qSk4hq42ZDl+LFeX6Ht/pq4pigntGLC9gO+g=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=juR3HPBgRpiv+ic+iLPITpei6fku+b4AhM7VBiY3klhyIzFiX6P7L8Q2N6CKYY/qM7uWsR7FJDj+93NsbwVJOqde7m+niUwozeHcbQL0Nmtb0bdY6OelIeMyVf5vscgETxqL1caPjTT/iPBNLqBpeJgnxWBnzNp44rXVLJxOOCY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b=CQGAAnAL; arc=none smtp.client-ip=209.85.160.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b="CQGAAnAL" Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-435153d9b68so1920170fac.3 for ; Sat, 09 May 2026 13:59:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1778360390; x=1778965190; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=d2B2IWzmjvVV7Fc5wPOLwL5bkbEhy/N0MPl9N12WAp0=; b=CQGAAnAL7ywC+Xw8r1P1j2yPEbYhIyBQiqgyjfjyueqjzxIv1s2tfb4Xkx3eukVGwy fcxzbJHNE9txfWhuIfK/z12rwuU5asKJX8TTzc48dZxIR7lme9jzrbW9j68qamK1+/VR FWoSbHeihbAUe8s3uGEJHYmBG5wxTTLHrYcVAs4W6INavfEJIn5oVhOqRJSiQacgqaQ5 8q/23MiiO5+FWWMKMbm7mwI2NdL2MojiiZ8296ALK2oUxJoIsu0ehNV8J30V9S1TOcwf aGCGY16FlBBdMHHNY+hofTGOo3tYnUeTTvUXwedoVKeaeYParwfMTiTN90I8HSFDwVxl gUqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778360390; x=1778965190; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=d2B2IWzmjvVV7Fc5wPOLwL5bkbEhy/N0MPl9N12WAp0=; b=aZjhE5xLHtQkDZPZJczkhmyzGLOofMazK9IyIAf3N2vEB42gy8vq6fQq0LqqwTcVkj +48ry/yuvxeB+m9Oe1baxAjvhm4fppkojkzJdZ0Cz8LXarncER3YBUmOCx78+YcO5FN+ goPK4Z7xKgadpyHxDIdJm5bn2XjCMzbyNYbV4hgrklvvXo5w5O1iU9HSPYCo3rWdiCiM v39cuuwb4lUVesX00Yp3XXrX55N3lv+joNJUnaAS8JxdBLSmt6lrGZ2KVDE+RhR4Glys Zm1QYGM/CnsntrkSBx1igTyD6kMYjCzvV34y4pjygkHB13cc5oeS3TQ+Hhrk2PsX50So t7Ow== X-Forwarded-Encrypted: i=1; AFNElJ9yHqdfJI/urqJMglWbJguXsa5blrDnn3ZCu34UFu0xMggCC2wU7h4yDSgvjdvV5IO2T7jcUvazQ2Jl43w=@vger.kernel.org X-Gm-Message-State: AOJu0YywZuo5/tYm5PNOyBBQa0J6BzafFMzzmXVMJ+zL36lLVYA57Wqv DgWlKKrInpJKoHhmDh5EW9B05Zj28RH8KSXwOdOTxMgUQ7O0m6a7aT66i2s4NJs8Mro= X-Gm-Gg: Acq92OHnHkd3JFJ7CUgRl/4T8ln9m175WgdfXEjyuUg5lnZPpeiI7wmArx55BV5EFO2 HnjdrcXXmJIyC14TP/irGeRF9c6UMn9pqnVjJVtphefKB+s5+/nQauTHZS+J6uxjTrqB+Z6Io1o hGvkqsYYKqkAnPPnUiUaV7DFDDAaADBOYFBhHtWsHfeC232F8o1UlXuK/ZnzmCx8gNLZo2pJ5Ku 0FXRjgnCepxNPcjaxtRSGdCALWp8lFqSt4V96qEzvQr1asmuixo/160Qp5eNIuBybONHrlpv03V ViV6mkSpI3KnPWWM0QqcPSaDMvvBlJE0XMEBUBlwSZJWKyRABVj1npQP+tWjsq7UYcUBRNTZmmy oRY9OuG/22djd4qdLCZEyI/3r//shGD6Qn9gzBPNqmDCe4Klv3PdpnTBSGUFhSX6XRMO1X9VJyI VtNwEI3HGEQASQKE/5fxBgh1Y8ELhT7kATZ+nn8Qt+Po8znz1371clEu28WF544z4mco6bMrIbt g== X-Received: by 2002:a05:6870:c693:b0:42f:c146:da68 with SMTP id 586e51a60fabf-434f58b4a06mr10972755fac.16.1778360390185; Sat, 09 May 2026 13:59:50 -0700 (PDT) Received: from ?IPV6:2600:8803:e7e4:500:3548:c22e:ea52:dbc7? ([2600:8803:e7e4:500:3548:c22e:ea52:dbc7]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736dbc0sm5428751fac.11.2026.05.09.13.59.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 09 May 2026 13:59:49 -0700 (PDT) Message-ID: Date: Sat, 9 May 2026 15:59:48 -0500 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 5/5] iio: dac: ad5504: fix scale via output-range-microvolt To: Taha Ed-Dafili <0rayn.dev@gmail.com>, lars@metafoo.de, Michael.Hennerich@analog.com, jic23@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260509142047.30302-1-0rayn.dev@gmail.com> <20260509142047.30302-6-0rayn.dev@gmail.com> Content-Language: en-US From: David Lechner In-Reply-To: <20260509142047.30302-6-0rayn.dev@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 5/9/26 9:20 AM, Taha Ed-Dafili wrote: > The AD5504 full-scale range is hardware-determined by the R_SEL pin, > not the VCC supply voltage. > > Fix the scaling logic by reading the standard 'output-range-microvolt' > property from the device tree instead of querying the VCC regulator or > relying on legacy platform data (pdata). > > As a result of this transition: > - The 'vcc' regulator is now only enabled, not read. > - Legacy pdata support is removed, as it is no longer required for > fallback voltage calculations. > - Strict array bounds checking is added for the DT property. > > Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> > --- > drivers/iio/dac/ad5504.c | 25 +++++++++++++++---------- > 1 file changed, 15 insertions(+), 10 deletions(-) > > diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c > index 9e95da6e49d6..040f580b8282 100644 > --- a/drivers/iio/dac/ad5504.c > +++ b/drivers/iio/dac/ad5504.c > @@ -14,10 +14,12 @@ > #include > #include > #include > +#include > #include > #include > #include > #include > +#include > > #include > #include > @@ -274,9 +276,9 @@ static const struct iio_chan_spec ad5504_channels[] = { > static int ad5504_probe(struct spi_device *spi) > { > struct device *dev = &spi->dev; > - const struct ad5504_platform_data *pdata = dev_get_platdata(dev); > struct iio_dev *indio_dev; > struct ad5504_state *st; > + u32 range[2]; > int ret; > > indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); > @@ -285,16 +287,19 @@ static int ad5504_probe(struct spi_device *spi) > > st = iio_priv(indio_dev); > > - ret = devm_regulator_get_enable_read_voltage(dev, "vcc"); > - if (ret < 0 && ret != -ENODEV) I don't think this would ever return -ENODEV, even on ACPI. It will just get a dummy regulator now. > + ret = devm_regulator_get_enable(dev, "vcc"); > + if (ret && ret != -ENODEV) > return ret; > - if (ret == -ENODEV) { > - if (pdata->vref_mv) > - st->vref_mv = pdata->vref_mv; > - else > - dev_warn(dev, "reference voltage unspecified\n"); > - } else { > - st->vref_mv = ret / 1000; > + > + st->vref_mv = 60 * MILLI; > + ret = device_property_read_u32_array(dev, "output-range-microvolt", > + range, ARRAY_SIZE(range)); > + if (!ret) { > + if (range[0] != 0 || (range[1] != 30 * MICRO && range[1] != 60 * MICRO)) > + return -EINVAL; > + > + if (range[1] == 30 * MICRO) > + st->vref_mv = 30 * MILLI; > } > > st->spi = spi;