-----Original Message----- From: Richard Cochran richardcochran@gmail.com Sent: Thursday, September 9, 2021 4:09 AM To: Andrew Lunn andrew@lunn.ch Subject: Re: [PATCH net-next 1/2] rtnetlink: Add new RTM_GETEECSTATE message to get SyncE status
On Thu, Sep 09, 2021 at 12:59:27AM +0200, Andrew Lunn wrote:
On Wed, Sep 08, 2021 at 03:20:27PM -0700, Jakub Kicinski wrote:
On Wed, 8 Sep 2021 21:34:37 +0200 Andrew Lunn wrote:
Since we are talking about clocks and dividers, and multiplexors, should all this be using the common clock framework, which already supports most of this? Do we actually need something new?
Does the common clock framework expose any user space API?
Ah, good point. No, i don't think it does, apart from debugfs, which is not really a user space API, and it contains read only descriptions of the clock tree, current status, mux settings, dividers etc.
Wouldn't it make sense to develop some kind of user land API to manipulate the common clock framework at run time?
Just dreaming...
Richard
That may be dangerous. In SyncE world we control clocks that are only references to the EEC block. The worst that can happen is that the DPLL will ignore incoming clock as it has invalid frequency, or it will drift off to the edge of allowed range. Controlling the clock that actually drives any components (PHY/MAC) in runtime can be a good way to brick the part. I feel that, while the reuse of structures may be a good idea, the userspace API for clocks is not. They are usually set up once at the board init level and stay like that "forever".
The outputs we need to control are only a subset of all of them and they rather fall in the PTP pins level of details, rather than clock ones.