Subject: [PATCH 6/8] arm: mach-armada: add support for Armada XP board with device tree

From: [email-masked] (Rob Herring)
Date: Tue, 15 May 2012 08:31:06 -0500

On 05/15/2012 04:58 AM, Ben Dooks wrote:
> On 15/05/12 09:54, Thomas Petazzoni wrote:
>> From: Gregory CLEMENT<[email-masked]>
>>
>> Signed-off-by: Gregory CLEMENT<[email-masked]>
>> Signed-off-by: Thomas Petazzoni<[email-masked]>
>> Signed-off-by: Lior Amsalem<[email-masked]>
>> ---
>>   arch/arm/boot/dts/axp-db.dts  |   40
>> ++++++++++++++++++++++++++++++++++++++++
>>   arch/arm/mach-armada/Kconfig  |    6 ++++++
>>   arch/arm/mach-armada/Makefile |    2 +-
>>   arch/arm/mach-armada/axp-dt.c |   41
>> +++++++++++++++++++++++++++++++++++++++++
>>   4 files changed, 88 insertions(+), 1 deletion(-)
>>   create mode 100644 arch/arm/boot/dts/axp-db.dts
>>   create mode 100644 arch/arm/mach-armada/axp-dt.c
>>
>> diff --git a/arch/arm/boot/dts/axp-db.dts b/arch/arm/boot/dts/axp-db.dts
>> new file mode 100644
>> index 0000000..916be09
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/axp-db.dts
> 
> see previous comments.
> 
>> diff --git a/arch/arm/mach-armada/Kconfig b/arch/arm/mach-armada/Kconfig
>> index 7995813..2903096 100644
>> --- a/arch/arm/mach-armada/Kconfig
>> +++ b/arch/arm/mach-armada/Kconfig
>> @@ -8,6 +8,12 @@ config MACH_ARMADA_370_DT
>>         Say 'Y' here if you want your kernel to support
>>         boards based on Marvell Armada 370 with device tree.
>>
>> +config MACH_ARMADA_XP_DT
>> +    bool "Marvell Armada XP boards with device-tree support"
>> +    help
>> +      Say 'Y' here if you want your kernel to support
>> +      boards based on Marvell Armada XP with device tree.
>> +
>>   endmenu
>>
>>   endif
>> diff --git a/arch/arm/mach-armada/Makefile
>> b/arch/arm/mach-armada/Makefile
>> index ac39fae..7a3c438 100644
>> --- a/arch/arm/mach-armada/Makefile
>> +++ b/arch/arm/mach-armada/Makefile
>> @@ -1,3 +1,3 @@
>>   obj-y += common.o irq.o time.o
>>   obj-$(CONFIG_MACH_ARMADA_370_DT) += a370-dt.o
>> -
>> +obj-$(CONFIG_MACH_ARMADA_XP_DT)     += axp-dt.o
>> diff --git a/arch/arm/mach-armada/axp-dt.c
>> b/arch/arm/mach-armada/axp-dt.c
>> new file mode 100644
>> index 0000000..2c13d4e
>> --- /dev/null
>> +++ b/arch/arm/mach-armada/axp-dt.c
>> @@ -0,0 +1,41 @@
>> +/*
>> + * Device Tree support for Armada XP platforms.
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Lior Amsalem<[email-masked]>
>> + * Gregory CLEMENT<[email-masked]>
>> + * Thomas Petazzoni<[email-masked]>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2.  This program is licensed "as is" without any
>> + * warranty of any kind, whether express or implied.
>> + */
>> +
>> +#include<linux/kernel.h>
>> +#include<linux/init.h>
>> +#include<linux/of_platform.h>
>> +#include<asm/mach-types.h>
>> +#include<asm/mach/arch.h>
>> +#include<mach/armada.h>
>> +#include "common.h"
>> +
>> +static void __init axp_dt_init(void)
>> +{
>> +    of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> +}
>> +
>> +static const char * const axp_dt_board_dt_compat[] = {
>> +    "marvell,axp-db",
>> +    NULL,
> 
> This is where the device support becomes confusing.
> 
> I would strongly advise on using "mrvl,mv78230" as the binding
> name. It isn't as if you can't have multiple names associated
> with one binding.

The name here should uniquely identify the board, not the chip. If you
additionally want to have the chip name, then that should be after the
board name. However, "marvell,armada" is too generic to be useful.

marvell is the documented vendor string, not mrvl.

> Also, given how close they are, do we really need separate machine
> support files?

There does need to be justification why they need to be separate.

Rob