Thread (4 messages) flat view 4 messages, 3 authors, 2013-09-24

[RFCv2 3/3] ARM: dts: N900: Add SSI information

From: Stephen Warren <hidden>
Date: 2013-09-24 19:55:57
Also in: linux-devicetree, linux-omap, lkml

On 09/23/2013 05:46 PM, Sebastian Reichel wrote:
Hi,

On Mon, Sep 23, 2013 at 02:35:35PM -0600, Stephen Warren wrote:
quoted
On 09/15/2013 02:44 PM, Sebastian Reichel wrote:
quoted
Add SSI device tree data for OMAP34xx and Nokia N900.
...
quoted
quoted
+- ti,hwmods:		Name of the hwmod associated to the controller,
which +			is "ssi".
I don't think we should add any more of that, for new bindings.
That basically means not adding new drivers until hwmod is
completly removed, since no new drivers not using DT are accepted
anymore.

hwmod still holds some information, which are not yet mapped to
DT.
Tony, is defining hwmod properties for new OMAP bindings what everyone
is currently doing? I'm not sure how that will work with a stable DT
ABI...

I wonder if it makes sense not to define the ti,hwmods property in the
binding document (so it doesn't become part of the ABI), but put it
into the DTS file simply to make the current Linux code work? I'm not
sure if that's any better though.
quoted
quoted
+Required Port sub-node properties: +- compatible:		Should be
set to the following value +
ti,omap3-ssi-port (applicable to OMAP34xx devices)
Hmm. Is it really the case that there is 1 controller with n
ports?
Yes with n=2.
quoted
Are the ports really dependent upon some shared resource?
Yes and runtime power management.
quoted
Couldn't the ports be represented as separate top-level SSI 
controllers?
Maybe with some phandles. The current layout is cleaner IMHO. The
ports are part of the controller and actually most boards only use
one of them.

In the original driver only the controller hat platform data with
memory areas called "port1_rx" etc.
If the HW block really does include 2 ports, then representing it as a
single node in DT is fine; I was just making sure.
quoted
quoted
+- interrupts:		Contains the interrupt information for the
port. +- interrupt-names:	Contains the names of the interrupts.
It's expected, +			that "mpu_irq0" and "mpu_irq1" are
provided.
What exactly are those interrupts? "MPU" sounds like an external 
micro-controller/processor...
quoted
+- ti,ssi-cawake-gpio:	Defines which GPIO pin is used to
signify CAWAKE +			events for the port. This is an optional
board-specific +			property. If it's missing the port will not
be +			enabled.
That also sounds like something that's a higher-level protocol,
rather than whatever low-level transport "SSI" implements. Should
this be part of a child node that represents the device attached
to the SSI controller?
Both the interrupts and the cawake-gpio are used as irqs for 
starting data transfers. As far as I understand it none of them are
specific to the attached device.
But are the interrupts and GPIO actually part of the HSI protocol
itself, or something layered on top? While your particular board has
them wired up, is it strictly necessary for all boards using HSI to
have those IRQs/GPIOs?
quoted
Does the SSI controller (or its ports) not need any clocks,
resets, regulators, ...?
The only other stuff needed is taken care of by hwmod, which can be
seen in this patch:

https://lkml.org/lkml/2013/9/15/97
It would be best to completely define the DT binding so that all
required clocks etc. are already present in the DT. That way, the DT
ABI won't change once people stop using hwmods. Tony, is that possible
on OMAP at present, irrespective of whether those e.g. clock
properties will actually be used by Linux?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help