From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (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 6E8EE388860 for ; Sat, 22 Aug 2026 08:59:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389146; cv=none; b=lJ3S+eun1yTlohW3zRJMYABztBOQ3EsEQcqAOUh00FkBh+gWqRqourxH7a8x6SGuVVbYcRm0tKuxdcsyQxRgbMPyd0gAZujCjtBxg8f+5Hu1g1mPzwyetqrrzXlRB9klLE1ZhodYdYAMwOAAuCkOZJ51D9ek1dZw3CNncjioRiQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389146; c=relaxed/simple; bh=9gxlDRHqhuwt8FJ/CwukjTyzdPv7n6MCBFsd7dAHKR8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BVcqDNSvmNsOq2TR23jTMqzCLTCmRBnEhaF+cj5b0Y+rF6UWHRkkIScDdqpAsilq9kGIbjG5sT/LWXXkcaBBAq2JubOLuCVU5sSpB8Yqxyd0jPYDdfoWSmyms8H/Ou4eKPrJmYcL8jjVFkUun39WKZQzyHDdE5sf1a1imJdBZ0g= 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=WtURsgPa; arc=none smtp.client-ip=209.85.128.48 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="WtURsgPa" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-49954b88fffso14776205e9.0 for ; Sat, 22 Aug 2026 01:59:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389143; x=1787993943; 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:content-type; bh=Ht5SF4+wx6Jf8JH+OLs35dYBN3IVS35rx1u5RktbmkM=; b=WtURsgPaY7dhFpQaoptaa5Gesp/20CvJpu5EiY2YfqTjvY6RxSy6el1MtxFSZws2Jo ODXcnLClj5KTue1lU4jRD19KEBDeY7U7X5fGn42fihQXeYsupxEuCxEDXDLX2hw4/5Uw ypnUKFweZyvSj8NDHS2j7cJzyWaG5mDOlzGhDqaXpX4zDh4tHFSRdEOvhFdElL8WkgsH LBR7rlkywUBlSWEsUNrsJ4SycwatjxqQFkenrw47tVlrmOv2HYeXet43WPYx69a6qRWI Lc2oguj8OWu9s7fONVt2ezLR0rOu4ZM2h3MMGC9ZbL9X2xm5GH6CCyOa92V2oCU7Rjn9 5UZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389143; x=1787993943; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Ht5SF4+wx6Jf8JH+OLs35dYBN3IVS35rx1u5RktbmkM=; b=Up8A06K5L7PWzYt607DeA0xL/NvgDVhwJzPEOYR+YDs0TgXfaZKm5FfEUibgninGV2 aKkV5RTp6MUeTNI1CslO04rdUiB5mjzdZim9U2xdRm2Qgd/Jr3Amb2Qak+XYogXb9FNZ QLu90yQQX1qUoJAlu1ZaIRcNIyOpg0zatOaKCrheZttxuaFEBKqjQRTegIK+PGfvIA2y 0zSTyMMRz3A+WLzyV0838e5p6s79wexlIakbS5pw0Sv/z7ozdO8GrgsRCDoMYJG2Lns/ YAqi0pWSx5voDJ8BTwn+uLRqXenZ/bYxSBlWOoprIlJcjKVLphDWS54p1LgBrDfKupx7 6z5A== X-Forwarded-Encrypted: i=1; AHgh+RoQ3+Uul9Xk7FkU574RuvCw4rPW78aUMoomTZSKKWWxkIA3ofOq46rTJ/Oriy19HSzYxP6oxFwqE0bgpog=@vger.kernel.org X-Gm-Message-State: AFuF++n8mhqTqgwQQLEvrxDREfdIM9XL0VtGuaT+8fyI4J+XSX16O+9T e+xtHNTK9+4Xp0VUCm3rxY+t1M+29n0JXQMCOYnZ3N/E17rgxFNkzJYSSscjMQ== X-Gm-Gg: AR+sD13Gm9EVEYEyLbO8kduXCVffJ6hYoy43kr5eVZGQJoO2R48+gRYBVkl0VVok/VR LD/T5BJXBekJCx2fqC1H30D3Li72PYCERjvtLZRRlCQGqTbBr+r0R5pFKLE91JVvehNF+fiO5zF vYXPlvxNJL6/XkjVFCHNMRcw4B14wBkOpSaoeGYZhPf8hYbJg/5IkXWtIga0kZUFKXdwqgWi905 iqTmlsY02rpRcbTZm/vqmQ7cjQH0ddjQXtI+NvplJD2w3NKBTgEFpTJ/ZBjPkDwBN/fIxRuFGJ1 ZR8Iml/9L4kc6HccF2G6ZvqyxI7+0won3J8Xh3M3+Cp+dNLAWaCuXpl9I++OnVdi/2U8XywG1zX MTwk1krbTcLom0Yb2hD/i8BwL5g8oRfFQOdk0xKW5nG6UUYuY7QWTFOFX/DQ3fJbdPCTJUUuBl9 vAhc72+HfFMaBQAdcYLUSVlTv+KJ93pst8Xc0ZJbRMqeYB9HxUok289WHGKmXTnFp8Um9Fu0efw idy42FBzDo= X-Received: by 2002:a05:600c:3111:b0:495:7888:281c with SMTP id 5b1f17b1804b1-499c1772dd5mr39257375e9.0.1787389142531; Sat, 22 Aug 2026 01:59:02 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:02 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com>, Conor Dooley Subject: [PATCH v6 1/6] dt-bindings: iio: dac: ad5504: add output-range and missing gpios Date: Sat, 22 Aug 2026 04:56:48 -0400 Message-ID: <20260822085850.17527-2-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AD5504 output range (0-30V or 0-60V) is determined by the R_SEL pin. Use standard output-range-microvolt and range-sel-gpios properties to describe the hardware configuration of the R_SEL pin. Ensure mutual exclusivity using the not/required logic. Additionally, add missing vlogic-supply, clr-gpios, ldac-gpios and datasheet links, and provide a complete usage example. Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> Acked-by: Conor Dooley --- .../bindings/iio/dac/adi,ad5504.yaml | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5504.yaml b/Do= cumentation/devicetree/bindings/iio/dac/adi,ad5504.yaml index 9c2c038683b4..e0123dceaa33 100644 --- a/Documentation/devicetree/bindings/iio/dac/adi,ad5504.yaml +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5504.yaml @@ -10,8 +10,10 @@ maintainers: - Lars-Peter Clausen - Jonathan Cameron =20 -description: +description: | High voltage (up to 60V) DACs with temperature sensor alarm function + https://www.analog.com/media/en/technical-documentation/data-sheets/ad55= 04.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ad55= 01.pdf =20 properties: compatible: @@ -27,6 +29,29 @@ properties: maxItems: 1 =20 vcc-supply: true + vlogic-supply: true + + output-range-microvolt: + description: | + Specify the channel output full scale range. The R_SEL pin + determines if the range is 0-30V or 0-60V. + items: + - const: 0 + - enum: [30000000, 60000000] + default: [0, 60000000] + + range-sel-gpios: + description: + GPIO connected to the R_SEL pin to select the output voltage range. + maxItems: 1 + + clr-gpios: + description: GPIO that controls the /CLR pin (active low). + maxItems: 1 + + ldac-gpios: + description: GPIO that controls the /LDAC pin (active low). + maxItems: 1 =20 additionalProperties: false =20 @@ -34,9 +59,17 @@ required: - compatible - reg =20 +allOf: + - not: + required: + - range-sel-gpios + - output-range-microvolt + examples: - | #include + #include + spi { #address-cells =3D <1>; #size-cells =3D <0>; @@ -45,6 +78,10 @@ examples: compatible =3D "adi,ad5504"; vcc-supply =3D <&dac_vcc>; interrupts =3D <55 IRQ_TYPE_EDGE_FALLING>; + + output-range-microvolt =3D <0 60000000>; + clr-gpios =3D <&gpio 4 GPIO_ACTIVE_LOW>; + ldac-gpios =3D <&gpio 5 GPIO_ACTIVE_LOW>; }; }; ... --=20 2.55.0 From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 6D2293955CC for ; Sat, 22 Aug 2026 08:59:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389148; cv=none; b=lFfmIjoBJZuulsS17h2fI4YrFOvnG+PGexfyqdvNnGh5nUgfC2to0bN2EvFi9uibdBqU1LiRPxf6k3tqDL4EvbcyDqSg2NoAVjj7WlvkamVbHTCD7ANMSlr0wfy6A7QEFxQPUuWie42dQHgplZzLT/V/X6FjTrxnXPUQEqkQ+Uo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389148; c=relaxed/simple; bh=FQ4fyjXp2OqEnkYHwsfz+TTm/oRpClpjq1D/SX+fetU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UJQDW+c1MKIcBmk+6p3I545qYAM0OKXBiDEx6aK2x3gnVpr/INtZjSf7Y8g8Dn1STwXWamHwmAWtK9/axDf/3567BLZ1wwYCqWLyREpCaVjJO9MV9NQsDpmpWfXIiigbjNh/tPFZcW12bxLC6Q13m6vENKyGXW8VHb75v0yZR0g= 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=qTZ29IQy; arc=none smtp.client-ip=209.85.128.50 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="qTZ29IQy" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4953e04ef16so17620885e9.2 for ; Sat, 22 Aug 2026 01:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389145; x=1787993945; 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:content-type; bh=cXCIKeHXfMN8TRcCWZhE+maVe8/ByjaTIx/Ywm2GTsw=; b=qTZ29IQyr6WAfQFmLVuB30Z/tcSUD7tVXaK7wntNOvG6urwOXQpqzu56OYxdJ8fT3T ZENgOfjon76VE3iWgBQpnevOkUHRiJb5VpqpFvgLlFIgZBvjL7ifrj8x5nEWDhaYgTYW 5uc3EocqbrSV/8BVkRXOK19qx0OjiZequFGrHv8qSyMm+eepD2hAsW/ObThzu7uJhElX tUs7u9pD0YdKbqqHRs3RaLyytUrsSs2o2llzZAlTtKn+EwXdt62Qx4nuIj4A3fU27UEg sbQzr2WG+443fExtiLF5XfIbV3MZZNdBR36wcWUgX5PQrYi8N5DGW5Lj6qpVQbVPsBMG yjRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389145; x=1787993945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=cXCIKeHXfMN8TRcCWZhE+maVe8/ByjaTIx/Ywm2GTsw=; b=jV56ZHhSFcbm/SBHt5zVRVDAuG5F4RhTJys7dnemDcZMhFamhktmpWLXL4ZgsaKSKV PJMpNwe5VO6+Neq9i/bKNcxEbIgQwhcnrP/oBZ9Q9ksRHYPeQs4Ep7ce8KgAlx2ciyVF wtNwNrkBrOQrNmRlpmuqLr1jsA/n1FFrtRmTWBTjUs1VZeX9KnNArs59WNIUpzSdWOX0 U2Vj5Xb5Fs82ixWq3R+psZKCWvcW1hgZ5aPsCz5ShFlHkCzXxMP7oGzo00n1kTpzYdxD 6A2ierFDdpfAo+eJt3znZxBc8vShoaKkFlyleQbltF8YVlvh4LRkBIWrxHrdlJsg2moI NSSg== X-Forwarded-Encrypted: i=1; AHgh+RqU2MEiQReLUFZvg6CORG++KEF/CEobocHx4IrZm+rpyDJ6D3gVk0+0/u6SK3/CrWUgmqarHYzUhtqh1z8=@vger.kernel.org X-Gm-Message-State: AFuF++maP6w1Szou/vL2OMMigkDDSu8lE6HtQJpy4nbP6BjvoahuNXlv voYflcn9rIGz+5+gN/9lR5nBB68+d8KGx7OKN4HW/xd8owt7hV5qbMyd X-Gm-Gg: AR+sD13wmHR273L+JCtJUhbj1uazb7Mb7bhmPGgFjjzp1z6LqSWHJ2q9x3sgZSwNDot F5GDsCxOA2R2wM+pjqIb3BybQ9jYTH6hHO1cryz2+Ad21fjkEzpX3xRH8t87odd5hzm3sqXww24 JP8UnKtZqLE949rvRsekFPCyuLHSFJBduMXFtp0bQg9DxPX6UmehOMq7f+tPZkCIwwLDx8RU68J Aa1j/f71PzNds/uowyci+jdTRwe7cZH4CCUAN2jnd/LVzmgZkYHTS3cJqOh2n6kyouP1d2nn5gx jZRenHLHMx9aQhZ4nLnAag5ha7AAqUJNfAN+C7AJ5qLWjjIf/Ul3T4SZRKYdh2c3w1P/BEtEItV zCoK8oUaakrxBStZ2gQJgQk2rXWUyuwx1k/sVi4+NFmkG6eX6eA8MWzV+Sb0xU7cZQFvwzgBIie zM2WLJnKkRSchowx4DRfbss1vVaV6S2SjBdCbZOzBv/7oICPYfpsYbtK4KxAO+CzqrNTmx26MKJ XyJpjrDTfc= X-Received: by 2002:a05:600c:530f:b0:499:51f0:a9b2 with SMTP id 5b1f17b1804b1-499b82f3d1dmr168825025e9.1.1787389144645; Sat, 22 Aug 2026 01:59:04 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:04 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com> Subject: [PATCH v6 2/6] iio: dac: ad5504: Align headers with IWYU principle Date: Sat, 22 Aug 2026 04:56:49 -0400 Message-ID: <20260822085850.17527-3-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update the header inclusions to follow the IWYU principle and ensure they are sorted alphabetically: - Remove , , and as they are unused. The driver relies on devm_ managed allocations, so slab is not required. - Replace with as only the BIT() and GENMASK() macros are used. - Add and for error codes and data types. - Add for cpu_to_be16(). - Add for ARRAY_SIZE(). - Add for string to integer conversions. - Replaced with Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> --- drivers/iio/dac/ad5504.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index ad1a74678cf2..5c9c66b04154 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -5,22 +5,25 @@ * Copyright 2011 Analog Devices Inc. */ =20 -#include -#include -#include +#include +#include +#include +#include #include -#include +#include #include #include -#include #include #include +#include =20 #include #include #include #include =20 +#include + #define AD5504_RES_MASK GENMASK(11, 0) #define AD5504_CMD_READ BIT(15) #define AD5504_CMD_WRITE 0 --=20 2.55.0 From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 4ED9B38BF62 for ; Sat, 22 Aug 2026 08:59:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389151; cv=none; b=BAZpLubUkizb9a+0vbezCPjPlcAEdtDHHz25twuKFZ3HuiC3qv1bwyOMU4irqRekK7JDttjfRUtvpmCGVYppeYK9Q21bgSTvsiKeg+dRYlwa7eWmC0dMwqZ0NY/dNO1K+UcvJEVCHny3N4u7x5qTc+qSehX8mCCSG5M/kjPyijQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389151; c=relaxed/simple; bh=qh4p6NiaYYKZWRo5SdC+29bJh1njzkmd5IdAQaiKg10=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V1SLlseM/SwDuXf1qWjV+A2Fy9IjKUmUqIhCAOOyMZ+aWjKhPOd2/KEU2hraLaKF19E3VWPeYoX/5mewj1PWpEaXSinJBKr2HGVJNuDgf3U2G6ylsmO7YeZ7kuAEYgqmtgFjWvw3bzVIN3Z9bWjnjbC0W9aHiMKqhOaiXceHKIw= 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=TcVXS5Ig; arc=none smtp.client-ip=209.85.128.50 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="TcVXS5Ig" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4998590d392so2184455e9.0 for ; Sat, 22 Aug 2026 01:59:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389147; x=1787993947; 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:content-type; bh=XsQREIODkCao/QDK0V814PCMzSICvR9cgatjnm3y9Ns=; b=TcVXS5Ig7krocPfP/9ao4ZyODVURPMyq6mDn0ZuHJdZ1Eoat34MD0jlK341uOkA9j4 HDi9fuGMlZPXG4xNXrBOD9bXLfJ8LsAVM3OpOZ7JFIKWSkNPlbHKr4cjzdN+QmhNXVWD F5znCQZXZ798dW19vshgt9Hyf0gBSfGYB7VWGvjSza+7wdCKlOsRY4izrsK4fAifEEp1 yjR5MIP6LdRNKcRAMcOwL8DRLn2uSliN4T7OCw3cSoJWtJZdjdAJlfajclsFdlFqqxuj CCawAFI2JFFSwmjoYis/FUT7vT1oBDvM3hBZC0AnE8Tws1vUp0C9VF9eeOp9BF7zdz9k ZObw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389147; x=1787993947; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=XsQREIODkCao/QDK0V814PCMzSICvR9cgatjnm3y9Ns=; b=HozgpaJHU7dWis/kO6bTrYEMwazhr68TeNjVCf2RurVJikiNWSIgfuosrtmznwHPde fXAL0WOG6KSXFvOiTARUv2XjStNgenvtGhzYJaXiI/Oa//VS3aHEUuc05cLBY99TFQwV xft+Yk73JBco9mWBapUo0xosOi60O0EeCENQQp1txD2piR5SweSuhJwbWycX6Et8ZJF1 NLNutOZ/o/f5OQLvhAybCpnNlbWaPVvlQQVEFfg6ycWR4oWbJImdkj6zav3mECqFErO2 sdeAA9Na+YrCiPU00IwrIkn1nUmVgxHwg+OtMF3kRuzsmCrJY1J3B+Tnvi+EsMyZyo3d DWLQ== X-Forwarded-Encrypted: i=1; AHgh+RoNMxECisZjF0vqa4KDzyS33ZhOueIFXaBw+MGdEHIWicvsK2D8Q9L0WDF/zp2MxucN05EYea1WeHNvy/A=@vger.kernel.org X-Gm-Message-State: AFuF++nkCvIp7LvupfzmbKMW2BnIIF1paoQxwkwbBT6D36EMhurqdlXY ogbfld+CggvI+NqN+SU3x37+Y7n1kv55yVPLLL/uVwCiy2ZDzDrb0DKV X-Gm-Gg: AR+sD11FfZtu+vSgSVBFNTsEYrFqsiqmU8kgcxqkZ02ppw3AMdZuVxP/29+Ib4H+Xwe cXVZLrAAO7CRnfstJlx8XL3zmlsv9RAooH3qvmmjMC/kv/W+imC+cik0IF1SoT4cwEm4r8zU3Xd gGCoL3VmAxUdM6KcM+kd886q2TQz/GLKS6i8qjWbhx6KHxouxz7wtlTopovZIIovrexUSnDryT2 s+OlcrsTWzlJ+U8BS73l6ESWib/8863HjrL0MXeTJtDzmBAr115yFAFT8rQbkW7+vfT0Zkt0pjM O6OTF/6Eqt1mpZKmBzd5bND78h2O4+L7AM1HCLc0FOHmT87tfvBLA+Jv82ZEXVvBBj1h8yAabqE gHCRz4w4FikHzXVPbs5+JnwtrNPAl4v9KqyAYiQedO+GryICr4I0FOfMeLsAg/0341xz5wPFdPd hHAd1T0Lil4kKeaV6uQGg3SbYrC7JJ0ZlXil5VFppHWnvK3M4Qe5zLp8H0JUlJbwt0/17gFL8zr Z9IGRiK/P4= X-Received: by 2002:a05:600c:b86:b0:499:8156:cd3f with SMTP id 5b1f17b1804b1-499b8301913mr118647255e9.8.1787389147451; Sat, 22 Aug 2026 01:59:07 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:06 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com> Subject: [PATCH v6 3/6] iio: dac: ad5504: separate ACPI and DT paths Date: Sat, 22 Aug 2026 04:56:50 -0400 Message-ID: <20260822085850.17527-4-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The driver relied on a fragile -ENODEV check from the regulator framework to bypass voltage configuration on ACPI platforms, sharing the same fallback path as legacy pdata. Fork probe on is_acpi_device_node() to explicitly handle each path. On ACPI, skip the regulator and use a fixed 60V default via AD5504_VREF_ACPI_DEFAULT_mV. The pdata fallback remains for non-ACPI systems in this commit; it is removed in the next. Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> --- drivers/iio/dac/ad5504.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 5c9c66b04154..6f70c57c7a82 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -5,6 +5,7 @@ * Copyright 2011 Analog Devices Inc. */ =20 +#include #include #include #include @@ -12,10 +13,12 @@ #include #include #include +#include #include #include #include #include +#include =20 #include #include @@ -24,6 +27,10 @@ =20 #include =20 +/* + * In case of ACPI, we use the 60 V as default voltage reference. + */ +#define AD5504_VREF_ACPI_DEFAULT_mV (60 * MILLI) #define AD5504_RES_MASK GENMASK(11, 0) #define AD5504_CMD_READ BIT(15) #define AD5504_CMD_WRITE 0 @@ -285,16 +292,20 @@ static int ad5504_probe(struct spi_device *spi) =20 st =3D iio_priv(indio_dev); =20 - ret =3D devm_regulator_get_enable_read_voltage(dev, "vcc"); - if (ret < 0 && ret !=3D -ENODEV) - return ret; - if (ret =3D=3D -ENODEV) { - if (pdata->vref_mv) - st->vref_mv =3D pdata->vref_mv; - else - dev_warn(dev, "reference voltage unspecified\n"); + if (is_acpi_device_node(dev_fwnode(dev))) { + st->vref_mv =3D AD5504_VREF_ACPI_DEFAULT_mV; } else { - st->vref_mv =3D ret / 1000; + ret =3D devm_regulator_get_enable_read_voltage(dev, "vcc"); + if (ret < 0 && ret !=3D -ENODEV) + return ret; + if (ret =3D=3D -ENODEV) { + if (pdata->vref_mv) + st->vref_mv =3D pdata->vref_mv; + else + dev_warn(dev, "reference voltage unspecified\n"); + } else { + st->vref_mv =3D ret / 1000; + } } =20 st->spi =3D spi; --=20 2.55.0 From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.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 1662D392803 for ; Sat, 22 Aug 2026 08:59:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389152; cv=none; b=KBhHbDeT2r3QoBiV0bL9H7aZbnRTHWlp7H/sp1HkrzWQPKB+ZBhMyK80fYZ0ODDdl/mRxuN+PZ1s0mzA9NMSEraYWRWjRVLYuNC9AvbVKGlZtP24DF/isEjbtqikzSzzD/EdZUciuQx7mgBYg+fDmYtHJeouklS4e4m8sowLykM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389152; c=relaxed/simple; bh=HCZVOF8T9m7E1Gm3Iq+tZImcQ0gw7AQRtwevkDBWDd0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TcTiqBbxTUTEVt+dA555hBxuEp82sMtAPxDV5LxLarPCMis2cZ2FI2dALxJ0y3VSpPmkM16VKDdk7xxTzFZBA12JvzgZN/SXvF4Z3zd1EHOfpDyASA4JdZWbeF7CzTCeLCIezmv9t2B/YCWXgZI30q0mqMLyaiOfYU4LTPenHXg= 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=CpVO4Ppa; arc=none smtp.client-ip=209.85.221.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="CpVO4Ppa" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-47f3b39f2a1so1391661f8f.2 for ; Sat, 22 Aug 2026 01:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389149; x=1787993949; 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:content-type; bh=0dWiifvCNQ6/1XjQKOnLCIy+9xjui2vS7wMw6DuKzck=; b=CpVO4PpaADFUYZb9BdHz57T/9zlRaUoBDVipDhuy6607AqDegFbjE2NxH1KkdF6vsp XTqryFL1Y2rf5ejiYpe7rGDux2wRu3sbivQIvcHbCKo5e4nynSHQuoAhZXHg95svE2iC wKvS800DqoqInTYMk++f2TiHcEnJ+G3740Nu4BPxwpyMgbD2r115CLHOhSqJ0FNxgpyY 6/rxlXw7Jgk/yca09cs0QzaowYOzy4YdMledBbN/HAb3Vhebv5y//AmQMZwzFQrzJKsq LFFuLr1P8je950f7gDTc6ypMo0f82hGCuvI1CPw+arnzuqqZnlai63OLHNKIR4jaZW38 gGig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389149; x=1787993949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=0dWiifvCNQ6/1XjQKOnLCIy+9xjui2vS7wMw6DuKzck=; b=UY9fgKgVzJcEimlWiMrxxPAxQGH6Gy8zZfs+rWZ5WM+RXT7JGo+w3paZ81uYtI51Ei waF5ALmIPlcF3LOikul+WgFS5JtPMgivpXF61u1MgpiSz1VOYLQfc089a7VqT9M+wV/z gCozCtzkMJlLrOqKzxm0nI6PXbJJ8PT3nfRoRfoTZ2arsHQzSjlSzAQNy3yrb1lfRSRc LySNIwghSaLPcAr5GWjejCc9ujZJCA+SZuBLx27OhJWmSo9IJsGlHAlOIo6RPcYDlRCv BG2LKwqlKotveZL/6Oxy1BR4IO0C10BMMy0BT/yGUevElqoU61ddyaHkbJSLA4w6E2xA BszA== X-Forwarded-Encrypted: i=1; AHgh+RocGAZWLSpYPr4L0elsb7fAo+0YhpKBIzkm5TaxQ0ltWUqt+gqbsjYoLmYa3gg7eeY42ATgY24OrwY1Xy8=@vger.kernel.org X-Gm-Message-State: AFuF++mI8mBwCESXJHEFFQRYoFSObDLnr8rbRQCcSNWarhio7ACi2MNB I51WKtN+wTQCs78u9JEXZOmXOF97/YtuU6vnIPhkswoL+JMHODX7p70L X-Gm-Gg: AR+sD13oEICorj+Bbcgc/wkplEKpflF1JfgFEnycctOxUQXmzebCMTD2N9XW2oC2++H QK2XIbugZIww3FzuwVlKhNGzs2XM/eM0OBEx7yw7U+8O21oJlAfacoHoDJMxyiWV23Rc5FTc2rv Y2h+UwyUPVOsG5cFl3weOqnCY2dH1pwU4Umrbt6Cg+Q0M7gWOdeNZsvCqHVELsutwZcfCQij8Yx q8PBXcoHmJexqwWUgLHTQzLpUJTOjoRx6r2K0NWygyj1CVwrcPes4Xf9+VdPSBVDYZT9qgVxlHB UcwPcUqe6uBP1v3gi7qIcpM3Q8mD95orjZYA0H6gfUNANQoHkPUKQkmidYtzDqG0eRHJ3g9dWFA DTLCfdyDInx7+85K9tWK0JKVnMEpPP6Agda4DrLQh0S+7wAgG8te6CUryDIY2m41T2mRxpHeJ7z CTKj4R26IBAkUZZM/pwKqzjIWp8b61aUOs0bdUP9e1hKAwwRD7XwmVB86mBZOe0aI88JS87sb2J NKwtdOLRm0= X-Received: by 2002:a05:600c:4e4e:b0:499:b01e:911c with SMTP id 5b1f17b1804b1-499b830d697mr175513185e9.2.1787389149299; Sat, 22 Aug 2026 01:59:09 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:09 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com> Subject: [PATCH v6 4/6] iio: dac: ad5504: remove legacy platform data support Date: Sat, 22 Aug 2026 04:56:51 -0400 Message-ID: <20260822085850.17527-5-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AD5504 driver has no in-tree users of its legacy platform data support. Now that ACPI has its own explicit path, non-ACPI systems can safely treat the vcc regulator as mandatory. Drop the ad5504_platform_data structure, remove the fallback logic from probe, and delete include/linux/iio/dac/ad5504.h. Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> --- drivers/iio/dac/ad5504.c | 17 +++++------------ include/linux/iio/dac/ad5504.h | 15 --------------- 2 files changed, 5 insertions(+), 27 deletions(-) delete mode 100644 include/linux/iio/dac/ad5504.h diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 6f70c57c7a82..799726eafdf2 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -20,7 +20,6 @@ #include #include =20 -#include #include #include #include @@ -281,7 +280,6 @@ static const struct iio_chan_spec ad5504_channels[] =3D= { static int ad5504_probe(struct spi_device *spi) { struct device *dev =3D &spi->dev; - const struct ad5504_platform_data *pdata =3D dev_get_platdata(dev); struct iio_dev *indio_dev; struct ad5504_state *st; int ret; @@ -296,16 +294,11 @@ static int ad5504_probe(struct spi_device *spi) st->vref_mv =3D AD5504_VREF_ACPI_DEFAULT_mV; } else { ret =3D devm_regulator_get_enable_read_voltage(dev, "vcc"); - if (ret < 0 && ret !=3D -ENODEV) - return ret; - if (ret =3D=3D -ENODEV) { - if (pdata->vref_mv) - st->vref_mv =3D pdata->vref_mv; - else - dev_warn(dev, "reference voltage unspecified\n"); - } else { - st->vref_mv =3D ret / 1000; - } + if (ret < 0) + return dev_err_probe(dev, ret, + "Failed to get vcc regulator\n"); + + st->vref_mv =3D ret / 1000; } =20 st->spi =3D spi; diff --git a/include/linux/iio/dac/ad5504.h b/include/linux/iio/dac/ad5504.h deleted file mode 100644 index 9f23c90486ee..000000000000 --- a/include/linux/iio/dac/ad5504.h +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * AD5504 SPI DAC driver - * - * Copyright 2011 Analog Devices Inc. - */ - -#ifndef SPI_AD5504_H_ -#define SPI_AD5504_H_ - -struct ad5504_platform_data { - u16 vref_mv; -}; - -#endif /* SPI_AD5504_H_ */ --=20 2.55.0 From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 386D83955EE for ; Sat, 22 Aug 2026 08:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389157; cv=none; b=cl123bOqrMPLqMkTgLx1hAeyrzU5eJTLQsUir/n2AtIQQOaKAprbhJb/HU+wWAy0KxNgKybvxRQk66TG52ZfameUkgki/1cxESIsPMh822MsuT45MV5OMcESg/pG08R6OsPVHfGw/KgjurR7AIrmG3Huyp4ehdUblSS0n/3DBsk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389157; c=relaxed/simple; bh=GrjWD/fHDSl39omfPPPA6fY82p2QrwPspwwKONWixLU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e94wGwMxJqlT7H2AZPieFYf6au0NnQxi2ZW+2f45opn3GPBrRJeu5mDIv5JwOcUftgmQu3ogjQZE3pyse8fq+nBKNWhF9rI/+EP9xfyviZ6Ec6L8xfb9tC5NjNjDVwfnVc1krseOAMu4wYqxBvVS9xpOfP8TGtH7GU4IrDPhsW4= 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=kD7CUfgc; arc=none smtp.client-ip=209.85.128.46 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="kD7CUfgc" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-490cf322ed0so15754835e9.1 for ; Sat, 22 Aug 2026 01:59:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389152; x=1787993952; 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:content-type; bh=luQR8xYtWNjcIKjnua7+NMXDIf2qqWk1d+lbBj05x0Q=; b=kD7CUfgcAdxfIqWoJWbLxfAn9h+Q4Z7UCv9VgUO2mfgDSasF7IQQ8/QqUzi2oDE5kU jMd2V5hkODd6P3fGom8qC8SUqfpViayyzMOc9XSn9tjdQWIuWjGAQ2pUN/H0hj0NsbLU VQgFsQZ65Ae1LJr6qGTAucb/Eu23GWpDW5x7ejrSH/1cvQdbXTvhOS2aduC/9ZUCZEOb TQyzHdhtC531HxwK7aXoqXhCUbsAarQtSZE22cyTFYssbrKSfzSmNDH/gxuEsGvpPBEC iNGIW353j2jCCJ6VqpI0ZKSn7iPZSe28V+R184ZyvxzM5+TlbY+ISgjl9M7xPrVTzjbh twzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389152; x=1787993952; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=luQR8xYtWNjcIKjnua7+NMXDIf2qqWk1d+lbBj05x0Q=; b=MtShdimZLDPxWpwdlv3xGAbTQ1WvbLEoAYMmq5/RkneLSoReoqFcXgZli5beZsCHB2 2tnzxbtDZ0ijQxe6GcFmtBdzXx3+QAwp2l73lnomHE73ty31TJCtq2gbDf50JLY0uhFK qevy3w2yv9xluzS12VjCAJf08nJMbpTyNTHgMc/sK2oKQ65CtDlMt+WKAgi7BCSoRwA5 BPk3S6auTfhkoLADAAQ0krVLjBo4WMRdXPF8mjDE5g8HgTLugJ6EjROFfe3dd4hBQzuy QC0yfVu9ElauCSyg1xrGHGPM+NOpNyoJW5UmMz4TSYYhRXS4GC0K/+pTRaXkTON40H/U rZAg== X-Forwarded-Encrypted: i=1; AHgh+RqeaS9DVHqwMYbc/kD8SrGTXh/LBZfTrjcMmxqfRkhj3D08IARO2D8XwwGWx4okYDJEiJK/BIwrzCkdgv0=@vger.kernel.org X-Gm-Message-State: AFuF++nJnafnnHPIgd1RAZSejClFfiH989ztuoH0+5tEcmhEVFXOxcGb SR03K4P1MymmGkQDpCWNQuRmXn4b/ocD9dPtk9wttz2xvs0YF9xTWjwr X-Gm-Gg: AR+sD10RbeluAeanb1qTNZrggnHGVLV8lAqLnnbzKDU2tiiNHlWY7/aq3I2Jncws4TP mOChS5fJjpmrfyIRkykrOZNtLoMU1/efZPjAX0L5zgKiVfdKsoKSlfXWdhMXmZ03zWYsPY6XlEl GZulIqbJLvFyHy+XCzlfJw05xHJ5xGctqJpw+9pmN9K2+OEW73DdJwV77d5SiGpYMmy6WIDYpCU yjZ0qK+qdTbZPZsL7R1HxG+ivTD3PlMvBM8KZQKyAfrAPWk7yNw/p+zL/0wmg01sfIiWWIKEyzj 08dchAjoFblJ2j/sdYqfHg2u+9qNW4a0PLV+Zvf66Cx0mNL8lzKNfESvzgG5boOs3erXvrRlYEU nFytaYYvQ2J1NO9WJYOJvV7z4FNzWYFYgbiON5k91zWIsOitNVB1i6EBz+JxvErPBS2pc/Xig// HKQi9gjzX63tMX9ys/97dPY0JU35L4JHGg3r3DF9NFsoqTpvIgHxSqh3NwKF3frSEX49Ac3FWar nX3Nxo28aM= X-Received: by 2002:a05:600c:83ce:b0:493:a966:d5b5 with SMTP id 5b1f17b1804b1-499c19adad0mr42586245e9.2.1787389152523; Sat, 22 Aug 2026 01:59:12 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:11 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com> Subject: [PATCH v6 5/6] iio: dac: ad5504: introduce local lock to protect state and spi transfers Date: Sat, 22 Aug 2026 04:56:52 -0400 Message-ID: <20260822085850.17527-6-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The driver lacks locking, exposing concurrent access to the shared DMA SPI buffers, the non-atomic CTRL+NOOP write sequence in powerdown, and the pwr_down_mask/pwr_down_mode state variables. Introduce a mutex via devm_mutex_init() and guard(mutex) at the IIO callbacks to serialize access. In read_raw() and write_raw(), scope the lock to IIO_CHAN_INFO_RAW only since IIO_CHAN_INFO_SCALE reads vref_mv which is immutable after probe. Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> --- drivers/iio/dac/ad5504.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 799726eafdf2..74679feea385 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -8,11 +8,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -55,10 +57,12 @@ * @pwr_down_mask: power down mask * @pwr_down_mode: current power down mode * @data: transfer buffer + * @lock: lock to protect state and spi transfers */ struct ad5504_state { struct spi_device *spi; struct regulator *reg; + struct mutex lock; unsigned short vref_mv; unsigned pwr_down_mask; unsigned pwr_down_mode; @@ -109,7 +113,9 @@ static int ad5504_read_raw(struct iio_dev *indio_dev, int ret; =20 switch (m) { - case IIO_CHAN_INFO_RAW: + case IIO_CHAN_INFO_RAW: { + guard(mutex)(&st->lock); + ret =3D ad5504_spi_read(st, chan->address); if (ret < 0) return ret; @@ -117,6 +123,7 @@ static int ad5504_read_raw(struct iio_dev *indio_dev, *val =3D ret; =20 return IIO_VAL_INT; + } case IIO_CHAN_INFO_SCALE: *val =3D st->vref_mv; *val2 =3D chan->scan_type.realbits; @@ -134,11 +141,14 @@ static int ad5504_write_raw(struct iio_dev *indio_dev, struct ad5504_state *st =3D iio_priv(indio_dev); =20 switch (mask) { - case IIO_CHAN_INFO_RAW: + case IIO_CHAN_INFO_RAW: { + guard(mutex)(&st->lock); + if (val >=3D (1 << chan->scan_type.realbits) || val < 0) return -EINVAL; =20 return ad5504_spi_write(st, chan->address, val); + } default: return -EINVAL; } @@ -154,6 +164,8 @@ static int ad5504_get_powerdown_mode(struct iio_dev *in= dio_dev, { struct ad5504_state *st =3D iio_priv(indio_dev); =20 + guard(mutex)(&st->lock); + return st->pwr_down_mode; } =20 @@ -162,6 +174,8 @@ static int ad5504_set_powerdown_mode(struct iio_dev *in= dio_dev, { struct ad5504_state *st =3D iio_priv(indio_dev); =20 + guard(mutex)(&st->lock); + st->pwr_down_mode =3D mode; =20 return 0; @@ -179,6 +193,8 @@ static ssize_t ad5504_read_dac_powerdown(struct iio_dev= *indio_dev, { struct ad5504_state *st =3D iio_priv(indio_dev); =20 + guard(mutex)(&st->lock); + return sysfs_emit(buf, "%d\n", !(st->pwr_down_mask & (1 << chan->channel))); } @@ -195,6 +211,8 @@ static ssize_t ad5504_write_dac_powerdown(struct iio_de= v *indio_dev, if (ret) return ret; =20 + guard(mutex)(&st->lock); + if (pwr_down) st->pwr_down_mask &=3D ~(1 << chan->channel); else @@ -290,6 +308,10 @@ static int ad5504_probe(struct spi_device *spi) =20 st =3D iio_priv(indio_dev); =20 + ret =3D devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + if (is_acpi_device_node(dev_fwnode(dev))) { st->vref_mv =3D AD5504_VREF_ACPI_DEFAULT_mV; } else { --=20 2.55.0 From nobody Mon Sep 28 11:38:34 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.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 C0EDC392803 for ; Sat, 22 Aug 2026 08:59:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389158; cv=none; b=rT3E6ymSpjFquFFIwmsBwX8m0g1WanMM6jtWelfmP8yRHv1+r0NEnw38mKx+7Mg+pr7OltN0DqUqMMztSn51WfZAZTRZf/RUyLdpgjwK7IXB5BGtr6V9P+ex6Nar3sgnxJzJY7V1eFODLcIvvuPv9Ip2bnHtmdWS+y/AB1SiAWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787389158; c=relaxed/simple; bh=knEBHlFfwfTg3BZHtVetu+4kkb6goYIW9lT42atil6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fe6wszpeb/NM/SWJKjuzkUy9aVLNuFA9MDgRPVm7yK35qXXC+i/DX4mfLr6yi5hyLHH4RBHlmQgGeUWJwZVgLsmV0pjKw9bp/316NK0x3AKEn/1qLUWkDXjtL1ChjQm8DdAPBM6+jzOm04lPoZd+8a+3GVmdzg7uyyh1XwBNVio= 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=YQxcpLVe; arc=none smtp.client-ip=209.85.221.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="YQxcpLVe" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-4798bea72f9so856845f8f.1 for ; Sat, 22 Aug 2026 01:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787389155; x=1787993955; 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:content-type; bh=gyzSFKMQwJr+T8EdF5oNgce8bGN34YWsrDUToLRcePQ=; b=YQxcpLVejS2q7sX6dDG7AVnPrRzjNFwe/Jg+at+teKir7AzRvy7iS9MxWop3w0ITJx wUxV0BNCZgauXWVLK78WHU2Dn57HABp2DWAu4h9SHc7qd7l4W6LuijQP3664ZA6JDXyF 4a0aQ3rOUh7BA2HfDhSYMHBQrNXNGd0C6TrXq6vxbE7x9Ll+mJPKudIhOAlzQpu8O4WQ vPVv4sfmWzwdI0hiaCiE8AEtWPleFi48+8zjjzvj+ZGQgrD+pf8uDvGZBh+/GD8nTZ8A 4qonsMMW+Hf6ynQsgw1rpLwiFKAvvCj9RFMwqhQJuiEfQ31JfwprW/hrqmsXUMKS0eGg KXcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787389155; x=1787993955; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=gyzSFKMQwJr+T8EdF5oNgce8bGN34YWsrDUToLRcePQ=; b=C4FzcCIMc3+0SNY3gNV1TVbkCvIrmq2rixN4xWPsTg8S2ok7K20iRMKIMmXJ1vE4Os S98jqhAJzjWpW5CNNE3+F+7wjPvNVWaYRdDGYyVC8hy65r5DLSvlzrGn49CqJ737Lt4e Y3e9yfGjutoXd34H8GZapOE7hDHbU164qGmTl8GiFb6jAmLCtrNDbWyRyhQQDtTck3lU XhcaZ8BwzWx48Kfufm3ddUYW7c+/gU410tQEmo7MQwpb1xYOmmx98miEuo2Wc53b1DPE /0L+tUBzKNdla7CiysWYuTdWcCJBqi8Ik0kmsUYvFFt7rSWvNljkRmPn10qkmYXEdlc6 5nEQ== X-Forwarded-Encrypted: i=1; AHgh+Rr50I2/pFAkaCnLUpb9Ai3eN6q4rf/HS99e+6a0ssooQ5kB1+eHU4Cz/HBZhcIWmjTQDWue8fX13XV3bjE=@vger.kernel.org X-Gm-Message-State: AFuF++kWp/i+WefNsEU01657iMu7Roe6+s/4Tukkjoeha1BUZGekGXRt k3WCke4zLjdbQVFZvCFcpEfOz5IYEd6/Uf4DkugABZdaFErYXgDJqh44 X-Gm-Gg: AR+sD11bBmhp8wKg+SkI47bMSoiDoy8eopjmeUuYug88slMalj2Dkam6bp/1kMkqPcb eEw/ux5ZfnUsNGK1BkG1jcnLWA0yHN+ZNq1YEbUdXHkAn+PByFXX2IcDxLos1InDT5ZyE5/bhsA RjaqWLt64joOSkXtszZSGQJhQ+8Jg2PSLajjPp3CIu/gI62D/d+Lm7aOdEziqnMdLAWTrF85k5A 3IZ1QyGHr/3OMal4NI03pykx1pds4H9SWyI6kZdV94SbOUqKojHmLuCI3zyiSd3ewTZACoSW33/ wY0lnSZ4nAK1RtN489/VPlnrAb11su5Njd1F4qGPpxy0Ye+QNak69FenR+9t1ZeUbdtGQjOAhg/ KghtkPu/bW1sl/3t/RI6EoFFpe17W58dH5udFuGQL9q5fH/Wnx8OjedWI+o8nFCLadKHxIILqK+ vTgGNjxUs0MGq3KfFsN6uGbxg/4rjbgssWkIVkwTRLEdfTlXdQywtwtZnKu9H//yuTPRw+qWdk6 gpssxrthBo= X-Received: by 2002:a05:600c:45c3:b0:499:4e47:eaf2 with SMTP id 5b1f17b1804b1-499b8325c3fmr149228495e9.6.1787389154922; Sat, 22 Aug 2026 01:59:14 -0700 (PDT) Received: from fedora ([105.74.72.30]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499c359b9fcsm13596635e9.9.2026.08.22.01.59.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:59:14 -0700 (PDT) From: Taha Ed-Dafili <0rayn.dev@gmail.com> To: jic23@kernel.org, lars@metafoo.de Cc: Michael.Hennerich@analog.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, skhan@linuxfoundation.org, linux@analog.com, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Taha Ed-Dafili <0rayn.dev@gmail.com> Subject: [PATCH v6 6/6] iio: dac: ad5504: support scale via output-range-microvolt property Date: Sat, 22 Aug 2026 04:56:53 -0400 Message-ID: <20260822085850.17527-7-0rayn.dev@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260822085850.17527-1-0rayn.dev@gmail.com> References: <20260822085850.17527-1-0rayn.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AD5504 output range is set by the R_SEL pin, not the VCC supply. Add support for 'output-range-microvolt' to set vref_mv directly from firmware. Use device_property_present() to distinguish absent from malformed property rather than relying on the ambiguous -EINVAL from device_property_read_u32_array(). Fall back to the vcc regulator voltage for old DTs that predate this property. Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com> --- drivers/iio/dac/ad5504.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c index 74679feea385..d0a3dd4b000d 100644 --- a/drivers/iio/dac/ad5504.c +++ b/drivers/iio/dac/ad5504.c @@ -300,6 +300,7 @@ static int ad5504_probe(struct spi_device *spi) struct device *dev =3D &spi->dev; struct iio_dev *indio_dev; struct ad5504_state *st; + u32 range[2]; int ret; =20 indio_dev =3D devm_iio_device_alloc(dev, sizeof(*st)); @@ -315,12 +316,30 @@ static int ad5504_probe(struct spi_device *spi) if (is_acpi_device_node(dev_fwnode(dev))) { st->vref_mv =3D AD5504_VREF_ACPI_DEFAULT_mV; } else { - ret =3D devm_regulator_get_enable_read_voltage(dev, "vcc"); - if (ret < 0) - return dev_err_probe(dev, ret, - "Failed to get vcc regulator\n"); - - st->vref_mv =3D ret / 1000; + if (device_property_present(dev, "output-range-microvolt")) { + ret =3D device_property_read_u32_array(dev, "output-range-microvolt", + range, ARRAY_SIZE(range)); + if (ret) + return dev_err_probe(dev, ret, + "Error parsing output-range-microvolt\n"); + + if (range[0] !=3D 0 || (range[1] !=3D 30 * MICRO && range[1] !=3D 60 * = MICRO)) + return dev_err_probe(dev, -EINVAL, + "Invalid output-range-microvolt\n"); + + st->vref_mv =3D range[1] / (MICRO / MILLI); + + ret =3D devm_regulator_get_enable(dev, "vcc"); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to enable vcc regulator\n"); + } else { + /* Backward compat: old DTs without output-range-microvolt */ + ret =3D devm_regulator_get_enable_read_voltage(dev, "vcc"); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to get vcc regulator\n"); + + st->vref_mv =3D ret / (MICRO / MILLI); + } } =20 st->spi =3D spi; --=20 2.55.0