On Aug 7, 2013, at 11:59 AM, Suman Anna wrote:

> Kumar,
> 
>>> Logic has been added to the OMAP2+ mailbox code to
>>> parse the mailbox dt nodes and construct the different
>>> mailboxes associated with the instance. The design is
>>> based on gathering the same information that was being
>>> passed previously through the platform data, except for
>>> the interrupt type configuration information.
>>> 
>>> Signed-off-by: Suman Anna <[email protected]>
>>> ---
>>> .../devicetree/bindings/mailbox/omap-mailbox.txt   |  43 +++++++
>>> drivers/mailbox/mailbox-omap2.c                    | 130 
>>> ++++++++++++++++++---
>>> 2 files changed, 158 insertions(+), 15 deletions(-)
>>> create mode 100644 
>>> Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
>>> 
>>> diff --git a/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt 
>>> b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
>>> new file mode 100644
>>> index 0000000..8ffb08a
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
>>> @@ -0,0 +1,43 @@
>>> +OMAP2+ Mailbox Driver
>>> +
>>> +Required properties:
>>> +- compatible:              Should be one of the following,
>>> +                       "ti,omap2-mailbox" for
>>> +                           OMAP2420, OMAP2430, OMAP3430, OMAP3630 SoCs
>>> +                       "ti,omap4-mailbox" for
>>> +                           OMAP44xx, OMAP54xx, AM33xx, AM43xx, DRA7xx SoCs
>>> +- reg:                     Contains the mailbox register address range 
>>> (base address
>>> +                   and length)
>>> +- interrupts:              Contains the interrupt information for the 
>>> mailbox
>>> +                   device. The format is dependent on which interrupt
>>> +                   controller the OMAP device uses
>>> +- ti,hwmods:               Name of the hwmod associated with the mailbox
>>> +- ti,mbox-num-users:       Number of targets (processor devices) that the 
>>> mailbox device
>>> +                   can interrupt
>>> +- ti,mbox-num-fifos:       Number of h/w fifos within the mailbox device
>> 
>> Isn't "ti,mbox-num-users", "ti,mbox-num-fifos" this SoC specific, why do we 
>> need to encode in the device tree.  Can we not have a more SoC specific 
>> compatiable and encode such info in the driver as part of the .data field in 
>> of_device_id ?
> 
> They are IP design parameters for the number of h/w fifos and interrupts
> coming out of the IP block, with the functionality identical. This
> information could not be read from any registers. Until OMAP5, we always
> had a single IP in the SoC and so these could been encoded in the
> driver. But in DRA7xx, a new SoC, we have 13 mailboxes which have
> differing number of these properties even though the functional IP block
> is same.

Ah, I see.  Since you've got examples of the same IP with different design 
params in a given SoC than this makes sense.

Is that true of ti,mbox-num-users?

>>> +- ti,mbox-names:   Array of the names of the mailboxes
>>> +- ti,mbox-data:            Mailbox descriptor data private to each 
>>> mailbox. The 4
>>> +                   cells represent the following data,
>>> +                     Cell #1 (tx_id) - mailbox fifo id used for
>>> +                                           transmitting messages
>>> +                     Cell #2 (rx_id) - mailbox fifo id on which messages
>>> +                                           are received
>>> +                     Cell #3 (irq_id) - irq identifier index number to use
>>> +                                           from the interrupts data
>>> +                     Cell #4 (usr_id) - mailbox user id for identifying the
>>> +                                           interrupt into the MPU interrupt
>>> +                                           controller.
>>> +
>> 
>> ti,mbox-data really seems like it should be encoded in the driver and not in 
>> the device tree.  Is it specific to the SoC?
> 
> The mbox-data represents the assignment of h/w fifos between a pair of
> processors on an SoC, so it is specific to a mailbox IP instance in an
> SoC. Also, this assignment makes it flexible for anyone wishing to use
> their own firmware/stack on the remote processor side if using different
> h/w fifo combination.
> 
> So, a single SoC-specific compatible string would not be enough to
> identify either of the above data in the driver.

ok

- k

> 
> regards
> Suman
> 
>> 
>>> +Example:
>>> +
>>> +/* OMAP4 */
>>> +mailbox: mailbox@4a0f4000 {
>>> +   compatible = "ti,omap4-mailbox";
>>> +   reg = <0x4a0f4000 0x200>;
>>> +   interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
>>> +   ti,hwmods = "mailbox";
>>> +   ti,mbox-num-users = <3>;
>>> +   ti,mbox-num-fifos = <8>;
>>> +   ti,mbox-names = "mbox-ipu", "mbox-dsp";
>>> +   ti,mbox-data = <0 1 0 0>, <3 2 0 0>;
>>> +};
>> 
>> [snip]
>> 
>> - k
>> 
>> --
>> Employee of Qualcomm Innovation Center, Inc.
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by 
>> The Linux Foundation
>> 
> 

--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by 
The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to