All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
@ 2015-05-16  0:23 Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

This is a patch set reworking Antoine's patches to move Berlin's system and
chip controller nodes to simple-mfd registered sub-nodes in a bisect compatible
way.

Compared to Antoine's patches, I basically first converted the drivers to
deal with both single node and simple-mfd sub-node registration, then move the
DT nodes over to simple-mfd, and finally drop the old way of registration.

I decided to squash the BG2/BG2CD/BG2Q DT changes into a single patch where
applicable instead of the clock node rework patches. I also left the Acked-by
from Phillip Zabel (reset), Linus Walleij (pinctrl), and Stephen Boyd (clk)
in place for the driver changes as the outcome is the same at the end.

I am still planing to get this into v4.2 as soon as possible, so if Arnd is
now happy with the dependency of the patches and none of the maintainers is
against it, I'll prepare a PR next week.

@Arnd: This is still based on v4.1-rc1 as I cannot see a stable branch for
simple-mfd support. Anything specific you want me to remind you that this
depends on simple-mfd?

Sebastian

Antoine Tenart (14):
  ARM: berlin: select MFD_SYSCON by default
  ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl
    nodes
  reset: berlin: convert to a platform driver
  ARM: berlin: move reset to simple-mfd nodes
  reset: berlin: drop arch_initcall initialization
  pinctrl: berlin: prepare to use regmap provided by syscon
  ARM: berlin: move pinctrl to simple-mfd nodes
  pinctrl: berlin: drop SoC stub provided regmap
  clk: berlin: prepare simple-mfd conversion
  ARM: berlin: move BG2 clock node
  ARM: berlin: move BG2CD clock node
  ARM: berlin: move BG2Q clock node
  clk: berlin: drop direct of_iomap of nodes reg property
  ARM: berlin: remove useless chip and system ctrl compatibles

 arch/arm/boot/dts/berlin2.dtsi        |  90 +++++++++++++++-----------
 arch/arm/boot/dts/berlin2cd.dtsi      |  66 +++++++++++--------
 arch/arm/boot/dts/berlin2q.dtsi       | 115 +++++++++++++++++++---------------
 arch/arm/mach-berlin/Kconfig          |   1 +
 drivers/clk/berlin/bg2.c              |   7 +--
 drivers/clk/berlin/bg2q.c             |   7 ++-
 drivers/pinctrl/berlin/berlin-bg2.c   |  26 +-------
 drivers/pinctrl/berlin/berlin-bg2cd.c |  26 +-------
 drivers/pinctrl/berlin/berlin-bg2q.c  |  26 +-------
 drivers/pinctrl/berlin/berlin.c       |   9 ++-
 drivers/reset/reset-berlin.c          |  74 +++++++++-------------
 11 files changed, 206 insertions(+), 241 deletions(-)

---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Stephen Boyd <sboyd@codeaurora.org>
-- 
2.1.0

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes Sebastian Hesselbarth
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

The chip and system controller nodes handle sub-devices, such as the
clock, pinctrl or reset controllers. The drivers handling them need a
regmap provided by syscon. Select it by default when using a Berlin SoC.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
 arch/arm/mach-berlin/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig
index 3e40a947f3ea..742d53a5f7f9 100644
--- a/arch/arm/mach-berlin/Kconfig
+++ b/arch/arm/mach-berlin/Kconfig
@@ -6,6 +6,7 @@ menuconfig ARCH_BERLIN
 	select DW_APB_ICTL
 	select DW_APB_TIMER_OF
 	select GENERIC_IRQ_CHIP
+	select MFD_SYSCON
 	select PINCTRL
 
 if ARCH_BERLIN
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 03/14] reset: berlin: convert to a platform driver Sebastian Hesselbarth
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

The chip and system controller nodes will be handled by simple-mfd based
driver probing. Prepare the conversion by adding "simple-mfd" and "syscon"
compatibles to the corresponding nodes.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
 arch/arm/boot/dts/berlin2.dtsi   | 4 ++--
 arch/arm/boot/dts/berlin2cd.dtsi | 4 ++--
 arch/arm/boot/dts/berlin2q.dtsi  | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 63d00a63cfa6..245527abb77c 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -351,7 +351,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2-chip-ctrl";
+			compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
 			#reset-cells = <2>;
 			reg = <0xea0000 0x400>;
@@ -442,7 +442,7 @@
 			};
 
 			sysctrl: system-controller at d000 {
-				compatible = "marvell,berlin2-system-ctrl";
+				compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
 				uart0_pmux: uart0-pmux {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 81b670ac494a..cccc23b45a26 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -295,7 +295,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2cd-chip-ctrl";
+			compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
 			#reset-cells = <2>;
 			reg = <0xea0000 0x400>;
@@ -389,7 +389,7 @@
 			};
 
 			sysctrl: system-controller at d000 {
-				compatible = "marvell,berlin2cd-system-ctrl";
+				compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 			};
 
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index be5397288d24..a515b54bb3e5 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -360,7 +360,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2q-chip-ctrl";
+			compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
 			#reset-cells = <2>;
 			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
@@ -526,7 +526,7 @@
 			};
 
 			sysctrl: pin-controller at d000 {
-				compatible = "marvell,berlin2q-system-ctrl";
+				compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
 				uart0_pmux: uart0-pmux {
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 03/14] reset: berlin: convert to a platform driver
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes Sebastian Hesselbarth
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

The Berlin reset controller was introduced without being a platform
driver because of a needed DT rework: the node describing the reset
controller also describes the pinctrl and clk controllers...

Prepare conversion by adding a platform driver probe to a new
compatible "marvell,berlin2-reset" with syscon regmap.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/reset/reset-berlin.c | 53 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

diff --git a/drivers/reset/reset-berlin.c b/drivers/reset/reset-berlin.c
index f8b48a13cf0b..d43bc163dd02 100644
--- a/drivers/reset/reset-berlin.c
+++ b/drivers/reset/reset-berlin.c
@@ -11,10 +11,12 @@
 
 #include <linux/delay.h>
 #include <linux/io.h>
+#include <linux/mfd/syscon.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/platform_device.h>
+#include <linux/regmap.h>
 #include <linux/reset-controller.h>
 #include <linux/slab.h>
 #include <linux/types.h>
@@ -27,6 +29,7 @@
 struct berlin_reset_priv {
 	void __iomem			*base;
 	unsigned int			size;
+	struct regmap			*regmap;
 	struct reset_controller_dev	rcdev;
 };
 
@@ -37,7 +40,10 @@ static int berlin_reset_reset(struct reset_controller_dev *rcdev,
 	int offset = id >> 8;
 	int mask = BIT(id & 0x1f);
 
-	writel(mask, priv->base + offset);
+	if (priv->regmap)
+		regmap_write(priv->regmap, offset, mask);
+	else
+		writel(mask, priv->base + offset);
 
 	/* let the reset be effective */
 	udelay(10);
@@ -70,6 +76,51 @@ static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
 	return (offset << 8) | bit;
 }
 
+static int berlin2_reset_probe(struct platform_device *pdev)
+{
+	struct device_node *parent_np = of_get_parent(pdev->dev.of_node);
+	struct berlin_reset_priv *priv;
+
+	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+	if (!priv)
+		return -ENOMEM;
+
+	priv->regmap = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
+	if (IS_ERR(priv->regmap))
+		return PTR_ERR(priv->regmap);
+
+	priv->rcdev.owner = THIS_MODULE;
+	priv->rcdev.ops = &berlin_reset_ops;
+	priv->rcdev.of_node = pdev->dev.of_node;
+	priv->rcdev.of_reset_n_cells = 2;
+	priv->rcdev.of_xlate = berlin_reset_xlate;
+
+	reset_controller_register(&priv->rcdev);
+
+	return 0;
+}
+
+static const struct of_device_id berlin_reset_dt_match[] = {
+	{ .compatible = "marvell,berlin2-reset" },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, berlin_reset_dt_match);
+
+static struct platform_driver berlin_reset_driver = {
+	.probe	= berlin2_reset_probe,
+	.driver	= {
+		.name = "berlin2-reset",
+		.of_match_table = berlin_reset_dt_match,
+	},
+};
+module_platform_driver(berlin_reset_driver);
+
+MODULE_AUTHOR("Antoine Tenart <antoine.tenart@free-electrons.com>");
+MODULE_AUTHOR("Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>");
+MODULE_DESCRIPTION("Marvell Berlin reset driver");
+MODULE_LICENSE("GPL");
+
 static int __berlin_reset_init(struct device_node *np)
 {
 	struct berlin_reset_priv *priv;
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (2 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 03/14] reset: berlin: convert to a platform driver Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 05/14] reset: berlin: drop arch_initcall initialization Sebastian Hesselbarth
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

Now with a proper platform driver for reset and simple-mfd, move to
the new marvell,berlin-reset node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
 arch/arm/boot/dts/berlin2.dtsi   |  6 +++++-
 arch/arm/boot/dts/berlin2cd.dtsi | 10 +++++++---
 arch/arm/boot/dts/berlin2q.dtsi  | 12 ++++++++----
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 245527abb77c..1e92511f8582 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -353,7 +353,6 @@
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
-			#reset-cells = <2>;
 			reg = <0xea0000 0x400>;
 			clocks = <&refclk>;
 			clock-names = "refclk";
@@ -362,6 +361,11 @@
 				groups = "G26";
 				function = "emmc";
 			};
+
+			chip_rst: reset {
+				compatible = "marvell,berlin2-reset";
+				#reset-cells = <2>;
+			};
 		};
 
 		apb at fc0000 {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index cccc23b45a26..5f8bfcdedceb 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -84,7 +84,7 @@
 			compatible = "marvell,berlin2cd-usb-phy";
 			reg = <0xb74000 0x128>;
 			#phy-cells = <0>;
-			resets = <&chip 0x178 23>;
+			resets = <&chip_rst 0x178 23>;
 			status = "disabled";
 		};
 
@@ -92,7 +92,7 @@
 			compatible = "marvell,berlin2cd-usb-phy";
 			reg = <0xb78000 0x128>;
 			#phy-cells = <0>;
-			resets = <&chip 0x178 24>;
+			resets = <&chip_rst 0x178 24>;
 			status = "disabled";
 		};
 
@@ -297,7 +297,6 @@
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
-			#reset-cells = <2>;
 			reg = <0xea0000 0x400>;
 			clocks = <&refclk>;
 			clock-names = "refclk";
@@ -306,6 +305,11 @@
 				groups = "G6";
 				function = "uart0";
 			};
+
+			chip_rst: reset {
+				compatible = "marvell,berlin2-reset";
+				#reset-cells = <2>;
+			};
 		};
 
 		usb0: usb at ed0000 {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index a515b54bb3e5..a27d03a2b5fa 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -127,7 +127,7 @@
 			compatible = "marvell,berlin2-usb-phy";
 			reg = <0xa2f400 0x128>;
 			#phy-cells = <0>;
-			resets = <&chip 0x104 14>;
+			resets = <&chip_rst 0x104 14>;
 			status = "disabled";
 		};
 
@@ -145,7 +145,7 @@
 			compatible = "marvell,berlin2-usb-phy";
 			reg = <0xb74000 0x128>;
 			#phy-cells = <0>;
-			resets = <&chip 0x104 12>;
+			resets = <&chip_rst 0x104 12>;
 			status = "disabled";
 		};
 
@@ -153,7 +153,7 @@
 			compatible = "marvell,berlin2-usb-phy";
 			reg = <0xb78000 0x128>;
 			#phy-cells = <0>;
-			resets = <&chip 0x104 13>;
+			resets = <&chip_rst 0x104 13>;
 			status = "disabled";
 		};
 
@@ -362,7 +362,6 @@
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
 			#clock-cells = <1>;
-			#reset-cells = <2>;
 			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
 			clocks = <&refclk>;
 			clock-names = "refclk";
@@ -376,6 +375,11 @@
 				groups = "G7";
 				function = "twsi1";
 			};
+
+			chip_rst: reset {
+				compatible = "marvell,berlin2-reset";
+				#reset-cells = <2>;
+			};
 		};
 
 		ahci: sata at e90000 {
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 05/14] reset: berlin: drop arch_initcall initialization
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (3 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon Sebastian Hesselbarth
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

With proper platform driver probing for berlin reset driver, drop the
arch_initcall workaround.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/reset/reset-berlin.c | 71 +-------------------------------------------
 1 file changed, 1 insertion(+), 70 deletions(-)

diff --git a/drivers/reset/reset-berlin.c b/drivers/reset/reset-berlin.c
index d43bc163dd02..3c922d37255c 100644
--- a/drivers/reset/reset-berlin.c
+++ b/drivers/reset/reset-berlin.c
@@ -27,8 +27,6 @@
 	container_of((p), struct berlin_reset_priv, rcdev)
 
 struct berlin_reset_priv {
-	void __iomem			*base;
-	unsigned int			size;
 	struct regmap			*regmap;
 	struct reset_controller_dev	rcdev;
 };
@@ -40,10 +38,7 @@ static int berlin_reset_reset(struct reset_controller_dev *rcdev,
 	int offset = id >> 8;
 	int mask = BIT(id & 0x1f);
 
-	if (priv->regmap)
-		regmap_write(priv->regmap, offset, mask);
-	else
-		writel(mask, priv->base + offset);
+	regmap_write(priv->regmap, offset, mask);
 
 	/* let the reset be effective */
 	udelay(10);
@@ -58,7 +53,6 @@ static struct reset_control_ops berlin_reset_ops = {
 static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
 			      const struct of_phandle_args *reset_spec)
 {
-	struct berlin_reset_priv *priv = to_berlin_reset_priv(rcdev);
 	unsigned offset, bit;
 
 	if (WARN_ON(reset_spec->args_count != rcdev->of_reset_n_cells))
@@ -67,9 +61,6 @@ static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
 	offset = reset_spec->args[0];
 	bit = reset_spec->args[1];
 
-	if (offset >= priv->size)
-		return -EINVAL;
-
 	if (bit >= BERLIN_MAX_RESETS)
 		return -EINVAL;
 
@@ -120,63 +111,3 @@ MODULE_AUTHOR("Antoine Tenart <antoine.tenart@free-electrons.com>");
 MODULE_AUTHOR("Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>");
 MODULE_DESCRIPTION("Marvell Berlin reset driver");
 MODULE_LICENSE("GPL");
-
-static int __berlin_reset_init(struct device_node *np)
-{
-	struct berlin_reset_priv *priv;
-	struct resource res;
-	resource_size_t size;
-	int ret;
-
-	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
-
-	ret = of_address_to_resource(np, 0, &res);
-	if (ret)
-		goto err;
-
-	size = resource_size(&res);
-	priv->base = ioremap(res.start, size);
-	if (!priv->base) {
-		ret = -ENOMEM;
-		goto err;
-	}
-	priv->size = size;
-
-	priv->rcdev.owner = THIS_MODULE;
-	priv->rcdev.ops = &berlin_reset_ops;
-	priv->rcdev.of_node = np;
-	priv->rcdev.of_reset_n_cells = 2;
-	priv->rcdev.of_xlate = berlin_reset_xlate;
-
-	reset_controller_register(&priv->rcdev);
-
-	return 0;
-
-err:
-	kfree(priv);
-	return ret;
-}
-
-static const struct of_device_id berlin_reset_of_match[] __initconst = {
-	{ .compatible = "marvell,berlin2-chip-ctrl" },
-	{ .compatible = "marvell,berlin2cd-chip-ctrl" },
-	{ .compatible = "marvell,berlin2q-chip-ctrl" },
-	{ },
-};
-
-static int __init berlin_reset_init(void)
-{
-	struct device_node *np;
-	int ret;
-
-	for_each_matching_node(np, berlin_reset_of_match) {
-		ret = __berlin_reset_init(np);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-arch_initcall(berlin_reset_init);
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (4 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 05/14] reset: berlin: drop arch_initcall initialization Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes Sebastian Hesselbarth
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

The Berlin pin controller nodes will be simple-mfd probed sub-nodes of
soc-controller and system-controller nodes. The register bank is managed
by syscon, which provides a regmap.

Prepare to get the regmap from syscon parent node instead of SoC stub
provided regmap.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/pinctrl/berlin/berlin-bg2.c   | 8 ++++++++
 drivers/pinctrl/berlin/berlin-bg2cd.c | 8 ++++++++
 drivers/pinctrl/berlin/berlin-bg2q.c  | 8 ++++++++
 drivers/pinctrl/berlin/berlin.c       | 7 ++++++-
 4 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c
index b71a6fffef1b..6931ce4b1e12 100644
--- a/drivers/pinctrl/berlin/berlin-bg2.c
+++ b/drivers/pinctrl/berlin/berlin-bg2.c
@@ -225,6 +225,14 @@ static const struct of_device_id berlin2_pinctrl_match[] = {
 		.compatible = "marvell,berlin2-system-ctrl",
 		.data = &berlin2_sysmgr_pinctrl_data
 	},
+	{
+		.compatible = "marvell,berlin2-soc-pinctrl",
+		.data = &berlin2_soc_pinctrl_data
+	},
+	{
+		.compatible = "marvell,berlin2-system-pinctrl",
+		.data = &berlin2_sysmgr_pinctrl_data
+	},
 	{}
 };
 MODULE_DEVICE_TABLE(of, berlin2_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c
index 19ac5a22c947..18e1af0e6b8c 100644
--- a/drivers/pinctrl/berlin/berlin-bg2cd.c
+++ b/drivers/pinctrl/berlin/berlin-bg2cd.c
@@ -168,6 +168,14 @@ static const struct of_device_id berlin2cd_pinctrl_match[] = {
 		.compatible = "marvell,berlin2cd-system-ctrl",
 		.data = &berlin2cd_sysmgr_pinctrl_data
 	},
+	{
+		.compatible = "marvell,berlin2cd-soc-pinctrl",
+		.data = &berlin2cd_soc_pinctrl_data
+	},
+	{
+		.compatible = "marvell,berlin2cd-system-pinctrl",
+		.data = &berlin2cd_sysmgr_pinctrl_data
+	},
 	{}
 };
 MODULE_DEVICE_TABLE(of, berlin2cd_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c
index bd9662e57ad3..24e4cbb4d044 100644
--- a/drivers/pinctrl/berlin/berlin-bg2q.c
+++ b/drivers/pinctrl/berlin/berlin-bg2q.c
@@ -387,6 +387,14 @@ static const struct of_device_id berlin2q_pinctrl_match[] = {
 		.compatible = "marvell,berlin2q-system-ctrl",
 		.data = &berlin2q_sysmgr_pinctrl_data,
 	},
+	{
+		.compatible = "marvell,berlin2q-soc-pinctrl",
+		.data = &berlin2q_soc_pinctrl_data,
+	},
+	{
+		.compatible = "marvell,berlin2q-system-pinctrl",
+		.data = &berlin2q_sysmgr_pinctrl_data,
+	},
 	{}
 };
 MODULE_DEVICE_TABLE(of, berlin2q_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 7f0b0f93242b..28551123d04f 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -11,6 +11,7 @@
  */
 
 #include <linux/io.h>
+#include <linux/mfd/syscon.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
@@ -295,13 +296,17 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
 			 const struct berlin_pinctrl_desc *desc)
 {
 	struct device *dev = &pdev->dev;
+	struct device_node *parent_np = of_get_parent(dev->of_node);
 	struct berlin_pinctrl *pctrl;
 	struct regmap *regmap;
 	int ret;
 
 	regmap = dev_get_regmap(&pdev->dev, NULL);
 	if (!regmap)
-		return -ENODEV;
+		regmap = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
+	if (IS_ERR(regmap))
+		return PTR_ERR(regmap);
 
 	pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL);
 	if (!pctrl)
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (5 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap Sebastian Hesselbarth
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

Now with proper support for simple-mfd probed pinctrl driver, move
to the new soc-pinctrl and system-pinctrl nodes.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 arch/arm/boot/dts/berlin2.dtsi   | 38 ++++++++++++++++------------
 arch/arm/boot/dts/berlin2cd.dtsi | 14 ++++++++---
 arch/arm/boot/dts/berlin2q.dtsi  | 53 +++++++++++++++++++++++-----------------
 3 files changed, 63 insertions(+), 42 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 1e92511f8582..94d9182e4dfe 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -357,9 +357,13 @@
 			clocks = <&refclk>;
 			clock-names = "refclk";
 
-			emmc_pmux: emmc-pmux {
-				groups = "G26";
-				function = "emmc";
+			soc_pinctrl: pin-controller {
+				compatible = "marvell,berlin2-soc-pinctrl";
+
+				emmc_pmux: emmc-pmux {
+					groups = "G26";
+					function = "emmc";
+				};
 			};
 
 			chip_rst: reset {
@@ -449,19 +453,21 @@
 				compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
-				uart0_pmux: uart0-pmux {
-					groups = "GSM4";
-					function = "uart0";
-				};
-
-				uart1_pmux: uart1-pmux {
-					groups = "GSM5";
-					function = "uart1";
-				};
-
-				uart2_pmux: uart2-pmux {
-					groups = "GSM3";
-					function = "uart2";
+				sys_pinctrl: pin-controller {
+					compatible = "marvell,berlin2-system-pinctrl";
+					uart0_pmux: uart0-pmux {
+						groups = "GSM4";
+						function = "uart0";
+					};
+
+					uart1_pmux: uart1-pmux {
+						groups = "GSM5";
+						function = "uart1";
+					};
+					uart2_pmux: uart2-pmux {
+						groups = "GSM3";
+						function = "uart2";
+					};
 				};
 			};
 
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 5f8bfcdedceb..7544fea43e3a 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -301,9 +301,13 @@
 			clocks = <&refclk>;
 			clock-names = "refclk";
 
-			uart0_pmux: uart0-pmux {
-				groups = "G6";
-				function = "uart0";
+			soc_pinctrl: pin-controller {
+				compatible = "marvell,berlin2cd-soc-pinctrl";
+
+				uart0_pmux: uart0-pmux {
+					groups = "G6";
+					function = "uart0";
+				};
 			};
 
 			chip_rst: reset {
@@ -395,6 +399,10 @@
 			sysctrl: system-controller at d000 {
 				compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
+
+				sys_pinctrl: pin-controller {
+					compatible = "marvell,berlin2cd-system-pinctrl";
+				};
 			};
 
 			sic: interrupt-controller at e000 {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index a27d03a2b5fa..8715d11c8f76 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -366,16 +366,19 @@
 			clocks = <&refclk>;
 			clock-names = "refclk";
 
-			twsi0_pmux: twsi0-pmux {
-				groups = "G6";
-				function = "twsi0";
-			};
+			soc_pinctrl: pin-controller {
+				compatible = "marvell,berlin2q-soc-pinctrl";
 
-			twsi1_pmux: twsi1-pmux {
-				groups = "G7";
-				function = "twsi1";
-			};
+				twsi0_pmux: twsi0-pmux {
+					groups = "G6";
+					function = "twsi0";
+				};
 
+				twsi1_pmux: twsi1-pmux {
+					groups = "G7";
+					function = "twsi1";
+				};
+			};
 			chip_rst: reset {
 				compatible = "marvell,berlin2-reset";
 				#reset-cells = <2>;
@@ -533,24 +536,28 @@
 				compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
-				uart0_pmux: uart0-pmux {
-					groups = "GSM12";
-					function = "uart0";
-				};
+				sys_pinctrl: pin-controller {
+					compatible = "marvell,berlin2q-system-pinctrl";
 
-				uart1_pmux: uart1-pmux {
-					groups = "GSM14";
-					function = "uart1";
-				};
+					uart0_pmux: uart0-pmux {
+						groups = "GSM12";
+						function = "uart0";
+					};
 
-				twsi2_pmux: twsi2-pmux {
-					groups = "GSM13";
-					function = "twsi2";
-				};
+					uart1_pmux: uart1-pmux {
+						groups = "GSM14";
+						function = "uart1";
+					};
+
+					twsi2_pmux: twsi2-pmux {
+						groups = "GSM13";
+						function = "twsi2";
+					};
 
-				twsi3_pmux: twsi3-pmux {
-					groups = "GSM14";
-					function = "twsi3";
+					twsi3_pmux: twsi3-pmux {
+						groups = "GSM14";
+						function = "twsi3";
+					};
 				};
 			};
 
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (6 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 09/14] clk: berlin: prepare simple-mfd conversion Sebastian Hesselbarth
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

With convertsion to simple-mfd sub-nodes, drop the regmap registration
by SoC stubs.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/pinctrl/berlin/berlin-bg2.c   | 30 ------------------------------
 drivers/pinctrl/berlin/berlin-bg2cd.c | 30 ------------------------------
 drivers/pinctrl/berlin/berlin-bg2q.c  | 30 ------------------------------
 drivers/pinctrl/berlin/berlin.c       |  4 +---
 4 files changed, 1 insertion(+), 93 deletions(-)

diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c
index 6931ce4b1e12..3769eaedf519 100644
--- a/drivers/pinctrl/berlin/berlin-bg2.c
+++ b/drivers/pinctrl/berlin/berlin-bg2.c
@@ -218,14 +218,6 @@ static const struct berlin_pinctrl_desc berlin2_sysmgr_pinctrl_data = {
 
 static const struct of_device_id berlin2_pinctrl_match[] = {
 	{
-		.compatible = "marvell,berlin2-chip-ctrl",
-		.data = &berlin2_soc_pinctrl_data
-	},
-	{
-		.compatible = "marvell,berlin2-system-ctrl",
-		.data = &berlin2_sysmgr_pinctrl_data
-	},
-	{
 		.compatible = "marvell,berlin2-soc-pinctrl",
 		.data = &berlin2_soc_pinctrl_data
 	},
@@ -241,28 +233,6 @@ static int berlin2_pinctrl_probe(struct platform_device *pdev)
 {
 	const struct of_device_id *match =
 		of_match_device(berlin2_pinctrl_match, &pdev->dev);
-	struct regmap_config *rmconfig;
-	struct regmap *regmap;
-	struct resource *res;
-	void __iomem *base;
-
-	rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
-	if (!rmconfig)
-		return -ENOMEM;
-
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(base))
-		return PTR_ERR(base);
-
-	rmconfig->reg_bits = 32,
-	rmconfig->val_bits = 32,
-	rmconfig->reg_stride = 4,
-	rmconfig->max_register = resource_size(res);
-
-	regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
-	if (IS_ERR(regmap))
-		return PTR_ERR(regmap);
 
 	return berlin_pinctrl_probe(pdev, match->data);
 }
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c
index 18e1af0e6b8c..9e11f191d643 100644
--- a/drivers/pinctrl/berlin/berlin-bg2cd.c
+++ b/drivers/pinctrl/berlin/berlin-bg2cd.c
@@ -161,14 +161,6 @@ static const struct berlin_pinctrl_desc berlin2cd_sysmgr_pinctrl_data = {
 
 static const struct of_device_id berlin2cd_pinctrl_match[] = {
 	{
-		.compatible = "marvell,berlin2cd-chip-ctrl",
-		.data = &berlin2cd_soc_pinctrl_data
-	},
-	{
-		.compatible = "marvell,berlin2cd-system-ctrl",
-		.data = &berlin2cd_sysmgr_pinctrl_data
-	},
-	{
 		.compatible = "marvell,berlin2cd-soc-pinctrl",
 		.data = &berlin2cd_soc_pinctrl_data
 	},
@@ -184,28 +176,6 @@ static int berlin2cd_pinctrl_probe(struct platform_device *pdev)
 {
 	const struct of_device_id *match =
 		of_match_device(berlin2cd_pinctrl_match, &pdev->dev);
-	struct regmap_config *rmconfig;
-	struct regmap *regmap;
-	struct resource *res;
-	void __iomem *base;
-
-	rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
-	if (!rmconfig)
-		return -ENOMEM;
-
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(base))
-		return PTR_ERR(base);
-
-	rmconfig->reg_bits = 32,
-	rmconfig->val_bits = 32,
-	rmconfig->reg_stride = 4,
-	rmconfig->max_register = resource_size(res);
-
-	regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
-	if (IS_ERR(regmap))
-		return PTR_ERR(regmap);
 
 	return berlin_pinctrl_probe(pdev, match->data);
 }
diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c
index 24e4cbb4d044..ba7a8a8ad010 100644
--- a/drivers/pinctrl/berlin/berlin-bg2q.c
+++ b/drivers/pinctrl/berlin/berlin-bg2q.c
@@ -380,14 +380,6 @@ static const struct berlin_pinctrl_desc berlin2q_sysmgr_pinctrl_data = {
 
 static const struct of_device_id berlin2q_pinctrl_match[] = {
 	{
-		.compatible = "marvell,berlin2q-chip-ctrl",
-		.data = &berlin2q_soc_pinctrl_data,
-	},
-	{
-		.compatible = "marvell,berlin2q-system-ctrl",
-		.data = &berlin2q_sysmgr_pinctrl_data,
-	},
-	{
 		.compatible = "marvell,berlin2q-soc-pinctrl",
 		.data = &berlin2q_soc_pinctrl_data,
 	},
@@ -403,28 +395,6 @@ static int berlin2q_pinctrl_probe(struct platform_device *pdev)
 {
 	const struct of_device_id *match =
 		of_match_device(berlin2q_pinctrl_match, &pdev->dev);
-	struct regmap_config *rmconfig;
-	struct regmap *regmap;
-	struct resource *res;
-	void __iomem *base;
-
-	rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
-	if (!rmconfig)
-		return -ENOMEM;
-
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(base))
-		return PTR_ERR(base);
-
-	rmconfig->reg_bits = 32,
-	rmconfig->val_bits = 32,
-	rmconfig->reg_stride = 4,
-	rmconfig->max_register = resource_size(res);
-
-	regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
-	if (IS_ERR(regmap))
-		return PTR_ERR(regmap);
 
 	return berlin_pinctrl_probe(pdev, match->data);
 }
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 28551123d04f..65b0e211b89e 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -301,9 +301,7 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
 	struct regmap *regmap;
 	int ret;
 
-	regmap = dev_get_regmap(&pdev->dev, NULL);
-	if (!regmap)
-		regmap = syscon_node_to_regmap(parent_np);
+	regmap = syscon_node_to_regmap(parent_np);
 	of_node_put(parent_np);
 	if (IS_ERR(regmap))
 		return PTR_ERR(regmap);
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 09/14] clk: berlin: prepare simple-mfd conversion
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (7 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

Prepare conversion of berlin clk drivers to a simple-mfd sub-node by
checking for parent node compatible. If parent node is "syscon" compatible
use it for of_iomap instead of the own node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/clk/berlin/bg2.c  | 6 ++++++
 drivers/clk/berlin/bg2q.c | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index 515fb133495c..d8e57097518b 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -502,11 +502,15 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = {
 
 static void __init berlin2_clock_setup(struct device_node *np)
 {
+	struct device_node *parent_np = of_get_parent(np);
 	const char *parent_names[9];
 	struct clk *clk;
 	u8 avpll_flags = 0;
 	int n;
 
+	if (of_device_is_compatible(parent_np, "syscon"))
+		np = parent_np;
+
 	gbase = of_iomap(np, 0);
 	if (!gbase)
 		return;
@@ -689,3 +693,5 @@ CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
 	       berlin2_clock_setup);
 CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
 	       berlin2_clock_setup);
+CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
+	       berlin2_clock_setup);
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index 440ef81ab15c..638a649ebed7 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -290,10 +290,14 @@ static const struct berlin2_gate_data bg2q_gates[] __initconst = {
 
 static void __init berlin2q_clock_setup(struct device_node *np)
 {
+	struct device_node *parent_np = of_get_parent(np);
 	const char *parent_names[9];
 	struct clk *clk;
 	int n;
 
+	if (of_device_is_compatible(parent_np, "syscon"))
+		np = parent_np;
+
 	gbase = of_iomap(np, 0);
 	if (!gbase) {
 		pr_err("%s: Unable to map global base\n", np->full_name);
@@ -386,3 +390,5 @@ bg2q_fail:
 }
 CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
 	       berlin2q_clock_setup);
+CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
+	       berlin2q_clock_setup);
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 10/14] ARM: berlin: move BG2 clock node
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (8 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 09/14] clk: berlin: prepare simple-mfd conversion Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-06-04 18:56   ` Stephen Boyd
  2015-05-16  0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
                   ` (5 subsequent siblings)
  15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
 arch/arm/boot/dts/berlin2.dtsi | 42 +++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 94d9182e4dfe..b2ffaf42c815 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -56,7 +56,7 @@
 		sdhci0: sdhci at ab0000 {
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab0000 0x200>;
-			clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+			clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
 			clock-names = "io", "core";
 			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
@@ -65,7 +65,7 @@
 		sdhci1: sdhci at ab0800 {
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab0800 0x200>;
-			clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
+			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
 			clock-names = "io", "core";
 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
@@ -75,7 +75,7 @@
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab1000 0x200>;
 			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
+			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
 			clock-names = "io", "core";
 			pinctrl-0 = <&emmc_pmux>;
 			pinctrl-names = "default";
@@ -105,13 +105,13 @@
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xad0600 0x20>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
-			clocks = <&chip CLKID_TWD>;
+			clocks = <&chip_clk CLKID_TWD>;
 		};
 
 		eth1: ethernet at b90000 {
 			compatible = "marvell,pxa168-eth";
 			reg = <0xb90000 0x10000>;
-			clocks = <&chip CLKID_GETH1>;
+			clocks = <&chip_clk CLKID_GETH1>;
 			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
 			/* set by bootloader */
 			local-mac-address = [00 00 00 00 00 00];
@@ -134,7 +134,7 @@
 		eth0: ethernet at e50000 {
 			compatible = "marvell,pxa168-eth";
 			reg = <0xe50000 0x10000>;
-			clocks = <&chip CLKID_GETH0>;
+			clocks = <&chip_clk CLKID_GETH0>;
 			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
 			/* set by bootloader */
 			local-mac-address = [00 00 00 00 00 00];
@@ -233,7 +233,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c00 0x14>;
 				interrupts = <8>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "okay";
 			};
@@ -242,7 +242,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c14 0x14>;
 				interrupts = <9>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "okay";
 			};
@@ -251,7 +251,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c28 0x14>;
 				interrupts = <10>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -260,7 +260,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c3c 0x14>;
 				interrupts = <11>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -269,7 +269,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c50 0x14>;
 				interrupts = <12>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -278,7 +278,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c64 0x14>;
 				interrupts = <13>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -287,7 +287,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c78 0x14>;
 				interrupts = <14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -296,7 +296,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c8c 0x14>;
 				interrupts = <15>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -315,7 +315,7 @@
 			compatible = "marvell,berlin2-ahci", "generic-ahci";
 			reg = <0xe90000 0x1000>;
 			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_SATA>;
+			clocks = <&chip_clk CLKID_SATA>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 
@@ -335,7 +335,7 @@
 		sata_phy: phy at e900a0 {
 			compatible = "marvell,berlin2-sata-phy";
 			reg = <0xe900a0 0x200>;
-			clocks = <&chip CLKID_SATA>;
+			clocks = <&chip_clk CLKID_SATA>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 			#phy-cells = <1>;
@@ -352,10 +352,14 @@
 
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
-			#clock-cells = <1>;
 			reg = <0xea0000 0x400>;
-			clocks = <&refclk>;
-			clock-names = "refclk";
+
+			chip_clk: clock {
+				compatible = "marvell,berlin2-clk";
+				#clock-cells = <1>;
+				clocks = <&refclk>;
+				clock-names = "refclk";
+			};
 
 			soc_pinctrl: pin-controller {
 				compatible = "marvell,berlin2-soc-pinctrl";
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 11/14] ARM: berlin: move BG2CD clock node
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (9 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-06-04 18:56   ` Stephen Boyd
  2015-05-16  0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
                   ` (4 subsequent siblings)
  15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
 arch/arm/boot/dts/berlin2cd.dtsi | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 7544fea43e3a..6ff0194cf77d 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -53,7 +53,7 @@
 		sdhci0: sdhci at ab0000 {
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab0000 0x200>;
-			clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+			clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
 			clock-names = "io", "core";
 			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
@@ -77,7 +77,7 @@
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xad0600 0x20>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
-			clocks = <&chip CLKID_TWD>;
+			clocks = <&chip_clk CLKID_TWD>;
 		};
 
 		usb_phy0: usb-phy at b74000 {
@@ -99,7 +99,7 @@
 		eth1: ethernet at b90000 {
 			compatible = "marvell,pxa168-eth";
 			reg = <0xb90000 0x10000>;
-			clocks = <&chip CLKID_GETH1>;
+			clocks = <&chip_clk CLKID_GETH1>;
 			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
 			/* set by bootloader */
 			local-mac-address = [00 00 00 00 00 00];
@@ -117,7 +117,7 @@
 		eth0: ethernet at e50000 {
 			compatible = "marvell,pxa168-eth";
 			reg = <0xe50000 0x10000>;
-			clocks = <&chip CLKID_GETH0>;
+			clocks = <&chip_clk CLKID_GETH0>;
 			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
 			/* set by bootloader */
 			local-mac-address = [00 00 00 00 00 00];
@@ -216,7 +216,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c00 0x14>;
 				interrupts = <8>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "okay";
 			};
@@ -225,7 +225,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c14 0x14>;
 				interrupts = <9>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "okay";
 			};
@@ -234,7 +234,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c28 0x14>;
 				interrupts = <10>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -243,7 +243,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c3c 0x14>;
 				interrupts = <11>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -252,7 +252,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c50 0x14>;
 				interrupts = <12>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -261,7 +261,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c64 0x14>;
 				interrupts = <13>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -270,7 +270,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c78 0x14>;
 				interrupts = <14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -279,7 +279,7 @@
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c8c 0x14>;
 				interrupts = <15>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -296,10 +296,14 @@
 
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
-			#clock-cells = <1>;
 			reg = <0xea0000 0x400>;
-			clocks = <&refclk>;
-			clock-names = "refclk";
+
+			chip_clk: clock {
+				compatible = "marvell,berlin2-clk";
+				#clock-cells = <1>;
+				clocks = <&refclk>;
+				clock-names = "refclk";
+			};
 
 			soc_pinctrl: pin-controller {
 				compatible = "marvell,berlin2cd-soc-pinctrl";
@@ -320,7 +324,7 @@
 			compatible = "chipidea,usb2";
 			reg = <0xed0000 0x200>;
 			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_USB0>;
+			clocks = <&chip_clk CLKID_USB0>;
 			phys = <&usb_phy0>;
 			phy-names = "usb-phy";
 			status = "disabled";
@@ -330,7 +334,7 @@
 			compatible = "chipidea,usb2";
 			reg = <0xee0000 0x200>;
 			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_USB1>;
+			clocks = <&chip_clk CLKID_USB1>;
 			phys = <&usb_phy1>;
 			phy-names = "usb-phy";
 			status = "disabled";
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 12/14] ARM: berlin: move BG2Q clock node
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (10 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-06-04 18:56   ` Stephen Boyd
  2015-05-16  0:23 ` [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property Sebastian Hesselbarth
                   ` (3 subsequent siblings)
  15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
 arch/arm/boot/dts/berlin2q.dtsi | 50 ++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 23 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 8715d11c8f76..4a21ba386230 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -74,7 +74,7 @@
 		sdhci0: sdhci at ab0000 {
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab0000 0x200>;
-			clocks = <&chip CLKID_SDIO1XIN>;
+			clocks = <&chip_clk CLKID_SDIO1XIN>;
 			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 		};
@@ -82,7 +82,7 @@
 		sdhci1: sdhci at ab0800 {
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab0800 0x200>;
-			clocks = <&chip CLKID_SDIO1XIN>;
+			clocks = <&chip_clk CLKID_SDIO1XIN>;
 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 			status = "disabled";
 		};
@@ -91,7 +91,7 @@
 			compatible = "mrvl,pxav3-mmc";
 			reg = <0xab1000 0x200>;
 			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
+			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
 			clock-names = "io", "core";
 			status = "disabled";
 		};
@@ -112,7 +112,7 @@
 		local-timer at ad0600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xad0600 0x20>;
-			clocks = <&chip CLKID_TWD>;
+			clocks = <&chip_clk CLKID_TWD>;
 			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
 		};
 
@@ -135,7 +135,7 @@
 			compatible = "chipidea,usb2";
 			reg = <0xa30000 0x10000>;
 			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_USB2>;
+			clocks = <&chip_clk CLKID_USB2>;
 			phys = <&usb_phy2>;
 			phy-names = "usb-phy";
 			status = "disabled";
@@ -160,7 +160,7 @@
 		eth0: ethernet at b90000 {
 			compatible = "marvell,pxa168-eth";
 			reg = <0xb90000 0x10000>;
-			clocks = <&chip CLKID_GETH0>;
+			clocks = <&chip_clk CLKID_GETH0>;
 			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
 			/* set by bootloader */
 			local-mac-address = [00 00 00 00 00 00];
@@ -267,7 +267,7 @@
 				reg = <0x1400 0x100>;
 				interrupt-parent = <&aic>;
 				interrupts = <4>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				pinctrl-0 = <&twsi0_pmux>;
 				pinctrl-names = "default";
 				status = "disabled";
@@ -280,7 +280,7 @@
 				reg = <0x1800 0x100>;
 				interrupt-parent = <&aic>;
 				interrupts = <5>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				pinctrl-0 = <&twsi1_pmux>;
 				pinctrl-names = "default";
 				status = "disabled";
@@ -289,7 +289,7 @@
 			timer0: timer at 2c00 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c00 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				interrupts = <8>;
 			};
@@ -297,14 +297,14 @@
 			timer1: timer at 2c14 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c14 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 			};
 
 			timer2: timer at 2c28 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c28 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -312,7 +312,7 @@
 			timer3: timer at 2c3c {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c3c 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -320,7 +320,7 @@
 			timer4: timer at 2c50 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c50 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -328,7 +328,7 @@
 			timer5: timer at 2c64 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c64 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -336,7 +336,7 @@
 			timer6: timer at 2c78 {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c78 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -344,7 +344,7 @@
 			timer7: timer at 2c8c {
 				compatible = "snps,dw-apb-timer";
 				reg = <0x2c8c 0x14>;
-				clocks = <&chip CLKID_CFG>;
+				clocks = <&chip_clk CLKID_CFG>;
 				clock-names = "timer";
 				status = "disabled";
 			};
@@ -361,10 +361,14 @@
 
 		chip: chip-control at ea0000 {
 			compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
-			#clock-cells = <1>;
 			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
-			clocks = <&refclk>;
-			clock-names = "refclk";
+
+			chip_clk: clock {
+				compatible = "marvell,berlin2q-clk";
+				#clock-cells = <1>;
+				clocks = <&refclk>;
+				clock-names = "refclk";
+			};
 
 			soc_pinctrl: pin-controller {
 				compatible = "marvell,berlin2q-soc-pinctrl";
@@ -389,7 +393,7 @@
 			compatible = "marvell,berlin2q-ahci", "generic-ahci";
 			reg = <0xe90000 0x1000>;
 			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_SATA>;
+			clocks = <&chip_clk CLKID_SATA>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 
@@ -409,7 +413,7 @@
 		sata_phy: phy at e900a0 {
 			compatible = "marvell,berlin2q-sata-phy";
 			reg = <0xe900a0 0x200>;
-			clocks = <&chip CLKID_SATA>;
+			clocks = <&chip_clk CLKID_SATA>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 			#phy-cells = <1>;
@@ -428,7 +432,7 @@
 			compatible = "chipidea,usb2";
 			reg = <0xed0000 0x10000>;
 			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_USB0>;
+			clocks = <&chip_clk CLKID_USB0>;
 			phys = <&usb_phy0>;
 			phy-names = "usb-phy";
 			status = "disabled";
@@ -438,7 +442,7 @@
 			compatible = "chipidea,usb2";
 			reg = <0xee0000 0x10000>;
 			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-			clocks = <&chip CLKID_USB1>;
+			clocks = <&chip_clk CLKID_USB1>;
 			phys = <&usb_phy1>;
 			phy-names = "usb-phy";
 			status = "disabled";
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (11 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  0:23 ` [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles Sebastian Hesselbarth
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

The Berlin clock driver was sharing a DT node with the pin controller
and the reset driver. All these devices are now sub-nodes of the chip
controller. This patch rework the Berlin clock driver to allow moving
the Berlin clock DT bindings into their own sub-node of the chip
controller node.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/clk/berlin/bg2.c  | 9 +--------
 drivers/clk/berlin/bg2q.c | 9 ++-------
 2 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index d8e57097518b..73153fc45ee9 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -508,10 +508,7 @@ static void __init berlin2_clock_setup(struct device_node *np)
 	u8 avpll_flags = 0;
 	int n;
 
-	if (of_device_is_compatible(parent_np, "syscon"))
-		np = parent_np;
-
-	gbase = of_iomap(np, 0);
+	gbase = of_iomap(parent_np, 0);
 	if (!gbase)
 		return;
 
@@ -689,9 +686,5 @@ static void __init berlin2_clock_setup(struct device_node *np)
 bg2_fail:
 	iounmap(gbase);
 }
-CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
-	       berlin2_clock_setup);
-CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
-	       berlin2_clock_setup);
 CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
 	       berlin2_clock_setup);
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index 638a649ebed7..221f40c2b850 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -295,17 +295,14 @@ static void __init berlin2q_clock_setup(struct device_node *np)
 	struct clk *clk;
 	int n;
 
-	if (of_device_is_compatible(parent_np, "syscon"))
-		np = parent_np;
-
-	gbase = of_iomap(np, 0);
+	gbase = of_iomap(parent_np, 0);
 	if (!gbase) {
 		pr_err("%s: Unable to map global base\n", np->full_name);
 		return;
 	}
 
 	/* BG2Q CPU PLL is not part of global registers */
-	cpupll_base = of_iomap(np, 1);
+	cpupll_base = of_iomap(parent_np, 1);
 	if (!cpupll_base) {
 		pr_err("%s: Unable to map cpupll base\n", np->full_name);
 		iounmap(gbase);
@@ -388,7 +385,5 @@ bg2q_fail:
 	iounmap(cpupll_base);
 	iounmap(gbase);
 }
-CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
-	       berlin2q_clock_setup);
 CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
 	       berlin2q_clock_setup);
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (12 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property Sebastian Hesselbarth
@ 2015-05-16  0:23 ` Sebastian Hesselbarth
  2015-05-16  7:39 ` [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Arnd Bergmann
  2015-05-20 15:25 ` Arnd Bergmann
  15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

From: Antoine Tenart <antoine.tenart@free-electrons.com>

Now that the rework to have one sub-node per device in the chip and
system controllers is done, their dedicated compatible can be removed.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
 arch/arm/boot/dts/berlin2.dtsi   | 4 ++--
 arch/arm/boot/dts/berlin2cd.dtsi | 4 ++--
 arch/arm/boot/dts/berlin2q.dtsi  | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index b2ffaf42c815..4d2f52759b07 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -351,7 +351,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
+			compatible = "simple-mfd", "syscon";
 			reg = <0xea0000 0x400>;
 
 			chip_clk: clock {
@@ -454,7 +454,7 @@
 			};
 
 			sysctrl: system-controller at d000 {
-				compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
+				compatible = "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
 				sys_pinctrl: pin-controller {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 6ff0194cf77d..0a70d47663b2 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -295,7 +295,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
+			compatible = "simple-mfd", "syscon";
 			reg = <0xea0000 0x400>;
 
 			chip_clk: clock {
@@ -401,7 +401,7 @@
 			};
 
 			sysctrl: system-controller at d000 {
-				compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
+				compatible = "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
 				sys_pinctrl: pin-controller {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 4a21ba386230..0c6c88a861cd 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -360,7 +360,7 @@
 		};
 
 		chip: chip-control at ea0000 {
-			compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
+			compatible = "simple-mfd", "syscon";
 			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
 
 			chip_clk: clock {
@@ -537,7 +537,7 @@
 			};
 
 			sysctrl: pin-controller at d000 {
-				compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
+				compatible = "simple-mfd", "syscon";
 				reg = <0xd000 0x100>;
 
 				sys_pinctrl: pin-controller {
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (13 preceding siblings ...)
  2015-05-16  0:23 ` [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles Sebastian Hesselbarth
@ 2015-05-16  7:39 ` Arnd Bergmann
  2015-05-20 15:25 ` Arnd Bergmann
  15 siblings, 0 replies; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-16  7:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
> This is a patch set reworking Antoine's patches to move Berlin's system and
> chip controller nodes to simple-mfd registered sub-nodes in a bisect compatible
> way.
> 
> Compared to Antoine's patches, I basically first converted the drivers to
> deal with both single node and simple-mfd sub-node registration, then move the
> DT nodes over to simple-mfd, and finally drop the old way of registration.
> 
> I decided to squash the BG2/BG2CD/BG2Q DT changes into a single patch where
> applicable instead of the clock node rework patches. I also left the Acked-by
> from Phillip Zabel (reset), Linus Walleij (pinctrl), and Stephen Boyd (clk)
> in place for the driver changes as the outcome is the same at the end.
> 
> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> now happy with the dependency of the patches and none of the maintainers is
> against it, I'll prepare a PR next week.
> 
> @Arnd: This is still based on v4.1-rc1 as I cannot see a stable branch for
> simple-mfd support. Anything specific you want me to remind you that this
> depends on simple-mfd?
> 

You should be able to see a drivers/simple-mfd branch in arm-soc.git.
You can base on top of that.

I think it's fine to merge the entire series into our next/drivers branch,
which already has the simple-mfd bits, but you'll still need to rebase
on simple-mfd to make bisection work.

Thanks,

	ARnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
  2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
                   ` (14 preceding siblings ...)
  2015-05-16  7:39 ` [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Arnd Bergmann
@ 2015-05-20 15:25 ` Arnd Bergmann
  2015-05-20 15:37   ` Sebastian Hesselbarth
  15 siblings, 1 reply; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-20 15:25 UTC (permalink / raw)
  To: linux-arm-kernel

On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
> 
> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> now happy with the dependency of the patches and none of the maintainers is
> against it, I'll prepare a PR next week.

I haven't see the pull request yet, are you still working on it?
 
	Arnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
  2015-05-20 15:25 ` Arnd Bergmann
@ 2015-05-20 15:37   ` Sebastian Hesselbarth
  2015-05-20 15:51     ` Arnd Bergmann
  0 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-20 15:37 UTC (permalink / raw)
  To: linux-arm-kernel

On 20.05.2015 17:25, Arnd Bergmann wrote:
> On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
>>
>> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
>> now happy with the dependency of the patches and none of the maintainers is
>> against it, I'll prepare a PR next week.
>
> I haven't see the pull request yet, are you still working on it?

I was hoping to find some time to actually test bisectability.
How much time do I have left for getting into v4.2 cycle?

Sebastian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
  2015-05-20 15:37   ` Sebastian Hesselbarth
@ 2015-05-20 15:51     ` Arnd Bergmann
  0 siblings, 0 replies; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-20 15:51 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 20 May 2015 17:37:26 Sebastian Hesselbarth wrote:
> On 20.05.2015 17:25, Arnd Bergmann wrote:
> > On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
> >>
> >> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> >> now happy with the dependency of the patches and none of the maintainers is
> >> against it, I'll prepare a PR next week.
> >
> > I haven't see the pull request yet, are you still working on it?
> 
> I was hoping to find some time to actually test bisectability.
> How much time do I have left for getting into v4.2 cycle?

I've reviewed your patches for possible bisection problems now, and
they seem to all be good in this regard. I think it's best if you
send a pull request now. It's not urgent yet, but I'd rather have
more stuff merged earlier than later.

	Arnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 10/14] ARM: berlin: move BG2 clock node
  2015-05-16  0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
@ 2015-06-04 18:56   ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
> 
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
> 
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---

Acked-by: Stephen Boyd <sboyd@codeaurora.org>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 11/14] ARM: berlin: move BG2CD clock node
  2015-05-16  0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
@ 2015-06-04 18:56   ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
> 
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
> 
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---

Acked-by: Stephen Boyd <sboyd@codeaurora.org>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH 12/14] ARM: berlin: move BG2Q clock node
  2015-05-16  0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
@ 2015-06-04 18:56   ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
> 
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
> 
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---

Acked-by: Stephen Boyd <sboyd@codeaurora.org>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-06-04 18:56 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-16  0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 03/14] reset: berlin: convert to a platform driver Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 05/14] reset: berlin: drop arch_initcall initialization Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 09/14] clk: berlin: prepare simple-mfd conversion Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
2015-06-04 18:56   ` Stephen Boyd
2015-05-16  0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
2015-06-04 18:56   ` Stephen Boyd
2015-05-16  0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
2015-06-04 18:56   ` Stephen Boyd
2015-05-16  0:23 ` [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property Sebastian Hesselbarth
2015-05-16  0:23 ` [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles Sebastian Hesselbarth
2015-05-16  7:39 ` [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Arnd Bergmann
2015-05-20 15:25 ` Arnd Bergmann
2015-05-20 15:37   ` Sebastian Hesselbarth
2015-05-20 15:51     ` Arnd Bergmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.