diff mbox

[2/2] ARM: dts: mvebu: split SolidRun CuBox into variants

Message ID 1401140009-31505-2-git-send-email-sebastian.hesselbarth@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sebastian Hesselbarth May 26, 2014, 9:33 p.m. UTC
As Mainlining effort for SolidRun CuBox has been carried out on the
Engineering Sample, the board DTS was reflecting this. Actually,
SolidRun CuBox comes in three different variants: Engineering Sample (ES),
production with 1GB RAM (1G), and production with 2GB RAM (2G).

Therefore, we split the current dove-cubox.dts into a common board include
and one board dts for each of the above variants.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: Kumar Gala <galak@codeaurora.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 arch/arm/boot/dts/Makefile                         |  4 +++-
 arch/arm/boot/dts/dove-cubox-1g.dts                | 17 ++++++++++++++++
 arch/arm/boot/dts/dove-cubox-2g.dts                | 17 ++++++++++++++++
 arch/arm/boot/dts/dove-cubox-es.dts                | 23 ++++++++++++++++++++++
 .../boot/dts/{dove-cubox.dts => dove-cubox.dtsi}   | 17 ----------------
 5 files changed, 60 insertions(+), 18 deletions(-)
 create mode 100644 arch/arm/boot/dts/dove-cubox-1g.dts
 create mode 100644 arch/arm/boot/dts/dove-cubox-2g.dts
 create mode 100644 arch/arm/boot/dts/dove-cubox-es.dts
 rename arch/arm/boot/dts/{dove-cubox.dts => dove-cubox.dtsi} (86%)

Comments

Jason Cooper May 27, 2014, 4:11 p.m. UTC | #1
On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
> As Mainlining effort for SolidRun CuBox has been carried out on the
> Engineering Sample, the board DTS was reflecting this. Actually,
> SolidRun CuBox comes in three different variants: Engineering Sample (ES),
> production with 1GB RAM (1G), and production with 2GB RAM (2G).
> 
> Therefore, we split the current dove-cubox.dts into a common board include
> and one board dts for each of the above variants.
> 
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Pawel Moll <pawel.moll@arm.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
> Cc: Kumar Gala <galak@codeaurora.org>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Cc: Andrew Lunn <andrew@lunn.ch>
> Cc: Gregory Clement <gregory.clement@free-electrons.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  arch/arm/boot/dts/Makefile                         |  4 +++-
>  arch/arm/boot/dts/dove-cubox-1g.dts                | 17 ++++++++++++++++
>  arch/arm/boot/dts/dove-cubox-2g.dts                | 17 ++++++++++++++++
>  arch/arm/boot/dts/dove-cubox-es.dts                | 23 ++++++++++++++++++++++
>  .../boot/dts/{dove-cubox.dts => dove-cubox.dtsi}   | 17 ----------------
>  5 files changed, 60 insertions(+), 18 deletions(-)
>  create mode 100644 arch/arm/boot/dts/dove-cubox-1g.dts
>  create mode 100644 arch/arm/boot/dts/dove-cubox-2g.dts
>  create mode 100644 arch/arm/boot/dts/dove-cubox-es.dts
>  rename arch/arm/boot/dts/{dove-cubox.dts => dove-cubox.dtsi} (86%)
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 35c146f31e46..40a008539c0c 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -404,7 +404,9 @@ dtb-$(CONFIG_MACH_ARMADA_XP) += \
>  	armada-xp-matrix.dtb \
>  	armada-xp-openblocks-ax3-4.dtb
>  dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
> -	dove-cubox.dtb \
> +	dove-cubox-1g.dtb \
> +	dove-cubox-2g.dtb \
> +	dove-cubox-es.dtb \
>  	dove-d2plug.dtb \
>  	dove-d3plug.dtb \
>  	dove-dove-db.dtb
> diff --git a/arch/arm/boot/dts/dove-cubox-1g.dts b/arch/arm/boot/dts/dove-cubox-1g.dts
> new file mode 100644
> index 000000000000..eebd3f7ca7e6
> --- /dev/null
> +++ b/arch/arm/boot/dts/dove-cubox-1g.dts
> @@ -0,0 +1,17 @@
> +/dts-v1/;
> +
> +#include "dove-cubox.dtsi"
> +
> +/ {
> +	model = "SolidRun CuBox (1G)";
> +	compatible = "solidrun,cubox-1g", "solidrun,cubox", "marvell,dove";
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x00000000 0x40000000>;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200n8 earlyprintk";
> +	};
> +};
> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
> new file mode 100644
> index 000000000000..513b6a68eba3
> --- /dev/null
> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
> @@ -0,0 +1,17 @@
> +/dts-v1/;
> +
> +#include "dove-cubox.dtsi"
> +
> +/ {
> +	model = "SolidRun CuBox (2G)";
> +	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x00000000 0x80000000>;

Do you anticipate any other differences between the 1G and the 2G?
Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
should be setting the amount of RAM at boottime anyway.

> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200n8 earlyprintk";
> +	};
> +};
> diff --git a/arch/arm/boot/dts/dove-cubox-es.dts b/arch/arm/boot/dts/dove-cubox-es.dts
> new file mode 100644
> index 000000000000..5fc17ce34c98
> --- /dev/null
> +++ b/arch/arm/boot/dts/dove-cubox-es.dts
> @@ -0,0 +1,23 @@
> +/dts-v1/;
> +
> +#include "dove-cubox.dtsi"
> +
> +/ {
> +	model = "SolidRun CuBox (ES)";

"Engineering Sample" ?

thx,

Jason.
Sebastian Hesselbarth May 27, 2014, 4:30 p.m. UTC | #2
On 05/27/2014 06:11 PM, Jason Cooper wrote:
> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
>> As Mainlining effort for SolidRun CuBox has been carried out on the
>> Engineering Sample, the board DTS was reflecting this. Actually,
>> SolidRun CuBox comes in three different variants: Engineering Sample (ES),
>> production with 1GB RAM (1G), and production with 2GB RAM (2G).
>>
>> Therefore, we split the current dove-cubox.dts into a common board include
>> and one board dts for each of the above variants.
>>
>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
>> ---
[...]
>> diff --git a/arch/arm/boot/dts/dove-cubox-1g.dts b/arch/arm/boot/dts/dove-cubox-1g.dts
>> new file mode 100644
>> index 000000000000..eebd3f7ca7e6
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/dove-cubox-1g.dts
>> @@ -0,0 +1,17 @@
>> +/dts-v1/;
>> +
>> +#include "dove-cubox.dtsi"
>> +
>> +/ {
>> +	model = "SolidRun CuBox (1G)";
>> +	compatible = "solidrun,cubox-1g", "solidrun,cubox", "marvell,dove";
>> +
>> +	memory {
>> +		device_type = "memory";
>> +		reg = <0x00000000 0x40000000>;
>> +	};
>> +
>> +	chosen {
>> +		bootargs = "console=ttyS0,115200n8 earlyprintk";
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
>> new file mode 100644
>> index 000000000000..513b6a68eba3
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
>> @@ -0,0 +1,17 @@
>> +/dts-v1/;
>> +
>> +#include "dove-cubox.dtsi"
>> +
>> +/ {
>> +	model = "SolidRun CuBox (2G)";
>> +	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
>> +
>> +	memory {
>> +		device_type = "memory";
>> +		reg = <0x00000000 0x80000000>;
>
> Do you anticipate any other differences between the 1G and the 2G?
> Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
> should be setting the amount of RAM at boottime anyway.

No, there is no known difference between 1G and 2G except doubled RAM.
I'll squash the two back into a single non-ES dts.

About the board specific compatibles, I am not so sure if we should
keep them at all. "solidrun,cubox" for all three variants should be
enough. checkpatch is already choking on every unknown compatible it
sees and documenting each individual board clearly doesn't scale well.

>> +	};
>> +
>> +	chosen {
>> +		bootargs = "console=ttyS0,115200n8 earlyprintk";
>> +	};
>> +};
>> diff --git a/arch/arm/boot/dts/dove-cubox-es.dts b/arch/arm/boot/dts/dove-cubox-es.dts
>> new file mode 100644
>> index 000000000000..5fc17ce34c98
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/dove-cubox-es.dts
>> @@ -0,0 +1,23 @@
>> +/dts-v1/;
>> +
>> +#include "dove-cubox.dtsi"
>> +
>> +/ {
>> +	model = "SolidRun CuBox (ES)";
>
> "Engineering Sample" ?

Hmm, I guess those who have it know about ES=="Engineering Sample" but
as I have to do a v2 anyway, I'll fix it up.

Thanks!

Sebastian
Jason Cooper May 27, 2014, 4:38 p.m. UTC | #3
On Tue, May 27, 2014 at 06:30:41PM +0200, Sebastian Hesselbarth wrote:
...
> About the board specific compatibles, I am not so sure if we should
> keep them at all. "solidrun,cubox" for all three variants should be
> enough. checkpatch is already choking on every unknown compatible it
> sees and documenting each individual board clearly doesn't scale well.

Yeah, I saw that conversation.  I'm inclined to keep the board
compatible strings because they are a useful human readable globally
unique board identifier.  I suggest we fix checkpatch to not barf on the
board compatible strings.

thx,

Jason.
Olof Johansson May 27, 2014, 5:02 p.m. UTC | #4
On Tue, May 27, 2014 at 9:30 AM, Sebastian Hesselbarth
<sebastian.hesselbarth@gmail.com> wrote:
> On 05/27/2014 06:11 PM, Jason Cooper wrote:
>>
>> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
>>>
>>> As Mainlining effort for SolidRun CuBox has been carried out on the
>>> Engineering Sample, the board DTS was reflecting this. Actually,
>>> SolidRun CuBox comes in three different variants: Engineering Sample
>>> (ES),
>>> production with 1GB RAM (1G), and production with 2GB RAM (2G).
>>>
>>> Therefore, we split the current dove-cubox.dts into a common board
>>> include
>>> and one board dts for each of the above variants.
>>>
>>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
>>> ---
>
> [...]
>
>>> diff --git a/arch/arm/boot/dts/dove-cubox-1g.dts
>>> b/arch/arm/boot/dts/dove-cubox-1g.dts
>>> new file mode 100644
>>> index 000000000000..eebd3f7ca7e6
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/dove-cubox-1g.dts
>>> @@ -0,0 +1,17 @@
>>> +/dts-v1/;
>>> +
>>> +#include "dove-cubox.dtsi"
>>> +
>>> +/ {
>>> +       model = "SolidRun CuBox (1G)";
>>> +       compatible = "solidrun,cubox-1g", "solidrun,cubox",
>>> "marvell,dove";
>>> +
>>> +       memory {
>>> +               device_type = "memory";
>>> +               reg = <0x00000000 0x40000000>;
>>> +       };
>>> +
>>> +       chosen {
>>> +               bootargs = "console=ttyS0,115200n8 earlyprintk";
>>> +       };
>>> +};
>>> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts
>>> b/arch/arm/boot/dts/dove-cubox-2g.dts
>>> new file mode 100644
>>> index 000000000000..513b6a68eba3
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
>>> @@ -0,0 +1,17 @@
>>> +/dts-v1/;
>>> +
>>> +#include "dove-cubox.dtsi"
>>> +
>>> +/ {
>>> +       model = "SolidRun CuBox (2G)";
>>> +       compatible = "solidrun,cubox-2g", "solidrun,cubox",
>>> "marvell,dove";
>>> +
>>> +       memory {
>>> +               device_type = "memory";
>>> +               reg = <0x00000000 0x80000000>;
>>
>>
>> Do you anticipate any other differences between the 1G and the 2G?
>> Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
>> should be setting the amount of RAM at boottime anyway.
>
>
> No, there is no known difference between 1G and 2G except doubled RAM.
> I'll squash the two back into a single non-ES dts.
>
> About the board specific compatibles, I am not so sure if we should
> keep them at all. "solidrun,cubox" for all three variants should be
> enough. checkpatch is already choking on every unknown compatible it
> sees and documenting each individual board clearly doesn't scale well.

Yeah, I agree -- but I'd say the scaling problem is with checkpatch.
It's silly to require every single small board variant to be
documented, especially in cases where the dts is self-documenting such
as this. If anything, there should be a script that can be used to
scrape this info and build the docs from compat+model info.

It's not a bad idea to add a more specific compatible. if you think
you want a separate model string, then you should probably have a
separate compatible (but keep lower-order ones so that there's no
difference from the kernel point of view which will just match the
more generic one).


-Olof
Sebastian Hesselbarth May 27, 2014, 5:28 p.m. UTC | #5
On 05/27/2014 06:11 PM, Jason Cooper wrote:
> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
>> As Mainlining effort for SolidRun CuBox has been carried out on the
>> Engineering Sample, the board DTS was reflecting this. Actually,
>> SolidRun CuBox comes in three different variants: Engineering Sample (ES),
>> production with 1GB RAM (1G), and production with 2GB RAM (2G).
>>
>> Therefore, we split the current dove-cubox.dts into a common board include
>> and one board dts for each of the above variants.
>>
>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
>> ---
[...]
>> ---
>>  arch/arm/boot/dts/Makefile                         |  4 +++-
>>  arch/arm/boot/dts/dove-cubox-1g.dts                | 17 ++++++++++++++++
>>  arch/arm/boot/dts/dove-cubox-2g.dts                | 17 ++++++++++++++++
>>  arch/arm/boot/dts/dove-cubox-es.dts                | 23 ++++++++++++++++++++++
>>  .../boot/dts/{dove-cubox.dts => dove-cubox.dtsi}   | 17 ----------------
>>  5 files changed, 60 insertions(+), 18 deletions(-)
>>  create mode 100644 arch/arm/boot/dts/dove-cubox-1g.dts
>>  create mode 100644 arch/arm/boot/dts/dove-cubox-2g.dts
>>  create mode 100644 arch/arm/boot/dts/dove-cubox-es.dts
>>  rename arch/arm/boot/dts/{dove-cubox.dts => dove-cubox.dtsi} (86%)
>>
[...]
>> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
>> new file mode 100644
>> index 000000000000..513b6a68eba3
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
>> @@ -0,0 +1,17 @@
>> +/dts-v1/;
>> +
>> +#include "dove-cubox.dtsi"
>> +
>> +/ {
>> +	model = "SolidRun CuBox (2G)";
>> +	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
>> +
>> +	memory {
>> +		device_type = "memory";
>> +		reg = <0x00000000 0x80000000>;
> 
> Do you anticipate any other differences between the 1G and the 2G?
> Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
> should be setting the amount of RAM at boottime anyway.

Given the minor differences between ES and production, instead of

dove-cubox-common.dtsi
+--> dove-cubox.dts (production)
+--> dove-cubos-es.dts (engineering sample)

we could also just have an "overlay" for the ES like

dove-cubox.dts (production)
+--> dove-cubox-es.dts (engineering sample)

It is not used commonly until now, maybe just a matter of taste.

Is there any version you prefer?

Sebastian
Jason Cooper May 27, 2014, 9:35 p.m. UTC | #6
On Tue, May 27, 2014 at 07:28:09PM +0200, Sebastian Hesselbarth wrote:
> On 05/27/2014 06:11 PM, Jason Cooper wrote:
> > On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
> >> As Mainlining effort for SolidRun CuBox has been carried out on the
> >> Engineering Sample, the board DTS was reflecting this. Actually,
> >> SolidRun CuBox comes in three different variants: Engineering Sample (ES),
> >> production with 1GB RAM (1G), and production with 2GB RAM (2G).
> >>
> >> Therefore, we split the current dove-cubox.dts into a common board include
> >> and one board dts for each of the above variants.
> >>
> >> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> >> ---
> [...]
> >> ---
> >>  arch/arm/boot/dts/Makefile                         |  4 +++-
> >>  arch/arm/boot/dts/dove-cubox-1g.dts                | 17 ++++++++++++++++
> >>  arch/arm/boot/dts/dove-cubox-2g.dts                | 17 ++++++++++++++++
> >>  arch/arm/boot/dts/dove-cubox-es.dts                | 23 ++++++++++++++++++++++
> >>  .../boot/dts/{dove-cubox.dts => dove-cubox.dtsi}   | 17 ----------------
> >>  5 files changed, 60 insertions(+), 18 deletions(-)
> >>  create mode 100644 arch/arm/boot/dts/dove-cubox-1g.dts
> >>  create mode 100644 arch/arm/boot/dts/dove-cubox-2g.dts
> >>  create mode 100644 arch/arm/boot/dts/dove-cubox-es.dts
> >>  rename arch/arm/boot/dts/{dove-cubox.dts => dove-cubox.dtsi} (86%)
> >>
> [...]
> >> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
> >> new file mode 100644
> >> index 000000000000..513b6a68eba3
> >> --- /dev/null
> >> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
> >> @@ -0,0 +1,17 @@
> >> +/dts-v1/;
> >> +
> >> +#include "dove-cubox.dtsi"
> >> +
> >> +/ {
> >> +	model = "SolidRun CuBox (2G)";
> >> +	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
> >> +
> >> +	memory {
> >> +		device_type = "memory";
> >> +		reg = <0x00000000 0x80000000>;
> > 
> > Do you anticipate any other differences between the 1G and the 2G?
> > Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
> > should be setting the amount of RAM at boottime anyway.
> 
> Given the minor differences between ES and production, instead of
> 
> dove-cubox-common.dtsi
> +--> dove-cubox.dts (production)
> +--> dove-cubos-es.dts (engineering sample)
> 
> we could also just have an "overlay" for the ES like
> 
> dove-cubox.dts (production)
> +--> dove-cubox-es.dts (engineering sample)
> 
> It is not used commonly until now, maybe just a matter of taste.
> 
> Is there any version you prefer?

iiuc, overlays were intended for daughterboard (capes, etc) specific
info.  It may be useful here, but I'd like to hear from the DT
maintainers how they want it used.  eg: most popular first, like you
have it, or oldest first

dove-cubox-es.dts
+--> dove-cubox.dts

There's also what to do with the older files using #include...

In short, I'd prefer to stick to the old method until we have a good
reason to move to overlays and a recommended way to execute that.*

thx,

Jason.

* There's also the distinct possibility this was decided/announced and I
  missed it...
Sebastian Hesselbarth May 27, 2014, 9:50 p.m. UTC | #7
On 05/27/2014 11:35 PM, Jason Cooper wrote:
> On Tue, May 27, 2014 at 07:28:09PM +0200, Sebastian Hesselbarth wrote:
>> On 05/27/2014 06:11 PM, Jason Cooper wrote:
>>> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
>>>> As Mainlining effort for SolidRun CuBox has been carried out on the
>>>> Engineering Sample, the board DTS was reflecting this. Actually,
>>>> SolidRun CuBox comes in three different variants: Engineering Sample (ES),
>>>> production with 1GB RAM (1G), and production with 2GB RAM (2G).
>>>>
>>>> Therefore, we split the current dove-cubox.dts into a common board include
>>>> and one board dts for each of the above variants.
>>>>
>>>> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
>>>> ---
>> [...]
>>>> ---
>>>>  arch/arm/boot/dts/Makefile                         |  4 +++-
>>>>  arch/arm/boot/dts/dove-cubox-1g.dts                | 17 ++++++++++++++++
>>>>  arch/arm/boot/dts/dove-cubox-2g.dts                | 17 ++++++++++++++++
>>>>  arch/arm/boot/dts/dove-cubox-es.dts                | 23 ++++++++++++++++++++++
>>>>  .../boot/dts/{dove-cubox.dts => dove-cubox.dtsi}   | 17 ----------------
>>>>  5 files changed, 60 insertions(+), 18 deletions(-)
>>>>  create mode 100644 arch/arm/boot/dts/dove-cubox-1g.dts
>>>>  create mode 100644 arch/arm/boot/dts/dove-cubox-2g.dts
>>>>  create mode 100644 arch/arm/boot/dts/dove-cubox-es.dts
>>>>  rename arch/arm/boot/dts/{dove-cubox.dts => dove-cubox.dtsi} (86%)
>>>>
>> [...]
>>>> diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
>>>> new file mode 100644
>>>> index 000000000000..513b6a68eba3
>>>> --- /dev/null
>>>> +++ b/arch/arm/boot/dts/dove-cubox-2g.dts
>>>> @@ -0,0 +1,17 @@
>>>> +/dts-v1/;
>>>> +
>>>> +#include "dove-cubox.dtsi"
>>>> +
>>>> +/ {
>>>> +	model = "SolidRun CuBox (2G)";
>>>> +	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
>>>> +
>>>> +	memory {
>>>> +		device_type = "memory";
>>>> +		reg = <0x00000000 0x80000000>;
>>>
>>> Do you anticipate any other differences between the 1G and the 2G?
>>> Otherwise, I'm inclined to just have a "solidrun,cubox".  The bootloader
>>> should be setting the amount of RAM at boottime anyway.
>>
>> Given the minor differences between ES and production, instead of
>>
>> dove-cubox-common.dtsi
>> +--> dove-cubox.dts (production)
>> +--> dove-cubos-es.dts (engineering sample)
>>
>> we could also just have an "overlay" for the ES like
>>
>> dove-cubox.dts (production)
>> +--> dove-cubox-es.dts (engineering sample)
>>
>> It is not used commonly until now, maybe just a matter of taste.
>>
>> Is there any version you prefer?
> 
> iiuc, overlays were intended for daughterboard (capes, etc) specific

Oh, ok. I guess "overlay" was misleading here. I did not mean dynamic
loading/unloading of dtb but including a dts from another dts.

> info.  It may be useful here, but I'd like to hear from the DT
> maintainers how they want it used.  eg: most popular first, like you
> have it, or oldest first
> 
> dove-cubox-es.dts
> +--> dove-cubox.dts

In the cubox case, this is not possible. ES has a misrouted
card-detection for sdhci, this requires an additional property.
There is no way to remove a property once it is written down in
any of the files included. But you know about that already.

> There's also what to do with the older files using #include...
> 
> In short, I'd prefer to stick to the old method until we have a good
> reason to move to overlays and a recommended way to execute that.*

Ok, the old method is straight forward and I keep that in mind. I'll
send a v2 of this using the approach we just talked about to eliminate
any misinterpretations. Just have a look and feel free to request an
"old-method" v3 immediately :P

Sebastian
Heiko Stübner May 27, 2014, 10:24 p.m. UTC | #8
Am Dienstag, 27. Mai 2014, 23:50:29 schrieb Sebastian Hesselbarth:
> On 05/27/2014 11:35 PM, Jason Cooper wrote:
> > On Tue, May 27, 2014 at 07:28:09PM +0200, Sebastian Hesselbarth wrote:
> >> On 05/27/2014 06:11 PM, Jason Cooper wrote:
> >>> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
> > info.  It may be useful here, but I'd like to hear from the DT
> > maintainers how they want it used.  eg: most popular first, like you
> > have it, or oldest first
> > 
> > dove-cubox-es.dts
> > +--> dove-cubox.dts
> 
> In the cubox case, this is not possible. ES has a misrouted
> card-detection for sdhci, this requires an additional property.
> There is no way to remove a property once it is written down in
> any of the files included. But you know about that already.

dtc knows "/delete-property/" [0], but I may be missing something here.


[0] https://lists.ozlabs.org/pipermail/devicetree-discuss/2012-August/018169.html
Sebastian Hesselbarth May 27, 2014, 10:37 p.m. UTC | #9
On 05/28/2014 12:24 AM, Heiko Stübner wrote:
> Am Dienstag, 27. Mai 2014, 23:50:29 schrieb Sebastian Hesselbarth:
>> On 05/27/2014 11:35 PM, Jason Cooper wrote:
>>> On Tue, May 27, 2014 at 07:28:09PM +0200, Sebastian Hesselbarth wrote:
>>>> On 05/27/2014 06:11 PM, Jason Cooper wrote:
>>>>> On Mon, May 26, 2014 at 11:33:29PM +0200, Sebastian Hesselbarth wrote:
>>> info.  It may be useful here, but I'd like to hear from the DT
>>> maintainers how they want it used.  eg: most popular first, like you
>>> have it, or oldest first
>>>
>>> dove-cubox-es.dts
>>> +--> dove-cubox.dts
>>
>> In the cubox case, this is not possible. ES has a misrouted
>> card-detection for sdhci, this requires an additional property.
>> There is no way to remove a property once it is written down in
>> any of the files included. But you know about that already.
> 
> dtc knows "/delete-property/" [0], but I may be missing something here.
> 
> [0] https://lists.ozlabs.org/pipermail/devicetree-discuss/2012-August/018169.html

Heiko,

thanks for the link, I must have completely ignored it! Now that I
think about it, it may be very useful for kirkwood-98xsomething.dtsi
that is a special Kirkwood with a bunch of IP removed (but only some
boards). That way we could consolidate the common SoCs and use
/delete-node/ for the special case SoC.

Anyway, for CuBox ES, I either prefer the v2 approach just send - or
have a cubox-common.dtsi with two board dts for 1G and ES each. We use
this structure a lot and Andrew showed it even works for up to 5 or 10
different variants.

Sebastian
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 35c146f31e46..40a008539c0c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -404,7 +404,9 @@  dtb-$(CONFIG_MACH_ARMADA_XP) += \
 	armada-xp-matrix.dtb \
 	armada-xp-openblocks-ax3-4.dtb
 dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
-	dove-cubox.dtb \
+	dove-cubox-1g.dtb \
+	dove-cubox-2g.dtb \
+	dove-cubox-es.dtb \
 	dove-d2plug.dtb \
 	dove-d3plug.dtb \
 	dove-dove-db.dtb
diff --git a/arch/arm/boot/dts/dove-cubox-1g.dts b/arch/arm/boot/dts/dove-cubox-1g.dts
new file mode 100644
index 000000000000..eebd3f7ca7e6
--- /dev/null
+++ b/arch/arm/boot/dts/dove-cubox-1g.dts
@@ -0,0 +1,17 @@ 
+/dts-v1/;
+
+#include "dove-cubox.dtsi"
+
+/ {
+	model = "SolidRun CuBox (1G)";
+	compatible = "solidrun,cubox-1g", "solidrun,cubox", "marvell,dove";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x40000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+};
diff --git a/arch/arm/boot/dts/dove-cubox-2g.dts b/arch/arm/boot/dts/dove-cubox-2g.dts
new file mode 100644
index 000000000000..513b6a68eba3
--- /dev/null
+++ b/arch/arm/boot/dts/dove-cubox-2g.dts
@@ -0,0 +1,17 @@ 
+/dts-v1/;
+
+#include "dove-cubox.dtsi"
+
+/ {
+	model = "SolidRun CuBox (2G)";
+	compatible = "solidrun,cubox-2g", "solidrun,cubox", "marvell,dove";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+};
diff --git a/arch/arm/boot/dts/dove-cubox-es.dts b/arch/arm/boot/dts/dove-cubox-es.dts
new file mode 100644
index 000000000000..5fc17ce34c98
--- /dev/null
+++ b/arch/arm/boot/dts/dove-cubox-es.dts
@@ -0,0 +1,23 @@ 
+/dts-v1/;
+
+#include "dove-cubox.dtsi"
+
+/ {
+	model = "SolidRun CuBox (ES)";
+	compatible = "solidrun,cubox-es", "solidrun,cubox", "marvell,dove";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x40000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+};
+
+&sdio0 {
+	/* sdio0 card detect is connected to wrong pin on CuBox */
+	cd-gpios = <&gpio0 12 1>;
+	pinctrl-0 = <&pmx_sdio0 &pmx_gpio_12>;
+};
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dtsi
similarity index 86%
rename from arch/arm/boot/dts/dove-cubox.dts
rename to arch/arm/boot/dts/dove-cubox.dtsi
index 7a70f4ca502a..5752d729cc71 100644
--- a/arch/arm/boot/dts/dove-cubox.dts
+++ b/arch/arm/boot/dts/dove-cubox.dtsi
@@ -1,20 +1,6 @@ 
-/dts-v1/;
-
 #include "dove.dtsi"
 
 / {
-	model = "SolidRun CuBox";
-	compatible = "solidrun,cubox", "marvell,dove";
-
-	memory {
-		device_type = "memory";
-		reg = <0x00000000 0x40000000>;
-	};
-
-	chosen {
-		bootargs = "console=ttyS0,115200n8 earlyprintk";
-	};
-
 	leds {
 		compatible = "gpio-leds";
 		pinctrl-0 = <&pmx_gpio_18>;
@@ -111,9 +97,6 @@ 
 
 &sdio0 {
 	status = "okay";
-	/* sdio0 card detect is connected to wrong pin on CuBox */
-	cd-gpios = <&gpio0 12 1>;
-	pinctrl-0 = <&pmx_sdio0 &pmx_gpio_12>;
 };
 
 &spi0 {