From: David Lechner <dlechner@baylibre.com>
To: "Angelo Dureghello" <adureghello@baylibre.com>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Olivier Moysan" <olivier.moysan@foss.st.com>
Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 4/9] iio: backend adi-axi-dac: add registering of child fdt node
Date: Thu, 5 Sep 2024 14:19:19 -0500 [thread overview]
Message-ID: <7bd162bb-dce8-4aff-9f56-1ab73b091a28@baylibre.com> (raw)
In-Reply-To: <20240905-wip-bl-ad3552r-axi-v0-iio-testing-v2-4-87d669674c00@baylibre.com>
On 9/5/24 10:17 AM, Angelo Dureghello wrote:
> From: Angelo Dureghello <adureghello@baylibre.com>
>
> Change to obtain the fdt use case as reported in the
> adi,ad3552r.yaml file in this patchset, with the DAC device that
> is actually using the backend set as a child node of the backend.
>
> To obtain this, registering all the child fdt nodes as platform
> devices.
>
> Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
> Co-developed-by: David Lechner <dlechner@baylibre.com>
> Co-developed-by: Nuno Sá <nuno.sa@analog.com>
> ---
> drivers/iio/dac/adi-axi-dac.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/iio/dac/adi-axi-dac.c b/drivers/iio/dac/adi-axi-dac.c
> index cc31e1dcd1df..e883cd557b6a 100644
> --- a/drivers/iio/dac/adi-axi-dac.c
> +++ b/drivers/iio/dac/adi-axi-dac.c
> @@ -783,6 +783,7 @@ static int axi_dac_probe(struct platform_device *pdev)
> {
> struct axi_dac_state *st;
> const struct axi_dac_info *info;
> + struct platform_device *child_pdev;
> void __iomem *base;
> unsigned int ver;
> struct clk *clk;
> @@ -862,6 +863,20 @@ static int axi_dac_probe(struct platform_device *pdev)
> return dev_err_probe(&pdev->dev, ret,
> "failed to register iio backend\n");
>
> + device_for_each_child_node_scoped(&pdev->dev, child) {
This should use fwnode_for_each_available_child_node() so that it skips
nodes with status != "okay".
Would be nice to introduce a scoped version of this function too.
Also, if we are allowing multiple devices on the bus, the DT bindings
need to have a reg property that is unique for each child.
> + struct platform_device_info pi;
> +
> + memset(&pi, 0, sizeof(pi));
struct platform_device_info pi = { };
avoids the need for memset().
> +
> + pi.name = fwnode_get_name(child);
> + pi.id = PLATFORM_DEVID_AUTO;
> + pi.fwnode = child;
Need to have pi.parent = &pdev->dev;
It could also make sense to have all of the primary bus functions
(reg read/write, ddr enable/disable, etc.) passed here as platform
data instead of having everything go through the IIO backend.
> +
> + child_pdev = platform_device_register_full(&pi);
> + if (IS_ERR(child_pdev))
> + return PTR_ERR(child_pdev);
These devices need to be unregistered on any error return and when
the parent device is removed.
> + }
> +
> dev_info(&pdev->dev, "AXI DAC IP core (%d.%.2d.%c) probed\n",
> ADI_AXI_PCORE_VER_MAJOR(ver),
> ADI_AXI_PCORE_VER_MINOR(ver),
>
next prev parent reply other threads:[~2024-09-05 19:19 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 15:17 [PATCH v2 0/9] iio: add support for the ad3552r AXI DAC IP Angelo Dureghello
2024-09-05 15:17 ` [PATCH v2 1/9] dt-bindings: iio: dac: ad3552r: add io-backend property Angelo Dureghello
2024-09-05 16:28 ` Rob Herring (Arm)
2024-09-05 19:51 ` David Lechner
2024-09-08 12:29 ` Jonathan Cameron
2024-09-09 11:39 ` Angelo Dureghello
2024-09-09 19:16 ` Jonathan Cameron
2024-09-09 12:46 ` Conor Dooley
2024-09-09 14:03 ` Nuno Sá
2024-09-09 16:06 ` Conor Dooley
2024-09-10 8:12 ` Nuno Sá
2024-09-09 17:19 ` David Lechner
2024-09-09 17:38 ` David Lechner
2024-09-10 8:16 ` Nuno Sá
2024-09-11 8:45 ` Angelo Dureghello
2024-09-11 19:28 ` Conor Dooley
2024-09-05 15:17 ` [PATCH v2 2/9] iio: backend: extend features Angelo Dureghello
2024-09-08 12:38 ` Jonathan Cameron
2024-09-09 11:58 ` Angelo Dureghello
2024-09-05 15:17 ` [PATCH v2 3/9] iio: backend adi-axi-dac: " Angelo Dureghello
2024-09-08 15:11 ` Jonathan Cameron
2024-09-08 15:40 ` Christophe JAILLET
2024-09-05 15:17 ` [PATCH v2 4/9] iio: backend adi-axi-dac: add registering of child fdt node Angelo Dureghello
2024-09-05 19:19 ` David Lechner [this message]
2024-09-06 5:42 ` Nuno Sá
2024-09-06 13:52 ` David Lechner
2024-09-06 7:08 ` Nuno Sá
2024-09-08 12:36 ` Jonathan Cameron
2024-09-09 7:53 ` Nuno Sá
2024-09-05 15:17 ` [PATCH v2 5/9] dt-bindings: iio: dac: add ad3552r axi-dac compatible Angelo Dureghello
2024-09-05 16:28 ` Rob Herring (Arm)
2024-09-05 21:08 ` David Lechner
2024-09-06 7:22 ` Krzysztof Kozlowski
2024-09-06 9:11 ` Angelo Dureghello
2024-09-06 9:37 ` Krzysztof Kozlowski
2024-09-06 11:53 ` Nuno Sá
2024-09-06 12:13 ` Krzysztof Kozlowski
2024-09-06 13:52 ` Nuno Sá
2024-09-06 14:04 ` David Lechner
2024-09-06 16:36 ` Krzysztof Kozlowski
2024-09-06 16:42 ` David Lechner
2024-09-06 16:44 ` Krzysztof Kozlowski
2024-09-06 16:43 ` Krzysztof Kozlowski
2024-09-05 15:17 ` [PATCH v2 6/9] iio: dac: ad3552r: changes to use FIELD_PREP Angelo Dureghello
2024-09-05 20:59 ` David Lechner
2024-09-08 15:14 ` Jonathan Cameron
2024-09-08 15:15 ` Jonathan Cameron
2024-09-05 15:17 ` [PATCH v2 7/9] iio: dac: ad3552r: extract common code (no changes in behavior intended) Angelo Dureghello
2024-09-08 15:42 ` Jonathan Cameron
2024-09-08 15:53 ` Christophe JAILLET
2024-09-05 15:17 ` [PATCH v2 8/9] iio: dac: ad3552r: add axi platform driver Angelo Dureghello
2024-09-05 20:40 ` David Lechner
2024-09-08 15:49 ` Jonathan Cameron
2024-09-09 9:00 ` Nuno Sá
2024-09-08 16:07 ` Jonathan Cameron
2024-09-08 16:28 ` Christophe JAILLET
2024-09-09 13:35 ` Nuno Sá
2024-09-05 15:17 ` [PATCH v2 9/9] iio: ABI: add DAC sysfs synchronous_mode parameter Angelo Dureghello
2024-09-05 19:14 ` David Lechner
2024-09-08 12:26 ` Jonathan Cameron
2024-09-05 19:46 ` [PATCH v2 0/9] iio: add support for the ad3552r AXI DAC IP David Lechner
2024-09-06 9:07 ` Conor Dooley
2024-09-06 9:44 ` Angelo Dureghello
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7bd162bb-dce8-4aff-9f56-1ab73b091a28@baylibre.com \
--to=dlechner@baylibre.com \
--cc=Michael.Hennerich@analog.com \
--cc=adureghello@baylibre.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.