--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
-@@ -243,7 +243,7 @@
+@@ -245,7 +245,7 @@
button@2 {
label = "Factory Reset Button";
linux,code = <KEY_RESTART>;
};
};
-@@ -258,7 +258,7 @@
+@@ -260,7 +260,7 @@
};
sata {
default-state = "off";
};
};
-@@ -311,7 +311,7 @@
+@@ -313,7 +313,7 @@
&pinctrl {
keys_pin: keys-pin {
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-@@ -302,13 +302,13 @@
+@@ -304,13 +304,13 @@
button@1 {
label = "WPS";
linux,code = <KEY_WPS_BUTTON>;
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-@@ -84,12 +84,100 @@
+@@ -86,12 +86,100 @@
pcie@2,0 {
/* Port 0, Lane 1 */
status = "okay";
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-@@ -465,6 +465,16 @@
+@@ -467,6 +467,16 @@
};
};
};
&pinctrl {
--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
-@@ -307,6 +307,18 @@
+@@ -309,6 +309,18 @@
};
};
};
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -635,6 +635,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
+@@ -748,6 +748,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
armada-385-db-ap.dtb \
armada-385-linksys-caiman.dtb \
armada-385-linksys-cobra.dtb \
--- a/drivers/mtd/ofpart.c
+++ b/drivers/mtd/ofpart.c
-@@ -25,12 +25,15 @@ static bool node_has_compatible(struct d
+@@ -25,6 +25,8 @@ static bool node_has_compatible(struct d
return of_get_property(pp, "compatible", NULL);
}
static int parse_ofpart_partitions(struct mtd_info *master,
struct mtd_partition **pparts,
struct mtd_part_parser_data *data)
- {
- struct device_node *node;
+@@ -32,6 +34,7 @@ static int parse_ofpart_partitions(struc
+ struct device_node *mtd_node;
+ struct device_node *ofpart_node;
const char *partname;
+ const char *owrtpart = "ubi";
struct device_node *pp;
- int nr_parts, i;
-
-@@ -78,9 +81,15 @@ static int parse_ofpart_partitions(struc
+ int nr_parts, i, ret = 0;
+ bool dedicated = true;
+@@ -102,9 +105,15 @@ static int parse_ofpart_partitions(struc
(*pparts)[i].offset = of_read_number(reg, a_cells);
(*pparts)[i].size = of_read_number(reg + a_cells, s_cells);
(*pparts)[i].name = partname;
if (of_get_property(pp, "read-only", &len))
-@@ -178,6 +187,18 @@ static int __init ofpart_parser_init(voi
+@@ -207,6 +216,18 @@ static int __init ofpart_parser_init(voi
return 0;
}
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
-@@ -90,12 +90,10 @@
- };
+@@ -98,12 +98,10 @@
+
i2c0: i2c@11000 {
- compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
-@@ -287,6 +287,11 @@ config GPIO_MVEBU
- select GPIO_GENERIC
+@@ -294,6 +294,11 @@ config GPIO_MVEBU
+ depends on OF
select GENERIC_IRQ_CHIP
+config GPIO_MVEBU_PWM
depends on ARCH_MXC
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
-@@ -62,6 +62,7 @@ obj-$(CONFIG_GPIO_MPC8XXX) += gpio-mpc8x
+@@ -67,6 +67,7 @@ obj-$(CONFIG_GPIO_MPC5200) += gpio-mpc52
+ obj-$(CONFIG_GPIO_MPC8XXX) += gpio-mpc8xxx.o
obj-$(CONFIG_GPIO_MSIC) += gpio-msic.o
- obj-$(CONFIG_GPIO_MSM_V2) += gpio-msm-v2.o
obj-$(CONFIG_GPIO_MVEBU) += gpio-mvebu.o
+obj-$(CONFIG_GPIO_MVEBU_PWM) += gpio-mvebu-pwm.o
obj-$(CONFIG_GPIO_MXC) += gpio-mxc.o
/*
* Functions returning addresses of individual registers for a given
* GPIO controller.
-@@ -228,7 +211,7 @@ static int mvebu_gpio_get(struct gpio_ch
+@@ -218,7 +201,7 @@ static int mvebu_gpio_get(struct gpio_ch
return (u >> pin) & 1;
}
{
struct mvebu_gpio_chip *mvchip =
container_of(chip, struct mvebu_gpio_chip, chip);
-@@ -617,6 +600,8 @@ static int mvebu_gpio_suspend(struct pla
+@@ -607,6 +590,8 @@ static int mvebu_gpio_suspend(struct pla
BUG();
}
return 0;
}
-@@ -660,6 +645,8 @@ static int mvebu_gpio_resume(struct plat
+@@ -650,6 +635,8 @@ static int mvebu_gpio_resume(struct plat
BUG();
}
return 0;
}
-@@ -671,7 +658,6 @@ static int mvebu_gpio_probe(struct platf
+@@ -661,7 +648,6 @@ static int mvebu_gpio_probe(struct platf
struct resource *res;
struct irq_chip_generic *gc;
struct irq_chip_type *ct;
unsigned int ngpios;
int soc_variant;
int i, cpu, id;
-@@ -701,10 +687,10 @@ static int mvebu_gpio_probe(struct platf
+@@ -691,10 +677,10 @@ static int mvebu_gpio_probe(struct platf
return id;
}
mvchip->soc_variant = soc_variant;
mvchip->chip.label = dev_name(&pdev->dev);
-@@ -838,7 +824,8 @@ static int mvebu_gpio_probe(struct platf
+@@ -828,7 +814,8 @@ static int mvebu_gpio_probe(struct platf
goto err_generic_chip;
}
--- a/arch/arm/boot/dts/armada-370.dtsi
+++ b/arch/arm/boot/dts/armada-370.dtsi
-@@ -158,24 +158,30 @@
+@@ -162,24 +162,30 @@
gpio0: gpio@18100 {
compatible = "marvell,orion-gpio";
--- a/arch/arm/configs/mvebu_v7_defconfig
+++ b/arch/arm/configs/mvebu_v7_defconfig
-@@ -120,6 +120,7 @@ CONFIG_DMADEVICES=y
+@@ -131,6 +131,7 @@ CONFIG_DMADEVICES=y
CONFIG_MV_XOR=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_MEMORY=y
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-@@ -412,13 +412,11 @@
+@@ -414,13 +414,11 @@
};
};
--- a/arch/arm/boot/dts/armada-388-rd.dts
+++ b/arch/arm/boot/dts/armada-388-rd.dts
-@@ -77,6 +77,16 @@
- compatible = "st,m25p128";
+@@ -79,6 +79,16 @@
+ compatible = "st,m25p128", "jedec,spi-nor";
reg = <0>; /* Chip select 0 */
spi-max-frequency = <108000000>;
+
--- a/arch/arm/boot/dts/armada-385-db-ap.dts
+++ b/arch/arm/boot/dts/armada-385-db-ap.dts
-@@ -186,6 +186,21 @@
+@@ -170,6 +170,21 @@
marvell,nand-keep-config;
marvell,nand-enable-arbiter;
nand-on-flash-bbt;
+ reg = <0x01000000 0x3f000000>;
+ };
};
- };
+ usb3@f0000 {