public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Ivan Vecera <ivecera@redhat.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	linux-acpi@vger.kernel.org, Andrew Lunn <andrew@lunn.ch>
Subject: Re: [Question] Best practice for ACPI representation of DPLL/Ethernet dependencies (SyncE)
Date: Wed, 14 Jan 2026 22:45:50 +0200	[thread overview]
Message-ID: <aWgAfsycBDc0mlFv@smile.fi.intel.com> (raw)
In-Reply-To: <3bf214b9-8691-44f7-aa13-8169276a6c2b@redhat.com>

On Wed, Jan 14, 2026 at 08:19:05PM +0100, Ivan Vecera wrote:

> I would like to ask for your opinion regarding an ACPI implementation
> detail for a patch-set I currently have on the netdev mailing list [1].
> 
> The patch-set adds support for modeling the relationship between a DPLL
> device (provider) and an Ethernet controller/PHY (consumer) to support
> SyncE (Synchronous Ethernet). The topology requires the Ethernet
> controller/PHY to reference specific pins (sub-nodes) of the DPLL
> device.
> 
> Although the target driver (ice) in the patch-set is primarily used in
> ACPI environments, I aimed for a firmware-agnostic approach using the
> fwnode API.
> 
> Provider (DPLL):
> The DPLL device uses _DSD properties mirroring the definition in the DT
> bindings [2]. The pins are represented as sub-nodes. ACPI example [3].
> 
> Consumer (Ethernet):
> I defined a new DT schema for the consumer using properties dpll-pins
> nd dpll-pin-names. And in ACPI, I intend to use hierarchical data
> extension (_DSD) to reference the DPLL pin sub-nodes from the Ethernet
> controller package [4], effectively mirroring the DT phandle referencing
> mechanism.
> 
> Question:
> Is reusing the DT binding definitions within ACPI _DSD (to allow unified
> fwnode property parsing) the recommended approach for this type of
> device relationship?

TL;DR: Seems to me you are pretty much doing an ugly hack and yes, you violate
the existing ACPI resources. More details below.

> Or should I define strictly ACPI-specific bindings/objects, considering
> that the DT bindings for this feature are also new and currently under
> review?
> 
> I want to ensure I am not violating any ACPI abstraction layers by
> relying too heavily on the DT-style representation in _DSD.
> 
> Thanks for your guidance.

First of all, if I understood the HW topology right — it has an I²C muxer
which has a channel connected to DPLL, which among other functions provides
some kind of GPIO/pin muxing facility — (correct me, if I'm wrong), the
irrelevant to ACPI hack is an avoidance of having proper GPIO controller
driver / description provided with likely pin control and pin muxing
flavours, which is missing (hence drivers/pinctrl/... should be and it should
be described in DT).

Second, ACPI provides the _CRS resources specifically for pin configuration,
pin control (pin muxing as well). In case it's related those resources must
be used. The caveat, however, the Linux kernel has not yet implemented the
glue layer between ACPICA and pin control subsystem (see [5] for more).

It might be that I didn't get the picture correctly, but it smells badly to me.
In any case, I would like to help you and I'm open to more details about this
case.

> [1]
> https://patchwork.kernel.org/project/netdevbpf/list/?series=1040080&state=*
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/dpll
> [3] https://github.com/ivecera/zl3073x-acpi/blob/main/sample1.asl
> [4] https://github.com/ivecera/zl3073x-acpi/blob/main/dpllnic.asl

[5]: https://lore.kernel.org/r/20221130164027.682898-1-niyas.sait@linaro.org

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2026-01-14 20:45 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-14 19:19 [Question] Best practice for ACPI representation of DPLL/Ethernet dependencies (SyncE) Ivan Vecera
2026-01-14 20:45 ` Andy Shevchenko [this message]
2026-01-15  7:34   ` Ivan Vecera
2026-01-15 13:18     ` Andy Shevchenko
2026-01-15 14:09       ` Ivan Vecera
2026-01-19 17:15         ` Andy Shevchenko
2026-01-19 17:43           ` Andrew Lunn
2026-01-19 17:49             ` Andy Shevchenko
2026-01-19 19:23               ` Ivan Vecera
2026-01-19 19:42                 ` Andy Shevchenko
2026-01-19 19:55                   ` Ivan Vecera
2026-01-19 20:07                     ` Ivan Vecera
2026-01-19 20:28                     ` Andy Shevchenko
2026-01-19 23:34                       ` Linus Walleij
2026-01-20  5:39                         ` Ivan Vecera
2026-01-20  7:17                           ` Andy Shevchenko
2026-01-20 12:30                             ` Rafael J. Wysocki
2026-01-20 13:30                               ` Andy Shevchenko
2026-01-20 14:18                                 ` Rafael J. Wysocki
2026-01-20 14:39                                   ` Andy Shevchenko

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=aWgAfsycBDc0mlFv@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=andrew@lunn.ch \
    --cc=ivecera@redhat.com \
    --cc=krzk@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox