Re: [PATCH 3/3] ARM: dts: Enable audio support for Peach-pi board

From: Tushar Behera
Date: Mon Jun 16 2014 - 23:39:51 EST


On Mon, Jun 16, 2014 at 10:32 PM, Doug Anderson <dianders@xxxxxxxxxx> wrote:
> Mark,
>
> On Mon, Jun 16, 2014 at 9:51 AM, Mark Brown <broonie@xxxxxxxxxx> wrote:
>> On Mon, Jun 16, 2014 at 09:49:26AM -0700, Doug Anderson wrote:
>>
>>> Yes please. I think there's supposed to be some official ordering of
>>> things. If anyone reading this has a pointer to the official sort
>>> order of things in the device tree I'd love to see it! ;)
>>
>> Most exact first I believe?
>
> More specifically I'm looking for the ordering between nodes and
> between properties in a node. For instance:
>
> 1. It appears to be convention to sort children of the "pinctrl" nodes
> by the first pin number in that group. That is:
>
> ec_spi_cs: ec-spi-cs {
> samsung,pins = "gpb1-2";
> ...
> };
>
> ...comes before:
> usb300_vbus_en: usb300-vbus-en {
> samsung,pins = "gph0-0";
> ...
> };
>
> ...that's one really good and well-defined ordering.
>
>
> 2. I have no idea how general properties should be sorted. I tend to
> see "compatible" first but that's above the only rule I've seen.
> Sometimes I've seen "status" first, sometimes last, sometimes
> alphabetically sorted, and sometimes in a random place. Examples:
>
> usb301_vbus_reg: regulator-usb301 {
> compatible = "regulator-fixed";
> regulator-name = "P5.0V_USB3CON1";
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> gpio = <&gph0 1 0>;
> pinctrl-names = "default";
> pinctrl-0 = <&usb301_vbus_en>;
> enable-active-high;
> };
>
> &hdmi {
> status = "okay";
> hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> pinctrl-0 = <&hdmi_hpd_irq>;
> ddc = <&i2c_2>;
> };
>
>
> 3. I have no idea how to sort nodes. In theory you could say that
> they should be sorted by base address:
>
> i2s0: i2s@03830000 {
> ...
> };
>
> hsi2c_7: i2c@12CD0000 {
> ...
> };
>
> i2s1: i2s@12D60000 {
> ...
> };
>
> ...that works until someone argues that all of the "i2s" nodes should
> be together. It also doesn't work so well with the board convention
> of using aliases to refer to things in the SoC, like:
>
> &i2s0 {
> status = "okay";
> };
>
> &hsi2c_7 {
> status = "okay";
> };
>
> ...it's not at all obvious in the board file what the base address in
> the SoC was.
>

In case where we are using only aliases in board file, sorting them
alphabetically would be reasonable. This rule would be easy to
reinforce.

> ---
>
> Anyway, none of this is earth shattering and it doesn't matter all
> that much. It's just nice to have an official order to make diffing
> easier and also to avoid merge conflicts (unlikely someone changing
> different properties will both add them in the same place in the
> ordering).
>
>
> -Doug



--
Tushar Behera
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/