All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>,
	linux-media@vger.kernel.org, kyungmin.park@samsung.com,
	kgene.kim@samsung.com, rob.herring@calxeda.com,
	prabhakar.lad@ti.com, devicetree-discuss@lists.ozlabs.org,
	linux-samsung-soc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 02/10] s5p-fimc: Add device tree support for FIMC devices
Date: Fri, 08 Feb 2013 17:32:30 -0700	[thread overview]
Message-ID: <5115991E.7050009@wwwdotorg.org> (raw)
In-Reply-To: <511592B4.5050406@gmail.com>

On 02/08/2013 05:05 PM, Sylwester Nawrocki wrote:
> On 02/09/2013 12:21 AM, Stephen Warren wrote:
>> On 02/08/2013 04:16 PM, Sylwester Nawrocki wrote:
>>> On 02/07/2013 12:40 AM, Stephen Warren wrote:
>>>>> diff --git
>>>>> a/Documentation/devicetree/bindings/media/soc/samsung-fimc.txt
>>>>> b/Documentation/devicetree/bindings/media/soc/samsung-fimc.txt
>>>>
>>>>> +Samsung S5P/EXYNOS SoC Camera Subsystem (FIMC)
>>>>> +----------------------------------------------
>> ...
>>>>> +For every fimc node a numbered alias should be present in the
>>>>> aliases node.
>>>>> +Aliases are of the form fimc<n>, where<n>   is an integer (0...N)
>>>>> specifying
>>>>> +the IP's instance index.
>>>>
>>>> Why? Isn't it up to the DT author whether they care if each fimc
>>>> node is
>>>> assigned a specific identification v.s. whether identification is
>>>> assigned automatically?
>>>
>>> There are at least three different kinds of IPs that come in multiple
>>> instances in an SoC. To activate data links between them each instance
>>> needs to be clearly identified. There are also differences between
>>> instances of same device. Hence it's important these aliases don't have
>>> random values.
>>>
>>> Some more details about the SoC can be found at [1]. The aliases are
>>> also already used in the Exynos5 GScaler bindings [2] in a similar way.
>>
>> Hmmm. I'd expect explicit DT properties to represent the
>> instance-specific "configuration", or even different compatible values.
>> Relying on the alias ID seems rather indirect; what if in e.g.
>> Exynos6/... the mapping from instance/alias ID to feature set changes.
>> With explicit DT properties, that'd just be a .dts change, whereas by
>> requiring alias IDs now, you'd need a driver change to support this.
> 
> In the initial version of this patch series I used cell-index property,
> but then Grant pointed out in some other mail thread it should be
> avoided. Hence I used the node aliases.

To me, using cell-index is semantically equivalent to using the alias ID.

> Different compatible values might not work, when for example there
> are 3 IPs out of 4 of one type and the fourth one of another type.
> It wouldn't even by really different types, just quirks/little
> differences between them, e.g. no data path routed to one of other IPs.

I was thinking of using feature-/quirk-oriented properties. For example,
if there's a port on 3 of the 4 devices to connect to some other IP
block, simply include a boolean property to indicate whether that port
is present. It would be in 3 of the nodes but not the 4th.

> Then to connect e.g. MIPI-CSIS.0 to FIMC.2 at run time an index of the
> MIPI-CSIS needs to be written to the FIMC.2 data input control register.
> Even though MIPI-CSIS.N are same in terms of hardware structure they still
> need to be distinguished as separate instances.

Oh, so you're using the alias ID as the value to write into the FIMC.2
register for that. I'm not 100% familiar with aliases, but they seem
like a more user-oriented naming thing to me, whereas values for hooking
up intra-SoC routing are an unrelated namespace semantically, even if
the values happen to line up right now. Perhaps rather than a Boolean
property I mentioned above, use a custom property to indicate the ID
that the FIMC.2 object knows the MIPI-CSIS.0 object as? While this seems
similar to using cell-index, my *guess* is that Grant's objection to
using cell-index was more based on re-using cell-index for something
other than its intended purpose than pushing you to use an alias ID
rather than a property.

After all, what happens in some later SoC where you have two different
types of module that feed into the common module, such that type A
sources have IDs 0..3 in the common module, and type B sources have IDs
4..7 in the common module - you wouldn't want to require alias ISs 4..7
for the type B DT nodes.

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 02/10] s5p-fimc: Add device tree support for FIMC devices
Date: Fri, 08 Feb 2013 17:32:30 -0700	[thread overview]
Message-ID: <5115991E.7050009@wwwdotorg.org> (raw)
In-Reply-To: <511592B4.5050406@gmail.com>

On 02/08/2013 05:05 PM, Sylwester Nawrocki wrote:
> On 02/09/2013 12:21 AM, Stephen Warren wrote:
>> On 02/08/2013 04:16 PM, Sylwester Nawrocki wrote:
>>> On 02/07/2013 12:40 AM, Stephen Warren wrote:
>>>>> diff --git
>>>>> a/Documentation/devicetree/bindings/media/soc/samsung-fimc.txt
>>>>> b/Documentation/devicetree/bindings/media/soc/samsung-fimc.txt
>>>>
>>>>> +Samsung S5P/EXYNOS SoC Camera Subsystem (FIMC)
>>>>> +----------------------------------------------
>> ...
>>>>> +For every fimc node a numbered alias should be present in the
>>>>> aliases node.
>>>>> +Aliases are of the form fimc<n>, where<n>   is an integer (0...N)
>>>>> specifying
>>>>> +the IP's instance index.
>>>>
>>>> Why? Isn't it up to the DT author whether they care if each fimc
>>>> node is
>>>> assigned a specific identification v.s. whether identification is
>>>> assigned automatically?
>>>
>>> There are at least three different kinds of IPs that come in multiple
>>> instances in an SoC. To activate data links between them each instance
>>> needs to be clearly identified. There are also differences between
>>> instances of same device. Hence it's important these aliases don't have
>>> random values.
>>>
>>> Some more details about the SoC can be found at [1]. The aliases are
>>> also already used in the Exynos5 GScaler bindings [2] in a similar way.
>>
>> Hmmm. I'd expect explicit DT properties to represent the
>> instance-specific "configuration", or even different compatible values.
>> Relying on the alias ID seems rather indirect; what if in e.g.
>> Exynos6/... the mapping from instance/alias ID to feature set changes.
>> With explicit DT properties, that'd just be a .dts change, whereas by
>> requiring alias IDs now, you'd need a driver change to support this.
> 
> In the initial version of this patch series I used cell-index property,
> but then Grant pointed out in some other mail thread it should be
> avoided. Hence I used the node aliases.

To me, using cell-index is semantically equivalent to using the alias ID.

> Different compatible values might not work, when for example there
> are 3 IPs out of 4 of one type and the fourth one of another type.
> It wouldn't even by really different types, just quirks/little
> differences between them, e.g. no data path routed to one of other IPs.

I was thinking of using feature-/quirk-oriented properties. For example,
if there's a port on 3 of the 4 devices to connect to some other IP
block, simply include a boolean property to indicate whether that port
is present. It would be in 3 of the nodes but not the 4th.

> Then to connect e.g. MIPI-CSIS.0 to FIMC.2 at run time an index of the
> MIPI-CSIS needs to be written to the FIMC.2 data input control register.
> Even though MIPI-CSIS.N are same in terms of hardware structure they still
> need to be distinguished as separate instances.

Oh, so you're using the alias ID as the value to write into the FIMC.2
register for that. I'm not 100% familiar with aliases, but they seem
like a more user-oriented naming thing to me, whereas values for hooking
up intra-SoC routing are an unrelated namespace semantically, even if
the values happen to line up right now. Perhaps rather than a Boolean
property I mentioned above, use a custom property to indicate the ID
that the FIMC.2 object knows the MIPI-CSIS.0 object as? While this seems
similar to using cell-index, my *guess* is that Grant's objection to
using cell-index was more based on re-using cell-index for something
other than its intended purpose than pushing you to use an alias ID
rather than a property.

After all, what happens in some later SoC where you have two different
types of module that feed into the common module, such that type A
sources have IDs 0..3 in the common module, and type B sources have IDs
4..7 in the common module - you wouldn't want to require alias ISs 4..7
for the type B DT nodes.

  reply	other threads:[~2013-02-09  0:32 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-01 19:09 [PATCH v4 00/10] Device tree support for Exynos SoC camera subsystem Sylwester Nawrocki
2013-02-01 19:09 ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 01/10] s5p-csis: Add device tree support Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-06 23:36   ` Stephen Warren
2013-02-06 23:36     ` Stephen Warren
2013-02-08 22:29     ` Sylwester Nawrocki
2013-02-08 22:29       ` Sylwester Nawrocki
2013-02-08 23:27       ` Stephen Warren
2013-02-08 23:27         ` Stephen Warren
2013-02-09  0:31         ` Sylwester Nawrocki
2013-02-09  0:31           ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 02/10] s5p-fimc: Add device tree support for FIMC devices Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-06 23:40   ` Stephen Warren
2013-02-06 23:40     ` Stephen Warren
2013-02-08 23:16     ` Sylwester Nawrocki
2013-02-08 23:16       ` Sylwester Nawrocki
2013-02-08 23:21       ` Stephen Warren
2013-02-08 23:21         ` Stephen Warren
2013-02-09  0:05         ` Sylwester Nawrocki
2013-02-09  0:05           ` Sylwester Nawrocki
2013-02-09  0:32           ` Stephen Warren [this message]
2013-02-09  0:32             ` Stephen Warren
2013-02-09 22:29             ` Sylwester Nawrocki
2013-02-09 22:29               ` Sylwester Nawrocki
2013-02-09 22:52               ` Sylwester Nawrocki
2013-02-09 22:52                 ` Sylwester Nawrocki
2013-02-11 21:50               ` Stephen Warren
2013-02-11 21:50                 ` Stephen Warren
2013-02-12 22:39                 ` Sylwester Nawrocki
2013-02-12 22:39                   ` Sylwester Nawrocki
2013-02-13 20:42                   ` Stephen Warren
2013-02-13 20:42                     ` Stephen Warren
2013-02-14 23:03                     ` Sylwester Nawrocki
2013-02-14 23:03                       ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 03/10] s5p-fimc: Add device tree support for FIMC-LITE devices Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 04/10] s5p-fimc: Add device tree support for the main media device driver Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 05/10] s5p-fimc: Add device tree based sensors registration Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-06 23:42   ` Stephen Warren
2013-02-06 23:42     ` Stephen Warren
2013-02-08 23:26     ` Sylwester Nawrocki
2013-02-08 23:26       ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 06/10] s5p-fimc: Use pinctrl API for camera ports configuration Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-06 23:44   ` Stephen Warren
2013-02-06 23:44     ` Stephen Warren
2013-02-08 23:30     ` Sylwester Nawrocki
2013-02-08 23:30       ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 07/10] ARM: dts: Add camera to node exynos4.dtsi Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 08/10] ARM: dts: Add ISP power domain node for Exynos4x12 Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 09/10] ARM: dts: Add FIMC and MIPI CSIS device nodes " Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki
2013-02-01 19:09 ` [PATCH v4 10/10] ARM: dts: Correct camera pinctrl nodes for Exynos4x12 SoCs Sylwester Nawrocki
2013-02-01 19:09   ` Sylwester Nawrocki

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=5115991E.7050009@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=kgene.kim@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=prabhakar.lad@ti.com \
    --cc=rob.herring@calxeda.com \
    --cc=s.nawrocki@samsung.com \
    --cc=sylvester.nawrocki@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.