Thread (32 messages) 32 messages, 2 authors, 2025-07-03

Re: [PATCH net-next v12 07/14] dpll: zl3073x: Add clock_id field

flat view

From: Ivan Vecera <ivecera@redhat.com>
Date: 2025-07-02 14:52:04
Also in: linux-devicetree, linux-doc, lkml

On 02. 07. 25 2:01 odp., Jiri Pirko wrote:
Wed, Jul 02, 2025 at 01:43:38PM +0200, ivecera@redhat.com wrote:
quoted
On 02. 07. 25 12:31 odp., Jiri Pirko wrote:
quoted
Sun, Jun 29, 2025 at 09:10:42PM +0200, ivecera@redhat.com wrote:
quoted
Add .clock_id to zl3073x_dev structure that will be used by later
commits introducing DPLL feature. The clock ID is required for DPLL
device registration.

To generate this ID, use chip ID read during device initialization.
In case where multiple zl3073x based chips are present, the chip ID
is shifted and lower bits are filled by an unique value - using
the I2C device address for I2C connections and the chip-select value
for SPI connections.
You say that multiple chips may have the same chip ID? How is that
possible? Isn't it supposed to be unique?
I understand clock ID to be invariant regardless where you plug your
device. When you construct it from i2c address, sounds wrong.
The chip id is not like serial number but it is like device id under
PCI. So if you will have multiple chips with this chip id you have to
distinguish somehow between them, this is the reason why I2C address
is added into the final value.

Anyway this device does not have any attribute that corresponds to
clock id (as per our previous discussion) and it will be better to NOT
require clock id from DPLL core side.
Yes, better not to require it comparing to having it wrong.
It looks that using clock_id==0 is safe from DPLL API point of view.
The problem is if you will have multiple zl3073x based chips because
the driver would call dpll_device_get(0 /* clock_id */, channel, module)

For 1st chip (e.g. 2 channel) the driver will call:
dpll_device_get(0, 0, module);
dpll_device_get(0, 1, module);

and for the second the same that is wrong. The clock_id would help to
distinguish between them.

Wouldn't it be better to use a random number for clock_id from the
driver?

Ivan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help