From patchwork Tue Jun 18 14:21:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702446 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 96EE815DBC7; Tue, 18 Jun 2024 14:22:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720523; cv=none; b=E0HUvMPxLi/dn2ghBUfVef6qIZ3lWNLC/jSpls/kxdxESH47ANgCVB3m6yU6P0SY0/9JEyYYhJrZotXeWprE+w3u+5iq/XzGLxXE8V5357clYKl9HgCw7DgdPkvzh9E4Uxrc6IawKxikqbdljOYJ50hKrJn/2kYFIIRCHw4/FhI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720523; c=relaxed/simple; bh=odMDZM1iWrH6C/6FAwjz4UxM3my1aTWZBZk/WEJCucM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XjZzm6IlfISSvFM0K0M/V0JuTkzMaAJQmQeBWcv3uHisBDBDMCEx4IUL+upRAZx/q/3ceJ4lofzpOd9OnYHB1RzGZDu/mDyB6udCCY1COP+VEiQdgV2ehMQPWcl2ahhcHe+omi6iEeYEAiYm3FniT+7ozHA/YzezvSclG26x0Ms= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=IqWU84C8; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IqWU84C8" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-a6f0c3d0792so648560466b.3; Tue, 18 Jun 2024 07:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720520; x=1719325320; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JhHe+Dk5RW2z8Ummfx+UjkraQsYp/dWgKDc8czLOogw=; b=IqWU84C8OdskdiQPi7ZHfERNKacVHRU3p2QSqD6gN+sI2/1Khsxqw5Sm1cHfiEIb5F iBzLjTjoq7v94HMFzg7GYS5Y0eM6wQ/Q7FzTVEoLqm1MruhS1eIjPYD1n71a6Lj7NQbQ Jn6OgLjkrSXj2DWg8B86ugs6H33PCOEXNXva4Wd+L8hhnXDCj9srxXl+c80GDg9QxVCF M1ay9TlCQMVRFqiZpp7vmlixRKIh3ulvxFWrfCt9+k97BU3x+/tRBTiWhUKyeJIQ/3nD m29iTG21hakT/Xn/ykcqHKmRIgYjglKqJeCDoHZrQmKQFnlD61eow5WEgDRdEACVHw5P gYvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720520; x=1719325320; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JhHe+Dk5RW2z8Ummfx+UjkraQsYp/dWgKDc8czLOogw=; b=HIB+PJAe3KSkIw/qrxknZ5pUbWgtURuR/w2WYcZIPd6JfVPwGYLMdtoqhXJh4ZgTkc M1iLllpyUGc0Rxir0x6wyAIPDjsbRavuXejY5mlN+3PRoist91X8aK+TJkzO2eE4nrc9 vqX+jS/zElL2eVYcemzW8s/QSy2QBebVShYid17gneQsZRWPxD6OvRDorP2qSKF6Iz1E HVq5oKM02Z+iZyE0eOn4zH4Tioeu5zYTA/xwACKEQTbaswt4v7WGqc1jzr3Wf+F+4rtg E9Zm9qbgoLjTItGJD2RuZoTxJkeU27oldesb6/r1WEAWmKYEd6/zqIwDKwJClahzE4Nt 0W5w== X-Forwarded-Encrypted: i=1; AJvYcCXOxZHek7+K2F1OvfuscWat18dWYNsZ5PPgijcB7tJZvvPVmWFPOgYR6fmxQmG4shll6B1xEouyUmJHzSAmHv5VBlQeelMnwielkRzKS2VtpoPUFMvANsfWDAtN0PV3lls0kGj4/T9I2VTAF6SmLYP8nT/kkwwnEBHoyDnoz8bwiy0Aiw== X-Gm-Message-State: AOJu0Yy35fC5uhY8z3EqHVTVYFxhVUqUKvL5G6Mtze8kXP0rPzLD0MZ2 +o3/Vf6GgvMvNL1rLQ9jXx96KeiKnZNhZjHOEri/YGdZz5+8CXp3 X-Google-Smtp-Source: AGHT+IFVZW9LpfzvOs2+6b8TPae6fpJQ6Up7o/HkKoHkkKRWzo81hNrOwkPB2iwdqfjoon+dZd4DBw== X-Received: by 2002:a17:906:a897:b0:a6f:e36:abae with SMTP id a640c23a62f3a-a6f60d41741mr788297966b.42.1718720519667; Tue, 18 Jun 2024 07:21:59 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.21.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:21:59 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown , David Lechner Subject: [PATCH v5 1/6] iio: adc: ad7192: use devm_regulator_get_enable_read_voltage Date: Tue, 18 Jun 2024 17:21:33 +0300 Message-Id: <20240618142138.520192-2-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: David Lechner This makes use of the new devm_regulator_get_enable_read_voltage() function to reduce boilerplate code. Error messages have changed slightly since there are now fewer places where we print an error. The rest of the logic of selecting which supply to use as the reference voltage remains the same. Also 1000 is replaced by MILLI in a few places for consistency. Signed-off-by: David Lechner --- drivers/iio/adc/ad7192.c | 103 ++++++++++++++------------------------- 1 file changed, 36 insertions(+), 67 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index c7fb51a90e87..334ab90991d4 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -200,8 +200,6 @@ struct ad7192_chip_info { struct ad7192_state { const struct ad7192_chip_info *chip_info; - struct regulator *avdd; - struct regulator *vref; struct clk *mclk; u16 int_vref_mv; u32 aincom_mv; @@ -1189,18 +1187,12 @@ static const struct ad7192_chip_info ad7192_chip_info_tbl[] = { }, }; -static void ad7192_reg_disable(void *reg) -{ - regulator_disable(reg); -} - static int ad7192_probe(struct spi_device *spi) { struct device *dev = &spi->dev; struct ad7192_state *st; struct iio_dev *indio_dev; - struct regulator *aincom; - int ret; + int ret, avdd_mv; if (!spi->irq) return dev_err_probe(dev, -ENODEV, "Failed to get IRQ\n"); @@ -1218,72 +1210,49 @@ static int ad7192_probe(struct spi_device *spi) * Newer firmware should provide a zero volt fixed supply if wired to * ground. */ - aincom = devm_regulator_get_optional(dev, "aincom"); - if (IS_ERR(aincom)) { - if (PTR_ERR(aincom) != -ENODEV) - return dev_err_probe(dev, PTR_ERR(aincom), - "Failed to get AINCOM supply\n"); - - st->aincom_mv = 0; - } else { - ret = regulator_enable(aincom); - if (ret) - return dev_err_probe(dev, ret, - "Failed to enable specified AINCOM supply\n"); - - ret = devm_add_action_or_reset(dev, ad7192_reg_disable, aincom); - if (ret) - return ret; - - ret = regulator_get_voltage(aincom); - if (ret < 0) - return dev_err_probe(dev, ret, - "Device tree error, AINCOM voltage undefined\n"); - st->aincom_mv = ret / MILLI; + ret = devm_regulator_get_enable_read_voltage(dev, "aincom"); + if (ret < 0 && ret != -ENODEV) + return dev_err_probe(dev, ret, "Failed to get AINCOM voltage\n"); + + st->aincom_mv = ret == -ENODEV ? 0 : ret / MILLI; + + /* AVDD can optionally be used as reference voltage */ + ret = devm_regulator_get_enable_read_voltage(dev, "avdd"); + if (ret == -ENODEV || ret == -EINVAL) { + int ret2; + + /* + * We get -EINVAL if avdd is a supply with unknown voltage. We + * still need to enable it since it is also a power supply. + */ + ret2 = devm_regulator_get_enable(dev, "avdd"); + if (ret2) + return dev_err_probe(dev, ret2, + "Failed to enable AVDD supply\n"); + } else if (ret < 0) { + return dev_err_probe(dev, ret, "Failed to get AVDD voltage\n"); } - st->avdd = devm_regulator_get(dev, "avdd"); - if (IS_ERR(st->avdd)) - return PTR_ERR(st->avdd); - - ret = regulator_enable(st->avdd); - if (ret) - return dev_err_probe(dev, ret, - "Failed to enable specified AVdd supply\n"); - - ret = devm_add_action_or_reset(dev, ad7192_reg_disable, st->avdd); - if (ret) - return ret; + avdd_mv = ret == -ENODEV || ret == -EINVAL ? 0 : ret / MILLI; ret = devm_regulator_get_enable(dev, "dvdd"); if (ret) return dev_err_probe(dev, ret, "Failed to enable specified DVdd supply\n"); - st->vref = devm_regulator_get_optional(dev, "vref"); - if (IS_ERR(st->vref)) { - if (PTR_ERR(st->vref) != -ENODEV) - return PTR_ERR(st->vref); - - ret = regulator_get_voltage(st->avdd); - if (ret < 0) - return dev_err_probe(dev, ret, - "Device tree error, AVdd voltage undefined\n"); - } else { - ret = regulator_enable(st->vref); - if (ret) - return dev_err_probe(dev, ret, - "Failed to enable specified Vref supply\n"); - - ret = devm_add_action_or_reset(dev, ad7192_reg_disable, st->vref); - if (ret) - return ret; - - ret = regulator_get_voltage(st->vref); - if (ret < 0) - return dev_err_probe(dev, ret, - "Device tree error, Vref voltage undefined\n"); + /* + * This is either REFIN1 or REFIN2 depending on adi,refin2-pins-enable. + * If this supply is not present, fall back to AVDD as reference. + */ + ret = devm_regulator_get_enable_read_voltage(dev, "vref"); + if (ret == -ENODEV) { + if (avdd_mv == 0) + return dev_err_probe(dev, -ENODEV, + "No reference voltage available\n"); + } else if (ret < 0) { + return ret; } - st->int_vref_mv = ret / 1000; + + st->int_vref_mv = ret == -ENODEV ? avdd_mv : ret / MILLI; st->chip_info = spi_get_device_match_data(spi); indio_dev->name = st->chip_info->name; From patchwork Tue Jun 18 14:21:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702447 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 7ADB715E5D1; Tue, 18 Jun 2024 14:22:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720532; cv=none; b=sp9iFP1UZT1h1Jaq5lbYfB0c53T4K0LNscDZVexj2JkCnbjtiGXFO+BQOxnV9oLQJTFhqoEp3Zd1+3/ERPOtRLhpSksgUECR3zSk1rMHeqqounK6j/TalX8ZWn2hrsOwhz7nscKtUmHqW3F88FujBQ6iXAPhTxLGKyS4VzGWvUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720532; c=relaxed/simple; bh=nGdM8GDWiw63LfHVRxOgWy1LqXhSACbPaSb3oZ0WBN0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bPdw2DvPNZYDjlkG9JHU6//1upWFKYNhT6/re7ZrRSlEqXdMhzUSJZ1VS8wNImh6umKAAz/+c36sDKinoVrnXfKVzp240MDDLCrumZ4Irji+RdoQGZ64/SSvxM0zfhpM9tCoOdh4i1hxLGMgJGzmeEorVzpMZ1e4/cG9AU/8tfA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UASmYibB; arc=none smtp.client-ip=209.85.218.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UASmYibB" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a6f177b78dcso700300366b.1; Tue, 18 Jun 2024 07:22:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720529; x=1719325329; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0bHpm4DzuXhkRwqoj5WVlYejCFzKpp5Uqn73d1JkWCI=; b=UASmYibBEzigrQBR8iK7+rb3DvYeA3pRZEgBAbib219w9pB/86amNqG012VVRmxSQU VDJazxbUFdIeK02ZfdeuZTbK5egJ4/f1bnn/qBhKfMcoYOtoJVD98SJnNsuq+G63OGu6 NHyjEUSSfTraTBTX5WltcP88CeMSH1A6wtiWj8kuAKVR9lj0TwQdRCP+hlJgIVVRq/a4 K1lbPNyMvIqD+cymYJogtQSrh/i6YOjqlnH0fMlpMwToN7HaRvvRh9U+o6E9PFc7BR9N Ep9gPb6mFTdKxScn8bfDD1nY1qPVIZpyRkesB1IDuUSCy54CP1r2pBAaS/y65+8jGVqJ YDsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720529; x=1719325329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0bHpm4DzuXhkRwqoj5WVlYejCFzKpp5Uqn73d1JkWCI=; b=mkgFuWWaMi8lvHv08inQGTDdp5vASsWmXtmlO7cYfNQaE3y54Elbv/5X+e5Pc93bBZ 9JwRcSXEGtlh7PwMGykqWqF0lAErDdMWrFO56SWhrp6Ex7MjPYaF2T/obuufOgNIBiXS 59HUWczw+nQl7TbxXyF77Igtgl7FbRT9jP+V4M8FZQ/84/q+bRxcxlIEwWHLqXtAbD+e TYZLnZZXRIs52jvTwubNSpZ5Yg9haEHZVtlM/21G7oy5ogWnmLdF7hIAlIwBDPJbej8f h0WZFOz0+rP+F9qX+9bOx2NY7J6P54FLxwTllFC8GYa55XvqRMKzlZVYDsueXqfRRAAY Vl0w== X-Forwarded-Encrypted: i=1; AJvYcCX5qCuBektK7NftonynU30yXdA5NEgU0tQIenYssjWpNTaOpH5U9DDtj0wr/azgGNRBnWOpgGKMHf3z+vTtKs8HOGODgVtgLHTF0G3CXMYo5vcIzXvFyMkOuKaSYfe7GlpZrtj6oOjnka8aXoMqeX55R51iIuzFxsy2glpz3P81xGAtHg== X-Gm-Message-State: AOJu0YxScn8FdIC7uaU2QBYJlPpoQul+LLoUOm8FE4ONUiqwaCvFh8Pa QxJFM9Y6WAyle1z4jHzH2/lS+Ox6fp8WVn7gITrFI8FFTvsZp96g X-Google-Smtp-Source: AGHT+IHmfs+xDCi8QmMyePuE69HTHQezu3eJCZfCRHQwofBCDVTMM9O4GiL+KlYvc/+3CEI2FJmGdw== X-Received: by 2002:a17:906:d111:b0:a6f:10d0:fb85 with SMTP id a640c23a62f3a-a6f60d203e1mr761174866b.19.1718720528400; Tue, 18 Jun 2024 07:22:08 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.22.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:22:08 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown Subject: [PATCH v5 2/6] dt-bindings: iio: adc: ad7192: Update clock config Date: Tue, 18 Jun 2024 17:21:34 +0300 Message-Id: <20240618142138.520192-3-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 There are actually 4 configuration modes of clock source for AD719X devices. Either a crystal can be attached externally between MCLK1 and MCLK2 pins, or an external CMOS-compatible clock can drive the MCLK2 pin. The other 2 modes make use of the 4.92MHz internal clock. To configure external clock as either a crystal or a CMOS-compatible clock, changing the register settings is necessary. Therefore, add clock name xtal alongside mclk. By selecting one or the other, the register is configured. The presence of an external clock source is optional, not required. When absent, internal clock is used. Modify required property accordingly. Signed-off-by: Alisa-Dariana Roman Reviewed-by: Conor Dooley --- .../devicetree/bindings/iio/adc/adi,ad7192.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml index a03da9489ed9..67384bed4cd3 100644 --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml @@ -39,11 +39,15 @@ properties: clocks: maxItems: 1 - description: phandle to the master clock (mclk) + description: + Optionally, either a crystal can be attached externally between MCLK1 and + MCLK2 pins, or an external CMOS-compatible clock can drive the MCLK2 + pin. If absent, internal 4.92MHz clock is used. clock-names: - items: - - const: mclk + enum: + - xtal + - mclk interrupts: maxItems: 1 @@ -135,8 +139,6 @@ patternProperties: required: - compatible - reg - - clocks - - clock-names - interrupts - dvdd-supply - avdd-supply From patchwork Tue Jun 18 14:21:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702448 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 1FCF715EFBB; Tue, 18 Jun 2024 14:22:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720534; cv=none; b=MN1zHSvJNhG3/rm7tF4uxuZwiQnogA7Do3h0XH86c39tzBs0EhDAI6KZ/tAHQyqwsVt1kNnGIQ61xLpEjekJd8S3B9NKEfVbIOebS5iWzTzv0L97h/pxfGFfkkMKHmPSd+hxR6/uLmCqPN7gmKqiuUQvSmPs+Iuf6w9v9y4lTJw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720534; c=relaxed/simple; bh=1RfKCKRM/QHk1sWWcHeNZ9DVL0BehZVSe3/VONNmJOk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mpMYMpT58+wOQkmYpG+KOyJmReHOgw2gthu213DvSZrCaBHg36JtjidK7S8wrrcGOwyvp1QhFx+3/YMxd70XI+n0/QpwqQ6CyEkPKoazwpjIJTrS4XRHVP1XefgKVBDUGrmBYIzVw+BwjBzYNI76dVJoloAsxfs7eolcmO6/k9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aN6RUvMy; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aN6RUvMy" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a6ef64b092cso685350366b.1; Tue, 18 Jun 2024 07:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720531; x=1719325331; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mgBScQw99cAyuq+khOD513QlHP8xLsoTlTlZ97Pvf2M=; b=aN6RUvMyWklurCKhVAVwuq2+ooc84NAkYglqMZa00MyMLIKP7v5bcZMpAjaGUToSeU tM7vmUvPvDMzpZ9lul88j5gBLiCiZUdcUV4BmnXmLhZxROXXivigFILv/igVS3NB8TNn n+IwVjJIuqp9TrhqDSMoMn+saAr8M/2CkIe6sSvhyiqJWGgsf025rIcVitdUrJ1VD9zj 93b2d0TgXMwUmiel21/GiobNwruuSblpBNeivzn/BlDk81oecvworG6/zs8IKECI3/JN UDWEsXL7XA1peMFBMryA+G4TSaI1hzJuSJsLdNjc8EXhNLz6MyFMDxN6ZKivIMysK3sN u86g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720531; x=1719325331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mgBScQw99cAyuq+khOD513QlHP8xLsoTlTlZ97Pvf2M=; b=L0RuNx2JxYQBPQmLB4ThTW8oq2w5SXGyFvCUKGIlo9Bx3cVCNrGgIoxxT43mT2YeUW bz2NhQ0IKwsOsC4zdRTypbGhB3otHI+6fSqpwv/mOV6hvzpY4mBo6GkDKANFarzqj/z/ mbU17uytvCF7s90wif7MFGSTcFUqKn6BF2L/bU1u0D+q7w0ITgI9bYiKyF2i+1V9AzHK GQ3QXhWJ9JfXT/C/2NuCv92pV6xJpqIjbtFiQ0p0VRoX1bD8YkC3oTbKTubSlgLjbP+v tEk/93AvO64g3V49jh1MtVvF3CjwL14rSXRyNKxBZH0hDt1zf7wyUX/+c+GL1bKyBcbR /DkQ== X-Forwarded-Encrypted: i=1; AJvYcCXr7MOstn0f5lkM0j/8PIQvGnzkkOEBf4EAEW1S0/rhG3ARPmO6YypJDod6MzgQ4bRZgV/sHoyljovRM52NI35i1fNy6WSFSVUG3x1hLY8CjMuxAzwfIJyAoXU174gueK+x71feOe4N/RQowm4aySURmeHqspQRX5Q9LuoorwqOlmjJ9w== X-Gm-Message-State: AOJu0Yz1+bh+N995GS1ElJqpG7CE4pRnfJXVbL+wH3Pu7FahIpiAfOZJ hzY8Al7IBR6nj6hL3pN0fGdbLgRxB06VcBap7P8CmynR8IuBgywf X-Google-Smtp-Source: AGHT+IFzsl/INZiexPN6RwG5b3xBE2cKSebqZVnKxdW9dhSsBM7HcLIszJpEKpOi4NCAIqw0CC91WA== X-Received: by 2002:a17:907:970b:b0:a59:b590:5d71 with SMTP id a640c23a62f3a-a6f60bc9ac8mr1068279266b.0.1718720531274; Tue, 18 Jun 2024 07:22:11 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.22.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:22:10 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown Subject: [PATCH v5 3/6] iio: adc: ad7192: Update clock config Date: Tue, 18 Jun 2024 17:21:35 +0300 Message-Id: <20240618142138.520192-4-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 There are actually 4 configuration modes of clock source for AD719X devices. Either a crystal can be attached externally between MCLK1 and MCLK2 pins, or an external CMOS-compatible clock can drive the MCLK2 pin. The other 2 modes make use of the 4.92MHz internal clock. Removed properties adi,int-clock-output-enable and adi,clock-xtal were undocumented. Use cleaner alternative of configuring external clock by using clock names mclk and xtal. Removed functionality of AD7192_CLK_INT_CO restored in complementary patch. Signed-off-by: Alisa-Dariana Roman --- drivers/iio/adc/ad7192.c | 56 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 334ab90991d4..940517df5429 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -396,25 +396,37 @@ static inline bool ad7192_valid_external_frequency(u32 freq) freq <= AD7192_EXT_FREQ_MHZ_MAX); } -static int ad7192_clock_select(struct ad7192_state *st) +static const char *const ad7192_clock_names[] = { + "xtal", + "mclk" +}; + +static int ad7192_clock_setup(struct ad7192_state *st) { struct device *dev = &st->sd.spi->dev; - unsigned int clock_sel; - - clock_sel = AD7192_CLK_INT; + int ret; - /* use internal clock */ - if (!st->mclk) { - if (device_property_read_bool(dev, "adi,int-clock-output-enable")) - clock_sel = AD7192_CLK_INT_CO; + ret = device_property_match_property_string(dev, "clock-names", + ad7192_clock_names, + ARRAY_SIZE(ad7192_clock_names)); + if (ret < 0) { + st->clock_sel = AD7192_CLK_INT; + st->fclk = AD7192_INT_FREQ_MHZ; } else { - if (device_property_read_bool(dev, "adi,clock-xtal")) - clock_sel = AD7192_CLK_EXT_MCLK1_2; - else - clock_sel = AD7192_CLK_EXT_MCLK2; + st->clock_sel = AD7192_CLK_EXT_MCLK1_2 + ret; + + st->mclk = devm_clk_get_enabled(dev, ad7192_clock_names[ret]); + if (IS_ERR(st->mclk)) + return dev_err_probe(dev, PTR_ERR(st->mclk), + "Failed to get mclk\n"); + + st->fclk = clk_get_rate(st->mclk); + if (!ad7192_valid_external_frequency(st->fclk)) + return dev_err_probe(dev, -EINVAL, + "External clock frequency out of bounds\n"); } - return clock_sel; + return 0; } static int ad7192_setup(struct iio_dev *indio_dev, struct device *dev) @@ -1275,21 +1287,9 @@ static int ad7192_probe(struct spi_device *spi) if (ret) return ret; - st->fclk = AD7192_INT_FREQ_MHZ; - - st->mclk = devm_clk_get_optional_enabled(dev, "mclk"); - if (IS_ERR(st->mclk)) - return PTR_ERR(st->mclk); - - st->clock_sel = ad7192_clock_select(st); - - if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 || - st->clock_sel == AD7192_CLK_EXT_MCLK2) { - st->fclk = clk_get_rate(st->mclk); - if (!ad7192_valid_external_frequency(st->fclk)) - return dev_err_probe(dev, -EINVAL, - "External clock frequency out of bounds\n"); - } + ret = ad7192_clock_setup(st); + if (ret) + return ret; ret = ad7192_setup(indio_dev, dev); if (ret) From patchwork Tue Jun 18 14:21:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702449 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (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 7C3F315ECD3; Tue, 18 Jun 2024 14:22:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720537; cv=none; b=XgtC9m4VlpttIRnotB9yn/9Diw5RnvwEoUQgLbjmKHgGSwQVbhUuWS3Rb4o6RIB0AxGT27fphiatc2TH7pXFpBGUalF/iQzdMe7DUehDirss0rcRXWiBtUMBx0j5Swgy54L6C+5oUmCJESf9XApjyOW+VoQ1jRbK49sRmlBzbFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720537; c=relaxed/simple; bh=cILECnWkmUvZQ7aIlxgrr2AKE9gRmIy6LhC1B0JjF2U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PaXc2bM2h9I4ALy81YcTTHzXOrvF0qVVXwr/Lv5PkF8on8LcFM+kr3eZHF1cdmBQvVUTii+U8s6XPDfAwym5ovKAixRvLfiKivtOPYL4uQnXcR85C4lTTvEwHGfNHjmVLfD6jMcyQBzR/FpDeRboo8b5LGdb1p9vZQ12FE+ZRAA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fBmWFQhf; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fBmWFQhf" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a6ef46d25efso679615066b.0; Tue, 18 Jun 2024 07:22:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720534; x=1719325334; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4fLaikDiWkU5fRRAnenW6x2jVX2BzyMP33lNNvt71c4=; b=fBmWFQhfJwzLxTCDzwN3GkCu+CSEY3+Gy+MGELbxqKFymtp8UnFQkmfTaAxavGAycl 30cwcLXpC9fNjwjFBg3SH+bFfq9GyM1cSnqa2rscZeeC62wCid8zotdg5gODMTTEq0na WD8+rboNerVn3ZgXkYzZrssHKNUD7PJKxNSC7FD0QHOcBxu0UfrMSI31QCl8A8sKGOA+ ub8Dpc10FV0WfHGgQbGZetk6hBjQZCv4W3Hlb3lr7mbgwgDrHkCzTrvr9X8I8AWAFyJX +3tGKRae3/yjE8Mxs6Jfd4nLUvZpozKGpbygC0ylRzWCRkzjPQZyZIbAoWNrGq1/Nz7V FJwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720534; x=1719325334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4fLaikDiWkU5fRRAnenW6x2jVX2BzyMP33lNNvt71c4=; b=nUAFlDo+GI7yNmLL7ZwK+lYWugYRpSQoRl1yeOuJ0I8MmYCL4sP2P7PsjGeetfUWZE iVUz2XKmGcNcpqsN6aSHSI08+1wfVmzTua6gW5ym8qDg7vQLqz6YYp9YepC3mUS0CtMC bFZgYGsQyHUSckqdLhRYkMO/57j8LIBvRxwNKATm9mbPMAx8q3o+4i0+MY6opx+LvPrs xB7TLr1OEEBB8HMI9mk6Hd5AOkPB032EZHwmL4gs4iNSnTcbuIu1nzzGJ6XQY3sEbgZ0 6k5Suoh8XWQVh+ieW7Rgpc3u8Zzhv2jXY6Rflb0fH6VJL/paVR608qRHDOovwppP+5KI UGkA== X-Forwarded-Encrypted: i=1; AJvYcCXtB4m1BSjs0BDrE9dBNc8whZO38UgaMckM0JqqIyx5b7Qw6Srak3rZFGaAHjPCbPPMN+LeKqahLD/a6x+wC6l291t1KP96VP9+wR5PH/g8Ng9LHdQREPPGKhAz/NsExPBdbv/m7ng+HNadFqLbk+feDSg/PrH9sXwMmIC0zVsKC+dxLg== X-Gm-Message-State: AOJu0YykFlSOI56uhjXh9ODZG9GGPiIdt6zW+4zgKEV5Kx7tQ4CXbZ2Z 0HltYSLcJhMuTP3aWEo0en8XHYhd0rFzu63r8dZU0xkNvAryTVIr X-Google-Smtp-Source: AGHT+IEqwhh3beEvRSnCVxq3eUU3DBGuf0MZxckbbY5FILxAGEYpZUjNYLceJP2m6yV3z89DL2W+lA== X-Received: by 2002:a17:906:6a02:b0:a6f:1893:f549 with SMTP id a640c23a62f3a-a6f60d1ce82mr949424466b.28.1718720533414; Tue, 18 Jun 2024 07:22:13 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.22.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:22:13 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown Subject: [PATCH v5 4/6] dt-bindings: iio: adc: ad7192: Add clock provider Date: Tue, 18 Jun 2024 17:21:36 +0300 Message-Id: <20240618142138.520192-5-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Internal clock of AD719X devices can be made available on MCLK2 pin. Add clock provider to support this functionality. Modify second example to showcase this mode. Signed-off-by: Alisa-Dariana Roman --- .../devicetree/bindings/iio/adc/adi,ad7192.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml index 67384bed4cd3..e31436484372 100644 --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml @@ -42,13 +42,17 @@ properties: description: Optionally, either a crystal can be attached externally between MCLK1 and MCLK2 pins, or an external CMOS-compatible clock can drive the MCLK2 - pin. If absent, internal 4.92MHz clock is used. + pin. If absent, internal 4.92MHz clock is used, which can be made + available on MCLK2 pin. clock-names: enum: - xtal - mclk + "#clock-cells": + const: 0 + interrupts: maxItems: 1 @@ -204,8 +208,7 @@ examples: spi-max-frequency = <1000000>; spi-cpol; spi-cpha; - clocks = <&ad7192_mclk>; - clock-names = "mclk"; + #clock-cells = <0>; interrupts = <25 0x2>; interrupt-parent = <&gpio>; aincom-supply = <&aincom>; From patchwork Tue Jun 18 14:21:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702450 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 E8B1A1607A3; Tue, 18 Jun 2024 14:22:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720539; cv=none; b=nzXZQtjLw2kTRvU8NjWQyIwvI7Z6/Q6ZWVp+WZwghPCrtDYjSW5iayFk6a8zSBFWPQ8/WXWuRoUFmfohxdfBawrCCMKAHQ7CVt8GHXF/W6kEjH6TXXlmQ4zwOA9TZ6BxuRtmS7LOSiHnLRYiYKdxGn8NZ9tyBydVnnRMstREo34= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720539; c=relaxed/simple; bh=pWCyGoSwbSVi51UcYwjzYptyAKhEQbLVCZhUW0i1vc8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=m+Er+vzM2T7apxFLkg1rGk2ujnjc33VKY3RujTrMRXUcU7jra36l2ab0xPm0ULxZeFb7RvqOnOIen3cv5jC3HGApYlH+42n4Ew3obVkccgzmsbsiNmWTIL/SHqqCRYkqj5Ws/lBHpCx1jBZQVhHSl0mheWfvALvIEjNTctM8k1o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GZsQSh0T; arc=none smtp.client-ip=209.85.208.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GZsQSh0T" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-57c68c3f8adso6727720a12.1; Tue, 18 Jun 2024 07:22:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720536; x=1719325336; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qIFPwPUe239jQzWzpuE4uB77KNgGi1q0uRESeNjXXyI=; b=GZsQSh0Tn2cHx94L2CO8Zx8REuUG2QmXKvPNal9n2b78Po1P9Bf+rTSmXucTz4ljdH wsic0Goo1GBtd5G/rHtT9Xr8QVam2CpzpXBCfgJLFBzTwk/ypIioi1YhbnbtkS2RnZuP KI05OvWfOCQSWszXYy3R8r9/Tkp51r/DTUBeYoS20Hbbs18sxPnyYJBqGRpA3+IsD/cU VP9LNRtCA++xgoKPFEuvBO8TRIyhcVSsKH+Q0vhiTDM7k1MdSAmqxOGX7RSdfZpZUksS oWtXCV7h/v+AW0zjhXmPLwHxjbCOtQpGpnm2/AX6ViyC4/7WUqh1ia//8lXaFRy90XDd Q2+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720536; x=1719325336; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qIFPwPUe239jQzWzpuE4uB77KNgGi1q0uRESeNjXXyI=; b=N3kdJLV37gmlW4IKMGY/I7tOjuQLfAJBcK1rwGXI1W62ndpyDvz76jQtL9yr9P136C UX9vMYCCFpsDUVk4HHVbi3kOMPij9HR+JfQXPyPvKrWROnIDPylGlraEFr+tzIxgWy9f Ltpdg/qBTfhMRY9dUXSAFgrPwlIrBdXWRRtCbqcPzOiDBo+Jt4iVgLWb3SSzqOJ2HypP K29pc5w1WbnpCDw+EAV1cFYcm2rLn6EnbQAfxrj9A//A9VRIHMQypRlKphZKzpdTlqcW HA3imSM2qbWeU/SwumWGE1xUa/bwpNQiVuKlVIl+3UIVSYM/ojAEoE5Uu6qTj1Up/P3S HTYQ== X-Forwarded-Encrypted: i=1; AJvYcCWtuBws6t04QuDz8Eou2uDd4PegRJTJMtra9nBw/s854wFnZTh7j0cLb8kNOsoKp2alPi2lJhb5MMg8TuoaEboxWdYSgh3nADFKgXBe1nQBe5AsDmu4zs0CVBnof49mvzgrvVVkK6udGzoNsiCM2kWusH0LKEobKr+YpfdBbqsnCXTloQ== X-Gm-Message-State: AOJu0YzFrXIeLtYJamzB+Ot9wKT7c04myEyjzQMYy82pZrk7oqGxFwUq GfhzKU6pI2kXzQxQHpz3Hq75zMYGHjjtO7VmmtTTNpmdahZ4N4Op X-Google-Smtp-Source: AGHT+IHZqDV+PjG+eAB4RT1GWSB/ryp4aqtKy4krGNAkERhPctlhLcy3lQdrd3961cy6kTMGmoxXBg== X-Received: by 2002:a17:906:a45a:b0:a6f:5f26:4d91 with SMTP id a640c23a62f3a-a6f60de27c5mr882207366b.69.1718720535578; Tue, 18 Jun 2024 07:22:15 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.22.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:22:15 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown Subject: [PATCH v5 5/6] iio: adc: ad7192: Add clock provider Date: Tue, 18 Jun 2024 17:21:37 +0300 Message-Id: <20240618142138.520192-6-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Internal clock of AD719X devices can be made available on MCLK2 pin. Add clock provider to support this functionality. Signed-off-by: Alisa-Dariana Roman --- drivers/iio/adc/ad7192.c | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 940517df5429..90763c14679d 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -201,6 +202,7 @@ struct ad7192_chip_info { struct ad7192_state { const struct ad7192_chip_info *chip_info; struct clk *mclk; + struct clk_hw int_clk_hw; u16 int_vref_mv; u32 aincom_mv; u32 fclk; @@ -401,6 +403,88 @@ static const char *const ad7192_clock_names[] = { "mclk" }; +static struct ad7192_state *clk_hw_to_ad7192(struct clk_hw *hw) +{ + return container_of(hw, struct ad7192_state, int_clk_hw); +} + +static unsigned long ad7192_clk_recalc_rate(struct clk_hw *hw, + unsigned long parent_rate) +{ + return AD7192_INT_FREQ_MHZ; +} + +static int ad7192_clk_output_is_enabled(struct clk_hw *hw) +{ + struct ad7192_state *st = clk_hw_to_ad7192(hw); + + return st->clock_sel == AD7192_CLK_INT_CO; +} + +static int ad7192_clk_prepare(struct clk_hw *hw) +{ + struct ad7192_state *st = clk_hw_to_ad7192(hw); + int ret; + + st->mode &= ~AD7192_MODE_CLKSRC_MASK; + st->mode |= AD7192_CLK_INT_CO; + + ret = ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); + if (ret) + return ret; + + st->clock_sel = AD7192_CLK_INT_CO; + + return 0; +} + +static void ad7192_clk_unprepare(struct clk_hw *hw) +{ + struct ad7192_state *st = clk_hw_to_ad7192(hw); + int ret; + + st->mode &= ~AD7192_MODE_CLKSRC_MASK; + st->mode |= AD7192_CLK_INT; + + ret = ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); + if (ret) + return; + + st->clock_sel = AD7192_CLK_INT; +} + +static const struct clk_ops ad7192_int_clk_ops = { + .recalc_rate = ad7192_clk_recalc_rate, + .is_enabled = ad7192_clk_output_is_enabled, + .prepare = ad7192_clk_prepare, + .unprepare = ad7192_clk_unprepare, +}; + +static int ad7192_register_clk_provider(struct ad7192_state *st) +{ + struct device *dev = &st->sd.spi->dev; + struct clk_init_data init = {}; + int ret; + + if (!IS_ENABLED(CONFIG_COMMON_CLK)) + return 0; + + init.name = devm_kasprintf(dev, GFP_KERNEL, "%s-clk", + fwnode_get_name(dev_fwnode(dev))); + if (!init.name) + return -ENOMEM; + + init.ops = &ad7192_int_clk_ops; + + st->int_clk_hw.init = &init; + ret = devm_clk_hw_register(dev, &st->int_clk_hw); + if (ret) + return ret; + + return devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, + &st->int_clk_hw); +} + static int ad7192_clock_setup(struct ad7192_state *st) { struct device *dev = &st->sd.spi->dev; @@ -412,6 +496,11 @@ static int ad7192_clock_setup(struct ad7192_state *st) if (ret < 0) { st->clock_sel = AD7192_CLK_INT; st->fclk = AD7192_INT_FREQ_MHZ; + + ret = ad7192_register_clk_provider(st); + if (ret) + return dev_err_probe(dev, ret, + "Failed to register clock provider\n"); } else { st->clock_sel = AD7192_CLK_EXT_MCLK1_2 + ret; From patchwork Tue Jun 18 14:21:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13702451 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (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 97BAD1662EA; Tue, 18 Jun 2024 14:22:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720542; cv=none; b=afInIjyugpbrbt3vXdLGIdSYzrFit5X+D6G9u26RnOgXpdsdfsmIUTVhI60oXLq5LxRA3DrFBIYcb484lbHKkV3cZmGbYCIkZ9yO7D+bi0R2Qbr4jLWCa4YllREJ6RsxL5KWOvrDULSaeBSCve7NkQZ6ibkZpyGetIO1VPKo26I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718720542; c=relaxed/simple; bh=9nWhS3qqdVUR1DFfHDG1/D2dWJpNJex73LEgHHCjB+A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jmuRT3O4Iut6dvlRfclc3Ia1pIEXJq62y4dKSBSWJ7udCc2CjTYxDYzmfOORkwCxP50nSWlEQAQGl2FMjY7JqDXf35GzNikiqaulWPjP1mdZqeElbwOX8hx31Pmd3O3sb/rJ4aAWWiGBcfBljOnKc59Dzt0yQeOyUR8CPpVUf+E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PmIxqMhZ; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PmIxqMhZ" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-a6f0c3d0792so648613266b.3; Tue, 18 Jun 2024 07:22:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718720539; x=1719325339; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nd4fMU4XCRVdn8w+boSaOOLeFk1GxpN6I8ANgWZ/Utc=; b=PmIxqMhZ7Vo39IiVZt7TEiwSj75mNhs3aMz/oTJoc3wYdlZuEUh7YTx/UDacMKr9qd vJmknkwdDdIbMfjJy6DCvOUmKQIkPDvOiU3RDGo2gx3GZFMH0RiFSnHw+vJguR+AVUUh tt9h7MRyxhv8r0p0Lhf7xT+Lz0ZrF6OpsJAGGiMS+WzBrdjj6H7MNoE+FWxGH6NKDVJG xkoLn7tM9+dZIdML9nmNC4tFZSusglFe9U0QSSFy+BWzrfiQ590OPFW5wAXZvaWd34CY eS85ttU7Yh/0wzayrI67lFud3y8zGzjUXnhSAbgQBSAvRXojTrhEkE7YUukVSRTLgX7i Q/xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718720539; x=1719325339; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nd4fMU4XCRVdn8w+boSaOOLeFk1GxpN6I8ANgWZ/Utc=; b=nlcaDEbkCepD6Vr3b7/JFgSPxfiECMcglI28JuVAmaIWzK+mYwvw6mjDGyUx47YrVg 3AoRPmkcULSUX6o6nMNOCNTYrde8PTuRkNXEo+/s8QlyP258iMXYdCaikShbmYjDkXP7 o6z+tRdjNYnv1Of9V/mz+vMN9foji71soO1Tj3rOfbhTyVWXXDtakVo/goxvKOY8Cfcd eMGznE3Zn3Z5PmKskz9NT3spUKQONtYmiB6RpoW2RdCeOo8QQh9WypVzQb4roOho67Bk B7TF9wP6JNI3IHQiE0LVSHPUqPiKBdsLox+gORgvWUegyByqsDdmNGXJrvkdVKVIhKCe auyg== X-Forwarded-Encrypted: i=1; AJvYcCVhySqcaiMtl7xUPXaXCALuwV6kjr/xbin0tMN3a8Ojq3cYWPuO5R+E5z5wh8mJ7TuoNOZiiImebMRVl/07CEci+ANvLwOI91x2U3EQdNDO+7koVfYfRXV2jQz27tJya0zVW9vQeo/rh3QnJjgBeQ34LzLTDoOVk/Vcpi8rYTcr8Fv93g== X-Gm-Message-State: AOJu0Yx7UEi2eY3ZUwaTwWWUYNYMwz6WErFA7X4STR8sdym7Yx9IMPJQ QgZNJqWC32lnXAYzMOIsNKUNa9DNdNQR7xrgJUHZD0fTiUjbWy/I X-Google-Smtp-Source: AGHT+IGw8nTjb4FLe1ZvAWgDgoIVGkZHYVCvXgSPLf9KAfjt31/ecVatUcUgK02e1NOE/vUKq35u3Q== X-Received: by 2002:a17:906:710a:b0:a6f:10aa:9c3f with SMTP id a640c23a62f3a-a6f60dc8929mr885088966b.54.1718720538818; Tue, 18 Jun 2024 07:22:18 -0700 (PDT) Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6f56db6dfesm618191466b.87.2024.06.18.07.22.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 07:22:18 -0700 (PDT) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Alisa-Dariana Roman , Jonathan Cameron , Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Girdwood , Mark Brown Subject: [PATCH v5 6/6] MAINTAINERS: Update AD7192 driver maintainer Date: Tue, 18 Jun 2024 17:21:38 +0300 Message-Id: <20240618142138.520192-7-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240618142138.520192-1-alisa.roman@analog.com> References: <20240618142138.520192-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Alexandru Tachici has not been active. Also the email address included is not reachable anymore. I was assigned to work on the driver instead. Remove Alexandru Tachici and add myself as maintainer of AD7192 driver. Signed-off-by: Alisa-Dariana Roman --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 24d372f7653e..d4a958b4341e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1217,7 +1217,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7091r* F: drivers/iio/adc/ad7091r* ANALOG DEVICES INC AD7192 DRIVER -M: Alexandru Tachici +M: Alisa-Dariana Roman L: linux-iio@vger.kernel.org S: Supported W: https://ez.analog.com/linux-software-drivers