From: Teresa Remmet <t.remmet@phytec.de>
To: "andrew@lunn.ch" <andrew@lunn.ch>
Cc: "robh@kernel.org" <robh@kernel.org>,
"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
"davem@davemloft.net" <davem@davemloft.net>,
"afd@ti.com" <afd@ti.com>,
"edumazet@google.com" <edumazet@google.com>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"hkallweit1@gmail.com" <hkallweit1@gmail.com>,
Benjamin Hahn <b.hahn@phytec.de>,
"kuba@kernel.org" <kuba@kernel.org>,
Jan Remmet <j.remmet@phytec.de>,
Yashwanth Varakala <y.varakala@phytec.de>,
"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
"upstream@lists.phytec.de" <upstream@lists.phytec.de>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
Yannic Moog <y.moog@phytec.de>
Subject: Re: [PATCH 1/2] dt-bindings: dp83867: add binding for ti,output-impedance property
Date: Tue, 17 Feb 2026 13:51:05 +0000 [thread overview]
Message-ID: <f9b4672deea9b555c8103a88a3e08cf0cb921a46.camel@phytec.de> (raw)
In-Reply-To: <0c021636-5a69-48df-8c13-a320e8f4278f@lunn.ch>
Hello Andrew,
Am Mittwoch, dem 11.02.2026 um 15:02 +0100 schrieb Andrew Lunn:
> On Wed, Feb 11, 2026 at 12:50:13PM +0000, Teresa Remmet wrote:
> > Hello Rob,
> >
> > Am Dienstag, dem 10.02.2026 um 08:48 -0600 schrieb Rob Herring:
> > > On Thu, Jan 29, 2026 at 03:13:33PM +0100, Teresa Remmet wrote:
> > > > Add an optional device tree property, "ti,output-impedance",
> > > > which
> > > > specifies the output impedance using a raw register field value
> > > > from
> > > > 0x0 to 0x1f.
> > > >
> > > > 0x0 corresponds to the highest impedance (approximately 70
> > > > ohms),
> > > > while 0x1f represents the lowest (approximately 35 ohms).
> > > >
> > > > This property allows the impedance to be configured through the
> > > > device-tree to any required value rather than being limited to
> > > > fixed
> > > > minimum or maximum settings.
> > > >
> > > > Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
> > > > ---
> > > > Documentation/devicetree/bindings/net/ti,dp83867.yaml | 19
> > > > ++++++++++++++-----
> > > > 1 file changed, 14 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git
> > > > a/Documentation/devicetree/bindings/net/ti,dp83867.yaml
> > > > b/Documentation/devicetree/bindings/net/ti,dp83867.yaml
> > > > index 4bc1f98fd9fe..a8d8bfb68bee 100644
> > > > --- a/Documentation/devicetree/bindings/net/ti,dp83867.yaml
> > > > +++ b/Documentation/devicetree/bindings/net/ti,dp83867.yaml
> > > > @@ -52,11 +52,20 @@ properties:
> > > > description: |
> > > > MAC Interface Impedance control to set the programmable
> > > > output impedance
> > > > to a maximum value (70 ohms).
> > > > - Note: Specifying an io_impedance_ctrl nvmem cell or one
> > > > of
> > > > the
> > > > - ti,min-output-impedance, ti,max-output-impedance
> > > > properties
> > > > - are mutually exclusive. If more than one is present,
> > > > an
> > > > nvmem
> > > > - cell takes precedence over ti,max-output-impedance,
> > > > which
> > > > in
> > > > - turn takes precedence over ti,min-output-impedance.
> > > > + Note: Specifying an io_impedance_ctrl nvmem cell,
> > > > ti,output-
> > > > impedance
> > > > + or one of the boolean ti,min-output-impedance and
> > > > ti,max-
> > > > output-impedance
> > > > + properties is mutually exclusive.
> > > > + If more than one is present the priority order is
> > > > nvmem
> > > > cell,
> > > > + ti,output-impedance, ti,max-output-impedance and last
> > > > + ti,min-output-impedance.
> > > > +
> > > > + ti,output-impedance:
> > > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > > + description:
> > > > + MAC Interface Impedance control to set the raw register
> > > > value from 0x0
> > > > + (approx. 70 ohms) to 0x1f (approx. 35 ohms).
> > > > + minimum: 0
> > > > + maximum: 31
> > >
> > > How does this compare to 'mac-termination-ohms'? Seems like this
> > > should
> > > be a common property whether it's the same or for a different
> > > location.
> >
> > the difference is that the termination is not passed in ohms but a
> > raw
> > register value that can not directly be matched to a resistance
> > value.
> >
> > The datasheet says here "Output impedance approximate range from
> > 35-
> > 70ohms in 32 steps.
> > Lowest being 11111 and highest being 00000. Range and Step size
> > will vary with process."
> >
> > So using 'mac-termination-ohms' seemed not the right fit here as
> > the
> > documentation talks about selecting a resistance value which is not
> > possible in this case.
>
> You need a really good argument to use raw register values in DT.
>
> Given real life use case, how important is the "approximate"? Do you
> need to tune the value for every single device? Or is one value
> likely
> to work for all instances of a board?
There is already an nvmem binding which makes it possible to tune the
raw value per device, so I would say is clearly useful in some setups.
In our case I discussed this with our HW engineer. On the current board
design a single value is expected to give sufficiently good signal
integrity for all instances of that board.
We use this PHY also in other designs where selecting either the
minimum or maximum output impedance value has been good enough and we
could rely on the existing min/max bindings. The difference now is that
for this new design we need a value in between those extremes, so we
can no longer use just the min/max values.
>
> So long as you state the values are approximate, i don't see why you
> cannot use ohms, with a range of 34 - 70, and let the driver convert
> to register value.
According to the data sheet, the default impedance control register is
trimmed to 50 ohms during production, which means different devices
power up with different reset values. I checked the impedance reset
values on around 20 PHYs and observed that the default raw register
values ranged from 0xc to 0x10.
A TI forum post mentions a tolerance of around +/-8% [1].
Given this spread, mapping 31 register steps directly to 35-70 ohms
would imply a level of accuracy that is not actually present.
A very similar concerns and arguments came up during the initial
discussion of the output impedance bindings [2]. The solution was to
create just the min/max settings.
Teresa
[1]https://e2e.ti.com/support/interface-group/interface/f/interface-forum/723512/dp83867ergz-r-evm-dp83867-tolerance-drift-of-output-impedance-control-bit-4-0-of-io_mux_cfg-0x0170
[2]
https://lore.kernel.org/all/959bac39-ccd6-8338-a9f4-7f56f63b0478@ti.com/
> Andrew
--
PHYTEC Messtechnik GmbH | Barcelona-Allee 1 | 55129 Mainz, Germany
Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber,
Dipl.-Ing. (FH) Markus Lickes | Handelsregister Mainz HRB 4656 |
Finanzamt Mainz | St.Nr. 26/665/00608, DE 149059855
next prev parent reply other threads:[~2026-02-17 13:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-29 14:13 [PATCH 0/2] net: phy: dp83867: add numeric impedance DT property Teresa Remmet
2026-01-29 14:13 ` [PATCH 1/2] dt-bindings: dp83867: add binding for ti,output-impedance property Teresa Remmet
2026-02-10 14:48 ` Rob Herring
2026-02-11 12:50 ` Teresa Remmet
2026-02-11 14:02 ` Andrew Lunn
2026-02-17 13:51 ` Teresa Remmet [this message]
2026-01-29 14:13 ` [PATCH 2/2] net: phy: dp83867: add numeric io impedance DT property Teresa Remmet
2026-01-29 16:25 ` Jakub Kicinski
2026-01-29 17:31 ` [PATCH 0/2] net: phy: dp83867: add numeric " Andrew Davis
2026-02-10 14:42 ` Rob Herring
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=f9b4672deea9b555c8103a88a3e08cf0cb921a46.camel@phytec.de \
--to=t.remmet@phytec.de \
--cc=afd@ti.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=b.hahn@phytec.de \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=j.remmet@phytec.de \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=upstream@lists.phytec.de \
--cc=y.moog@phytec.de \
--cc=y.varakala@phytec.de \
/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