This patch is supposed to bring up pxa988 SMP.
ChangeLog
V3:
1. change all Marvell prefix to 'marvell'
2. Support CLOCKSOURCE for mmp timer
3. Modify the bring up patch according to Arnd's comments.
V2:
1. use early_init call for handler init.
2. Add sanity check for maximum core count.
Neil Zhang (3):
dts: change Marvell prefix to 'marvell'
clocksource: mmp: support CLOCKSOURCE OF DECLARE
ARM: mmp: bring up pxa988 with device tree support
.../devicetree/bindings/arm/mrvl/intc.txt | 16 +-
.../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
.../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +-
.../devicetree/bindings/mmc/sdhci-pxa.txt | 8 +-
.../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
.../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
arch/arm/boot/dts/mmp2.dtsi | 56 +++---
arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
arch/arm/boot/dts/pxa168.dtsi | 24 ++--
arch/arm/boot/dts/pxa2xx.dtsi | 16 +-
arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
arch/arm/boot/dts/pxa910.dtsi | 27 ++--
.../dts/{pxa168-aspenite.dts => pxa988-dkb.dts} | 12 +-
arch/arm/boot/dts/pxa988.dtsi | 190 ++++++++++++++++++++
arch/arm/mach-mmp/Kconfig | 18 ++
arch/arm/mach-mmp/Makefile | 1 +
arch/arm/mach-mmp/common.c | 11 +-
arch/arm/mach-mmp/common.h | 2 +
arch/arm/mach-mmp/headsmp.S | 104 +++++++++++
arch/arm/mach-mmp/include/mach/addr-map.h | 6 +
arch/arm/mach-mmp/irq.c | 16 +-
arch/arm/mach-mmp/mmp-dt.c | 33 ++--
arch/arm/mach-mmp/mmp2-dt.c | 60 +++++-
arch/arm/mach-mmp/platsmp.c | 167 +++++++++++++++++
arch/arm/mach-mmp/reset.c | 66 +++++++
arch/arm/mach-mmp/reset.h | 29 +++
arch/arm/mach-mmp/time.c | 15 +--
arch/arm/mach-pxa/pxa-dt.c | 14 +-
drivers/clk/mmp/Makefile | 1 +
drivers/i2c/busses/i2c-pxa.c | 10 +-
drivers/mmc/host/sdhci-pxav2.c | 4 +-
drivers/mmc/host/sdhci-pxav3.c | 4 +-
drivers/rtc/rtc-sa1100.c | 4 +-
drivers/tty/serial/pxa.c | 4 +-
37 files changed, 788 insertions(+), 168 deletions(-)
copy arch/arm/boot/dts/{pxa168-aspenite.dts => pxa988-dkb.dts} (74%)
create mode 100644 arch/arm/boot/dts/pxa988.dtsi
create mode 100644 arch/arm/mach-mmp/headsmp.S
create mode 100644 arch/arm/mach-mmp/platsmp.c
create mode 100644 arch/arm/mach-mmp/reset.c
create mode 100644 arch/arm/mach-mmp/reset.h
--
1.7.4.1
support CLOCKSOURCE OF DECLARE for mmp timer.
Signed-off-by: Neil Zhang <[email protected]>
---
arch/arm/mach-mmp/mmp-dt.c | 5 ++---
arch/arm/mach-mmp/mmp2-dt.c | 3 +--
arch/arm/mach-mmp/time.c | 15 ++-------------
3 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
index 62c5adb..87ab5ff 100644
--- a/arch/arm/mach-mmp/mmp-dt.c
+++ b/arch/arm/mach-mmp/mmp-dt.c
@@ -20,7 +20,6 @@
#include "common.h"
extern void __init mmp_dt_irq_init(void);
-extern void __init mmp_dt_init_timer(void);
static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
@@ -65,7 +64,7 @@ static const char *mmp_dt_board_compat[] __initdata = {
DT_MACHINE_START(PXA168_DT, "Marvell PXA168 (Device Tree Support)")
.map_io = mmp_map_io,
.init_irq = mmp_dt_irq_init,
- .init_time = mmp_dt_init_timer,
+ .init_time = clocksource_of_init,
.init_machine = pxa168_dt_init,
.dt_compat = mmp_dt_board_compat,
MACHINE_END
@@ -73,7 +72,7 @@ MACHINE_END
DT_MACHINE_START(PXA910_DT, "Marvell PXA910 (Device Tree Support)")
.map_io = mmp_map_io,
.init_irq = mmp_dt_irq_init,
- .init_time = mmp_dt_init_timer,
+ .init_time = clocksource_of_init,
.init_machine = pxa910_dt_init,
.dt_compat = mmp_dt_board_compat,
MACHINE_END
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
index 6523ecf..0ce46f1 100644
--- a/arch/arm/mach-mmp/mmp2-dt.c
+++ b/arch/arm/mach-mmp/mmp2-dt.c
@@ -22,7 +22,6 @@
#include "common.h"
extern void __init mmp_dt_irq_init(void);
-extern void __init mmp_dt_init_timer(void);
static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4030000, "pxa2xx-uart.0", NULL),
@@ -50,7 +49,7 @@ static const char *mmp2_dt_board_compat[] __initdata = {
DT_MACHINE_START(MMP2_DT, "Marvell MMP2 (Device Tree Support)")
.map_io = mmp_map_io,
.init_irq = mmp_dt_irq_init,
- .init_time = mmp_dt_init_timer,
+ .init_time = clocksource_of_init,
.init_machine = mmp2_dt_init,
.dt_compat = mmp2_dt_board_compat,
MACHINE_END
diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
index 67e7d5c..8f5d612 100644
--- a/arch/arm/mach-mmp/time.c
+++ b/arch/arm/mach-mmp/time.c
@@ -207,22 +207,10 @@ void __init timer_init(int irq)
}
#ifdef CONFIG_OF
-static struct of_device_id mmp_timer_dt_ids[] = {
- { .compatible = "marvell,mmp-timer", },
- {}
-};
-
-void __init mmp_dt_init_timer(void)
+static void __init mmp_of_init_timer(struct device_node *np)
{
- struct device_node *np;
int irq, ret;
- np = of_find_matching_node(NULL, mmp_timer_dt_ids);
- if (!np) {
- ret = -ENODEV;
- goto out;
- }
-
irq = irq_of_parse_and_map(np, 0);
if (!irq) {
ret = -EINVAL;
@@ -238,4 +226,5 @@ void __init mmp_dt_init_timer(void)
out:
pr_err("Failed to get timer from device tree with error:%d\n", ret);
}
+CLOCKSOURCE_OF_DECLARE(mmp_timer, "marvell,mmp-timer", mmp_of_init_timer);
#endif
--
1.7.4.1
bring up pxa988 with device tree support.
Signed-off-by: Neil Zhang <[email protected]>
Signed-off-by: Chao Xie <[email protected]>
---
arch/arm/boot/dts/pxa988-dkb.dts | 36 ++++++
arch/arm/boot/dts/pxa988.dtsi | 190 +++++++++++++++++++++++++++++
arch/arm/mach-mmp/Kconfig | 18 +++
arch/arm/mach-mmp/Makefile | 1 +
arch/arm/mach-mmp/common.c | 11 ++-
arch/arm/mach-mmp/common.h | 2 +
arch/arm/mach-mmp/headsmp.S | 104 ++++++++++++++++
arch/arm/mach-mmp/include/mach/addr-map.h | 6 +
arch/arm/mach-mmp/mmp2-dt.c | 41 ++++++
arch/arm/mach-mmp/platsmp.c | 167 +++++++++++++++++++++++++
arch/arm/mach-mmp/reset.c | 66 ++++++++++
arch/arm/mach-mmp/reset.h | 29 +++++
drivers/clk/mmp/Makefile | 1 +
13 files changed, 671 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/boot/dts/pxa988-dkb.dts
create mode 100644 arch/arm/boot/dts/pxa988.dtsi
create mode 100644 arch/arm/mach-mmp/headsmp.S
create mode 100644 arch/arm/mach-mmp/platsmp.c
create mode 100644 arch/arm/mach-mmp/reset.c
create mode 100644 arch/arm/mach-mmp/reset.h
diff --git a/arch/arm/boot/dts/pxa988-dkb.dts b/arch/arm/boot/dts/pxa988-dkb.dts
new file mode 100644
index 0000000..891c78a
--- /dev/null
+++ b/arch/arm/boot/dts/pxa988-dkb.dts
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Marvell Technology Group Ltd.
+ * Author: Haojian Zhuang <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * publishhed by the Free Software Foundation.
+ */
+
+/dts-v1/;
+/include/ "pxa988.dtsi"
+
+/ {
+ model = "Marvell PXA988 DKB Development Board";
+ compatible = "marvell,pxa988-dkb", "marvell,pxa988";
+
+ chosen {
+ bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
+ };
+
+ memory {
+ reg = <0x00000000 0x10000000>;
+ };
+
+ soc {
+ apb@d4000000 {
+ uart1: uart@d4017000 {
+ status = "okay";
+ };
+
+ rtc: rtc@d4010000 {
+ status = "okay";
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/pxa988.dtsi b/arch/arm/boot/dts/pxa988.dtsi
new file mode 100644
index 0000000..f69bf77
--- /dev/null
+++ b/arch/arm/boot/dts/pxa988.dtsi
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2013 Marvell Technology Group Ltd.
+ * Author: Chao Xie <[email protected]>
+ * Neil Zhang <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * publishhed by the Free Software Foundation.
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+ interrupt-parent = <&gic>;
+
+ aliases {
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ i2c0 = &twsi1;
+ i2c1 = &twsi2;
+ };
+
+ cpus {
+ cpu@0 {
+ compatible = "arm,cortex-a9";
+ next-level-cache = <&L2>;
+ };
+ cpu@1 {
+ compatible = "arm,cortex-a9";
+ next-level-cache = <&L2>;
+ };
+ };
+
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ interrupt-parent = <&gic>;
+ ranges;
+
+ gic: interrupt-controller@d1dfe100 {
+ compatible = "arm,cortex-a9-gic";
+ #interrupt-cells = <3>;
+ #address-cells = <1>;
+ interrupt-controller;
+ reg = <0xd1dff000 0x1000>,
+ <0xd1dfe100 0x0100>;
+ };
+
+ L2: l2-cache-controller@d1dfb000 {
+ compatible = "arm,pl310-cache";
+ reg = <0xd1dfb000 0x1000>;
+ arm,data-latency = <2 1 1>;
+ arm,tag-latency = <2 1 1>;
+ arm,pwr-dynamic-clk-gating;
+ arm,pwr-standby-mode;
+ cache-unified;
+ cache-level = <2>;
+ };
+
+ local-timer@d1dfe600 {
+ compatible = "arm,cortex-a9-twd-timer";
+ reg = <0xd1dfe600 0x20>;
+ interrupts = <1 13 0x304>;
+ };
+
+ axi@d4200000 { /* AXI */
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0xd4200000 0xd4200000 0x00200000>;
+
+ intc: wakeupgen@d4282000 {
+ compatible = "marvell,mmp-intc";
+ reg = <0xd4282000 0x1000>;
+ marvell,intc-wakeup = <0x114 0x3
+ 0x144 0x3>;
+ };
+
+ };
+
+ apb@d4000000 { /* APB */
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0xd4000000 0xd4000000 0x00200000>;
+
+ timer0: timer@d4014000 {
+ compatible = "marvell,mmp-timer";
+ reg = <0xd4014000 0x100>;
+ interrupts = <0 13 0x4>;
+ };
+
+ uart1: uart@d4017000 {
+ compatible = "marvell,mmp-uart";
+ reg = <0xd4017000 0x1000>;
+ interrupts = <0 27 0x4>;
+ status = "disabled";
+ };
+
+ uart2: uart@d4018000 {
+ compatible = "marvell,mmp-uart";
+ reg = <0xd4018000 0x1000>;
+ interrupts = <0 28 0x4>;
+ status = "disabled";
+ };
+
+ uart3: uart@d4036000 {
+ compatible = "marvell,mmp-uart";
+ reg = <0xd4036000 0x1000>;
+ interrupts = <0 59 0x4>;
+ status = "disabled";
+ };
+
+ gpio@d4019000 {
+ compatible = "marvell,mmp-gpio";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0xd4019000 0x1000>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupts = <49>;
+ interrupt-names = "gpio_mux";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ ranges;
+
+ gcb0: gpio@d4019000 {
+ reg = <0xd4019000 0x4>;
+ };
+
+ gcb1: gpio@d4019004 {
+ reg = <0xd4019004 0x4>;
+ };
+
+ gcb2: gpio@d4019008 {
+ reg = <0xd4019008 0x4>;
+ };
+
+ gcb3: gpio@d4019100 {
+ reg = <0xd4019100 0x4>;
+ };
+ };
+
+ twsi1: i2c@d4011000 {
+ compatible = "marvell,mmp-twsi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0xd4011000 0x1000>;
+ interrupts = <0 7 0x4>;
+ marvell,i2c-fast-mode;
+ status = "disabled";
+ };
+
+ twsi2: i2c@d4037000 {
+ compatible = "marvell,mmp-twsi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0xd4037000 0x1000>;
+ interrupts = <0 54 0x4>;
+ status = "disabled";
+ };
+
+ rtc: rtc@d4010000 {
+ compatible = "marvell,mmp-rtc";
+ reg = <0xd4010000 0x1000>;
+ interrupts = <0 5 0x4>,<0 6 0x4>;
+ interrupt-names = "rtc 1Hz", "rtc alarm";
+ status = "disabled";
+ };
+ pmx: pinmux@d401e000 {
+ compatible = "pinconf-single";
+ reg = <0xd401e000 0x330>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #gpio-range-cells = <3>;
+ ranges;
+
+ pinctrl-single,register-width = <32>;
+ pinctrl-single,function-mask = <7>;
+
+ range: gpio-range {
+ #pinctrl-single,gpio-range-cells = <3>;
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig
index ebdda83..ee2904e 100644
--- a/arch/arm/mach-mmp/Kconfig
+++ b/arch/arm/mach-mmp/Kconfig
@@ -100,6 +100,7 @@ config MACH_MMP2_DT
bool "Support MMP2 (ARMv7) platforms from device tree"
depends on !CPU_MOHAWK
select CPU_MMP2
+ select CPU_PXA988
select USE_OF
select PINCTRL
select PINCTRL_SINGLE
@@ -123,6 +124,23 @@ config CPU_PXA910
help
Select code specific to PXA910
+config CPU_PXA988
+ bool
+ select CPU_V7
+ select ARM_GIC
+ select HAVE_SMP
+ select HAVE_ARM_SCU
+ select LOCAL_TIMERS
+ select HAVE_ARM_TWD
+ select COMMON_CLK
+ select CLKSRC_OF
+ select MIGHT_HAVE_CACHE_L2X0
+ help
+ Say 'Y' here if you want to support the Marvell pxa988-base
+ platforms.
+ PXA988 is an SoC with dual-core Cotex-A9 and comunication
+ processor, code name "Emei".
+
config CPU_MMP2
bool
select COMMON_CLK
diff --git a/arch/arm/mach-mmp/Makefile b/arch/arm/mach-mmp/Makefile
index 095c155..e5885ef 100644
--- a/arch/arm/mach-mmp/Makefile
+++ b/arch/arm/mach-mmp/Makefile
@@ -8,6 +8,7 @@ obj-y += common.o devices.o time.o irq.o
obj-$(CONFIG_CPU_PXA168) += pxa168.o
obj-$(CONFIG_CPU_PXA910) += pxa910.o
obj-$(CONFIG_CPU_MMP2) += mmp2.o sram.o
+obj-$(CONFIG_CPU_PXA988) += platsmp.o headsmp.o reset.o
ifeq ($(CONFIG_COMMON_CLK), )
obj-y += clock.o
diff --git a/arch/arm/mach-mmp/common.c b/arch/arm/mach-mmp/common.c
index 9292b79..0c621bc 100644
--- a/arch/arm/mach-mmp/common.c
+++ b/arch/arm/mach-mmp/common.c
@@ -11,6 +11,10 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/io.h>
+#include <linux/ioport.h>
+#include <linux/of_address.h>
#include <asm/page.h>
#include <asm/mach/map.h>
@@ -36,7 +40,12 @@ static struct map_desc standard_io_desc[] __initdata = {
.virtual = (unsigned long)AXI_VIRT_BASE,
.length = AXI_PHYS_SIZE,
.type = MT_DEVICE,
- },
+ }, {
+ .pfn = __phys_to_pfn(MMP_CORE_PERIPH_PHYS_BASE),
+ .virtual = (unsigned long)MMP_CORE_PERIPH_VIRT_BASE,
+ .length = MMP_CORE_PERIPH_PHYS_SIZE,
+ .type = MT_DEVICE,
+ }
};
void __init mmp_map_io(void)
diff --git a/arch/arm/mach-mmp/common.h b/arch/arm/mach-mmp/common.h
index 0bdc50b..ea0225f 100644
--- a/arch/arm/mach-mmp/common.h
+++ b/arch/arm/mach-mmp/common.h
@@ -1,5 +1,7 @@
#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
+extern struct smp_operations mmp_smp_ops;
+
extern void timer_init(int irq);
extern void __init icu_init_irq(void);
diff --git a/arch/arm/mach-mmp/headsmp.S b/arch/arm/mach-mmp/headsmp.S
new file mode 100644
index 0000000..2b6177e
--- /dev/null
+++ b/arch/arm/mach-mmp/headsmp.S
@@ -0,0 +1,104 @@
+/*
+ * linux/arch/arm/mach-mmp/headsmp.S
+ *
+ * Copyright (C) 2012 Marvell, Inc.
+ *
+ * Author: Neil Zhang <[email protected]>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+#include <linux/linkage.h>
+#include <linux/init.h>
+#include <asm/memory.h>
+#include <asm/cache.h>
+#include <asm/assembler.h>
+#include <mach/addr-map.h>
+
+ __CPUINIT
+
+/*
+ * Marvell specific entry point for secondary CPUs.
+ * The secondary kernel init calls v7_flush_dcache_all before it enables
+ * the L1; however, the L1 comes out of reset in an undefined state, so
+ * the clean + invalidate performed by v7_flush_dcache_all causes a bunch
+ * of cache lines with uninitialized data and uninitialized tags to get
+ * written out to memory, which does really unpleasant things to the main
+ * processor. We fix this by performing an invalidate, rather than a
+ * clean + invalidate for secondary core, before jumping into the kernel.
+ *
+ * This funciton is cloned from arch/arm/mach-tegra/headsmp.S, and needs
+ * to be called for both secondary cores startup and primary core resume
+ * procedures.
+ */
+ .align L1_CACHE_SHIFT
+
+
+/*
+ * PXA specific entry point for secondary CPUs. This provides
+ * a "holding pen" into which all secondary cores are held until we're
+ * ready for them to initialise.
+ */
+ENTRY(mmp_secondary_startup)
+ mrc p15, 0, r0, c0, c0, 5
+ and r0, r0, #15
+ adr r4, 1f
+ ldmia r4, {r5, r6}
+ sub r4, r4, r5
+ add r6, r6, r4
+pen: ldr r7, [r6]
+ cmp r7, r0
+ bne pen
+
+ /*
+ * we've been released from the holding pen: secondary_stack
+ * should now contain the SVC stack for this core
+ */
+ bl v7_invalidate_l1
+ b secondary_startup
+ENDPROC(mmp_secondary_startup)
+
+ .align 2
+1: .long .
+ .long pen_release
+
+
+/*
+ * Note: The following code is located into the .data section. This is to
+ * allow sw_reset_flag and cpu_plugin_handler to be accessed with a
+ * relative load while we can't rely on any MMU translation.
+ * Reference from: arch/arm/kernel/sleep.S
+ */
+
+ .data
+ .align
+
+/*
+ * ROM code jumps to this function while waking up from CPU
+ * OFF or software reset state. Physical address of the function is
+ * stored at CA9_WARM_RESET_VECTOR while system is bring up.
+ */
+ENTRY(mmp_cpu_reset_entry)
+ adr r1, mmp_entry_vectors
+ mrc p15, 0, r0, c0, c0, 5
+ and r0, r0, #15 @ fetch CPUID
+1:
+ ldr r2, [r1, r0, lsl #2] @ get the handler addr for this core
+ cmp r2, #0
+ movne pc, r2 @ jump to the handler
+ beq 1b
+ENDPROC(mmp_cpu_reset_entry)
+
+ /* Point to the address that save handlers for each core */
+ .global mmp_entry_vectors
+mmp_entry_vectors:
+ .rept CONFIG_NR_CPUS
+ .long 0 @ preserve stack phys ptr here
+ .endr
diff --git a/arch/arm/mach-mmp/include/mach/addr-map.h b/arch/arm/mach-mmp/include/mach/addr-map.h
index f88a44c..092005b 100644
--- a/arch/arm/mach-mmp/include/mach/addr-map.h
+++ b/arch/arm/mach-mmp/include/mach/addr-map.h
@@ -25,6 +25,10 @@
#define AXI_VIRT_BASE IOMEM(0xfe200000)
#define AXI_PHYS_SIZE 0x00200000
+#define MMP_CORE_PERIPH_PHYS_BASE 0xd1dfe000
+#define MMP_CORE_PERIPH_VIRT_BASE IOMEM(0xfe400000)
+#define MMP_CORE_PERIPH_PHYS_SIZE 0x00002000
+
/* Static Memory Controller - Chip Select 0 and 1 */
#define SMC_CS0_PHYS_BASE 0x80000000
#define SMC_CS0_PHYS_SIZE 0x10000000
@@ -43,4 +47,6 @@
#define CIU_VIRT_BASE (AXI_VIRT_BASE + 0x82c00)
#define CIU_REG(x) (CIU_VIRT_BASE + (x))
+#define SCU_VIRT_BASE (MMP_CORE_PERIPH_VIRT_BASE)
+
#endif /* __ASM_MACH_ADDR_MAP_H */
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
index 0ce46f1..56df68c 100644
--- a/arch/arm/mach-mmp/mmp2-dt.c
+++ b/arch/arm/mach-mmp/mmp2-dt.c
@@ -11,15 +11,19 @@
#include <linux/io.h>
#include <linux/irq.h>
+#include <linux/irqchip.h>
#include <linux/irqdomain.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
+#include <linux/clocksource.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
+#include <asm/hardware/cache-l2x0.h>
#include <mach/irqs.h>
#include <mach/regs-apbc.h>
#include "common.h"
+#include "reset.h"
extern void __init mmp_dt_irq_init(void);
@@ -35,14 +39,41 @@ static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
{}
};
+static const struct of_dev_auxdata pxa988_auxdata_lookup[] __initconst = {
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
+ {}
+};
+
static void __init mmp2_dt_init(void)
{
of_platform_populate(NULL, of_default_bus_match_table,
mmp2_auxdata_lookup, NULL);
}
+static void __init pxa988_dt_init_early(void)
+{
+ mmp_entry_vector_init();
+}
+
+static void __init pxa988_dt_init_machine(void)
+{
+ l2x0_of_init(0x30800000, 0xFE7FFFFF);
+
+ pxa910_clk_init();
+
+ of_platform_populate(NULL, of_default_bus_match_table,
+ pxa988_auxdata_lookup, NULL);
+}
+
static const char *mmp2_dt_board_compat[] __initdata = {
"marvell,mmp2-brownstone",
+ "marvell,pxa988-dkb",
NULL,
};
@@ -53,3 +84,13 @@ DT_MACHINE_START(MMP2_DT, "Marvell MMP2 (Device Tree Support)")
.init_machine = mmp2_dt_init,
.dt_compat = mmp2_dt_board_compat,
MACHINE_END
+
+DT_MACHINE_START(PXA988_DT, "Marvell PXA988 (Device Tree Support)")
+ .smp = smp_ops(mmp_smp_ops),
+ .map_io = mmp_map_io,
+ .init_early = pxa988_dt_init_early,
+ .init_irq = irqchip_init,
+ .init_time = clocksource_of_init,
+ .init_machine = pxa988_dt_init_machine,
+ .dt_compat = mmp2_dt_board_compat,
+MACHINE_END
diff --git a/arch/arm/mach-mmp/platsmp.c b/arch/arm/mach-mmp/platsmp.c
new file mode 100644
index 0000000..f341a67
--- /dev/null
+++ b/arch/arm/mach-mmp/platsmp.c
@@ -0,0 +1,167 @@
+/*
+ * linux/arch/arm/mach-mmp/platsmp.c
+ *
+ * Copyright (C) 2002 ARM Ltd.
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/jiffies.h>
+#include <linux/smp.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+
+#include <asm/cacheflush.h>
+#include <mach/hardware.h>
+#include <linux/irqchip/arm-gic.h>
+#include <asm/mach-types.h>
+#include <asm/localtimer.h>
+#include <asm/smp_scu.h>
+
+#include <mach/irqs.h>
+#include <mach/addr-map.h>
+
+#include "common.h"
+#include "reset.h"
+
+/*
+ * Write pen_release in a way that is guaranteed to be visible to all
+ * observers, irrespective of whether they're taking part in coherency
+ * or not. This is necessary for the hotplug code to work reliably.
+ */
+static void __cpuinit write_pen_release(int val)
+{
+ pen_release = val;
+ smp_wmb();
+ __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release));
+ outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
+}
+
+#ifdef CONFIG_HAVE_ARM_SCU
+static void __iomem *scu_get_base_addr(void)
+{
+ return SCU_VIRT_BASE;
+}
+#endif
+
+static inline unsigned int get_core_count(void)
+{
+ u32 ret = 1;
+#ifdef CONFIG_HAVE_ARM_SCU
+ ret = scu_get_core_count(scu_get_base_addr());
+#endif
+
+ return ret;
+}
+
+static DEFINE_SPINLOCK(boot_lock);
+
+static void __cpuinit mmp_secondary_init(unsigned int cpu)
+{
+ /*
+ * let the primary processor know we're out of the
+ * pen, then head off into the C entry point
+ */
+ write_pen_release(-1);
+
+ /*
+ * Synchronise with the boot thread.
+ */
+ spin_lock(&boot_lock);
+ spin_unlock(&boot_lock);
+}
+
+static int __cpuinit mmp_boot_secondary(unsigned int cpu, struct task_struct *idle)
+{
+ unsigned long timeout;
+
+ /*
+ * Avoid timer calibration on slave cpus. Use the value calibrated
+ * on master cpu. Referenced from tegra3
+ */
+ preset_lpj = loops_per_jiffy;
+
+ /*
+ * set synchronisation state between this boot processor
+ * and the secondary one
+ */
+
+ spin_lock(&boot_lock);
+
+ /*
+ * The secondary processor is waiting to be released from
+ * the holding pen - release it, then wait for it to flag
+ * that it has been released by resetting pen_release.
+ *
+ * Note that "pen_release" is the hardware CPU ID, whereas
+ * "cpu" is Linux's internal ID.
+ */
+ write_pen_release(cpu);
+
+ /* reset the cpu, let it branch to the kernel entry */
+ mmp_cpu_power_up(cpu);
+
+ timeout = jiffies + (1 * HZ);
+ while (time_before(jiffies, timeout)) {
+ smp_rmb();
+ if (pen_release == -1)
+ break;
+
+ udelay(10);
+ }
+
+ /*
+ * now the secondary core is starting up let it run its
+ * calibrations, then wait for it to finish
+ */
+ spin_unlock(&boot_lock);
+
+ return pen_release != -1 ? -ENOSYS : 0;
+}
+
+/*
+ * Initialise the CPU possible map early - this describes the CPUs
+ * which may be present or become present in the system.
+ */
+static void __init mmp_smp_init_cpus(void)
+{
+ unsigned int i, ncores = get_core_count();
+
+ if (ncores > nr_cpu_ids) {
+ pr_warn("SMP: %u cores greater than maximum (%u), clipping\n",
+ ncores, nr_cpu_ids);
+ ncores = nr_cpu_ids;
+ }
+
+ for (i = 0; i < ncores; i++)
+ set_cpu_possible(i, true);
+}
+
+static void __init mmp_smp_prepare_cpus(unsigned int max_cpus)
+{
+ int i;
+
+ /*
+ * Initialise the present map, which describes the set of CPUs
+ * actually populated at the present time.
+ */
+ for (i = 0; i < max_cpus; i++)
+ set_cpu_present(i, true);
+
+#ifdef CONFIG_HAVE_ARM_SCU
+ scu_enable(scu_get_base_addr());
+#endif
+}
+
+struct smp_operations mmp_smp_ops __initdata = {
+ .smp_init_cpus = mmp_smp_init_cpus,
+ .smp_prepare_cpus = mmp_smp_prepare_cpus,
+ .smp_secondary_init = mmp_secondary_init,
+ .smp_boot_secondary = mmp_boot_secondary,
+};
diff --git a/arch/arm/mach-mmp/reset.c b/arch/arm/mach-mmp/reset.c
new file mode 100644
index 0000000..b90ec54
--- /dev/null
+++ b/arch/arm/mach-mmp/reset.c
@@ -0,0 +1,66 @@
+/*
+ * linux/arch/arm/mach-mmp/reset.c
+ *
+ * Author: Neil Zhang <[email protected]>
+ * Copyright: (C) 2012 Marvell International Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/kernel.h>
+#include <linux/smp.h>
+
+#include <asm/io.h>
+#include <asm/cacheflush.h>
+#include <asm/mach/map.h>
+
+#include <mach/addr-map.h>
+
+#include "reset.h"
+
+#define PMU_CC2_AP APMU_REG(0x0100)
+#define CIU_CA9_WARM_RESET_VECTOR CIU_REG(0x00d8)
+
+/*
+ * This function is called from boot_secondary to bootup the secondary cpu.
+ */
+void mmp_cpu_power_up(u32 cpu)
+{
+ u32 tmp;
+
+ BUG_ON(cpu == 0);
+
+ tmp = readl(PMU_CC2_AP);
+ if (tmp & CPU_CORE_RST(cpu)) {
+ /* Release secondary core from reset */
+ tmp &= ~(CPU_CORE_RST(cpu)
+ | CPU_DBG_RST(cpu) | CPU_WDOG_RST(cpu));
+ writel(tmp, PMU_CC2_AP);
+ }
+}
+
+void mmp_set_entry_vector(u32 cpu, u32 addr)
+{
+ BUG_ON(cpu >= nr_cpu_ids);
+
+ mmp_entry_vectors[cpu] = addr;
+ smp_wmb();
+ __cpuc_flush_dcache_area((void *)&mmp_entry_vectors[cpu],
+ sizeof(mmp_entry_vectors[cpu]));
+ outer_clean_range(__pa(&mmp_entry_vectors[cpu]),
+ __pa(&mmp_entry_vectors[cpu + 1]));
+}
+
+void __init mmp_entry_vector_init(void)
+{
+ int cpu;
+
+ /* We will reset from DDR directly by default */
+ writel(__pa(mmp_cpu_reset_entry), CIU_CA9_WARM_RESET_VECTOR);
+
+ for (cpu = 1; cpu < nr_cpu_ids; cpu++)
+ mmp_set_entry_vector(cpu, __pa(mmp_secondary_startup));
+}
diff --git a/arch/arm/mach-mmp/reset.h b/arch/arm/mach-mmp/reset.h
new file mode 100644
index 0000000..78d5486
--- /dev/null
+++ b/arch/arm/mach-mmp/reset.h
@@ -0,0 +1,29 @@
+/*
+ * linux/arch/arm/mach-mmp/include/mach/reset.h
+ *
+ * Author: Neil Zhang <[email protected]>
+ * Copyright: (C) 2012 Marvell International Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef __RESET_PXA988_H__
+#define __RESET_PXA988_H__
+
+#define CPU_CORE_RST(n) (1 << ((n) * 4 + 16))
+#define CPU_DBG_RST(n) (1 << ((n) * 4 + 18))
+#define CPU_WDOG_RST(n) (1 << ((n) * 4 + 19))
+
+extern u32 mmp_entry_vectors[CONFIG_NR_CPUS];
+
+void mmp_secondary_startup(void);
+void mmp_cpu_reset_entry(void);
+
+void mmp_cpu_power_up(u32 cpu);
+void mmp_set_entry_vector(u32 cpu, u32 addr);
+void __init mmp_entry_vector_init(void);
+
+#endif /* __RESET_PXA988_H__ */
diff --git a/drivers/clk/mmp/Makefile b/drivers/clk/mmp/Makefile
index 392d780..59a3f9f7 100644
--- a/drivers/clk/mmp/Makefile
+++ b/drivers/clk/mmp/Makefile
@@ -7,3 +7,4 @@ obj-y += clk-apbc.o clk-apmu.o clk-frac.o
obj-$(CONFIG_CPU_PXA168) += clk-pxa168.o
obj-$(CONFIG_CPU_PXA910) += clk-pxa910.o
obj-$(CONFIG_CPU_MMP2) += clk-mmp2.o
+obj-$(CONFIG_CPU_PXA988) += clk-pxa910.o
--
1.7.4.1
The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
let's change it.
Signed-off-by: Neil Zhang <[email protected]>
---
.../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
.../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
.../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
.../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
.../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
.../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
arch/arm/mach-mmp/irq.c | 16 +++---
arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
arch/arm/mach-mmp/time.c | 2 +-
arch/arm/mach-pxa/pxa-dt.c | 14 +++---
drivers/i2c/busses/i2c-pxa.c | 10 ++--
drivers/mmc/host/sdhci-pxav2.c | 4 +-
drivers/mmc/host/sdhci-pxav3.c | 4 +-
drivers/rtc/rtc-sa1100.c | 4 +-
drivers/tty/serial/pxa.c | 4 +-
25 files changed, 144 insertions(+), 143 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/mrvl/intc.txt b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
index 8b53273..ad27548 100644
--- a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
+++ b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
@@ -1,8 +1,8 @@
* Marvell MMP Interrupt controller
Required properties:
-- compatible : Should be "mrvl,mmp-intc", "mrvl,mmp2-intc" or
- "mrvl,mmp2-mux-intc"
+- compatible : Should be "marvell,mmp-intc", "marvell,mmp2-intc" or
+ "marvell,mmp2-mux-intc"
- reg : Address and length of the register set of the interrupt controller.
If the interrupt controller is intc, address and length means the range
of the whold interrupt controller. If the interrupt controller is mux-intc,
@@ -15,28 +15,28 @@ Required properties:
- interrupt-controller : Identifies the node as an interrupt controller.
- #interrupt-cells : Specifies the number of cells needed to encode an
interrupt source.
-- mrvl,intc-nr-irqs : Specifies the number of interrupts in the interrupt
+- marvell,intc-nr-irqs : Specifies the number of interrupts in the interrupt
controller.
-- mrvl,clr-mfp-irq : Specifies the interrupt that needs to clear MFP edge
+- marvell,clr-mfp-irq : Specifies the interrupt that needs to clear MFP edge
detection first.
Example:
intc: interrupt-controller@d4282000 {
- compatible = "mrvl,mmp2-intc";
+ compatible = "marvell,mmp2-intc";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0xd4282000 0x1000>;
- mrvl,intc-nr-irqs = <64>;
+ marvell,intc-nr-irqs = <64>;
};
intcmux4@d4282150 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <4>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x150 0x4>, <0x168 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <2>;
+ marvell,intc-nr-irqs = <2>;
};
* Marvell Orion Interrupt controller
diff --git a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
index 117d741..87f1d42 100644
--- a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
+++ b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
@@ -3,12 +3,12 @@ Marvell Platforms Device Tree Bindings
PXA168 Aspenite Board
Required root node properties:
- - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
+ - compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
PXA910 DKB Board
Required root node properties:
- - compatible = "mrvl,pxa910-dkb";
+ - compatible = "marvell,pxa910-dkb";
MMP2 Brownstone Board
Required root node properties:
- - compatible = "mrvl,mmp2-brownstone";
+ - compatible = "marvell,mmp2-brownstone";
diff --git a/Documentation/devicetree/bindings/arm/mrvl/timer.txt b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
index 9a6e251..1304526 100644
--- a/Documentation/devicetree/bindings/arm/mrvl/timer.txt
+++ b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
@@ -1,13 +1,13 @@
* Marvell MMP Timer controller
Required properties:
-- compatible : Should be "mrvl,mmp-timer".
+- compatible : Should be "marvell,mmp-timer".
- reg : Address and length of the register set of timer controller.
- interrupts : Should be the interrupt number.
Example:
timer0: timer@d4014000 {
- compatible = "mrvl,mmp-timer";
+ compatible = "marvell,mmp-timer";
reg = <0xd4014000 0x100>;
interrupts = <13>;
};
diff --git a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
index 12b78ac..34fdf5d 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
@@ -3,9 +3,9 @@
Required properties :
- reg : Offset and length of the register set for the device
- - compatible : should be "mrvl,mmp-twsi" where mmp is the name of a
+ - compatible : should be "marvell,mmp-twsi" where mmp is the name of a
compatible processor, e.g. pxa168, pxa910, mmp2, mmp3.
- For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required
+ For the pxa2xx/pxa3xx, an additional node "marvell,pxa-i2c" is required
as shown in the example below.
Recommended properties :
@@ -14,20 +14,20 @@ Recommended properties :
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device. If the parent is the default
interrupt controller in device tree, it could be ignored.
- - mrvl,i2c-polling : Disable interrupt of i2c controller. Polling
+ - marvell,i2c-polling : Disable interrupt of i2c controller. Polling
status register of i2c controller instead.
- - mrvl,i2c-fast-mode : Enable fast mode of i2c controller.
+ - marvell,i2c-fast-mode : Enable fast mode of i2c controller.
Examples:
twsi1: i2c@d4011000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4011000 0x1000>;
interrupts = <7>;
- mrvl,i2c-fast-mode;
+ marvell,i2c-fast-mode;
};
twsi2: i2c@d4025000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4025000 0x1000>;
interrupts = <58>;
};
diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
index dbe98a3..d603a3e 100644
--- a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
+++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
@@ -4,18 +4,18 @@ This file documents differences between the core properties in mmc.txt
and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers.
Required properties:
-- compatible: Should be "mrvl,pxav2-mmc" or "mrvl,pxav3-mmc".
+- compatible: Should be "marvell,pxav2-mmc" or "marvell,pxav3-mmc".
Optional properties:
-- mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning.
+- marvell,clk-delay-cycles: Specify a number of cycles to delay for tuning.
Example:
sdhci@d4280800 {
- compatible = "mrvl,pxav3-mmc";
+ compatible = "marvell,pxav3-mmc";
reg = <0xd4280800 0x800>;
bus-width = <8>;
interrupts = <27>;
non-removable;
- mrvl,clk-delay-cycles = <31>;
+ marvell,clk-delay-cycles = <31>;
};
diff --git a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
index 0cda19a..886fe15 100644
--- a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
+++ b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
@@ -1,7 +1,7 @@
* Marvell Real Time Clock controller
Required properties:
-- compatible: should be "mrvl,sa1100-rtc"
+- compatible: should be "marvell,sa1100-rtc"
- reg: physical base address of the controller and length of memory mapped
region.
- interrupts: Should be two. The first interrupt number is the rtc alarm
@@ -10,7 +10,7 @@ Required properties:
Example:
rtc: rtc@d4010000 {
- compatible = "mrvl,mmp-rtc";
+ compatible = "marvell,mmp-rtc";
reg = <0xd4010000 0x1000>;
interrupts = <5>, <6>;
interrupt-name = "rtc 1Hz", "rtc alarm";
diff --git a/Documentation/devicetree/bindings/serial/mrvl-serial.txt b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
index d744340..659d35e 100644
--- a/Documentation/devicetree/bindings/serial/mrvl-serial.txt
+++ b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
@@ -1,4 +1,4 @@
PXA UART controller
Required properties:
-- compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart".
+- compatible : should be "marvell,mmp-uart" or "marvell,pxa-uart".
diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts b/arch/arm/boot/dts/mmp2-brownstone.dts
index 7f70a39..26abfde 100644
--- a/arch/arm/boot/dts/mmp2-brownstone.dts
+++ b/arch/arm/boot/dts/mmp2-brownstone.dts
@@ -12,7 +12,7 @@
/ {
model = "Marvell MMP2 Brownstone Development Board";
- compatible = "mrvl,mmp2-brownstone", "mrvl,mmp2";
+ compatible = "marvell,mmp2-brownstone", "marvell,mmp2";
chosen {
bootargs = "console=ttyS2,38400 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
index 4e8b08c..ac13654 100644
--- a/arch/arm/boot/dts/mmp2.dtsi
+++ b/arch/arm/boot/dts/mmp2.dtsi
@@ -32,128 +32,128 @@
};
axi@d4200000 { /* AXI */
- compatible = "mrvl,axi-bus", "simple-bus";
+ compatible = "marvell,axi-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4200000 0x00200000>;
ranges;
intc: interrupt-controller@d4282000 {
- compatible = "mrvl,mmp2-intc";
+ compatible = "marvell,mmp2-intc";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0xd4282000 0x1000>;
- mrvl,intc-nr-irqs = <64>;
+ marvell,intc-nr-irqs = <64>;
};
intcmux4: interrupt-controller@d4282150 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <4>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x150 0x4>, <0x168 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <2>;
+ marvell,intc-nr-irqs = <2>;
};
intcmux5: interrupt-controller@d4282154 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <5>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x154 0x4>, <0x16c 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <2>;
- mrvl,clr-mfp-irq = <1>;
+ marvell,intc-nr-irqs = <2>;
+ marvell,clr-mfp-irq = <1>;
};
intcmux9: interrupt-controller@d4282180 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <9>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x180 0x4>, <0x17c 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <3>;
+ marvell,intc-nr-irqs = <3>;
};
intcmux17: interrupt-controller@d4282158 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <17>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x158 0x4>, <0x170 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <5>;
+ marvell,intc-nr-irqs = <5>;
};
intcmux35: interrupt-controller@d428215c {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <35>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x15c 0x4>, <0x174 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <15>;
+ marvell,intc-nr-irqs = <15>;
};
intcmux51: interrupt-controller@d4282160 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <51>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x160 0x4>, <0x178 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <2>;
+ marvell,intc-nr-irqs = <2>;
};
intcmux55: interrupt-controller@d4282188 {
- compatible = "mrvl,mmp2-mux-intc";
+ compatible = "marvell,mmp2-mux-intc";
interrupts = <55>;
interrupt-controller;
#interrupt-cells = <1>;
reg = <0x188 0x4>, <0x184 0x4>;
reg-names = "mux status", "mux mask";
- mrvl,intc-nr-irqs = <2>;
+ marvell,intc-nr-irqs = <2>;
};
};
apb@d4000000 { /* APB */
- compatible = "mrvl,apb-bus", "simple-bus";
+ compatible = "marvell,apb-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4000000 0x00200000>;
ranges;
timer0: timer@d4014000 {
- compatible = "mrvl,mmp-timer";
+ compatible = "marvell,mmp-timer";
reg = <0xd4014000 0x100>;
interrupts = <13>;
};
uart1: uart@d4030000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4030000 0x1000>;
interrupts = <27>;
status = "disabled";
};
uart2: uart@d4017000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4017000 0x1000>;
interrupts = <28>;
status = "disabled";
};
uart3: uart@d4018000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4018000 0x1000>;
interrupts = <24>;
status = "disabled";
};
uart4: uart@d4016000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4016000 0x1000>;
interrupts = <46>;
status = "disabled";
@@ -198,24 +198,24 @@
};
twsi1: i2c@d4011000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4011000 0x1000>;
interrupts = <7>;
#address-cells = <1>;
#size-cells = <0>;
- mrvl,i2c-fast-mode;
+ marvell,i2c-fast-mode;
status = "disabled";
};
twsi2: i2c@d4025000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4025000 0x1000>;
interrupts = <58>;
status = "disabled";
};
rtc: rtc@d4010000 {
- compatible = "mrvl,mmp-rtc";
+ compatible = "marvell,mmp-rtc";
reg = <0xd4010000 0x1000>;
interrupts = <1 0>;
interrupt-names = "rtc 1Hz", "rtc alarm";
diff --git a/arch/arm/boot/dts/pxa168-aspenite.dts b/arch/arm/boot/dts/pxa168-aspenite.dts
index e762fac..1e2ac17 100644
--- a/arch/arm/boot/dts/pxa168-aspenite.dts
+++ b/arch/arm/boot/dts/pxa168-aspenite.dts
@@ -12,7 +12,7 @@
/ {
model = "Marvell PXA168 Aspenite Development Board";
- compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
+ compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
chosen {
bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
diff --git a/arch/arm/boot/dts/pxa168.dtsi b/arch/arm/boot/dts/pxa168.dtsi
index 975dad2..c08f5fc 100644
--- a/arch/arm/boot/dts/pxa168.dtsi
+++ b/arch/arm/boot/dts/pxa168.dtsi
@@ -26,51 +26,51 @@
ranges;
axi@d4200000 { /* AXI */
- compatible = "mrvl,axi-bus", "simple-bus";
+ compatible = "marvell,axi-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4200000 0x00200000>;
ranges;
intc: interrupt-controller@d4282000 {
- compatible = "mrvl,mmp-intc";
+ compatible = "marvell,mmp-intc";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0xd4282000 0x1000>;
- mrvl,intc-nr-irqs = <64>;
+ marvell,intc-nr-irqs = <64>;
};
};
apb@d4000000 { /* APB */
- compatible = "mrvl,apb-bus", "simple-bus";
+ compatible = "marvell,apb-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4000000 0x00200000>;
ranges;
timer0: timer@d4014000 {
- compatible = "mrvl,mmp-timer";
+ compatible = "marvell,mmp-timer";
reg = <0xd4014000 0x100>;
interrupts = <13>;
};
uart1: uart@d4017000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4017000 0x1000>;
interrupts = <27>;
status = "disabled";
};
uart2: uart@d4018000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4018000 0x1000>;
interrupts = <28>;
status = "disabled";
};
uart3: uart@d4026000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4026000 0x1000>;
interrupts = <29>;
status = "disabled";
@@ -107,22 +107,22 @@
};
twsi1: i2c@d4011000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4011000 0x1000>;
interrupts = <7>;
- mrvl,i2c-fast-mode;
+ marvell,i2c-fast-mode;
status = "disabled";
};
twsi2: i2c@d4025000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
reg = <0xd4025000 0x1000>;
interrupts = <58>;
status = "disabled";
};
rtc: rtc@d4010000 {
- compatible = "mrvl,mmp-rtc";
+ compatible = "marvell,mmp-rtc";
reg = <0xd4010000 0x1000>;
interrupts = <5 6>;
interrupt-names = "rtc 1Hz", "rtc alarm";
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
index a5e90f0..c426b1e 100644
--- a/arch/arm/boot/dts/pxa2xx.dtsi
+++ b/arch/arm/boot/dts/pxa2xx.dtsi
@@ -47,7 +47,7 @@
};
gpio: gpio@40e00000 {
- compatible = "mrvl,pxa-gpio";
+ compatible = "marvell,pxa-gpio";
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0x40e00000 0x10000>;
@@ -76,35 +76,35 @@
};
ffuart: uart@40100000 {
- compatible = "mrvl,pxa-uart";
+ compatible = "marvell,pxa-uart";
reg = <0x40100000 0x30>;
interrupts = <22>;
status = "disabled";
};
btuart: uart@40200000 {
- compatible = "mrvl,pxa-uart";
+ compatible = "marvell,pxa-uart";
reg = <0x40200000 0x30>;
interrupts = <21>;
status = "disabled";
};
stuart: uart@40700000 {
- compatible = "mrvl,pxa-uart";
+ compatible = "marvell,pxa-uart";
reg = <0x40700000 0x30>;
interrupts = <20>;
status = "disabled";
};
hwuart: uart@41100000 {
- compatible = "mrvl,pxa-uart";
+ compatible = "marvell,pxa-uart";
reg = <0x41100000 0x30>;
interrupts = <7>;
status = "disabled";
};
pxai2c1: i2c@40301680 {
- compatible = "mrvl,pxa-i2c";
+ compatible = "marvell,pxa-i2c";
reg = <0x40301680 0x30>;
interrupts = <18>;
#address-cells = <0x1>;
@@ -113,14 +113,14 @@
};
usb0: ohci@4c000000 {
- compatible = "mrvl,pxa-ohci";
+ compatible = "marvell,pxa-ohci";
reg = <0x4c000000 0x10000>;
interrupts = <3>;
status = "disabled";
};
mmc0: mmc@41100000 {
- compatible = "mrvl,pxa-mmc";
+ compatible = "marvell,pxa-mmc";
reg = <0x41100000 0x1000>;
interrupts = <23>;
status = "disabled";
diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
index f9d92da..0798031 100644
--- a/arch/arm/boot/dts/pxa3xx.dtsi
+++ b/arch/arm/boot/dts/pxa3xx.dtsi
@@ -7,7 +7,7 @@
pxabus {
pwri2c: i2c@40f500c0 {
- compatible = "mrvl,pwri2c";
+ compatible = "marvell,pwri2c";
reg = <0x40f500c0 0x30>;
interrupts = <6>;
#address-cells = <0x1>;
diff --git a/arch/arm/boot/dts/pxa910-dkb.dts b/arch/arm/boot/dts/pxa910-dkb.dts
index 595492a..7384254 100644
--- a/arch/arm/boot/dts/pxa910-dkb.dts
+++ b/arch/arm/boot/dts/pxa910-dkb.dts
@@ -12,7 +12,7 @@
/ {
model = "Marvell PXA910 DKB Development Board";
- compatible = "mrvl,pxa910-dkb", "mrvl,pxa910";
+ compatible = "marvell,pxa910-dkb", "marvell,pxa910";
chosen {
bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
diff --git a/arch/arm/boot/dts/pxa910.dtsi b/arch/arm/boot/dts/pxa910.dtsi
index 0247c62..b5594a0 100644
--- a/arch/arm/boot/dts/pxa910.dtsi
+++ b/arch/arm/boot/dts/pxa910.dtsi
@@ -31,58 +31,59 @@
};
axi@d4200000 { /* AXI */
- compatible = "mrvl,axi-bus", "simple-bus";
+ compatible = "marvell,axi-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4200000 0x00200000>;
ranges;
intc: interrupt-controller@d4282000 {
- compatible = "mrvl,mmp-intc";
+ compatible = "marvell,mmp-intc";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0xd4282000 0x1000>;
- mrvl,intc-nr-irqs = <64>;
+ marvell,intc-nr-irqs = <64>;
+
};
};
apb@d4000000 { /* APB */
- compatible = "mrvl,apb-bus", "simple-bus";
+ compatible = "marvell,apb-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4000000 0x00200000>;
ranges;
timer0: timer@d4014000 {
- compatible = "mrvl,mmp-timer";
+ compatible = "marvell,mmp-timer";
reg = <0xd4014000 0x100>;
interrupts = <13>;
};
timer1: timer@d4016000 {
- compatible = "mrvl,mmp-timer";
+ compatible = "marvell,mmp-timer";
reg = <0xd4016000 0x100>;
interrupts = <29>;
status = "disabled";
};
uart1: uart@d4017000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4017000 0x1000>;
interrupts = <27>;
status = "disabled";
};
uart2: uart@d4018000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4018000 0x1000>;
interrupts = <28>;
status = "disabled";
};
uart3: uart@d4036000 {
- compatible = "mrvl,mmp-uart";
+ compatible = "marvell,mmp-uart";
reg = <0xd4036000 0x1000>;
interrupts = <59>;
status = "disabled";
@@ -119,17 +120,17 @@
};
twsi1: i2c@d4011000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xd4011000 0x1000>;
interrupts = <7>;
- mrvl,i2c-fast-mode;
+ marvell,i2c-fast-mode;
status = "disabled";
};
twsi2: i2c@d4037000 {
- compatible = "mrvl,mmp-twsi";
+ compatible = "marvell,mmp-twsi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xd4037000 0x1000>;
@@ -138,7 +139,7 @@
};
rtc: rtc@d4010000 {
- compatible = "mrvl,mmp-rtc";
+ compatible = "marvell,mmp-rtc";
reg = <0xd4010000 0x1000>;
interrupts = <5 6>;
interrupt-names = "rtc 1Hz", "rtc alarm";
diff --git a/arch/arm/mach-mmp/irq.c b/arch/arm/mach-mmp/irq.c
index 3c71246..a7a53611 100644
--- a/arch/arm/mach-mmp/irq.c
+++ b/arch/arm/mach-mmp/irq.c
@@ -327,13 +327,13 @@ void __init mmp2_init_icu(void)
#ifdef CONFIG_OF
static const struct of_device_id intc_ids[] __initconst = {
- { .compatible = "mrvl,mmp-intc", .data = &mmp_conf },
- { .compatible = "mrvl,mmp2-intc", .data = &mmp2_conf },
+ { .compatible = "marvell,mmp-intc", .data = &mmp_conf },
+ { .compatible = "marvell,mmp2-intc", .data = &mmp2_conf },
{}
};
static const struct of_device_id mmp_mux_irq_match[] __initconst = {
- { .compatible = "mrvl,mmp2-mux-intc" },
+ { .compatible = "marvell,mmp2-mux-intc" },
{}
};
@@ -352,10 +352,10 @@ int __init mmp2_mux_init(struct device_node *parent)
if (!node)
break;
of_id = of_match_node(&mmp_mux_irq_match[0], node);
- ret = of_property_read_u32(node, "mrvl,intc-nr-irqs",
+ ret = of_property_read_u32(node, "marvell,intc-nr-irqs",
&nr_irqs);
if (ret) {
- pr_err("Not found mrvl,intc-nr-irqs property\n");
+ pr_err("Not found marvell,intc-nr-irqs property\n");
ret = -EINVAL;
goto err;
}
@@ -385,7 +385,7 @@ int __init mmp2_mux_init(struct device_node *parent)
ret = irq_base;
goto err;
}
- if (!of_property_read_u32(node, "mrvl,clr-mfp-irq",
+ if (!of_property_read_u32(node, "marvell,clr-mfp-irq",
&mfp_irq)) {
icu_data[i].clr_mfp_irq_base = irq_base;
icu_data[i].clr_mfp_hwirq = mfp_irq;
@@ -424,9 +424,9 @@ void __init mmp_dt_irq_init(void)
of_id = of_match_node(intc_ids, node);
conf = of_id->data;
- ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", &nr_irqs);
+ ret = of_property_read_u32(node, "marvell,intc-nr-irqs", &nr_irqs);
if (ret) {
- pr_err("Not found mrvl,intc-nr-irqs property\n");
+ pr_err("Not found marvell,intc-nr-irqs property\n");
return;
}
diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
index b37915d..62c5adb 100644
--- a/arch/arm/mach-mmp/mmp-dt.c
+++ b/arch/arm/mach-mmp/mmp-dt.c
@@ -23,24 +23,24 @@ extern void __init mmp_dt_irq_init(void);
extern void __init mmp_dt_init_timer(void);
static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
@@ -57,8 +57,8 @@ static void __init pxa910_dt_init(void)
}
static const char *mmp_dt_board_compat[] __initdata = {
- "mrvl,pxa168-aspenite",
- "mrvl,pxa910-dkb",
+ "marvell,pxa168-aspenite",
+ "marvell,pxa910-dkb",
NULL,
};
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
index 4ac2567..6523ecf 100644
--- a/arch/arm/mach-mmp/mmp2-dt.c
+++ b/arch/arm/mach-mmp/mmp2-dt.c
@@ -25,14 +25,14 @@ extern void __init mmp_dt_irq_init(void);
extern void __init mmp_dt_init_timer(void);
static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4030000, "pxa2xx-uart.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.1", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.2", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4030000, "pxa2xx-uart.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.1", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.2", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
- OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
+ OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
@@ -43,7 +43,7 @@ static void __init mmp2_dt_init(void)
}
static const char *mmp2_dt_board_compat[] __initdata = {
- "mrvl,mmp2-brownstone",
+ "marvell,mmp2-brownstone",
NULL,
};
diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
index 7ac41e8..67e7d5c 100644
--- a/arch/arm/mach-mmp/time.c
+++ b/arch/arm/mach-mmp/time.c
@@ -208,7 +208,7 @@ void __init timer_init(int irq)
#ifdef CONFIG_OF
static struct of_device_id mmp_timer_dt_ids[] = {
- { .compatible = "mrvl,mmp-timer", },
+ { .compatible = "marvell,mmp-timer", },
{}
};
diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
index 3835979..b679367 100644
--- a/arch/arm/mach-pxa/pxa-dt.c
+++ b/arch/arm/mach-pxa/pxa-dt.c
@@ -23,15 +23,15 @@
extern void __init pxa3xx_dt_init_irq(void);
static const struct of_dev_auxdata pxa3xx_auxdata_lookup[] __initconst = {
- OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40100000, "pxa2xx-uart.0", NULL),
- OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40200000, "pxa2xx-uart.1", NULL),
- OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40700000, "pxa2xx-uart.2", NULL),
- OF_DEV_AUXDATA("mrvl,pxa-uart", 0x41600000, "pxa2xx-uart.3", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-uart", 0x40100000, "pxa2xx-uart.0", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-uart", 0x40200000, "pxa2xx-uart.1", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-uart", 0x40700000, "pxa2xx-uart.2", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-uart", 0x41600000, "pxa2xx-uart.3", NULL),
OF_DEV_AUXDATA("marvell,pxa-mmc", 0x41100000, "pxa2xx-mci.0", NULL),
- OF_DEV_AUXDATA("mrvl,pxa-gpio", 0x40e00000, "pxa-gpio", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-gpio", 0x40e00000, "pxa-gpio", NULL),
OF_DEV_AUXDATA("marvell,pxa-ohci", 0x4c000000, "pxa27x-ohci", NULL),
- OF_DEV_AUXDATA("mrvl,pxa-i2c", 0x40301680, "pxa2xx-i2c.0", NULL),
- OF_DEV_AUXDATA("mrvl,pwri2c", 0x40f500c0, "pxa3xx-i2c.1", NULL),
+ OF_DEV_AUXDATA("marvell,pxa-i2c", 0x40301680, "pxa2xx-i2c.0", NULL),
+ OF_DEV_AUXDATA("marvell,pwri2c", 0x40f500c0, "pxa3xx-i2c.1", NULL),
OF_DEV_AUXDATA("marvell,pxa3xx-nand", 0x43100000, "pxa3xx-nand", NULL),
{}
};
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index fbafed2..6f2b17d 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -1040,9 +1040,9 @@ static const struct i2c_algorithm i2c_pxa_pio_algorithm = {
};
static struct of_device_id i2c_pxa_dt_ids[] = {
- { .compatible = "mrvl,pxa-i2c", .data = (void *)REGS_PXA2XX },
- { .compatible = "mrvl,pwri2c", .data = (void *)REGS_PXA3XX },
- { .compatible = "mrvl,mmp-twsi", .data = (void *)REGS_PXA2XX },
+ { .compatible = "marvell,pxa-i2c", .data = (void *)REGS_PXA2XX },
+ { .compatible = "marvell,pwri2c", .data = (void *)REGS_PXA3XX },
+ { .compatible = "marvell,mmp-twsi", .data = (void *)REGS_PXA2XX },
{}
};
MODULE_DEVICE_TABLE(of, i2c_pxa_dt_ids);
@@ -1060,9 +1060,9 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c,
/* For device tree we always use the dynamic or alias-assigned ID */
i2c->adap.nr = -1;
- if (of_get_property(np, "mrvl,i2c-polling", NULL))
+ if (of_get_property(np, "marvell,i2c-polling", NULL))
i2c->use_pio = 1;
- if (of_get_property(np, "mrvl,i2c-fast-mode", NULL))
+ if (of_get_property(np, "marvell,i2c-fast-mode", NULL))
i2c->fast_mode = 1;
*i2c_types = (u32)(of_id->data);
return 0;
diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c
index 6a3f702..1dd6500 100644
--- a/drivers/mmc/host/sdhci-pxav2.c
+++ b/drivers/mmc/host/sdhci-pxav2.c
@@ -120,7 +120,7 @@ static const struct sdhci_ops pxav2_sdhci_ops = {
#ifdef CONFIG_OF
static const struct of_device_id sdhci_pxav2_of_match[] = {
{
- .compatible = "mrvl,pxav2-mmc",
+ .compatible = "marvell,pxav2-mmc",
},
{},
};
@@ -144,7 +144,7 @@ static struct sdhci_pxa_platdata *pxav2_get_mmc_pdata(struct device *dev)
if (bus_width == 8)
pdata->flags |= PXA_FLAG_SD_8_BIT_CAPABLE_SLOT;
- of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
+ of_property_read_u32(np, "marvell,clk-delay-cycles", &clk_delay_cycles);
if (clk_delay_cycles > 0) {
pdata->clk_delay_sel = 1;
pdata->clk_delay_cycles = clk_delay_cycles;
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
index 1ae358e..a88974b 100644
--- a/drivers/mmc/host/sdhci-pxav3.c
+++ b/drivers/mmc/host/sdhci-pxav3.c
@@ -185,7 +185,7 @@ static struct sdhci_pltfm_data sdhci_pxav3_pdata = {
#ifdef CONFIG_OF
static const struct of_device_id sdhci_pxav3_of_match[] = {
{
- .compatible = "mrvl,pxav3-mmc",
+ .compatible = "marvell,pxav3-mmc",
},
{},
};
@@ -201,7 +201,7 @@ static struct sdhci_pxa_platdata *pxav3_get_mmc_pdata(struct device *dev)
if (!pdata)
return NULL;
- of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
+ of_property_read_u32(np, "marvell,clk-delay-cycles", &clk_delay_cycles);
if (clk_delay_cycles > 0)
pdata->clk_delay_cycles = clk_delay_cycles;
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 0f7adeb..307dd37 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -339,8 +339,8 @@ static SIMPLE_DEV_PM_OPS(sa1100_rtc_pm_ops, sa1100_rtc_suspend,
#ifdef CONFIG_OF
static struct of_device_id sa1100_rtc_dt_ids[] = {
- { .compatible = "mrvl,sa1100-rtc", },
- { .compatible = "mrvl,mmp-rtc", },
+ { .compatible = "marvell,sa1100-rtc", },
+ { .compatible = "marvell,mmp-rtc", },
{}
};
MODULE_DEVICE_TABLE(of, sa1100_rtc_dt_ids);
diff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c
index 05f504e..cb1a439 100644
--- a/drivers/tty/serial/pxa.c
+++ b/drivers/tty/serial/pxa.c
@@ -852,8 +852,8 @@ static const struct dev_pm_ops serial_pxa_pm_ops = {
#endif
static struct of_device_id serial_pxa_dt_ids[] = {
- { .compatible = "mrvl,pxa-uart", },
- { .compatible = "mrvl,mmp-uart", },
+ { .compatible = "marvell,pxa-uart", },
+ { .compatible = "marvell,mmp-uart", },
{}
};
MODULE_DEVICE_TABLE(of, serial_pxa_dt_ids);
--
1.7.4.1
Neil,
On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> let's change it.
>
> Signed-off-by: Neil Zhang <[email protected]>
> ---
> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
> arch/arm/mach-mmp/irq.c | 16 +++---
> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
> arch/arm/mach-mmp/time.c | 2 +-
> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
> drivers/i2c/busses/i2c-pxa.c | 10 ++--
> drivers/mmc/host/sdhci-pxav2.c | 4 +-
> drivers/mmc/host/sdhci-pxav3.c | 4 +-
> drivers/rtc/rtc-sa1100.c | 4 +-
> drivers/tty/serial/pxa.c | 4 +-
> 25 files changed, 144 insertions(+), 143 deletions(-)
I agree with the need to change, however, this has been in the binding
documentation since v3.5. I wish we had caught this when we decided
against using stock ticker symbols (not all stock markets use
alphabetical abbreviated names, not all companies are listed on any
stock exchange).
To do this properly, the drivers are going to have to be compatible with
the old and the new names, and the binding docs updated to reflect the
legacy name and the preferred name.
thx,
Jason.
> diff --git a/Documentation/devicetree/bindings/arm/mrvl/intc.txt b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> index 8b53273..ad27548 100644
> --- a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> +++ b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> @@ -1,8 +1,8 @@
> * Marvell MMP Interrupt controller
>
> Required properties:
> -- compatible : Should be "mrvl,mmp-intc", "mrvl,mmp2-intc" or
> - "mrvl,mmp2-mux-intc"
> +- compatible : Should be "marvell,mmp-intc", "marvell,mmp2-intc" or
> + "marvell,mmp2-mux-intc"
> - reg : Address and length of the register set of the interrupt controller.
> If the interrupt controller is intc, address and length means the range
> of the whold interrupt controller. If the interrupt controller is mux-intc,
> @@ -15,28 +15,28 @@ Required properties:
> - interrupt-controller : Identifies the node as an interrupt controller.
> - #interrupt-cells : Specifies the number of cells needed to encode an
> interrupt source.
> -- mrvl,intc-nr-irqs : Specifies the number of interrupts in the interrupt
> +- marvell,intc-nr-irqs : Specifies the number of interrupts in the interrupt
> controller.
> -- mrvl,clr-mfp-irq : Specifies the interrupt that needs to clear MFP edge
> +- marvell,clr-mfp-irq : Specifies the interrupt that needs to clear MFP edge
> detection first.
>
> Example:
> intc: interrupt-controller@d4282000 {
> - compatible = "mrvl,mmp2-intc";
> + compatible = "marvell,mmp2-intc";
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0xd4282000 0x1000>;
> - mrvl,intc-nr-irqs = <64>;
> + marvell,intc-nr-irqs = <64>;
> };
>
> intcmux4@d4282150 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <4>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x150 0x4>, <0x168 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <2>;
> + marvell,intc-nr-irqs = <2>;
> };
>
> * Marvell Orion Interrupt controller
> diff --git a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> index 117d741..87f1d42 100644
> --- a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> +++ b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> @@ -3,12 +3,12 @@ Marvell Platforms Device Tree Bindings
>
> PXA168 Aspenite Board
> Required root node properties:
> - - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
> + - compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
>
> PXA910 DKB Board
> Required root node properties:
> - - compatible = "mrvl,pxa910-dkb";
> + - compatible = "marvell,pxa910-dkb";
>
> MMP2 Brownstone Board
> Required root node properties:
> - - compatible = "mrvl,mmp2-brownstone";
> + - compatible = "marvell,mmp2-brownstone";
> diff --git a/Documentation/devicetree/bindings/arm/mrvl/timer.txt b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> index 9a6e251..1304526 100644
> --- a/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> +++ b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> @@ -1,13 +1,13 @@
> * Marvell MMP Timer controller
>
> Required properties:
> -- compatible : Should be "mrvl,mmp-timer".
> +- compatible : Should be "marvell,mmp-timer".
> - reg : Address and length of the register set of timer controller.
> - interrupts : Should be the interrupt number.
>
> Example:
> timer0: timer@d4014000 {
> - compatible = "mrvl,mmp-timer";
> + compatible = "marvell,mmp-timer";
> reg = <0xd4014000 0x100>;
> interrupts = <13>;
> };
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> index 12b78ac..34fdf5d 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> +++ b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> @@ -3,9 +3,9 @@
> Required properties :
>
> - reg : Offset and length of the register set for the device
> - - compatible : should be "mrvl,mmp-twsi" where mmp is the name of a
> + - compatible : should be "marvell,mmp-twsi" where mmp is the name of a
> compatible processor, e.g. pxa168, pxa910, mmp2, mmp3.
> - For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required
> + For the pxa2xx/pxa3xx, an additional node "marvell,pxa-i2c" is required
> as shown in the example below.
>
> Recommended properties :
> @@ -14,20 +14,20 @@ Recommended properties :
> - interrupt-parent : the phandle for the interrupt controller that
> services interrupts for this device. If the parent is the default
> interrupt controller in device tree, it could be ignored.
> - - mrvl,i2c-polling : Disable interrupt of i2c controller. Polling
> + - marvell,i2c-polling : Disable interrupt of i2c controller. Polling
> status register of i2c controller instead.
> - - mrvl,i2c-fast-mode : Enable fast mode of i2c controller.
> + - marvell,i2c-fast-mode : Enable fast mode of i2c controller.
>
> Examples:
> twsi1: i2c@d4011000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4011000 0x1000>;
> interrupts = <7>;
> - mrvl,i2c-fast-mode;
> + marvell,i2c-fast-mode;
> };
>
> twsi2: i2c@d4025000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4025000 0x1000>;
> interrupts = <58>;
> };
> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> index dbe98a3..d603a3e 100644
> --- a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> +++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> @@ -4,18 +4,18 @@ This file documents differences between the core properties in mmc.txt
> and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers.
>
> Required properties:
> -- compatible: Should be "mrvl,pxav2-mmc" or "mrvl,pxav3-mmc".
> +- compatible: Should be "marvell,pxav2-mmc" or "marvell,pxav3-mmc".
>
> Optional properties:
> -- mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning.
> +- marvell,clk-delay-cycles: Specify a number of cycles to delay for tuning.
>
> Example:
>
> sdhci@d4280800 {
> - compatible = "mrvl,pxav3-mmc";
> + compatible = "marvell,pxav3-mmc";
> reg = <0xd4280800 0x800>;
> bus-width = <8>;
> interrupts = <27>;
> non-removable;
> - mrvl,clk-delay-cycles = <31>;
> + marvell,clk-delay-cycles = <31>;
> };
> diff --git a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> index 0cda19a..886fe15 100644
> --- a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> +++ b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> @@ -1,7 +1,7 @@
> * Marvell Real Time Clock controller
>
> Required properties:
> -- compatible: should be "mrvl,sa1100-rtc"
> +- compatible: should be "marvell,sa1100-rtc"
> - reg: physical base address of the controller and length of memory mapped
> region.
> - interrupts: Should be two. The first interrupt number is the rtc alarm
> @@ -10,7 +10,7 @@ Required properties:
>
> Example:
> rtc: rtc@d4010000 {
> - compatible = "mrvl,mmp-rtc";
> + compatible = "marvell,mmp-rtc";
> reg = <0xd4010000 0x1000>;
> interrupts = <5>, <6>;
> interrupt-name = "rtc 1Hz", "rtc alarm";
> diff --git a/Documentation/devicetree/bindings/serial/mrvl-serial.txt b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> index d744340..659d35e 100644
> --- a/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> +++ b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> @@ -1,4 +1,4 @@
> PXA UART controller
>
> Required properties:
> -- compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart".
> +- compatible : should be "marvell,mmp-uart" or "marvell,pxa-uart".
> diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts b/arch/arm/boot/dts/mmp2-brownstone.dts
> index 7f70a39..26abfde 100644
> --- a/arch/arm/boot/dts/mmp2-brownstone.dts
> +++ b/arch/arm/boot/dts/mmp2-brownstone.dts
> @@ -12,7 +12,7 @@
>
> / {
> model = "Marvell MMP2 Brownstone Development Board";
> - compatible = "mrvl,mmp2-brownstone", "mrvl,mmp2";
> + compatible = "marvell,mmp2-brownstone", "marvell,mmp2";
>
> chosen {
> bootargs = "console=ttyS2,38400 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
> index 4e8b08c..ac13654 100644
> --- a/arch/arm/boot/dts/mmp2.dtsi
> +++ b/arch/arm/boot/dts/mmp2.dtsi
> @@ -32,128 +32,128 @@
> };
>
> axi@d4200000 { /* AXI */
> - compatible = "mrvl,axi-bus", "simple-bus";
> + compatible = "marvell,axi-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4200000 0x00200000>;
> ranges;
>
> intc: interrupt-controller@d4282000 {
> - compatible = "mrvl,mmp2-intc";
> + compatible = "marvell,mmp2-intc";
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0xd4282000 0x1000>;
> - mrvl,intc-nr-irqs = <64>;
> + marvell,intc-nr-irqs = <64>;
> };
>
> intcmux4: interrupt-controller@d4282150 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <4>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x150 0x4>, <0x168 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <2>;
> + marvell,intc-nr-irqs = <2>;
> };
>
> intcmux5: interrupt-controller@d4282154 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <5>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x154 0x4>, <0x16c 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <2>;
> - mrvl,clr-mfp-irq = <1>;
> + marvell,intc-nr-irqs = <2>;
> + marvell,clr-mfp-irq = <1>;
> };
>
> intcmux9: interrupt-controller@d4282180 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <9>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x180 0x4>, <0x17c 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <3>;
> + marvell,intc-nr-irqs = <3>;
> };
>
> intcmux17: interrupt-controller@d4282158 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <17>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x158 0x4>, <0x170 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <5>;
> + marvell,intc-nr-irqs = <5>;
> };
>
> intcmux35: interrupt-controller@d428215c {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <35>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x15c 0x4>, <0x174 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <15>;
> + marvell,intc-nr-irqs = <15>;
> };
>
> intcmux51: interrupt-controller@d4282160 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <51>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x160 0x4>, <0x178 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <2>;
> + marvell,intc-nr-irqs = <2>;
> };
>
> intcmux55: interrupt-controller@d4282188 {
> - compatible = "mrvl,mmp2-mux-intc";
> + compatible = "marvell,mmp2-mux-intc";
> interrupts = <55>;
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0x188 0x4>, <0x184 0x4>;
> reg-names = "mux status", "mux mask";
> - mrvl,intc-nr-irqs = <2>;
> + marvell,intc-nr-irqs = <2>;
> };
> };
>
> apb@d4000000 { /* APB */
> - compatible = "mrvl,apb-bus", "simple-bus";
> + compatible = "marvell,apb-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4000000 0x00200000>;
> ranges;
>
> timer0: timer@d4014000 {
> - compatible = "mrvl,mmp-timer";
> + compatible = "marvell,mmp-timer";
> reg = <0xd4014000 0x100>;
> interrupts = <13>;
> };
>
> uart1: uart@d4030000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4030000 0x1000>;
> interrupts = <27>;
> status = "disabled";
> };
>
> uart2: uart@d4017000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4017000 0x1000>;
> interrupts = <28>;
> status = "disabled";
> };
>
> uart3: uart@d4018000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4018000 0x1000>;
> interrupts = <24>;
> status = "disabled";
> };
>
> uart4: uart@d4016000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4016000 0x1000>;
> interrupts = <46>;
> status = "disabled";
> @@ -198,24 +198,24 @@
> };
>
> twsi1: i2c@d4011000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4011000 0x1000>;
> interrupts = <7>;
> #address-cells = <1>;
> #size-cells = <0>;
> - mrvl,i2c-fast-mode;
> + marvell,i2c-fast-mode;
> status = "disabled";
> };
>
> twsi2: i2c@d4025000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4025000 0x1000>;
> interrupts = <58>;
> status = "disabled";
> };
>
> rtc: rtc@d4010000 {
> - compatible = "mrvl,mmp-rtc";
> + compatible = "marvell,mmp-rtc";
> reg = <0xd4010000 0x1000>;
> interrupts = <1 0>;
> interrupt-names = "rtc 1Hz", "rtc alarm";
> diff --git a/arch/arm/boot/dts/pxa168-aspenite.dts b/arch/arm/boot/dts/pxa168-aspenite.dts
> index e762fac..1e2ac17 100644
> --- a/arch/arm/boot/dts/pxa168-aspenite.dts
> +++ b/arch/arm/boot/dts/pxa168-aspenite.dts
> @@ -12,7 +12,7 @@
>
> / {
> model = "Marvell PXA168 Aspenite Development Board";
> - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
> + compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
>
> chosen {
> bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> diff --git a/arch/arm/boot/dts/pxa168.dtsi b/arch/arm/boot/dts/pxa168.dtsi
> index 975dad2..c08f5fc 100644
> --- a/arch/arm/boot/dts/pxa168.dtsi
> +++ b/arch/arm/boot/dts/pxa168.dtsi
> @@ -26,51 +26,51 @@
> ranges;
>
> axi@d4200000 { /* AXI */
> - compatible = "mrvl,axi-bus", "simple-bus";
> + compatible = "marvell,axi-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4200000 0x00200000>;
> ranges;
>
> intc: interrupt-controller@d4282000 {
> - compatible = "mrvl,mmp-intc";
> + compatible = "marvell,mmp-intc";
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0xd4282000 0x1000>;
> - mrvl,intc-nr-irqs = <64>;
> + marvell,intc-nr-irqs = <64>;
> };
>
> };
>
> apb@d4000000 { /* APB */
> - compatible = "mrvl,apb-bus", "simple-bus";
> + compatible = "marvell,apb-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4000000 0x00200000>;
> ranges;
>
> timer0: timer@d4014000 {
> - compatible = "mrvl,mmp-timer";
> + compatible = "marvell,mmp-timer";
> reg = <0xd4014000 0x100>;
> interrupts = <13>;
> };
>
> uart1: uart@d4017000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4017000 0x1000>;
> interrupts = <27>;
> status = "disabled";
> };
>
> uart2: uart@d4018000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4018000 0x1000>;
> interrupts = <28>;
> status = "disabled";
> };
>
> uart3: uart@d4026000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4026000 0x1000>;
> interrupts = <29>;
> status = "disabled";
> @@ -107,22 +107,22 @@
> };
>
> twsi1: i2c@d4011000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4011000 0x1000>;
> interrupts = <7>;
> - mrvl,i2c-fast-mode;
> + marvell,i2c-fast-mode;
> status = "disabled";
> };
>
> twsi2: i2c@d4025000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> reg = <0xd4025000 0x1000>;
> interrupts = <58>;
> status = "disabled";
> };
>
> rtc: rtc@d4010000 {
> - compatible = "mrvl,mmp-rtc";
> + compatible = "marvell,mmp-rtc";
> reg = <0xd4010000 0x1000>;
> interrupts = <5 6>;
> interrupt-names = "rtc 1Hz", "rtc alarm";
> diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
> index a5e90f0..c426b1e 100644
> --- a/arch/arm/boot/dts/pxa2xx.dtsi
> +++ b/arch/arm/boot/dts/pxa2xx.dtsi
> @@ -47,7 +47,7 @@
> };
>
> gpio: gpio@40e00000 {
> - compatible = "mrvl,pxa-gpio";
> + compatible = "marvell,pxa-gpio";
> #address-cells = <0x1>;
> #size-cells = <0x1>;
> reg = <0x40e00000 0x10000>;
> @@ -76,35 +76,35 @@
> };
>
> ffuart: uart@40100000 {
> - compatible = "mrvl,pxa-uart";
> + compatible = "marvell,pxa-uart";
> reg = <0x40100000 0x30>;
> interrupts = <22>;
> status = "disabled";
> };
>
> btuart: uart@40200000 {
> - compatible = "mrvl,pxa-uart";
> + compatible = "marvell,pxa-uart";
> reg = <0x40200000 0x30>;
> interrupts = <21>;
> status = "disabled";
> };
>
> stuart: uart@40700000 {
> - compatible = "mrvl,pxa-uart";
> + compatible = "marvell,pxa-uart";
> reg = <0x40700000 0x30>;
> interrupts = <20>;
> status = "disabled";
> };
>
> hwuart: uart@41100000 {
> - compatible = "mrvl,pxa-uart";
> + compatible = "marvell,pxa-uart";
> reg = <0x41100000 0x30>;
> interrupts = <7>;
> status = "disabled";
> };
>
> pxai2c1: i2c@40301680 {
> - compatible = "mrvl,pxa-i2c";
> + compatible = "marvell,pxa-i2c";
> reg = <0x40301680 0x30>;
> interrupts = <18>;
> #address-cells = <0x1>;
> @@ -113,14 +113,14 @@
> };
>
> usb0: ohci@4c000000 {
> - compatible = "mrvl,pxa-ohci";
> + compatible = "marvell,pxa-ohci";
> reg = <0x4c000000 0x10000>;
> interrupts = <3>;
> status = "disabled";
> };
>
> mmc0: mmc@41100000 {
> - compatible = "mrvl,pxa-mmc";
> + compatible = "marvell,pxa-mmc";
> reg = <0x41100000 0x1000>;
> interrupts = <23>;
> status = "disabled";
> diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
> index f9d92da..0798031 100644
> --- a/arch/arm/boot/dts/pxa3xx.dtsi
> +++ b/arch/arm/boot/dts/pxa3xx.dtsi
> @@ -7,7 +7,7 @@
>
> pxabus {
> pwri2c: i2c@40f500c0 {
> - compatible = "mrvl,pwri2c";
> + compatible = "marvell,pwri2c";
> reg = <0x40f500c0 0x30>;
> interrupts = <6>;
> #address-cells = <0x1>;
> diff --git a/arch/arm/boot/dts/pxa910-dkb.dts b/arch/arm/boot/dts/pxa910-dkb.dts
> index 595492a..7384254 100644
> --- a/arch/arm/boot/dts/pxa910-dkb.dts
> +++ b/arch/arm/boot/dts/pxa910-dkb.dts
> @@ -12,7 +12,7 @@
>
> / {
> model = "Marvell PXA910 DKB Development Board";
> - compatible = "mrvl,pxa910-dkb", "mrvl,pxa910";
> + compatible = "marvell,pxa910-dkb", "marvell,pxa910";
>
> chosen {
> bootargs = "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> diff --git a/arch/arm/boot/dts/pxa910.dtsi b/arch/arm/boot/dts/pxa910.dtsi
> index 0247c62..b5594a0 100644
> --- a/arch/arm/boot/dts/pxa910.dtsi
> +++ b/arch/arm/boot/dts/pxa910.dtsi
> @@ -31,58 +31,59 @@
> };
>
> axi@d4200000 { /* AXI */
> - compatible = "mrvl,axi-bus", "simple-bus";
> + compatible = "marvell,axi-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4200000 0x00200000>;
> ranges;
>
> intc: interrupt-controller@d4282000 {
> - compatible = "mrvl,mmp-intc";
> + compatible = "marvell,mmp-intc";
> interrupt-controller;
> #interrupt-cells = <1>;
> reg = <0xd4282000 0x1000>;
> - mrvl,intc-nr-irqs = <64>;
> + marvell,intc-nr-irqs = <64>;
> +
> };
>
> };
>
> apb@d4000000 { /* APB */
> - compatible = "mrvl,apb-bus", "simple-bus";
> + compatible = "marvell,apb-bus", "simple-bus";
> #address-cells = <1>;
> #size-cells = <1>;
> reg = <0xd4000000 0x00200000>;
> ranges;
>
> timer0: timer@d4014000 {
> - compatible = "mrvl,mmp-timer";
> + compatible = "marvell,mmp-timer";
> reg = <0xd4014000 0x100>;
> interrupts = <13>;
> };
>
> timer1: timer@d4016000 {
> - compatible = "mrvl,mmp-timer";
> + compatible = "marvell,mmp-timer";
> reg = <0xd4016000 0x100>;
> interrupts = <29>;
> status = "disabled";
> };
>
> uart1: uart@d4017000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4017000 0x1000>;
> interrupts = <27>;
> status = "disabled";
> };
>
> uart2: uart@d4018000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4018000 0x1000>;
> interrupts = <28>;
> status = "disabled";
> };
>
> uart3: uart@d4036000 {
> - compatible = "mrvl,mmp-uart";
> + compatible = "marvell,mmp-uart";
> reg = <0xd4036000 0x1000>;
> interrupts = <59>;
> status = "disabled";
> @@ -119,17 +120,17 @@
> };
>
> twsi1: i2c@d4011000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0xd4011000 0x1000>;
> interrupts = <7>;
> - mrvl,i2c-fast-mode;
> + marvell,i2c-fast-mode;
> status = "disabled";
> };
>
> twsi2: i2c@d4037000 {
> - compatible = "mrvl,mmp-twsi";
> + compatible = "marvell,mmp-twsi";
> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0xd4037000 0x1000>;
> @@ -138,7 +139,7 @@
> };
>
> rtc: rtc@d4010000 {
> - compatible = "mrvl,mmp-rtc";
> + compatible = "marvell,mmp-rtc";
> reg = <0xd4010000 0x1000>;
> interrupts = <5 6>;
> interrupt-names = "rtc 1Hz", "rtc alarm";
> diff --git a/arch/arm/mach-mmp/irq.c b/arch/arm/mach-mmp/irq.c
> index 3c71246..a7a53611 100644
> --- a/arch/arm/mach-mmp/irq.c
> +++ b/arch/arm/mach-mmp/irq.c
> @@ -327,13 +327,13 @@ void __init mmp2_init_icu(void)
>
> #ifdef CONFIG_OF
> static const struct of_device_id intc_ids[] __initconst = {
> - { .compatible = "mrvl,mmp-intc", .data = &mmp_conf },
> - { .compatible = "mrvl,mmp2-intc", .data = &mmp2_conf },
> + { .compatible = "marvell,mmp-intc", .data = &mmp_conf },
> + { .compatible = "marvell,mmp2-intc", .data = &mmp2_conf },
> {}
> };
>
> static const struct of_device_id mmp_mux_irq_match[] __initconst = {
> - { .compatible = "mrvl,mmp2-mux-intc" },
> + { .compatible = "marvell,mmp2-mux-intc" },
> {}
> };
>
> @@ -352,10 +352,10 @@ int __init mmp2_mux_init(struct device_node *parent)
> if (!node)
> break;
> of_id = of_match_node(&mmp_mux_irq_match[0], node);
> - ret = of_property_read_u32(node, "mrvl,intc-nr-irqs",
> + ret = of_property_read_u32(node, "marvell,intc-nr-irqs",
> &nr_irqs);
> if (ret) {
> - pr_err("Not found mrvl,intc-nr-irqs property\n");
> + pr_err("Not found marvell,intc-nr-irqs property\n");
> ret = -EINVAL;
> goto err;
> }
> @@ -385,7 +385,7 @@ int __init mmp2_mux_init(struct device_node *parent)
> ret = irq_base;
> goto err;
> }
> - if (!of_property_read_u32(node, "mrvl,clr-mfp-irq",
> + if (!of_property_read_u32(node, "marvell,clr-mfp-irq",
> &mfp_irq)) {
> icu_data[i].clr_mfp_irq_base = irq_base;
> icu_data[i].clr_mfp_hwirq = mfp_irq;
> @@ -424,9 +424,9 @@ void __init mmp_dt_irq_init(void)
> of_id = of_match_node(intc_ids, node);
> conf = of_id->data;
>
> - ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", &nr_irqs);
> + ret = of_property_read_u32(node, "marvell,intc-nr-irqs", &nr_irqs);
> if (ret) {
> - pr_err("Not found mrvl,intc-nr-irqs property\n");
> + pr_err("Not found marvell,intc-nr-irqs property\n");
> return;
> }
>
> diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
> index b37915d..62c5adb 100644
> --- a/arch/arm/mach-mmp/mmp-dt.c
> +++ b/arch/arm/mach-mmp/mmp-dt.c
> @@ -23,24 +23,24 @@ extern void __init mmp_dt_irq_init(void);
> extern void __init mmp_dt_init_timer(void);
>
> static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
> OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> {}
> };
>
> static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
> OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> {}
> };
>
> @@ -57,8 +57,8 @@ static void __init pxa910_dt_init(void)
> }
>
> static const char *mmp_dt_board_compat[] __initdata = {
> - "mrvl,pxa168-aspenite",
> - "mrvl,pxa910-dkb",
> + "marvell,pxa168-aspenite",
> + "marvell,pxa910-dkb",
> NULL,
> };
>
> diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
> index 4ac2567..6523ecf 100644
> --- a/arch/arm/mach-mmp/mmp2-dt.c
> +++ b/arch/arm/mach-mmp/mmp2-dt.c
> @@ -25,14 +25,14 @@ extern void __init mmp_dt_irq_init(void);
> extern void __init mmp_dt_init_timer(void);
>
> static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4030000, "pxa2xx-uart.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.1", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.2", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4030000, "pxa2xx-uart.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.1", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.2", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
> OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
> - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> {}
> };
>
> @@ -43,7 +43,7 @@ static void __init mmp2_dt_init(void)
> }
>
> static const char *mmp2_dt_board_compat[] __initdata = {
> - "mrvl,mmp2-brownstone",
> + "marvell,mmp2-brownstone",
> NULL,
> };
>
> diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
> index 7ac41e8..67e7d5c 100644
> --- a/arch/arm/mach-mmp/time.c
> +++ b/arch/arm/mach-mmp/time.c
> @@ -208,7 +208,7 @@ void __init timer_init(int irq)
>
> #ifdef CONFIG_OF
> static struct of_device_id mmp_timer_dt_ids[] = {
> - { .compatible = "mrvl,mmp-timer", },
> + { .compatible = "marvell,mmp-timer", },
> {}
> };
>
> diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
> index 3835979..b679367 100644
> --- a/arch/arm/mach-pxa/pxa-dt.c
> +++ b/arch/arm/mach-pxa/pxa-dt.c
> @@ -23,15 +23,15 @@
> extern void __init pxa3xx_dt_init_irq(void);
>
> static const struct of_dev_auxdata pxa3xx_auxdata_lookup[] __initconst = {
> - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40100000, "pxa2xx-uart.0", NULL),
> - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40200000, "pxa2xx-uart.1", NULL),
> - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40700000, "pxa2xx-uart.2", NULL),
> - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x41600000, "pxa2xx-uart.3", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40100000, "pxa2xx-uart.0", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40200000, "pxa2xx-uart.1", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40700000, "pxa2xx-uart.2", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-uart", 0x41600000, "pxa2xx-uart.3", NULL),
> OF_DEV_AUXDATA("marvell,pxa-mmc", 0x41100000, "pxa2xx-mci.0", NULL),
> - OF_DEV_AUXDATA("mrvl,pxa-gpio", 0x40e00000, "pxa-gpio", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-gpio", 0x40e00000, "pxa-gpio", NULL),
> OF_DEV_AUXDATA("marvell,pxa-ohci", 0x4c000000, "pxa27x-ohci", NULL),
> - OF_DEV_AUXDATA("mrvl,pxa-i2c", 0x40301680, "pxa2xx-i2c.0", NULL),
> - OF_DEV_AUXDATA("mrvl,pwri2c", 0x40f500c0, "pxa3xx-i2c.1", NULL),
> + OF_DEV_AUXDATA("marvell,pxa-i2c", 0x40301680, "pxa2xx-i2c.0", NULL),
> + OF_DEV_AUXDATA("marvell,pwri2c", 0x40f500c0, "pxa3xx-i2c.1", NULL),
> OF_DEV_AUXDATA("marvell,pxa3xx-nand", 0x43100000, "pxa3xx-nand", NULL),
> {}
> };
> diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
> index fbafed2..6f2b17d 100644
> --- a/drivers/i2c/busses/i2c-pxa.c
> +++ b/drivers/i2c/busses/i2c-pxa.c
> @@ -1040,9 +1040,9 @@ static const struct i2c_algorithm i2c_pxa_pio_algorithm = {
> };
>
> static struct of_device_id i2c_pxa_dt_ids[] = {
> - { .compatible = "mrvl,pxa-i2c", .data = (void *)REGS_PXA2XX },
> - { .compatible = "mrvl,pwri2c", .data = (void *)REGS_PXA3XX },
> - { .compatible = "mrvl,mmp-twsi", .data = (void *)REGS_PXA2XX },
> + { .compatible = "marvell,pxa-i2c", .data = (void *)REGS_PXA2XX },
> + { .compatible = "marvell,pwri2c", .data = (void *)REGS_PXA3XX },
> + { .compatible = "marvell,mmp-twsi", .data = (void *)REGS_PXA2XX },
> {}
> };
> MODULE_DEVICE_TABLE(of, i2c_pxa_dt_ids);
> @@ -1060,9 +1060,9 @@ static int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c,
> /* For device tree we always use the dynamic or alias-assigned ID */
> i2c->adap.nr = -1;
>
> - if (of_get_property(np, "mrvl,i2c-polling", NULL))
> + if (of_get_property(np, "marvell,i2c-polling", NULL))
> i2c->use_pio = 1;
> - if (of_get_property(np, "mrvl,i2c-fast-mode", NULL))
> + if (of_get_property(np, "marvell,i2c-fast-mode", NULL))
> i2c->fast_mode = 1;
> *i2c_types = (u32)(of_id->data);
> return 0;
> diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c
> index 6a3f702..1dd6500 100644
> --- a/drivers/mmc/host/sdhci-pxav2.c
> +++ b/drivers/mmc/host/sdhci-pxav2.c
> @@ -120,7 +120,7 @@ static const struct sdhci_ops pxav2_sdhci_ops = {
> #ifdef CONFIG_OF
> static const struct of_device_id sdhci_pxav2_of_match[] = {
> {
> - .compatible = "mrvl,pxav2-mmc",
> + .compatible = "marvell,pxav2-mmc",
> },
> {},
> };
> @@ -144,7 +144,7 @@ static struct sdhci_pxa_platdata *pxav2_get_mmc_pdata(struct device *dev)
> if (bus_width == 8)
> pdata->flags |= PXA_FLAG_SD_8_BIT_CAPABLE_SLOT;
>
> - of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
> + of_property_read_u32(np, "marvell,clk-delay-cycles", &clk_delay_cycles);
> if (clk_delay_cycles > 0) {
> pdata->clk_delay_sel = 1;
> pdata->clk_delay_cycles = clk_delay_cycles;
> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
> index 1ae358e..a88974b 100644
> --- a/drivers/mmc/host/sdhci-pxav3.c
> +++ b/drivers/mmc/host/sdhci-pxav3.c
> @@ -185,7 +185,7 @@ static struct sdhci_pltfm_data sdhci_pxav3_pdata = {
> #ifdef CONFIG_OF
> static const struct of_device_id sdhci_pxav3_of_match[] = {
> {
> - .compatible = "mrvl,pxav3-mmc",
> + .compatible = "marvell,pxav3-mmc",
> },
> {},
> };
> @@ -201,7 +201,7 @@ static struct sdhci_pxa_platdata *pxav3_get_mmc_pdata(struct device *dev)
> if (!pdata)
> return NULL;
>
> - of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
> + of_property_read_u32(np, "marvell,clk-delay-cycles", &clk_delay_cycles);
> if (clk_delay_cycles > 0)
> pdata->clk_delay_cycles = clk_delay_cycles;
>
> diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
> index 0f7adeb..307dd37 100644
> --- a/drivers/rtc/rtc-sa1100.c
> +++ b/drivers/rtc/rtc-sa1100.c
> @@ -339,8 +339,8 @@ static SIMPLE_DEV_PM_OPS(sa1100_rtc_pm_ops, sa1100_rtc_suspend,
>
> #ifdef CONFIG_OF
> static struct of_device_id sa1100_rtc_dt_ids[] = {
> - { .compatible = "mrvl,sa1100-rtc", },
> - { .compatible = "mrvl,mmp-rtc", },
> + { .compatible = "marvell,sa1100-rtc", },
> + { .compatible = "marvell,mmp-rtc", },
> {}
> };
> MODULE_DEVICE_TABLE(of, sa1100_rtc_dt_ids);
> diff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c
> index 05f504e..cb1a439 100644
> --- a/drivers/tty/serial/pxa.c
> +++ b/drivers/tty/serial/pxa.c
> @@ -852,8 +852,8 @@ static const struct dev_pm_ops serial_pxa_pm_ops = {
> #endif
>
> static struct of_device_id serial_pxa_dt_ids[] = {
> - { .compatible = "mrvl,pxa-uart", },
> - { .compatible = "mrvl,mmp-uart", },
> + { .compatible = "marvell,pxa-uart", },
> + { .compatible = "marvell,mmp-uart", },
> {}
> };
> MODULE_DEVICE_TABLE(of, serial_pxa_dt_ids);
> --
> 1.7.4.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Dear Neil Zhang,
On Tue, 9 Jul 2013 14:42:45 +0800, Neil Zhang wrote:
> support CLOCKSOURCE OF DECLARE for mmp timer.
>
> Signed-off-by: Neil Zhang <[email protected]>
> ---
> arch/arm/mach-mmp/mmp-dt.c | 5 ++---
> arch/arm/mach-mmp/mmp2-dt.c | 3 +--
> arch/arm/mach-mmp/time.c | 15 ++-------------
> 3 files changed, 5 insertions(+), 18 deletions(-)
Maybe it would be good to take this opportunity to move
arch/arm/mach-mmp/time.c into drivers/clocksource/.
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
On Tuesday 09 July 2013, Thomas Petazzoni wrote:
> Dear Neil Zhang,
>
> On Tue, 9 Jul 2013 14:42:45 +0800, Neil Zhang wrote:
> > support CLOCKSOURCE OF DECLARE for mmp timer.
> >
> > Signed-off-by: Neil Zhang <[email protected]>
> > ---
> > arch/arm/mach-mmp/mmp-dt.c | 5 ++---
> > arch/arm/mach-mmp/mmp2-dt.c | 3 +--
> > arch/arm/mach-mmp/time.c | 15 ++-------------
> > 3 files changed, 5 insertions(+), 18 deletions(-)
>
> Maybe it would be good to take this opportunity to move
> arch/arm/mach-mmp/time.c into drivers/clocksource/.
+1
Or we might want to have a more coordinated move of all clocksource
drivers in arch/arm to drivers/clocksource now, as we have done for some
other subsystems.
Arnd
On Tuesday 09 July 2013, Neil Zhang wrote:
> + soc {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + interrupt-parent = <&gic>;
> + ranges;
> +
> + gic: interrupt-controller@d1dfe100 {
> + compatible = "arm,cortex-a9-gic";
> + #interrupt-cells = <3>;
> + #address-cells = <1>;
> + interrupt-controller;
> + reg = <0xd1dff000 0x1000>,
> + <0xd1dfe100 0x0100>;
> + };
> +
> + L2: l2-cache-controller@d1dfb000 {
> + compatible = "arm,pl310-cache";
> + reg = <0xd1dfb000 0x1000>;
> + arm,data-latency = <2 1 1>;
> + arm,tag-latency = <2 1 1>;
> + arm,pwr-dynamic-clk-gating;
> + arm,pwr-standby-mode;
> + cache-unified;
> + cache-level = <2>;
> + };
> +
> + local-timer@d1dfe600 {
> + compatible = "arm,cortex-a9-twd-timer";
> + reg = <0xd1dfe600 0x20>;
> + interrupts = <1 13 0x304>;
> + };
> +
> + axi@d4200000 { /* AXI */
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0xd4200000 0xd4200000 0x00200000>;
> +
> + intc: wakeupgen@d4282000 {
> + compatible = "marvell,mmp-intc";
> + reg = <0xd4282000 0x1000>;
> + marvell,intc-wakeup = <0x114 0x3
> + 0x144 0x3>;
> + };
> + };
I am guessing that the structure does not actually reflect the hardware.
Shouldn't AXI be the top-level bus, with the other stuff under it?
> +
> +
> + uart1: uart@d4017000 {
> + compatible = "marvell,mmp-uart";
> + reg = <0xd4017000 0x1000>;
> + interrupts = <0 27 0x4>;
> + status = "disabled";
> + };
The uart node should be called "serial@d4017000" instead of "uart@d4017000".
> diff --git a/arch/arm/mach-mmp/reset.c b/arch/arm/mach-mmp/reset.c
> new file mode 100644
> index 0000000..b90ec54
> --- /dev/null
> +++ b/arch/arm/mach-mmp/reset.c
> @@ -0,0 +1,66 @@
> +/*
> + * linux/arch/arm/mach-mmp/reset.c
I think this could just be part of the smp.c file.
> + *
> + * Author: Neil Zhang <[email protected]>
> + * Copyright: (C) 2012 Marvell International Ltd.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/smp.h>
> +
> +#include <asm/io.h>
> +#include <asm/cacheflush.h>
> +#include <asm/mach/map.h>
> +
> +#include <mach/addr-map.h>
> +
> +#include "reset.h"
> +
> +#define PMU_CC2_AP APMU_REG(0x0100)
> +#define CIU_CA9_WARM_RESET_VECTOR CIU_REG(0x00d8)
You should not hardcode the addresses here, better find them from the device tree.
> +
> +#define CPU_CORE_RST(n) (1 << ((n) * 4 + 16))
> +#define CPU_DBG_RST(n) (1 << ((n) * 4 + 18))
> +#define CPU_WDOG_RST(n) (1 << ((n) * 4 + 19))
This should probably go into a reset controller driver, in drivers/reset/
Arnd
On Wed, Jul 10, 2013 at 5:16 AM, Arnd Bergmann <[email protected]> wrote:
> On Tuesday 09 July 2013, Thomas Petazzoni wrote:
>> Dear Neil Zhang,
>>
>> On Tue, 9 Jul 2013 14:42:45 +0800, Neil Zhang wrote:
>> > support CLOCKSOURCE OF DECLARE for mmp timer.
>> >
>> > Signed-off-by: Neil Zhang <[email protected]>
>> > ---
>> > arch/arm/mach-mmp/mmp-dt.c | 5 ++---
>> > arch/arm/mach-mmp/mmp2-dt.c | 3 +--
>> > arch/arm/mach-mmp/time.c | 15 ++-------------
>> > 3 files changed, 5 insertions(+), 18 deletions(-)
>>
>> Maybe it would be good to take this opportunity to move
>> arch/arm/mach-mmp/time.c into drivers/clocksource/.
>
> +1
>
> Or we might want to have a more coordinated move of all clocksource
> drivers in arch/arm to drivers/clocksource now, as we have done for some
> other subsystems.
>
> Arnd
I already sent some patches on this. But I didn't get response yet. I'll rebase
them and send them again. I hope that they could be merged in this cycle.
Regards
Haojian
Jason,
> -----Original Message-----
> From: Jason Cooper [mailto:[email protected]]
> Sent: 2013??7??9?? 20:49
> To: Neil Zhang
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH V3 1/3] dts: change Marvell prefix to 'marvell'
>
> Neil,
>
> On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> > The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> > let's change it.
> >
> > Signed-off-by: Neil Zhang <[email protected]>
> > ---
> > .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> > .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> > .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> > Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> > .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> > .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> > .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> > arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> > arch/arm/boot/dts/mmp2.dtsi | 56
> ++++++++++----------
> > arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> > arch/arm/boot/dts/pxa168.dtsi | 24
> ++++----
> > arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> > arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> > arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> > arch/arm/boot/dts/pxa910.dtsi | 27
> +++++-----
> > arch/arm/mach-mmp/irq.c | 16
> +++---
> > arch/arm/mach-mmp/mmp-dt.c | 28
> +++++-----
> > arch/arm/mach-mmp/mmp2-dt.c | 16
> +++---
> > arch/arm/mach-mmp/time.c | 2 +-
> > arch/arm/mach-pxa/pxa-dt.c | 14
> +++---
> > drivers/i2c/busses/i2c-pxa.c | 10 ++--
> > drivers/mmc/host/sdhci-pxav2.c | 4 +-
> > drivers/mmc/host/sdhci-pxav3.c | 4 +-
> > drivers/rtc/rtc-sa1100.c | 4 +-
> > drivers/tty/serial/pxa.c | 4 +-
> > 25 files changed, 144 insertions(+), 143 deletions(-)
>
> I agree with the need to change, however, this has been in the binding
> documentation since v3.5. I wish we had caught this when we decided
> against using stock ticker symbols (not all stock markets use alphabetical
> abbreviated names, not all companies are listed on any stock exchange).
>
> To do this properly, the drivers are going to have to be compatible with the
> old and the new names, and the binding docs updated to reflect the legacy
> name and the preferred name.
>
Do you mean it's better to support both legacy and preferred name at the same time?
> thx,
>
> Jason.
>
> > diff --git a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> > b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> > index 8b53273..ad27548 100644
> > --- a/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> > +++ b/Documentation/devicetree/bindings/arm/mrvl/intc.txt
> > @@ -1,8 +1,8 @@
> > * Marvell MMP Interrupt controller
> >
> > Required properties:
> > -- compatible : Should be "mrvl,mmp-intc", "mrvl,mmp2-intc" or
> > - "mrvl,mmp2-mux-intc"
> > +- compatible : Should be "marvell,mmp-intc", "marvell,mmp2-intc" or
> > + "marvell,mmp2-mux-intc"
> > - reg : Address and length of the register set of the interrupt controller.
> > If the interrupt controller is intc, address and length means the range
> > of the whold interrupt controller. If the interrupt controller is
> > mux-intc, @@ -15,28 +15,28 @@ Required properties:
> > - interrupt-controller : Identifies the node as an interrupt controller.
> > - #interrupt-cells : Specifies the number of cells needed to encode an
> > interrupt source.
> > -- mrvl,intc-nr-irqs : Specifies the number of interrupts in the
> > interrupt
> > +- marvell,intc-nr-irqs : Specifies the number of interrupts in the
> > +interrupt
> > controller.
> > -- mrvl,clr-mfp-irq : Specifies the interrupt that needs to clear MFP
> > edge
> > +- marvell,clr-mfp-irq : Specifies the interrupt that needs to clear
> > +MFP edge
> > detection first.
> >
> > Example:
> > intc: interrupt-controller@d4282000 {
> > - compatible = "mrvl,mmp2-intc";
> > + compatible = "marvell,mmp2-intc";
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0xd4282000 0x1000>;
> > - mrvl,intc-nr-irqs = <64>;
> > + marvell,intc-nr-irqs = <64>;
> > };
> >
> > intcmux4@d4282150 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <4>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x150 0x4>, <0x168 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <2>;
> > + marvell,intc-nr-irqs = <2>;
> > };
> >
> > * Marvell Orion Interrupt controller
> > diff --git a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> > b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> > index 117d741..87f1d42 100644
> > --- a/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> > +++ b/Documentation/devicetree/bindings/arm/mrvl/mrvl.txt
> > @@ -3,12 +3,12 @@ Marvell Platforms Device Tree Bindings
> >
> > PXA168 Aspenite Board
> > Required root node properties:
> > - - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
> > + - compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
> >
> > PXA910 DKB Board
> > Required root node properties:
> > - - compatible = "mrvl,pxa910-dkb";
> > + - compatible = "marvell,pxa910-dkb";
> >
> > MMP2 Brownstone Board
> > Required root node properties:
> > - - compatible = "mrvl,mmp2-brownstone";
> > + - compatible = "marvell,mmp2-brownstone";
> > diff --git a/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> > b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> > index 9a6e251..1304526 100644
> > --- a/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> > +++ b/Documentation/devicetree/bindings/arm/mrvl/timer.txt
> > @@ -1,13 +1,13 @@
> > * Marvell MMP Timer controller
> >
> > Required properties:
> > -- compatible : Should be "mrvl,mmp-timer".
> > +- compatible : Should be "marvell,mmp-timer".
> > - reg : Address and length of the register set of timer controller.
> > - interrupts : Should be the interrupt number.
> >
> > Example:
> > timer0: timer@d4014000 {
> > - compatible = "mrvl,mmp-timer";
> > + compatible = "marvell,mmp-timer";
> > reg = <0xd4014000 0x100>;
> > interrupts = <13>;
> > };
> > diff --git a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> > b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> > index 12b78ac..34fdf5d 100644
> > --- a/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> > +++ b/Documentation/devicetree/bindings/i2c/i2c-pxa.txt
> > @@ -3,9 +3,9 @@
> > Required properties :
> >
> > - reg : Offset and length of the register set for the device
> > - - compatible : should be "mrvl,mmp-twsi" where mmp is the name of a
> > + - compatible : should be "marvell,mmp-twsi" where mmp is the name of
> > + a
> > compatible processor, e.g. pxa168, pxa910, mmp2, mmp3.
> > - For the pxa2xx/pxa3xx, an additional node "mrvl,pxa-i2c" is required
> > + For the pxa2xx/pxa3xx, an additional node "marvell,pxa-i2c" is
> > + required
> > as shown in the example below.
> >
> > Recommended properties :
> > @@ -14,20 +14,20 @@ Recommended properties :
> > - interrupt-parent : the phandle for the interrupt controller that
> > services interrupts for this device. If the parent is the default
> > interrupt controller in device tree, it could be ignored.
> > - - mrvl,i2c-polling : Disable interrupt of i2c controller. Polling
> > + - marvell,i2c-polling : Disable interrupt of i2c controller. Polling
> > status register of i2c controller instead.
> > - - mrvl,i2c-fast-mode : Enable fast mode of i2c controller.
> > + - marvell,i2c-fast-mode : Enable fast mode of i2c controller.
> >
> > Examples:
> > twsi1: i2c@d4011000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4011000 0x1000>;
> > interrupts = <7>;
> > - mrvl,i2c-fast-mode;
> > + marvell,i2c-fast-mode;
> > };
> >
> > twsi2: i2c@d4025000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4025000 0x1000>;
> > interrupts = <58>;
> > };
> > diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> > b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> > index dbe98a3..d603a3e 100644
> > --- a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> > +++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> > @@ -4,18 +4,18 @@ This file documents differences between the core
> > properties in mmc.txt and the properties used by the sdhci-pxav2 and
> sdhci-pxav3 drivers.
> >
> > Required properties:
> > -- compatible: Should be "mrvl,pxav2-mmc" or "mrvl,pxav3-mmc".
> > +- compatible: Should be "marvell,pxav2-mmc" or "marvell,pxav3-mmc".
> >
> > Optional properties:
> > -- mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning.
> > +- marvell,clk-delay-cycles: Specify a number of cycles to delay for tuning.
> >
> > Example:
> >
> > sdhci@d4280800 {
> > - compatible = "mrvl,pxav3-mmc";
> > + compatible = "marvell,pxav3-mmc";
> > reg = <0xd4280800 0x800>;
> > bus-width = <8>;
> > interrupts = <27>;
> > non-removable;
> > - mrvl,clk-delay-cycles = <31>;
> > + marvell,clk-delay-cycles = <31>;
> > };
> > diff --git a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> > b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> > index 0cda19a..886fe15 100644
> > --- a/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> > +++ b/Documentation/devicetree/bindings/rtc/sa1100-rtc.txt
> > @@ -1,7 +1,7 @@
> > * Marvell Real Time Clock controller
> >
> > Required properties:
> > -- compatible: should be "mrvl,sa1100-rtc"
> > +- compatible: should be "marvell,sa1100-rtc"
> > - reg: physical base address of the controller and length of memory
> mapped
> > region.
> > - interrupts: Should be two. The first interrupt number is the rtc
> > alarm @@ -10,7 +10,7 @@ Required properties:
> >
> > Example:
> > rtc: rtc@d4010000 {
> > - compatible = "mrvl,mmp-rtc";
> > + compatible = "marvell,mmp-rtc";
> > reg = <0xd4010000 0x1000>;
> > interrupts = <5>, <6>;
> > interrupt-name = "rtc 1Hz", "rtc alarm"; diff --git
> > a/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> > b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> > index d744340..659d35e 100644
> > --- a/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> > +++ b/Documentation/devicetree/bindings/serial/mrvl-serial.txt
> > @@ -1,4 +1,4 @@
> > PXA UART controller
> >
> > Required properties:
> > -- compatible : should be "mrvl,mmp-uart" or "mrvl,pxa-uart".
> > +- compatible : should be "marvell,mmp-uart" or "marvell,pxa-uart".
> > diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts
> > b/arch/arm/boot/dts/mmp2-brownstone.dts
> > index 7f70a39..26abfde 100644
> > --- a/arch/arm/boot/dts/mmp2-brownstone.dts
> > +++ b/arch/arm/boot/dts/mmp2-brownstone.dts
> > @@ -12,7 +12,7 @@
> >
> > / {
> > model = "Marvell MMP2 Brownstone Development Board";
> > - compatible = "mrvl,mmp2-brownstone", "mrvl,mmp2";
> > + compatible = "marvell,mmp2-brownstone", "marvell,mmp2";
> >
> > chosen {
> > bootargs = "console=ttyS2,38400 root=/dev/nfs
> > nfsroot=192.168.1.100:/nfsroot/
> > ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> > diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
> > index 4e8b08c..ac13654 100644
> > --- a/arch/arm/boot/dts/mmp2.dtsi
> > +++ b/arch/arm/boot/dts/mmp2.dtsi
> > @@ -32,128 +32,128 @@
> > };
> >
> > axi@d4200000 { /* AXI */
> > - compatible = "mrvl,axi-bus", "simple-bus";
> > + compatible = "marvell,axi-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4200000 0x00200000>;
> > ranges;
> >
> > intc: interrupt-controller@d4282000 {
> > - compatible = "mrvl,mmp2-intc";
> > + compatible = "marvell,mmp2-intc";
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0xd4282000 0x1000>;
> > - mrvl,intc-nr-irqs = <64>;
> > + marvell,intc-nr-irqs = <64>;
> > };
> >
> > intcmux4: interrupt-controller@d4282150 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <4>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x150 0x4>, <0x168 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <2>;
> > + marvell,intc-nr-irqs = <2>;
> > };
> >
> > intcmux5: interrupt-controller@d4282154 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <5>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x154 0x4>, <0x16c 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <2>;
> > - mrvl,clr-mfp-irq = <1>;
> > + marvell,intc-nr-irqs = <2>;
> > + marvell,clr-mfp-irq = <1>;
> > };
> >
> > intcmux9: interrupt-controller@d4282180 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <9>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x180 0x4>, <0x17c 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <3>;
> > + marvell,intc-nr-irqs = <3>;
> > };
> >
> > intcmux17: interrupt-controller@d4282158 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <17>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x158 0x4>, <0x170 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <5>;
> > + marvell,intc-nr-irqs = <5>;
> > };
> >
> > intcmux35: interrupt-controller@d428215c {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <35>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x15c 0x4>, <0x174 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <15>;
> > + marvell,intc-nr-irqs = <15>;
> > };
> >
> > intcmux51: interrupt-controller@d4282160 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <51>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x160 0x4>, <0x178 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <2>;
> > + marvell,intc-nr-irqs = <2>;
> > };
> >
> > intcmux55: interrupt-controller@d4282188 {
> > - compatible = "mrvl,mmp2-mux-intc";
> > + compatible = "marvell,mmp2-mux-intc";
> > interrupts = <55>;
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0x188 0x4>, <0x184 0x4>;
> > reg-names = "mux status", "mux mask";
> > - mrvl,intc-nr-irqs = <2>;
> > + marvell,intc-nr-irqs = <2>;
> > };
> > };
> >
> > apb@d4000000 { /* APB */
> > - compatible = "mrvl,apb-bus", "simple-bus";
> > + compatible = "marvell,apb-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4000000 0x00200000>;
> > ranges;
> >
> > timer0: timer@d4014000 {
> > - compatible = "mrvl,mmp-timer";
> > + compatible = "marvell,mmp-timer";
> > reg = <0xd4014000 0x100>;
> > interrupts = <13>;
> > };
> >
> > uart1: uart@d4030000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4030000 0x1000>;
> > interrupts = <27>;
> > status = "disabled";
> > };
> >
> > uart2: uart@d4017000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4017000 0x1000>;
> > interrupts = <28>;
> > status = "disabled";
> > };
> >
> > uart3: uart@d4018000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4018000 0x1000>;
> > interrupts = <24>;
> > status = "disabled";
> > };
> >
> > uart4: uart@d4016000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4016000 0x1000>;
> > interrupts = <46>;
> > status = "disabled";
> > @@ -198,24 +198,24 @@
> > };
> >
> > twsi1: i2c@d4011000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4011000 0x1000>;
> > interrupts = <7>;
> > #address-cells = <1>;
> > #size-cells = <0>;
> > - mrvl,i2c-fast-mode;
> > + marvell,i2c-fast-mode;
> > status = "disabled";
> > };
> >
> > twsi2: i2c@d4025000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4025000 0x1000>;
> > interrupts = <58>;
> > status = "disabled";
> > };
> >
> > rtc: rtc@d4010000 {
> > - compatible = "mrvl,mmp-rtc";
> > + compatible = "marvell,mmp-rtc";
> > reg = <0xd4010000 0x1000>;
> > interrupts = <1 0>;
> > interrupt-names = "rtc 1Hz", "rtc alarm"; diff --git
> > a/arch/arm/boot/dts/pxa168-aspenite.dts
> > b/arch/arm/boot/dts/pxa168-aspenite.dts
> > index e762fac..1e2ac17 100644
> > --- a/arch/arm/boot/dts/pxa168-aspenite.dts
> > +++ b/arch/arm/boot/dts/pxa168-aspenite.dts
> > @@ -12,7 +12,7 @@
> >
> > / {
> > model = "Marvell PXA168 Aspenite Development Board";
> > - compatible = "mrvl,pxa168-aspenite", "mrvl,pxa168";
> > + compatible = "marvell,pxa168-aspenite", "marvell,pxa168";
> >
> > chosen {
> > bootargs = "console=ttyS0,115200 root=/dev/nfs
> > nfsroot=192.168.1.100:/nfsroot/
> > ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> > diff --git a/arch/arm/boot/dts/pxa168.dtsi
> > b/arch/arm/boot/dts/pxa168.dtsi index 975dad2..c08f5fc 100644
> > --- a/arch/arm/boot/dts/pxa168.dtsi
> > +++ b/arch/arm/boot/dts/pxa168.dtsi
> > @@ -26,51 +26,51 @@
> > ranges;
> >
> > axi@d4200000 { /* AXI */
> > - compatible = "mrvl,axi-bus", "simple-bus";
> > + compatible = "marvell,axi-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4200000 0x00200000>;
> > ranges;
> >
> > intc: interrupt-controller@d4282000 {
> > - compatible = "mrvl,mmp-intc";
> > + compatible = "marvell,mmp-intc";
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0xd4282000 0x1000>;
> > - mrvl,intc-nr-irqs = <64>;
> > + marvell,intc-nr-irqs = <64>;
> > };
> >
> > };
> >
> > apb@d4000000 { /* APB */
> > - compatible = "mrvl,apb-bus", "simple-bus";
> > + compatible = "marvell,apb-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4000000 0x00200000>;
> > ranges;
> >
> > timer0: timer@d4014000 {
> > - compatible = "mrvl,mmp-timer";
> > + compatible = "marvell,mmp-timer";
> > reg = <0xd4014000 0x100>;
> > interrupts = <13>;
> > };
> >
> > uart1: uart@d4017000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4017000 0x1000>;
> > interrupts = <27>;
> > status = "disabled";
> > };
> >
> > uart2: uart@d4018000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4018000 0x1000>;
> > interrupts = <28>;
> > status = "disabled";
> > };
> >
> > uart3: uart@d4026000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4026000 0x1000>;
> > interrupts = <29>;
> > status = "disabled";
> > @@ -107,22 +107,22 @@
> > };
> >
> > twsi1: i2c@d4011000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4011000 0x1000>;
> > interrupts = <7>;
> > - mrvl,i2c-fast-mode;
> > + marvell,i2c-fast-mode;
> > status = "disabled";
> > };
> >
> > twsi2: i2c@d4025000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > reg = <0xd4025000 0x1000>;
> > interrupts = <58>;
> > status = "disabled";
> > };
> >
> > rtc: rtc@d4010000 {
> > - compatible = "mrvl,mmp-rtc";
> > + compatible = "marvell,mmp-rtc";
> > reg = <0xd4010000 0x1000>;
> > interrupts = <5 6>;
> > interrupt-names = "rtc 1Hz", "rtc alarm"; diff --git
> > a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi index
> > a5e90f0..c426b1e 100644
> > --- a/arch/arm/boot/dts/pxa2xx.dtsi
> > +++ b/arch/arm/boot/dts/pxa2xx.dtsi
> > @@ -47,7 +47,7 @@
> > };
> >
> > gpio: gpio@40e00000 {
> > - compatible = "mrvl,pxa-gpio";
> > + compatible = "marvell,pxa-gpio";
> > #address-cells = <0x1>;
> > #size-cells = <0x1>;
> > reg = <0x40e00000 0x10000>;
> > @@ -76,35 +76,35 @@
> > };
> >
> > ffuart: uart@40100000 {
> > - compatible = "mrvl,pxa-uart";
> > + compatible = "marvell,pxa-uart";
> > reg = <0x40100000 0x30>;
> > interrupts = <22>;
> > status = "disabled";
> > };
> >
> > btuart: uart@40200000 {
> > - compatible = "mrvl,pxa-uart";
> > + compatible = "marvell,pxa-uart";
> > reg = <0x40200000 0x30>;
> > interrupts = <21>;
> > status = "disabled";
> > };
> >
> > stuart: uart@40700000 {
> > - compatible = "mrvl,pxa-uart";
> > + compatible = "marvell,pxa-uart";
> > reg = <0x40700000 0x30>;
> > interrupts = <20>;
> > status = "disabled";
> > };
> >
> > hwuart: uart@41100000 {
> > - compatible = "mrvl,pxa-uart";
> > + compatible = "marvell,pxa-uart";
> > reg = <0x41100000 0x30>;
> > interrupts = <7>;
> > status = "disabled";
> > };
> >
> > pxai2c1: i2c@40301680 {
> > - compatible = "mrvl,pxa-i2c";
> > + compatible = "marvell,pxa-i2c";
> > reg = <0x40301680 0x30>;
> > interrupts = <18>;
> > #address-cells = <0x1>;
> > @@ -113,14 +113,14 @@
> > };
> >
> > usb0: ohci@4c000000 {
> > - compatible = "mrvl,pxa-ohci";
> > + compatible = "marvell,pxa-ohci";
> > reg = <0x4c000000 0x10000>;
> > interrupts = <3>;
> > status = "disabled";
> > };
> >
> > mmc0: mmc@41100000 {
> > - compatible = "mrvl,pxa-mmc";
> > + compatible = "marvell,pxa-mmc";
> > reg = <0x41100000 0x1000>;
> > interrupts = <23>;
> > status = "disabled";
> > diff --git a/arch/arm/boot/dts/pxa3xx.dtsi
> > b/arch/arm/boot/dts/pxa3xx.dtsi index f9d92da..0798031 100644
> > --- a/arch/arm/boot/dts/pxa3xx.dtsi
> > +++ b/arch/arm/boot/dts/pxa3xx.dtsi
> > @@ -7,7 +7,7 @@
> >
> > pxabus {
> > pwri2c: i2c@40f500c0 {
> > - compatible = "mrvl,pwri2c";
> > + compatible = "marvell,pwri2c";
> > reg = <0x40f500c0 0x30>;
> > interrupts = <6>;
> > #address-cells = <0x1>;
> > diff --git a/arch/arm/boot/dts/pxa910-dkb.dts
> > b/arch/arm/boot/dts/pxa910-dkb.dts
> > index 595492a..7384254 100644
> > --- a/arch/arm/boot/dts/pxa910-dkb.dts
> > +++ b/arch/arm/boot/dts/pxa910-dkb.dts
> > @@ -12,7 +12,7 @@
> >
> > / {
> > model = "Marvell PXA910 DKB Development Board";
> > - compatible = "mrvl,pxa910-dkb", "mrvl,pxa910";
> > + compatible = "marvell,pxa910-dkb", "marvell,pxa910";
> >
> > chosen {
> > bootargs = "console=ttyS0,115200 root=/dev/nfs
> > nfsroot=192.168.1.100:/nfsroot/
> > ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
> > diff --git a/arch/arm/boot/dts/pxa910.dtsi
> > b/arch/arm/boot/dts/pxa910.dtsi index 0247c62..b5594a0 100644
> > --- a/arch/arm/boot/dts/pxa910.dtsi
> > +++ b/arch/arm/boot/dts/pxa910.dtsi
> > @@ -31,58 +31,59 @@
> > };
> >
> > axi@d4200000 { /* AXI */
> > - compatible = "mrvl,axi-bus", "simple-bus";
> > + compatible = "marvell,axi-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4200000 0x00200000>;
> > ranges;
> >
> > intc: interrupt-controller@d4282000 {
> > - compatible = "mrvl,mmp-intc";
> > + compatible = "marvell,mmp-intc";
> > interrupt-controller;
> > #interrupt-cells = <1>;
> > reg = <0xd4282000 0x1000>;
> > - mrvl,intc-nr-irqs = <64>;
> > + marvell,intc-nr-irqs = <64>;
> > +
> > };
> >
> > };
> >
> > apb@d4000000 { /* APB */
> > - compatible = "mrvl,apb-bus", "simple-bus";
> > + compatible = "marvell,apb-bus", "simple-bus";
> > #address-cells = <1>;
> > #size-cells = <1>;
> > reg = <0xd4000000 0x00200000>;
> > ranges;
> >
> > timer0: timer@d4014000 {
> > - compatible = "mrvl,mmp-timer";
> > + compatible = "marvell,mmp-timer";
> > reg = <0xd4014000 0x100>;
> > interrupts = <13>;
> > };
> >
> > timer1: timer@d4016000 {
> > - compatible = "mrvl,mmp-timer";
> > + compatible = "marvell,mmp-timer";
> > reg = <0xd4016000 0x100>;
> > interrupts = <29>;
> > status = "disabled";
> > };
> >
> > uart1: uart@d4017000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4017000 0x1000>;
> > interrupts = <27>;
> > status = "disabled";
> > };
> >
> > uart2: uart@d4018000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4018000 0x1000>;
> > interrupts = <28>;
> > status = "disabled";
> > };
> >
> > uart3: uart@d4036000 {
> > - compatible = "mrvl,mmp-uart";
> > + compatible = "marvell,mmp-uart";
> > reg = <0xd4036000 0x1000>;
> > interrupts = <59>;
> > status = "disabled";
> > @@ -119,17 +120,17 @@
> > };
> >
> > twsi1: i2c@d4011000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > #address-cells = <1>;
> > #size-cells = <0>;
> > reg = <0xd4011000 0x1000>;
> > interrupts = <7>;
> > - mrvl,i2c-fast-mode;
> > + marvell,i2c-fast-mode;
> > status = "disabled";
> > };
> >
> > twsi2: i2c@d4037000 {
> > - compatible = "mrvl,mmp-twsi";
> > + compatible = "marvell,mmp-twsi";
> > #address-cells = <1>;
> > #size-cells = <0>;
> > reg = <0xd4037000 0x1000>;
> > @@ -138,7 +139,7 @@
> > };
> >
> > rtc: rtc@d4010000 {
> > - compatible = "mrvl,mmp-rtc";
> > + compatible = "marvell,mmp-rtc";
> > reg = <0xd4010000 0x1000>;
> > interrupts = <5 6>;
> > interrupt-names = "rtc 1Hz", "rtc alarm"; diff --git
> > a/arch/arm/mach-mmp/irq.c b/arch/arm/mach-mmp/irq.c index
> > 3c71246..a7a53611 100644
> > --- a/arch/arm/mach-mmp/irq.c
> > +++ b/arch/arm/mach-mmp/irq.c
> > @@ -327,13 +327,13 @@ void __init mmp2_init_icu(void)
> >
> > #ifdef CONFIG_OF
> > static const struct of_device_id intc_ids[] __initconst = {
> > - { .compatible = "mrvl,mmp-intc", .data = &mmp_conf },
> > - { .compatible = "mrvl,mmp2-intc", .data = &mmp2_conf },
> > + { .compatible = "marvell,mmp-intc", .data = &mmp_conf },
> > + { .compatible = "marvell,mmp2-intc", .data = &mmp2_conf },
> > {}
> > };
> >
> > static const struct of_device_id mmp_mux_irq_match[] __initconst = {
> > - { .compatible = "mrvl,mmp2-mux-intc" },
> > + { .compatible = "marvell,mmp2-mux-intc" },
> > {}
> > };
> >
> > @@ -352,10 +352,10 @@ int __init mmp2_mux_init(struct device_node
> *parent)
> > if (!node)
> > break;
> > of_id = of_match_node(&mmp_mux_irq_match[0], node);
> > - ret = of_property_read_u32(node, "mrvl,intc-nr-irqs",
> > + ret = of_property_read_u32(node, "marvell,intc-nr-irqs",
> > &nr_irqs);
> > if (ret) {
> > - pr_err("Not found mrvl,intc-nr-irqs property\n");
> > + pr_err("Not found marvell,intc-nr-irqs property\n");
> > ret = -EINVAL;
> > goto err;
> > }
> > @@ -385,7 +385,7 @@ int __init mmp2_mux_init(struct device_node
> *parent)
> > ret = irq_base;
> > goto err;
> > }
> > - if (!of_property_read_u32(node, "mrvl,clr-mfp-irq",
> > + if (!of_property_read_u32(node, "marvell,clr-mfp-irq",
> > &mfp_irq)) {
> > icu_data[i].clr_mfp_irq_base = irq_base;
> > icu_data[i].clr_mfp_hwirq = mfp_irq; @@ -424,9 +424,9 @@
> void
> > __init mmp_dt_irq_init(void)
> > of_id = of_match_node(intc_ids, node);
> > conf = of_id->data;
> >
> > - ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", &nr_irqs);
> > + ret = of_property_read_u32(node, "marvell,intc-nr-irqs", &nr_irqs);
> > if (ret) {
> > - pr_err("Not found mrvl,intc-nr-irqs property\n");
> > + pr_err("Not found marvell,intc-nr-irqs property\n");
> > return;
> > }
> >
> > diff --git a/arch/arm/mach-mmp/mmp-dt.c
> b/arch/arm/mach-mmp/mmp-dt.c
> > index b37915d..62c5adb 100644
> > --- a/arch/arm/mach-mmp/mmp-dt.c
> > +++ b/arch/arm/mach-mmp/mmp-dt.c
> > @@ -23,24 +23,24 @@ extern void __init mmp_dt_irq_init(void); extern
> > void __init mmp_dt_init_timer(void);
> >
> > static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst
> = {
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4026000, "pxa2xx-uart.2",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1",
> > +NULL),
> > OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc",
> NULL),
> > {}
> > };
> >
> > static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst
> = {
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.1",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4036000, "pxa2xx-uart.2",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1",
> > +NULL),
> > OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc",
> NULL),
> > {}
> > };
> >
> > @@ -57,8 +57,8 @@ static void __init pxa910_dt_init(void) }
> >
> > static const char *mmp_dt_board_compat[] __initdata = {
> > - "mrvl,pxa168-aspenite",
> > - "mrvl,pxa910-dkb",
> > + "marvell,pxa168-aspenite",
> > + "marvell,pxa910-dkb",
> > NULL,
> > };
> >
> > diff --git a/arch/arm/mach-mmp/mmp2-dt.c
> b/arch/arm/mach-mmp/mmp2-dt.c
> > index 4ac2567..6523ecf 100644
> > --- a/arch/arm/mach-mmp/mmp2-dt.c
> > +++ b/arch/arm/mach-mmp/mmp2-dt.c
> > @@ -25,14 +25,14 @@ extern void __init mmp_dt_irq_init(void); extern
> > void __init mmp_dt_init_timer(void);
> >
> > static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst
> = {
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4030000, "pxa2xx-uart.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4017000, "pxa2xx-uart.1",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4018000, "pxa2xx-uart.2",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4030000, "pxa2xx-uart.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4017000, "pxa2xx-uart.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4018000, "pxa2xx-uart.2",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-uart", 0xd4016000, "pxa2xx-uart.3",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1",
> > +NULL),
> > OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
> > + OF_DEV_AUXDATA("marvell,mmp-rtc", 0xd4010000, "sa1100-rtc",
> NULL),
> > {}
> > };
> >
> > @@ -43,7 +43,7 @@ static void __init mmp2_dt_init(void) }
> >
> > static const char *mmp2_dt_board_compat[] __initdata = {
> > - "mrvl,mmp2-brownstone",
> > + "marvell,mmp2-brownstone",
> > NULL,
> > };
> >
> > diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c
> index
> > 7ac41e8..67e7d5c 100644
> > --- a/arch/arm/mach-mmp/time.c
> > +++ b/arch/arm/mach-mmp/time.c
> > @@ -208,7 +208,7 @@ void __init timer_init(int irq)
> >
> > #ifdef CONFIG_OF
> > static struct of_device_id mmp_timer_dt_ids[] = {
> > - { .compatible = "mrvl,mmp-timer", },
> > + { .compatible = "marvell,mmp-timer", },
> > {}
> > };
> >
> > diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
> > index 3835979..b679367 100644
> > --- a/arch/arm/mach-pxa/pxa-dt.c
> > +++ b/arch/arm/mach-pxa/pxa-dt.c
> > @@ -23,15 +23,15 @@
> > extern void __init pxa3xx_dt_init_irq(void);
> >
> > static const struct of_dev_auxdata pxa3xx_auxdata_lookup[] __initconst
> = {
> > - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40100000,
> "pxa2xx-uart.0", NULL),
> > - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40200000,
> "pxa2xx-uart.1", NULL),
> > - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40700000,
> "pxa2xx-uart.2", NULL),
> > - OF_DEV_AUXDATA("mrvl,pxa-uart", 0x41600000,
> "pxa2xx-uart.3", NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40100000,
> "pxa2xx-uart.0", NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40200000,
> "pxa2xx-uart.1", NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-uart", 0x40700000,
> "pxa2xx-uart.2", NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-uart", 0x41600000,
> "pxa2xx-uart.3", NULL),
> > OF_DEV_AUXDATA("marvell,pxa-mmc", 0x41100000, "pxa2xx-mci.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,pxa-gpio", 0x40e00000, "pxa-gpio",
> NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-gpio", 0x40e00000, "pxa-gpio",
> NULL),
> > OF_DEV_AUXDATA("marvell,pxa-ohci", 0x4c000000, "pxa27x-ohci",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,pxa-i2c", 0x40301680, "pxa2xx-i2c.0",
> NULL),
> > - OF_DEV_AUXDATA("mrvl,pwri2c", 0x40f500c0, "pxa3xx-i2c.1",
> NULL),
> > + OF_DEV_AUXDATA("marvell,pxa-i2c", 0x40301680, "pxa2xx-i2c.0",
> NULL),
> > + OF_DEV_AUXDATA("marvell,pwri2c", 0x40f500c0, "pxa3xx-i2c.1",
> NULL),
> > OF_DEV_AUXDATA("marvell,pxa3xx-nand", 0x43100000, "pxa3xx-nand",
> NULL),
> > {}
> > };
> > diff --git a/drivers/i2c/busses/i2c-pxa.c
> > b/drivers/i2c/busses/i2c-pxa.c index fbafed2..6f2b17d 100644
> > --- a/drivers/i2c/busses/i2c-pxa.c
> > +++ b/drivers/i2c/busses/i2c-pxa.c
> > @@ -1040,9 +1040,9 @@ static const struct i2c_algorithm
> > i2c_pxa_pio_algorithm = { };
> >
> > static struct of_device_id i2c_pxa_dt_ids[] = {
> > - { .compatible = "mrvl,pxa-i2c", .data = (void *)REGS_PXA2XX },
> > - { .compatible = "mrvl,pwri2c", .data = (void *)REGS_PXA3XX },
> > - { .compatible = "mrvl,mmp-twsi", .data = (void *)REGS_PXA2XX },
> > + { .compatible = "marvell,pxa-i2c", .data = (void *)REGS_PXA2XX },
> > + { .compatible = "marvell,pwri2c", .data = (void *)REGS_PXA3XX },
> > + { .compatible = "marvell,mmp-twsi", .data = (void *)REGS_PXA2XX },
> > {}
> > };
> > MODULE_DEVICE_TABLE(of, i2c_pxa_dt_ids); @@ -1060,9 +1060,9 @@
> static
> > int i2c_pxa_probe_dt(struct platform_device *pdev, struct pxa_i2c *i2c,
> > /* For device tree we always use the dynamic or alias-assigned ID */
> > i2c->adap.nr = -1;
> >
> > - if (of_get_property(np, "mrvl,i2c-polling", NULL))
> > + if (of_get_property(np, "marvell,i2c-polling", NULL))
> > i2c->use_pio = 1;
> > - if (of_get_property(np, "mrvl,i2c-fast-mode", NULL))
> > + if (of_get_property(np, "marvell,i2c-fast-mode", NULL))
> > i2c->fast_mode = 1;
> > *i2c_types = (u32)(of_id->data);
> > return 0;
> > diff --git a/drivers/mmc/host/sdhci-pxav2.c
> > b/drivers/mmc/host/sdhci-pxav2.c index 6a3f702..1dd6500 100644
> > --- a/drivers/mmc/host/sdhci-pxav2.c
> > +++ b/drivers/mmc/host/sdhci-pxav2.c
> > @@ -120,7 +120,7 @@ static const struct sdhci_ops pxav2_sdhci_ops = {
> > #ifdef CONFIG_OF static const struct of_device_id
> > sdhci_pxav2_of_match[] = {
> > {
> > - .compatible = "mrvl,pxav2-mmc",
> > + .compatible = "marvell,pxav2-mmc",
> > },
> > {},
> > };
> > @@ -144,7 +144,7 @@ static struct sdhci_pxa_platdata
> *pxav2_get_mmc_pdata(struct device *dev)
> > if (bus_width == 8)
> > pdata->flags |= PXA_FLAG_SD_8_BIT_CAPABLE_SLOT;
> >
> > - of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
> > + of_property_read_u32(np, "marvell,clk-delay-cycles",
> > +&clk_delay_cycles);
> > if (clk_delay_cycles > 0) {
> > pdata->clk_delay_sel = 1;
> > pdata->clk_delay_cycles = clk_delay_cycles; diff --git
> > a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
> > index 1ae358e..a88974b 100644
> > --- a/drivers/mmc/host/sdhci-pxav3.c
> > +++ b/drivers/mmc/host/sdhci-pxav3.c
> > @@ -185,7 +185,7 @@ static struct sdhci_pltfm_data sdhci_pxav3_pdata
> =
> > { #ifdef CONFIG_OF static const struct of_device_id
> > sdhci_pxav3_of_match[] = {
> > {
> > - .compatible = "mrvl,pxav3-mmc",
> > + .compatible = "marvell,pxav3-mmc",
> > },
> > {},
> > };
> > @@ -201,7 +201,7 @@ static struct sdhci_pxa_platdata
> *pxav3_get_mmc_pdata(struct device *dev)
> > if (!pdata)
> > return NULL;
> >
> > - of_property_read_u32(np, "mrvl,clk-delay-cycles", &clk_delay_cycles);
> > + of_property_read_u32(np, "marvell,clk-delay-cycles",
> > +&clk_delay_cycles);
> > if (clk_delay_cycles > 0)
> > pdata->clk_delay_cycles = clk_delay_cycles;
> >
> > diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c index
> > 0f7adeb..307dd37 100644
> > --- a/drivers/rtc/rtc-sa1100.c
> > +++ b/drivers/rtc/rtc-sa1100.c
> > @@ -339,8 +339,8 @@ static SIMPLE_DEV_PM_OPS(sa1100_rtc_pm_ops,
> > sa1100_rtc_suspend,
> >
> > #ifdef CONFIG_OF
> > static struct of_device_id sa1100_rtc_dt_ids[] = {
> > - { .compatible = "mrvl,sa1100-rtc", },
> > - { .compatible = "mrvl,mmp-rtc", },
> > + { .compatible = "marvell,sa1100-rtc", },
> > + { .compatible = "marvell,mmp-rtc", },
> > {}
> > };
> > MODULE_DEVICE_TABLE(of, sa1100_rtc_dt_ids); diff --git
> > a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c index
> > 05f504e..cb1a439 100644
> > --- a/drivers/tty/serial/pxa.c
> > +++ b/drivers/tty/serial/pxa.c
> > @@ -852,8 +852,8 @@ static const struct dev_pm_ops
> serial_pxa_pm_ops =
> > { #endif
> >
> > static struct of_device_id serial_pxa_dt_ids[] = {
> > - { .compatible = "mrvl,pxa-uart", },
> > - { .compatible = "mrvl,mmp-uart", },
> > + { .compatible = "marvell,pxa-uart", },
> > + { .compatible = "marvell,mmp-uart", },
> > {}
> > };
> > MODULE_DEVICE_TABLE(of, serial_pxa_dt_ids);
> > --
> > 1.7.4.1
> >
> >
Best Regards,
Neil Zhang
> > _______________________________________________
> > linux-arm-kernel mailing list
> > [email protected]
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
> Neil,
>
> On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
>> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
>> let's change it.
>>
>> Signed-off-by: Neil Zhang <[email protected]>
>> ---
>> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
>> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
>> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
>> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
>> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
>> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
>> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
>> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
>> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
>> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
>> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
>> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
>> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
>> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
>> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
>> arch/arm/mach-mmp/irq.c | 16 +++---
>> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
>> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
>> arch/arm/mach-mmp/time.c | 2 +-
>> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
>> drivers/i2c/busses/i2c-pxa.c | 10 ++--
>> drivers/mmc/host/sdhci-pxav2.c | 4 +-
>> drivers/mmc/host/sdhci-pxav3.c | 4 +-
>> drivers/rtc/rtc-sa1100.c | 4 +-
>> drivers/tty/serial/pxa.c | 4 +-
>> 25 files changed, 144 insertions(+), 143 deletions(-)
>
> I agree with the need to change, however, this has been in the binding
> documentation since v3.5. I wish we had caught this when we decided
> against using stock ticker symbols (not all stock markets use
> alphabetical abbreviated names, not all companies are listed on any
> stock exchange).
>
> To do this properly, the drivers are going to have to be compatible with
> the old and the new names, and the binding docs updated to reflect the
> legacy name and the preferred name.
>
It's better to only use the new names.
Neil,
Could you split your patches according to different subsystem?
Regards
Haojian
Neil,
On Wed, Jul 10, 2013 at 12:25:17AM -0700, Neil Zhang wrote:
> Jason,
>
> > -----Original Message-----
> > From: Jason Cooper [mailto:[email protected]]
> > Sent: 2013年7月9日 20:49
> > To: Neil Zhang
> > Cc: [email protected]; [email protected]; [email protected];
> > [email protected]; [email protected];
> > [email protected]
> > Subject: Re: [PATCH V3 1/3] dts: change Marvell prefix to 'marvell'
> >
> > Neil,
> >
> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> > > The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> > > let's change it.
> > >
> > > Signed-off-by: Neil Zhang <[email protected]>
> > > ---
> > > .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> > > .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> > > .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> > > Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> > > .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> > > .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> > > .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> > > arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> > > arch/arm/boot/dts/mmp2.dtsi | 56
> > ++++++++++----------
> > > arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> > > arch/arm/boot/dts/pxa168.dtsi | 24
> > ++++----
> > > arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> > > arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> > > arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> > > arch/arm/boot/dts/pxa910.dtsi | 27
> > +++++-----
> > > arch/arm/mach-mmp/irq.c | 16
> > +++---
> > > arch/arm/mach-mmp/mmp-dt.c | 28
> > +++++-----
> > > arch/arm/mach-mmp/mmp2-dt.c | 16
> > +++---
> > > arch/arm/mach-mmp/time.c | 2 +-
> > > arch/arm/mach-pxa/pxa-dt.c | 14
> > +++---
> > > drivers/i2c/busses/i2c-pxa.c | 10 ++--
> > > drivers/mmc/host/sdhci-pxav2.c | 4 +-
> > > drivers/mmc/host/sdhci-pxav3.c | 4 +-
> > > drivers/rtc/rtc-sa1100.c | 4 +-
> > > drivers/tty/serial/pxa.c | 4 +-
> > > 25 files changed, 144 insertions(+), 143 deletions(-)
> >
> > I agree with the need to change, however, this has been in the binding
> > documentation since v3.5. I wish we had caught this when we decided
> > against using stock ticker symbols (not all stock markets use alphabetical
> > abbreviated names, not all companies are listed on any stock exchange).
> >
> > To do this properly, the drivers are going to have to be compatible with the
> > old and the new names, and the binding docs updated to reflect the legacy
> > name and the preferred name.
> >
> Do you mean it's better to support both legacy and preferred name at the same time?
Please keep in mind that the DT is supposed to be tied to the hardware,
*not* the kernel. iow, a dtb comes with a board, and the user/OS
upgrades the kernel as needed w/o upgrading or changing the dtb.
So the question you need to ask yourself is: Are there any users (since
v3.5) that are doing this? If so, they have "mrvl,..." compatible
strings in their dtbs. You don't want to break their systems on kernel
upgrade, right?
So you can change the binding to say the correct string is
"marvell,...", but that driver X must have an extra compatible entry for
"mrvl,..." so as not to break dtbs generated from v3.5 to v3.10.
You might even be able to get away with just adding a comment beside the
"mrvl,..." string in the driver.
Does that make sense?
thx,
Jason.
On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
> > Neil,
> >
> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> >> let's change it.
> >>
> >> Signed-off-by: Neil Zhang <[email protected]>
> >> ---
> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
> >> arch/arm/mach-mmp/irq.c | 16 +++---
> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
> >> arch/arm/mach-mmp/time.c | 2 +-
> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
> >> drivers/rtc/rtc-sa1100.c | 4 +-
> >> drivers/tty/serial/pxa.c | 4 +-
> >> 25 files changed, 144 insertions(+), 143 deletions(-)
> >
> > I agree with the need to change, however, this has been in the binding
> > documentation since v3.5. I wish we had caught this when we decided
> > against using stock ticker symbols (not all stock markets use
> > alphabetical abbreviated names, not all companies are listed on any
> > stock exchange).
> >
> > To do this properly, the drivers are going to have to be compatible with
> > the old and the new names, and the binding docs updated to reflect the
> > legacy name and the preferred name.
> >
>
> It's better to only use the new names.
In the dts{i}, yes. But we don't want to break systems in the field
with "mrvl,..." compatible strings. Therefore, at least the drivers
need an extra compatible string to support "mrvl,...".
If it had just been since v3.9, it'd be different/simpler. However,
several vendors have opted to use kernels newer than v3.5, which makes
this scenario a real possibility.
thx,
Jason.
On Wed, Jul 10, 2013 at 8:24 PM, Jason Cooper <[email protected]> wrote:
> On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
>> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
>> > Neil,
>> >
>> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
>> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
>> >> let's change it.
>> >>
>> >> Signed-off-by: Neil Zhang <[email protected]>
>> >> ---
>> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
>> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
>> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
>> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
>> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
>> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
>> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
>> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
>> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
>> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
>> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
>> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
>> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
>> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
>> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
>> >> arch/arm/mach-mmp/irq.c | 16 +++---
>> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
>> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
>> >> arch/arm/mach-mmp/time.c | 2 +-
>> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
>> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
>> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
>> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
>> >> drivers/rtc/rtc-sa1100.c | 4 +-
>> >> drivers/tty/serial/pxa.c | 4 +-
>> >> 25 files changed, 144 insertions(+), 143 deletions(-)
>> >
>> > I agree with the need to change, however, this has been in the binding
>> > documentation since v3.5. I wish we had caught this when we decided
>> > against using stock ticker symbols (not all stock markets use
>> > alphabetical abbreviated names, not all companies are listed on any
>> > stock exchange).
>> >
>> > To do this properly, the drivers are going to have to be compatible with
>> > the old and the new names, and the binding docs updated to reflect the
>> > legacy name and the preferred name.
>> >
>>
>> It's better to only use the new names.
>
> In the dts{i}, yes. But we don't want to break systems in the field
> with "mrvl,..." compatible strings. Therefore, at least the drivers
> need an extra compatible string to support "mrvl,...".
>
> If it had just been since v3.9, it'd be different/simpler. However,
> several vendors have opted to use kernels newer than v3.5, which makes
> this scenario a real possibility.
>
> thx,
>
> Jason.
Is there any vendor using DT for this Marvell chip? I think the answer is no.
Only Marvell guys are still moving to DT. They didn't deliver their kernel
as reference. So there's no problem on this.
Regards
Haojian
On Wed, Jul 10, 2013 at 6:20 AM, Jason Cooper <[email protected]> wrote:
> Please keep in mind that the DT is supposed to be tied to the hardware,
> *not* the kernel. iow, a dtb comes with a board, and the user/OS
> upgrades the kernel as needed w/o upgrading or changing the dtb.
Thank you for making this position clear to those trying to break
compatibility...
This will affect OLPC where the dtb comes from the firmware
(OpenFirmware), which is similar to the dtb coming "with the board" as
you describe. We run on Marvell SoCs.
> So the question you need to ask yourself is: Are there any users (since
> v3.5) that are doing this? If so, they have "mrvl,..." compatible
> strings in their dtbs. You don't want to break their systems on kernel
> upgrade, right?
In the OLPC case, the devicetree currently exported from the firmware
is unfortunately quite insufficient to boot mainline kernels. So we
are currently in a state of flux where we must break firmware/OS
compatibility in significant ways in order to support mainline
kernels. We are heading in this direction despite the pains.
Therefore right now its OK for us if we break compatibility during our
in-flux major firmware/DT restructuring, as this patch does.
However, once we have stabilised in the near future, it will no longer
be possible to break compatibility like this.
My vote would be to maintain the old names (in addition to the new) in
case there are people that will be affected by this that haven't seen
this thread. We were recently hit by another backwards-incompatible
change in Marvell's Linux gpio drivers where the compatible strings
recognised were changed (f87311743eaf85). This is not a big problem in
our current state however it cost me about 3 hours of changelog
skimming, glancing around in the code, and finally running a git
bisect, before I managed to figure out why things had suddenly stopped
working. That was irritating.
Thanks
Daniel
On Tue, Jul 9, 2013 at 7:49 AM, Jason Cooper <[email protected]> wrote:
> Neil,
>
> I agree with the need to change, however, this has been in the binding
> documentation since v3.5. I wish we had caught this when we decided
> against using stock ticker symbols (not all stock markets use
> alphabetical abbreviated names, not all companies are listed on any
> stock exchange).
Who decided that?
You can't just "stop using stock ticker symbols" - FDT is inherently
based on the original OpenFirmware device tree and therefore any
existing bindings which are done on real OpenFirmware solutions where
using stock ticker symbols is entirely appropriate (although, these
days, not useful) is counter-productive.
If Marvell had originally had mrvl as their ticker, and used this in
OF DTs (and it is..), then mrvl it stays. In the case where new
devices are added with marvell, this is in this case wrong. You should
keep using the old one. A good example of this; Freescale. Nobody is
saying everyone should move to "freescale,imx-this" or
"freescale,vybrid-that" - it's fsl and it stays fsl for
backwards/forwards compatibility because things exist already.
Any new companies can have a long, descriptive name; a privilege of
being late to the party, you might say :)
Having an odd mix of mrvl and marvell or moving to marvell is just
completely obtuse, whether they had that stock ticker, will have it in
the future, it is how they're defined and you can't in good conscience
change the binding after devices ship with it.
> To do this properly, the drivers are going to have to be compatible with
> the old and the new names, and the binding docs updated to reflect the
> legacy name and the preferred name.
Properly would be as above. You can stop using stock tickers for new
company names, but anything that has been defined in a device tree
before has to stay that way, and all the manufacturer prefixes to
device names should be the same. What you're proposing is purely
driver bloat and increasing the size of kernel.
--
Matt Sealey <[email protected]>
On Wed, Jul 10, 2013 at 03:50:10PM -0500, Matt Sealey wrote:
> On Tue, Jul 9, 2013 at 7:49 AM, Jason Cooper <[email protected]> wrote:
> > Neil,
> >
> > I agree with the need to change, however, this has been in the binding
> > documentation since v3.5. I wish we had caught this when we decided
> > against using stock ticker symbols (not all stock markets use
> > alphabetical abbreviated names, not all companies are listed on any
> > stock exchange).
>
> Who decided that?
Now you're going to make me dig ;-) iirc, we were going the stock
ticker route, but then noticed that powerpc dts files had been using
"marvell,..." for a _long_ time. How long? I'll leave that as an
exercise for the reader. :-P Because we shared at least the ethernet
driver with them, we decided to conform with what was already present in
the kernel and use "marvell,..." for all of the dt bindings we were
creating for kirkwood/dove/mvebu (and eventually orion5x, mv78xx0).
As for who is 'we'?
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-May/101337.html
> You can't just "stop using stock ticker symbols" - FDT is inherently
> based on the original OpenFirmware device tree and therefore any
> existing bindings which are done on real OpenFirmware solutions where
> using stock ticker symbols is entirely appropriate (although, these
> days, not useful) is counter-productive.
>
> If Marvell had originally had mrvl as their ticker, and used this in
> OF DTs (and it is..), then mrvl it stays. In the case where new
> devices are added with marvell, this is in this case wrong. You should
> keep using the old one. A good example of this; Freescale. Nobody is
> saying everyone should move to "freescale,imx-this" or
> "freescale,vybrid-that" - it's fsl and it stays fsl for
> backwards/forwards compatibility because things exist already.
I agree, that's why I'm arguing for *maintaining* backwards
compatibility.
> Any new companies can have a long, descriptive name; a privilege of
> being late to the party, you might say :)
>
> Having an odd mix of mrvl and marvell or moving to marvell is just
> completely obtuse, whether they had that stock ticker, will have it in
> the future, it is how they're defined and you can't in good conscience
> change the binding after devices ship with it.
See above regarding the marvell ethernet driver and powerpc...
> > To do this properly, the drivers are going to have to be compatible with
> > the old and the new names, and the binding docs updated to reflect the
> > legacy name and the preferred name.
>
> Properly would be as above. You can stop using stock tickers for new
> company names, but anything that has been defined in a device tree
> before has to stay that way, and all the manufacturer prefixes to
> device names should be the same. What you're proposing is purely
> driver bloat and increasing the size of kernel.
*I'm* not proposing to change the name, Neil is. I'm proposing that
*iff* they chose to do that, don't break sh*t along the way.
thx,
Jason.
On Wed, Jul 10, 2013 at 10:08:50PM +0800, Haojian Zhuang wrote:
> On Wed, Jul 10, 2013 at 8:24 PM, Jason Cooper <[email protected]> wrote:
> > On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
> >> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
> >> > Neil,
> >> >
> >> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> >> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> >> >> let's change it.
> >> >>
> >> >> Signed-off-by: Neil Zhang <[email protected]>
> >> >> ---
> >> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> >> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> >> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> >> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> >> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> >> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> >> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> >> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> >> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
> >> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> >> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
> >> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> >> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> >> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> >> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
> >> >> arch/arm/mach-mmp/irq.c | 16 +++---
> >> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
> >> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
> >> >> arch/arm/mach-mmp/time.c | 2 +-
> >> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
> >> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
> >> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
> >> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
> >> >> drivers/rtc/rtc-sa1100.c | 4 +-
> >> >> drivers/tty/serial/pxa.c | 4 +-
> >> >> 25 files changed, 144 insertions(+), 143 deletions(-)
> >> >
> >> > I agree with the need to change, however, this has been in the binding
> >> > documentation since v3.5. I wish we had caught this when we decided
> >> > against using stock ticker symbols (not all stock markets use
> >> > alphabetical abbreviated names, not all companies are listed on any
> >> > stock exchange).
> >> >
> >> > To do this properly, the drivers are going to have to be compatible with
> >> > the old and the new names, and the binding docs updated to reflect the
> >> > legacy name and the preferred name.
> >> >
> >>
> >> It's better to only use the new names.
> >
> > In the dts{i}, yes. But we don't want to break systems in the field
> > with "mrvl,..." compatible strings. Therefore, at least the drivers
> > need an extra compatible string to support "mrvl,...".
> >
> > If it had just been since v3.9, it'd be different/simpler. However,
> > several vendors have opted to use kernels newer than v3.5, which makes
> > this scenario a real possibility.
> >
> > thx,
> >
> > Jason.
>
> Is there any vendor using DT for this Marvell chip? I think the answer is no.
Well, Daniel Drake spoke up for OLPC. Does that count?
thx,
Jason.
Arnd??
> -----Original Message-----
> From: Jason Cooper [mailto:[email protected]]
> Sent: 2013??7??11?? 5:49
> To: Matt Sealey
> Cc: Neil Zhang; [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: [PATCH V3 1/3] dts: change Marvell prefix to 'marvell'
>
> On Wed, Jul 10, 2013 at 03:50:10PM -0500, Matt Sealey wrote:
> > On Tue, Jul 9, 2013 at 7:49 AM, Jason Cooper <[email protected]>
> wrote:
> > > Neil,
> > >
> > > I agree with the need to change, however, this has been in the
> > > binding documentation since v3.5. I wish we had caught this when we
> > > decided against using stock ticker symbols (not all stock markets
> > > use alphabetical abbreviated names, not all companies are listed on
> > > any stock exchange).
> >
> > Who decided that?
>
> Now you're going to make me dig ;-) iirc, we were going the stock ticker
> route, but then noticed that powerpc dts files had been using "marvell,..."
> for a _long_ time. How long? I'll leave that as an exercise for the
> reader. :-P Because we shared at least the ethernet driver with them, we
> decided to conform with what was already present in the kernel and use
> "marvell,..." for all of the dt bindings we were creating for
> kirkwood/dove/mvebu (and eventually orion5x, mv78xx0).
>
> As for who is 'we'?
>
> http://lists.infradead.org/pipermail/linux-arm-kernel/2012-May/101337.htm
> l
>
> > You can't just "stop using stock ticker symbols" - FDT is inherently
> > based on the original OpenFirmware device tree and therefore any
> > existing bindings which are done on real OpenFirmware solutions where
> > using stock ticker symbols is entirely appropriate (although, these
> > days, not useful) is counter-productive.
> >
> > If Marvell had originally had mrvl as their ticker, and used this in
> > OF DTs (and it is..), then mrvl it stays. In the case where new
> > devices are added with marvell, this is in this case wrong. You should
> > keep using the old one. A good example of this; Freescale. Nobody is
> > saying everyone should move to "freescale,imx-this" or
> > "freescale,vybrid-that" - it's fsl and it stays fsl for
> > backwards/forwards compatibility because things exist already.
>
> I agree, that's why I'm arguing for *maintaining* backwards compatibility.
>
> > Any new companies can have a long, descriptive name; a privilege of
> > being late to the party, you might say :)
> >
> > Having an odd mix of mrvl and marvell or moving to marvell is just
> > completely obtuse, whether they had that stock ticker, will have it in
> > the future, it is how they're defined and you can't in good conscience
> > change the binding after devices ship with it.
>
> See above regarding the marvell ethernet driver and powerpc...
>
> > > To do this properly, the drivers are going to have to be compatible
> > > with the old and the new names, and the binding docs updated to
> > > reflect the legacy name and the preferred name.
> >
> > Properly would be as above. You can stop using stock tickers for new
> > company names, but anything that has been defined in a device tree
> > before has to stay that way, and all the manufacturer prefixes to
> > device names should be the same. What you're proposing is purely
> > driver bloat and increasing the size of kernel.
>
> *I'm* not proposing to change the name, Neil is. I'm proposing that
> *iff* they chose to do that, don't break sh*t along the way.
>
What's your opinion?
> thx,
>
> Jason.
Best Regards,
Neil Zhang
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
Haojian,
> -----Original Message-----
> From: Haojian Zhuang [mailto:[email protected]]
> Sent: 2013??7??10?? 13:59
> To: Arnd Bergmann
> Cc: Thomas Petazzoni; Neil Zhang; Grant Likely;
> [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH V3 2/3] clocksource: mmp: support CLOCKSOURCE OF
> DECLARE
>
> On Wed, Jul 10, 2013 at 5:16 AM, Arnd Bergmann <[email protected]> wrote:
> > On Tuesday 09 July 2013, Thomas Petazzoni wrote:
> >> Dear Neil Zhang,
> >>
> >> On Tue, 9 Jul 2013 14:42:45 +0800, Neil Zhang wrote:
> >> > support CLOCKSOURCE OF DECLARE for mmp timer.
> >> >
> >> > Signed-off-by: Neil Zhang <[email protected]>
> >> > ---
> >> > arch/arm/mach-mmp/mmp-dt.c | 5 ++---
> >> > arch/arm/mach-mmp/mmp2-dt.c | 3 +--
> >> > arch/arm/mach-mmp/time.c | 15 ++-------------
> >> > 3 files changed, 5 insertions(+), 18 deletions(-)
> >>
> >> Maybe it would be good to take this opportunity to move
> >> arch/arm/mach-mmp/time.c into drivers/clocksource/.
> >
> > +1
> >
> > Or we might want to have a more coordinated move of all clocksource
> > drivers in arch/arm to drivers/clocksource now, as we have done for
> > some other subsystems.
> >
> > Arnd
>
> I already sent some patches on this. But I didn't get response yet. I'll rebase
> them and send them again. I hope that they could be merged in this cycle.
>
> Regards
> Haojian
Will you submit a patch to move it by yourself or let me update the patch to
move it to drivers/clocksource in next version?
Best Regards,
Neil Zhang
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
Arnd,
> -----Original Message-----
> From: Arnd Bergmann [mailto:[email protected]]
> Sent: 2013??7??10?? 6:05
> To: Neil Zhang
> Cc: [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; Chao Xie
> Subject: Re: [PATCH V3 3/3] ARM: mmp: bring up pxa988 with device tree
> support
>
> On Tuesday 09 July 2013, Neil Zhang wrote:
> > + soc {
> > + compatible = "simple-bus";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + interrupt-parent = <&gic>;
> > + ranges;
> > +
> > + gic: interrupt-controller@d1dfe100 {
> > + compatible = "arm,cortex-a9-gic";
> > + #interrupt-cells = <3>;
> > + #address-cells = <1>;
> > + interrupt-controller;
> > + reg = <0xd1dff000 0x1000>,
> > + <0xd1dfe100 0x0100>;
> > + };
> > +
> > + L2: l2-cache-controller@d1dfb000 {
> > + compatible = "arm,pl310-cache";
> > + reg = <0xd1dfb000 0x1000>;
> > + arm,data-latency = <2 1 1>;
> > + arm,tag-latency = <2 1 1>;
> > + arm,pwr-dynamic-clk-gating;
> > + arm,pwr-standby-mode;
> > + cache-unified;
> > + cache-level = <2>;
> > + };
> > +
> > + local-timer@d1dfe600 {
> > + compatible = "arm,cortex-a9-twd-timer";
> > + reg = <0xd1dfe600 0x20>;
> > + interrupts = <1 13 0x304>;
> > + };
> > +
> > + axi@d4200000 { /* AXI */
> > + compatible = "simple-bus";
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + ranges = <0xd4200000 0xd4200000 0x00200000>;
> > +
> > + intc: wakeupgen@d4282000 {
> > + compatible = "marvell,mmp-intc";
> > + reg = <0xd4282000 0x1000>;
> > + marvell,intc-wakeup = <0x114 0x3
> > + 0x144 0x3>;
> > + };
> > + };
>
> I am guessing that the structure does not actually reflect the hardware.
>
> Shouldn't AXI be the top-level bus, with the other stuff under it?
>
> > +
> > +
> > + uart1: uart@d4017000 {
> > + compatible = "marvell,mmp-uart";
> > + reg = <0xd4017000 0x1000>;
> > + interrupts = <0 27 0x4>;
> > + status = "disabled";
> > + };
>
> The uart node should be called "serial@d4017000" instead of
> "uart@d4017000".
Thanks for the catch!
>
> > diff --git a/arch/arm/mach-mmp/reset.c b/arch/arm/mach-mmp/reset.c
> new
> > file mode 100644 index 0000000..b90ec54
> > --- /dev/null
> > +++ b/arch/arm/mach-mmp/reset.c
> > @@ -0,0 +1,66 @@
> > +/*
> > + * linux/arch/arm/mach-mmp/reset.c
>
> I think this could just be part of the smp.c file.
Sorry, but which smp.c do you mean?
>
> > + *
> > + * Author: Neil Zhang <[email protected]>
> > + * Copyright: (C) 2012 Marvell International Ltd.
> > + *
> > + * This program is free software; you can redistribute it and/or
> > + modify
> > + * it under the terms of the GNU General Public License as published
> > + by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include <linux/kernel.h>
> > +#include <linux/smp.h>
> > +
> > +#include <asm/io.h>
> > +#include <asm/cacheflush.h>
> > +#include <asm/mach/map.h>
> > +
> > +#include <mach/addr-map.h>
> > +
> > +#include "reset.h"
> > +
> > +#define PMU_CC2_AP APMU_REG(0x0100)
> > +#define CIU_CA9_WARM_RESET_VECTOR CIU_REG(0x00d8)
>
> You should not hardcode the addresses here, better find them from the
> device tree.
Thanks for your suggestion, we will consider it.
> > +
> > +#define CPU_CORE_RST(n) (1 << ((n) * 4 + 16))
> > +#define CPU_DBG_RST(n) (1 << ((n) * 4 + 18))
> > +#define CPU_WDOG_RST(n) (1 << ((n) * 4 + 19))
>
> This should probably go into a reset controller driver, in drivers/reset/
>
It should not related to drivers/reset/.
What this file does is to set reset handler for core bootup or reset from power down (suspend or C2 power down).
> Arnd
Best Regards,
Neil Zhang
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
On Thu, Jul 11, 2013 at 7:23 PM, Neil Zhang <[email protected]> wrote:
> Haojian,
>
>
>> -----Original Message-----
>> From: Haojian Zhuang [mailto:[email protected]]
>> Sent: 2013年7月10日 13:59
>> To: Arnd Bergmann
>> Cc: Thomas Petazzoni; Neil Zhang; Grant Likely;
>> [email protected]; [email protected];
>> [email protected]
>> Subject: Re: [PATCH V3 2/3] clocksource: mmp: support CLOCKSOURCE OF
>> DECLARE
>>
>> On Wed, Jul 10, 2013 at 5:16 AM, Arnd Bergmann <[email protected]> wrote:
>> > On Tuesday 09 July 2013, Thomas Petazzoni wrote:
>> >> Dear Neil Zhang,
>> >>
>> >> On Tue, 9 Jul 2013 14:42:45 +0800, Neil Zhang wrote:
>> >> > support CLOCKSOURCE OF DECLARE for mmp timer.
>> >> >
>> >> > Signed-off-by: Neil Zhang <[email protected]>
>> >> > ---
>> >> > arch/arm/mach-mmp/mmp-dt.c | 5 ++---
>> >> > arch/arm/mach-mmp/mmp2-dt.c | 3 +--
>> >> > arch/arm/mach-mmp/time.c | 15 ++-------------
>> >> > 3 files changed, 5 insertions(+), 18 deletions(-)
>> >>
>> >> Maybe it would be good to take this opportunity to move
>> >> arch/arm/mach-mmp/time.c into drivers/clocksource/.
>> >
>> > +1
>> >
>> > Or we might want to have a more coordinated move of all clocksource
>> > drivers in arch/arm to drivers/clocksource now, as we have done for
>> > some other subsystems.
>> >
>> > Arnd
>>
>> I already sent some patches on this. But I didn't get response yet. I'll rebase
>> them and send them again. I hope that they could be merged in this cycle.
>>
>> Regards
>> Haojian
>
> Will you submit a patch to move it by yourself or let me update the patch to
> move it to drivers/clocksource in next version?
>
> Best Regards,
> Neil Zhang
Not one patch. There're a couples of patches. They are depandant each other.
I don't have time to rebase them in these two weeks. Go ahead to rebase all
your patches on mine.
Regards
Haojian
On Thu, Jul 11, 2013 at 5:50 AM, Jason Cooper <[email protected]> wrote:
> On Wed, Jul 10, 2013 at 10:08:50PM +0800, Haojian Zhuang wrote:
>> On Wed, Jul 10, 2013 at 8:24 PM, Jason Cooper <[email protected]> wrote:
>> > On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
>> >> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
>> >> > Neil,
>> >> >
>> >> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
>> >> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
>> >> >> let's change it.
>> >> >>
>> >> >> Signed-off-by: Neil Zhang <[email protected]>
>> >> >> ---
>> >> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
>> >> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
>> >> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
>> >> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
>> >> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
>> >> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
>> >> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
>> >> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
>> >> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
>> >> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
>> >> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
>> >> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
>> >> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
>> >> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
>> >> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
>> >> >> arch/arm/mach-mmp/irq.c | 16 +++---
>> >> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
>> >> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
>> >> >> arch/arm/mach-mmp/time.c | 2 +-
>> >> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
>> >> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
>> >> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
>> >> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
>> >> >> drivers/rtc/rtc-sa1100.c | 4 +-
>> >> >> drivers/tty/serial/pxa.c | 4 +-
>> >> >> 25 files changed, 144 insertions(+), 143 deletions(-)
>> >> >
>> >> > I agree with the need to change, however, this has been in the binding
>> >> > documentation since v3.5. I wish we had caught this when we decided
>> >> > against using stock ticker symbols (not all stock markets use
>> >> > alphabetical abbreviated names, not all companies are listed on any
>> >> > stock exchange).
>> >> >
>> >> > To do this properly, the drivers are going to have to be compatible with
>> >> > the old and the new names, and the binding docs updated to reflect the
>> >> > legacy name and the preferred name.
>> >> >
>> >>
>> >> It's better to only use the new names.
>> >
>> > In the dts{i}, yes. But we don't want to break systems in the field
>> > with "mrvl,..." compatible strings. Therefore, at least the drivers
>> > need an extra compatible string to support "mrvl,...".
>> >
>> > If it had just been since v3.9, it'd be different/simpler. However,
>> > several vendors have opted to use kernels newer than v3.5, which makes
>> > this scenario a real possibility.
>> >
>> > thx,
>> >
>> > Jason.
>>
>> Is there any vendor using DT for this Marvell chip? I think the answer is no.
>
> Well, Daniel Drake spoke up for OLPC. Does that count?
>
> thx,
>
> Jason.
>
We don't know they used DT on Marvell MMP2/MMP3. So they don't have DTS file
in kernel, we could use both old name & new name in driver.
Regards
Haojian
On Thu, Jul 11, 2013 at 5:54 PM, Haojian Zhuang
<[email protected]> wrote:
>> Well, Daniel Drake spoke up for OLPC. Does that count?
>
> We don't know they used DT on Marvell MMP2/MMP3. So they don't have DTS file
> in kernel, we could use both old name & new name in driver.
You are listed as one of the MMP maintainers in the MAINTAINERS file
and I have sent you several patches in the few 3 weeks which make
OLPC's usage of MMP + DT pretty obvious. As a maintainer I believe you
are supposed to review the patches too. hint hint ;)
My request to avoid breaking compatibility actually comes as a
two-prong request.
I would prefer to see these compatible properties stay the same as it
seems like changing them has little purpose/benefit - and there *will*
become a later point where changing them causes major breakage.
At the same time I see that there have been recent efforts to remove
MMP2 platform code and make it entirely DT-driven, which could also
generate some compatibility concerns. However, such movements are much
appreciated and I think they will become increasingly necessary as we
bring up the devices on the MMP3 SoC to a fuller extent, so please
continue :) I would not want to discourage you from breaking
compatibility when *that* type of work needs to be done.
So: breaking compatibility is actually OK from my standpoint, but only
for now (while we stabilise), and I would advise/appreciate that it
only be done in cases where there is a clear purpose and benefit.
Daniel
On Fri, Jul 12, 2013 at 09:10:49AM -0600, Daniel Drake wrote:
> On Thu, Jul 11, 2013 at 5:54 PM, Haojian Zhuang
> <[email protected]> wrote:
> >> Well, Daniel Drake spoke up for OLPC. Does that count?
> >
> > We don't know they used DT on Marvell MMP2/MMP3. So they don't have DTS file
> > in kernel, we could use both old name & new name in driver.
>
> You are listed as one of the MMP maintainers in the MAINTAINERS file
> and I have sent you several patches in the few 3 weeks which make
> OLPC's usage of MMP + DT pretty obvious. As a maintainer I believe you
> are supposed to review the patches too. hint hint ;)
>
> My request to avoid breaking compatibility actually comes as a
> two-prong request.
>
> I would prefer to see these compatible properties stay the same as it
> seems like changing them has little purpose/benefit - and there *will*
> become a later point where changing them causes major breakage.
I agree with both of you :) It needs to stabilise quickly, but since
the first inception of Marvell compatible strings was in the mv643xx_eth
driver for powerpc (long before ARM thought it was cool), and they used
"marvell,...", I think we should stick with that.
Which means doing as Haojian now realizes, and having both strings in
the relevant drivers.
This also means we should do a patch for stable v3.5+ appending the
"mrvl,..." string to the drivers that had it removed improperly, as
Daniel discovered. Daniel, since you are probably most familiar (and
most able to test ;-) ), would you mind putting that patch together?
So we don't have to keep it around forever, we could do as Arnd has
suggested in the past (for an entirely different problem):
/* assuming it goes in for v3.12 */
if (WARN_ON(of_device_is_compatible(dev, "mrvl,..."))) {
dev_info(&dev->dev, "compatible string \"mrvl,...\" being removed in v3.15\n");
BUG_ON(LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0));
}
* I can't find where Arnd's suggestion was, so this hack is completely
my own.
Keep in mind, the above hack is just a suggestion, it makes my skin
crawl just looking at it... I'm open to other ideas. Or, not doing it
at all.
thx,
Jason.
On Fri, Jul 12, 2013 at 9:57 AM, Jason Cooper <[email protected]> wrote:
> This also means we should do a patch for stable v3.5+ appending the
> "mrvl,..." string to the drivers that had it removed improperly, as
> Daniel discovered. Daniel, since you are probably most familiar (and
> most able to test ;-) ), would you mind putting that patch together?
I will look at that. There was another case of a quiet mrvl->marvell
conversion that bit us around a year ago as well, so I will dig that
up too for consideration.
> So we don't have to keep it around forever, we could do as Arnd has
> suggested in the past (for an entirely different problem):
>
> /* assuming it goes in for v3.12 */
> if (WARN_ON(of_device_is_compatible(dev, "mrvl,..."))) {
> dev_info(&dev->dev, "compatible string \"mrvl,...\" being removed in v3.15\n");
> BUG_ON(LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0));
> }
>
> * I can't find where Arnd's suggestion was, so this hack is completely
> my own.
>
> Keep in mind, the above hack is just a suggestion, it makes my skin
> crawl just looking at it... I'm open to other ideas. Or, not doing it
> at all.
A new OpenFirmware or dtb file would want to keep the old mrvl
compatible string around in order to have compatibility with old
kernels. So I think that hack would have to be extended to "if device
is compatible with mrvl, but not marvell, then warn". And that seems
so ugly that my vote would be to avoid it. Especially while we don't
know of existing users who have a requirement of stability.
Daniel
On Fri, Jul 12, 2013 at 10:05:45AM -0600, Daniel Drake wrote:
> On Fri, Jul 12, 2013 at 9:57 AM, Jason Cooper <[email protected]> wrote:
> > This also means we should do a patch for stable v3.5+ appending the
> > "mrvl,..." string to the drivers that had it removed improperly, as
> > Daniel discovered. Daniel, since you are probably most familiar (and
> > most able to test ;-) ), would you mind putting that patch together?
>
> I will look at that. There was another case of a quiet mrvl->marvell
> conversion that bit us around a year ago as well, so I will dig that
> up too for consideration.
Ok, thanks.
> > So we don't have to keep it around forever, we could do as Arnd has
> > suggested in the past (for an entirely different problem):
> >
> > /* assuming it goes in for v3.12 */
> > if (WARN_ON(of_device_is_compatible(dev, "mrvl,..."))) {
> > dev_info(&dev->dev, "compatible string \"mrvl,...\" being removed in v3.15\n");
> > BUG_ON(LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0));
> > }
> >
> > * I can't find where Arnd's suggestion was, so this hack is completely
> > my own.
> >
> > Keep in mind, the above hack is just a suggestion, it makes my skin
> > crawl just looking at it... I'm open to other ideas. Or, not doing it
> > at all.
>
> A new OpenFirmware or dtb file would want to keep the old mrvl
> compatible string around in order to have compatibility with old
> kernels. So I think that hack would have to be extended to "if device
> is compatible with mrvl, but not marvell, then warn". And that seems
> so ugly that my vote would be to avoid it. Especially while we don't
> know of existing users who have a requirement of stability.
whew! Ok, drop that idea.
thx,
Jason.
On Fri, Jul 12, 2013 at 11:10 PM, Daniel Drake <[email protected]> wrote:
> On Thu, Jul 11, 2013 at 5:54 PM, Haojian Zhuang
> <[email protected]> wrote:
>>> Well, Daniel Drake spoke up for OLPC. Does that count?
>>
>> We don't know they used DT on Marvell MMP2/MMP3. So they don't have DTS file
>> in kernel, we could use both old name & new name in driver.
>
> You are listed as one of the MMP maintainers in the MAINTAINERS file
> and I have sent you several patches in the few 3 weeks which make
> OLPC's usage of MMP + DT pretty obvious. As a maintainer I believe you
> are supposed to review the patches too. hint hint ;)
>
These patches couldn't be applied. Since we're moving irq drivers from arch
directories to irq directories.
When the irq patches are applied, you can rebase your patches.
Regards
Haojian
On Fri, Jul 12, 2013 at 6:35 PM, Haojian Zhuang
<[email protected]> wrote:
> These patches couldn't be applied. Since we're moving irq drivers from arch
> directories to irq directories.
It does not seem in line with the collaborative manner of kernel
development to block my patches for a whole month because they
conflict with your own private patches which do not exist for anyone
else (at least I searched and couldn't find them).
Please, either post your patches immediately (I will help review), or
review mine and figure out how to handle any conflict with your own
work afterwards.
> When the irq patches are applied, you can rebase your patches.
2 of the pending patches don't touch the irq stuff anyway.
Daniel
On Wed, Jul 10, 2013 at 2:50 PM, Jason Cooper <[email protected]> wrote:
> On Wed, Jul 10, 2013 at 10:08:50PM +0800, Haojian Zhuang wrote:
>> On Wed, Jul 10, 2013 at 8:24 PM, Jason Cooper <[email protected]> wrote:
>> > On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
>> >> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
>> >> > Neil,
>> >> >
>> >> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
>> >> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
>> >> >> let's change it.
>> >> >>
>> >> >> Signed-off-by: Neil Zhang <[email protected]>
>> >> >> ---
>> >> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
>> >> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
>> >> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
>> >> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
>> >> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
>> >> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
>> >> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
>> >> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
>> >> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
>> >> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
>> >> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
>> >> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
>> >> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
>> >> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
>> >> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
>> >> >> arch/arm/mach-mmp/irq.c | 16 +++---
>> >> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
>> >> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
>> >> >> arch/arm/mach-mmp/time.c | 2 +-
>> >> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
>> >> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
>> >> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
>> >> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
>> >> >> drivers/rtc/rtc-sa1100.c | 4 +-
>> >> >> drivers/tty/serial/pxa.c | 4 +-
>> >> >> 25 files changed, 144 insertions(+), 143 deletions(-)
>> >> >
>> >> > I agree with the need to change, however, this has been in the binding
>> >> > documentation since v3.5. I wish we had caught this when we decided
>> >> > against using stock ticker symbols (not all stock markets use
>> >> > alphabetical abbreviated names, not all companies are listed on any
>> >> > stock exchange).
>> >> >
>> >> > To do this properly, the drivers are going to have to be compatible with
>> >> > the old and the new names, and the binding docs updated to reflect the
>> >> > legacy name and the preferred name.
>> >> >
>> >>
>> >> It's better to only use the new names.
>> >
>> > In the dts{i}, yes. But we don't want to break systems in the field
>> > with "mrvl,..." compatible strings. Therefore, at least the drivers
>> > need an extra compatible string to support "mrvl,...".
>> >
>> > If it had just been since v3.9, it'd be different/simpler. However,
>> > several vendors have opted to use kernels newer than v3.5, which makes
>> > this scenario a real possibility.
>> >
>> > thx,
>> >
>> > Jason.
>>
>> Is there any vendor using DT for this Marvell chip? I think the answer is no.
>
> Well, Daniel Drake spoke up for OLPC. Does that count?
There's stock ticker history for MRVL is available for at least as far
back as 2001, so it's been around for a while. I would argue that the
powerpc guys made a mistake by using the marvell prefix. Either way,
they are not likely to add any new driver or code anytime soon for
these platforms.
Given that we are using mrvl extensively already, I'd say the way
forward is to make the driver handle both compatible values, but only
use mrvl for new code and for all new device tree bindings/data on
ARM.
It's a known issue that we are still in an "in-flux" state when it
comes to bindings on ARM, where people have been free to change them
as needed. At Linaro Connect last week, a group of us got together to
discuss this and I hope that Grant (or maybe someone else) will be
able to post those notes. We have a proposal on how to start moving
away from _everything_ being unstable to a model where parts of the
bindings can be locked down over time to a state where they won't
change. But I won't preempt the proper proposal email by going into
details here.
-Olof
On Thursday 11 July 2013, Neil Zhang wrote:
> > > > To do this properly, the drivers are going to have to be compatible
> > > > with the old and the new names, and the binding docs updated to
> > > > reflect the legacy name and the preferred name.
> > >
> > > Properly would be as above. You can stop using stock tickers for new
> > > company names, but anything that has been defined in a device tree
> > > before has to stay that way, and all the manufacturer prefixes to
> > > device names should be the same. What you're proposing is purely
> > > driver bloat and increasing the size of kernel.
> >
> > *I'm* not proposing to change the name, Neil is. I'm proposing that
> > iff they chose to do that, don't break sh*t along the way.
> >
>
> What's your opinion?
We discussed the topic of fixing bad bindings vs. keeping backwards
compatibility during last week's Linaro Connect.
The main outcome was that we need to have a better review for new bindings
getting merged to avoid this situation in the future, but the general
consensus seems that bindings that are already in use but were never
reviewed properly (which should have caught this) should be changed.
We will likely establish an annotation in the binding soon to mark those
that can not be changed as opposed to those that are not considered stable
yet.
Arnd
On Sat, Jul 13, 2013 at 12:56:25PM -0700, Olof Johansson wrote:
> On Wed, Jul 10, 2013 at 2:50 PM, Jason Cooper <[email protected]> wrote:
> > On Wed, Jul 10, 2013 at 10:08:50PM +0800, Haojian Zhuang wrote:
> >> On Wed, Jul 10, 2013 at 8:24 PM, Jason Cooper <[email protected]> wrote:
> >> > On Wed, Jul 10, 2013 at 04:19:46PM +0800, Haojian Zhuang wrote:
> >> >> On Tue, Jul 9, 2013 at 8:49 PM, Jason Cooper <[email protected]> wrote:
> >> >> > Neil,
> >> >> >
> >> >> > On Tue, Jul 09, 2013 at 02:42:44PM +0800, Neil Zhang wrote:
> >> >> >> The documented vendor prefix for Marvell is 'marvell', not 'mrvl', so
> >> >> >> let's change it.
> >> >> >>
> >> >> >> Signed-off-by: Neil Zhang <[email protected]>
> >> >> >> ---
> >> >> >> .../devicetree/bindings/arm/mrvl/intc.txt | 16 +++---
> >> >> >> .../devicetree/bindings/arm/mrvl/mrvl.txt | 6 +-
> >> >> >> .../devicetree/bindings/arm/mrvl/timer.txt | 4 +-
> >> >> >> Documentation/devicetree/bindings/i2c/i2c-pxa.txt | 14 +++---
> >> >> >> .../devicetree/bindings/mmc/sdhci-pxa.txt | 8 ++--
> >> >> >> .../devicetree/bindings/rtc/sa1100-rtc.txt | 4 +-
> >> >> >> .../devicetree/bindings/serial/mrvl-serial.txt | 2 +-
> >> >> >> arch/arm/boot/dts/mmp2-brownstone.dts | 2 +-
> >> >> >> arch/arm/boot/dts/mmp2.dtsi | 56 ++++++++++----------
> >> >> >> arch/arm/boot/dts/pxa168-aspenite.dts | 2 +-
> >> >> >> arch/arm/boot/dts/pxa168.dtsi | 24 ++++----
> >> >> >> arch/arm/boot/dts/pxa2xx.dtsi | 16 +++---
> >> >> >> arch/arm/boot/dts/pxa3xx.dtsi | 2 +-
> >> >> >> arch/arm/boot/dts/pxa910-dkb.dts | 2 +-
> >> >> >> arch/arm/boot/dts/pxa910.dtsi | 27 +++++-----
> >> >> >> arch/arm/mach-mmp/irq.c | 16 +++---
> >> >> >> arch/arm/mach-mmp/mmp-dt.c | 28 +++++-----
> >> >> >> arch/arm/mach-mmp/mmp2-dt.c | 16 +++---
> >> >> >> arch/arm/mach-mmp/time.c | 2 +-
> >> >> >> arch/arm/mach-pxa/pxa-dt.c | 14 +++---
> >> >> >> drivers/i2c/busses/i2c-pxa.c | 10 ++--
> >> >> >> drivers/mmc/host/sdhci-pxav2.c | 4 +-
> >> >> >> drivers/mmc/host/sdhci-pxav3.c | 4 +-
> >> >> >> drivers/rtc/rtc-sa1100.c | 4 +-
> >> >> >> drivers/tty/serial/pxa.c | 4 +-
> >> >> >> 25 files changed, 144 insertions(+), 143 deletions(-)
> >> >> >
> >> >> > I agree with the need to change, however, this has been in the binding
> >> >> > documentation since v3.5. I wish we had caught this when we decided
> >> >> > against using stock ticker symbols (not all stock markets use
> >> >> > alphabetical abbreviated names, not all companies are listed on any
> >> >> > stock exchange).
> >> >> >
> >> >> > To do this properly, the drivers are going to have to be compatible with
> >> >> > the old and the new names, and the binding docs updated to reflect the
> >> >> > legacy name and the preferred name.
> >> >> >
> >> >>
> >> >> It's better to only use the new names.
> >> >
> >> > In the dts{i}, yes. But we don't want to break systems in the field
> >> > with "mrvl,..." compatible strings. Therefore, at least the drivers
> >> > need an extra compatible string to support "mrvl,...".
> >> >
> >> > If it had just been since v3.9, it'd be different/simpler. However,
> >> > several vendors have opted to use kernels newer than v3.5, which makes
> >> > this scenario a real possibility.
> >> >
> >> > thx,
> >> >
> >> > Jason.
> >>
> >> Is there any vendor using DT for this Marvell chip? I think the answer is no.
> >
> > Well, Daniel Drake spoke up for OLPC. Does that count?
>
> There's stock ticker history for MRVL is available for at least as far
> back as 2001, so it's been around for a while. I would argue that the
> powerpc guys made a mistake by using the marvell prefix. Either way,
> they are not likely to add any new driver or code anytime soon for
> these platforms.
I think this boils down to which is more important, adhering to stock
tickers, or adhering to what's actually in the kernel before we (arm-soc
dt effort) got here?
I don't mind if the answer is either way, but back when we started
converting kirkwood to DT we had this discussion, and settled on
"marvell,..." because of powerpc/mv643xx_eth. Now, it appears we're
flip-flopping.
> Given that we are using mrvl extensively already,
?! Only -mmp and -pxa have used mrvl. _everything_ for -kirkwood,
-dove, -orion5x, and -mvebu has used marvell.
$ git grep 'compatible\b.*\bmrvl,' -- drivers/ | wc -l
9
$ git grep 'compatible\b.*\bmarvell,' -- drivers/ | wc -l
54
This is from mvebu/for-next, and does _not_ include Sebastian's patches
going though DaveM's tree adding proper bindings to mv643xx_eth (for
v3.11) which also uses marvell.
> I'd say the way forward is to make the driver handle both compatible
> values,
Agreed, but only where necessary.
> but only use mrvl for new code and for all new device tree
> bindings/data on ARM.
If that's what you want, then no problem. I just wish this had been
brought up sooner. We're damn near finished converting -kirkwood to DT.
> It's a known issue that we are still in an "in-flux" state when it
> comes to bindings on ARM, where people have been free to change them
> as needed.
True, but we're doing a pretty good job of thinking them through
carefully and not messing with them once applied. It's only going to
become more stringent (by necessity of popularity).
> At Linaro Connect last week, a group of us got together to
> discuss this and I hope that Grant (or maybe someone else) will be
> able to post those notes. We have a proposal on how to start moving
> away from _everything_ being unstable to a model where parts of the
> bindings can be locked down over time to a state where they won't
> change. But I won't preempt the proper proposal email by going into
> details here.
Documentation/devicetree/bindings/staging/ ? :-P
thx,
Jason.
Arnd
> -----Original Message-----
> From: Arnd Bergmann [mailto:[email protected]]
> Sent: 2013??7??15?? 3:30
> To: Neil Zhang
> Cc: Jason Cooper; Matt Sealey; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: [PATCH V3 1/3] dts: change Marvell prefix to 'marvell'
>
> On Thursday 11 July 2013, Neil Zhang wrote:
> > > > > To do this properly, the drivers are going to have to be
> > > > > compatible with the old and the new names, and the binding docs
> > > > > updated to reflect the legacy name and the preferred name.
> > > >
> > > > Properly would be as above. You can stop using stock tickers for
> > > > new company names, but anything that has been defined in a device
> > > > tree before has to stay that way, and all the manufacturer
> > > > prefixes to device names should be the same. What you're proposing
> > > > is purely driver bloat and increasing the size of kernel.
> > >
> > > *I'm* not proposing to change the name, Neil is. I'm proposing that
> > > iff they chose to do that, don't break sh*t along the way.
> > >
> >
> > What's your opinion?
>
> We discussed the topic of fixing bad bindings vs. keeping backwards compatibility
> during last week's Linaro Connect.
>
> The main outcome was that we need to have a better review for new bindings
> getting merged to avoid this situation in the future, but the general consensus
> seems that bindings that are already in use but were never reviewed properly
> (which should have caught this) should be changed.
So would you mind if I leave it there (discard this patch) and still use the current 'mvrl' prefix for this patch set.
> We will likely establish an annotation in the binding soon to mark those that can
> not be changed as opposed to those that are not considered stable yet.
>
> Arnd
Best Regards,
Neil Zhang
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?