linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K
@ 2017-05-31 14:07 Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 1/7] clk: mvebu: ap806: cosmetic improvement Gregory CLEMENT
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

Hi,

This series modifies the device tree binding of the clock of the AP806
part that we find in the Marvell Armada 7K/8K SoCs.

As for the previsous series the only change in this second version is
about the binding documentation: all the documentation related changes
are now move in their own patches. It allows to provide a stable -dt
branch for theses changes. I also added the acked-by from Rob Herring.

Here again the last two patches modifying the device tree _must_ be
merged through the mvebu tree to avoid future conflict.

For the record:
As for the CP110, we want to be able to ease the integration of new
clocks without breaking the backward compatibility. It is done in
patch 3.

We also want to ease the integration of the pinctrl node in the device
tree. It is the purpose of the patch 5.

In this series (as in the previous one for CP110), even if there is
some change in the device tree binding we paid attention to the
backward compatibility, and the driver can still work with the old
device tree.

Thanks,

Gregory

Gregory CLEMENT (7):
  clk: mvebu: ap806: cosmetic improvement
  dt-bindings: ap806: do not depend anymore of the *-clock-output-names
  clk: mvebu: ap806: do not depend anymore of the *-clock-output-names
  dt-bindings: ap806: introduce a new binding
  clk: mvebu: ap806: introduce a new binding
  arm64: dts: marvell: remove clock-output-names on ap806
  arm64: dts: marvell: use new binding for the system controller on ap806

 Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt |  24 ++++++++++------
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi                             |  23 +++++++--------
 drivers/clk/mvebu/ap806-system-controller.c                               | 107 +++++++++++++++++++++++++++++++++++++++++++++++-------------------------
 3 files changed, 97 insertions(+), 57 deletions(-)

base-commit: 4139fcd6c66df1c3d3fa0a0a7cf7f8a8c601a16c
-- 
git-series 0.9.1

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

* [PATCH v2 1/7] clk: mvebu: ap806: cosmetic improvement
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 2/7] dt-bindings: ap806: do not depend anymore of the *-clock-output-names Gregory CLEMENT
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

Instead of using &pdev->dev all over the place, introduce a pointer
variable for it.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 drivers/clk/mvebu/ap806-system-controller.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mvebu/ap806-system-controller.c b/drivers/clk/mvebu/ap806-system-controller.c
index 8155baccc98e..b2666b5c944f 100644
--- a/drivers/clk/mvebu/ap806-system-controller.c
+++ b/drivers/clk/mvebu/ap806-system-controller.c
@@ -36,20 +36,21 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 {
 	unsigned int freq_mode, cpuclk_freq;
 	const char *name, *fixedclk_name;
-	struct device_node *np = pdev->dev.of_node;
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
 	struct regmap *regmap;
 	u32 reg;
 	int ret;
 
 	regmap = syscon_node_to_regmap(np);
 	if (IS_ERR(regmap)) {
-		dev_err(&pdev->dev, "cannot get regmap\n");
+		dev_err(dev, "cannot get regmap\n");
 		return PTR_ERR(regmap);
 	}
 
 	ret = regmap_read(regmap, AP806_SAR_REG, &reg);
 	if (ret) {
-		dev_err(&pdev->dev, "cannot read from regmap\n");
+		dev_err(dev, "cannot read from regmap\n");
 		return ret;
 	}
 
@@ -89,7 +90,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 		cpuclk_freq = 600;
 		break;
 	default:
-		dev_err(&pdev->dev, "invalid SAR value\n");
+		dev_err(dev, "invalid SAR value\n");
 		return -EINVAL;
 	}
 
@@ -99,7 +100,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	/* CPU clocks depend on the Sample At Reset configuration */
 	of_property_read_string_index(np, "clock-output-names",
 				      0, &name);
-	ap806_clks[0] = clk_register_fixed_rate(&pdev->dev, name, NULL,
+	ap806_clks[0] = clk_register_fixed_rate(dev, name, NULL,
 						0, cpuclk_freq);
 	if (IS_ERR(ap806_clks[0])) {
 		ret = PTR_ERR(ap806_clks[0]);
@@ -108,7 +109,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 
 	of_property_read_string_index(np, "clock-output-names",
 				      1, &name);
-	ap806_clks[1] = clk_register_fixed_rate(&pdev->dev, name, NULL, 0,
+	ap806_clks[1] = clk_register_fixed_rate(dev, name, NULL, 0,
 						cpuclk_freq);
 	if (IS_ERR(ap806_clks[1])) {
 		ret = PTR_ERR(ap806_clks[1]);
@@ -118,7 +119,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	/* Fixed clock is always 1200 Mhz */
 	of_property_read_string_index(np, "clock-output-names",
 				      2, &fixedclk_name);
-	ap806_clks[2] = clk_register_fixed_rate(&pdev->dev, fixedclk_name, NULL,
+	ap806_clks[2] = clk_register_fixed_rate(dev, fixedclk_name, NULL,
 						0, 1200 * 1000 * 1000);
 	if (IS_ERR(ap806_clks[2])) {
 		ret = PTR_ERR(ap806_clks[2]);
-- 
git-series 0.9.1

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

* [PATCH v2 2/7] dt-bindings: ap806: do not depend anymore of the *-clock-output-names
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 1/7] clk: mvebu: ap806: cosmetic improvement Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 3/7] clk: mvebu: " Gregory CLEMENT
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

This patch updates the documentation according to the change made in the
patch "clk: mvebu: ap806: do not depend anymore of the
*-clock-output-names": the clock names are no more part of the binding.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt b/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
index 8968371d84e2..3faab71dff9f 100644
--- a/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
+++ b/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
@@ -21,15 +21,11 @@ Required properties:
      "marvell,ap806-system-controller", "syscon"
  - reg: register area of the AP806 system controller
  - #clock-cells: must be set to 1
- - clock-output-names: must be defined to:
-    "ap-cpu-cluster-0", "ap-cpu-cluster-1", "ap-fixed", "ap-mss"
 
 Example:
 
 	syscon: system-controller@6f4000 {
 		compatible = "marvell,ap806-system-controller", "syscon";
 		#clock-cells = <1>;
-		clock-output-names = "ap-cpu-cluster-0", "ap-cpu-cluster-1",
-				     "ap-fixed", "ap-mss";
 		reg = <0x6f4000 0x1000>;
 	};
-- 
git-series 0.9.1

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

* [PATCH v2 3/7] clk: mvebu: ap806: do not depend anymore of the *-clock-output-names
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 1/7] clk: mvebu: ap806: cosmetic improvement Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 2/7] dt-bindings: ap806: do not depend anymore of the *-clock-output-names Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 4/7] dt-bindings: ap806: introduce a new binding Gregory CLEMENT
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

As it was done for the cp110, this patch modifies the way the clock names
are created. The name of each clock is now created by using its physical
address as a prefix (as it was done for the platform device
names). Thanks to this we have an automatic way to compute a unique name.

Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 drivers/clk/mvebu/ap806-system-controller.c | 46 +++++++++++-----------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/drivers/clk/mvebu/ap806-system-controller.c b/drivers/clk/mvebu/ap806-system-controller.c
index b2666b5c944f..95ae16e203ea 100644
--- a/drivers/clk/mvebu/ap806-system-controller.c
+++ b/drivers/clk/mvebu/ap806-system-controller.c
@@ -32,6 +32,18 @@ static struct clk_onecell_data ap806_clk_data = {
 	.clk_num = AP806_CLK_NUM,
 };
 
+static char *ap806_unique_name(struct device *dev, struct device_node *np,
+			       char *name)
+{
+	const __be32 *reg;
+	u64 addr;
+
+	reg = of_get_property(np, "reg", NULL);
+	addr = of_translate_address(np, reg);
+	return devm_kasprintf(dev, GFP_KERNEL, "%llx-%s",
+			(unsigned long long)addr, name);
+}
+
 static int ap806_syscon_clk_probe(struct platform_device *pdev)
 {
 	unsigned int freq_mode, cpuclk_freq;
@@ -98,8 +110,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	cpuclk_freq *= 1000 * 1000;
 
 	/* CPU clocks depend on the Sample At Reset configuration */
-	of_property_read_string_index(np, "clock-output-names",
-				      0, &name);
+	name = ap806_unique_name(dev, np, "cpu-cluster-0");
 	ap806_clks[0] = clk_register_fixed_rate(dev, name, NULL,
 						0, cpuclk_freq);
 	if (IS_ERR(ap806_clks[0])) {
@@ -107,8 +118,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 		goto fail0;
 	}
 
-	of_property_read_string_index(np, "clock-output-names",
-				      1, &name);
+	name = ap806_unique_name(dev, np, "cpu-cluster-1");
 	ap806_clks[1] = clk_register_fixed_rate(dev, name, NULL, 0,
 						cpuclk_freq);
 	if (IS_ERR(ap806_clks[1])) {
@@ -117,8 +127,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	}
 
 	/* Fixed clock is always 1200 Mhz */
-	of_property_read_string_index(np, "clock-output-names",
-				      2, &fixedclk_name);
+	fixedclk_name = ap806_unique_name(dev, np, "fixed");
 	ap806_clks[2] = clk_register_fixed_rate(dev, fixedclk_name, NULL,
 						0, 1200 * 1000 * 1000);
 	if (IS_ERR(ap806_clks[2])) {
@@ -127,8 +136,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	}
 
 	/* MSS Clock is fixed clock divided by 6 */
-	of_property_read_string_index(np, "clock-output-names",
-				      3, &name);
+	name = ap806_unique_name(dev, np, "mss");
 	ap806_clks[3] = clk_register_fixed_factor(NULL, name, fixedclk_name,
 						  0, 1, 6);
 	if (IS_ERR(ap806_clks[3])) {
@@ -136,20 +144,14 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 		goto fail3;
 	}
 
-	/* eMMC Clock is fixed clock divided by 3 */
-	if (of_property_read_string_index(np, "clock-output-names",
-					  4, &name)) {
-		ap806_clk_data.clk_num--;
-		dev_warn(&pdev->dev,
-			 "eMMC clock missing: update the device tree!\n");
-	} else {
-		ap806_clks[4] = clk_register_fixed_factor(NULL, name,
-							  fixedclk_name,
-							  0, 1, 3);
-		if (IS_ERR(ap806_clks[4])) {
-			ret = PTR_ERR(ap806_clks[4]);
-			goto fail4;
-		}
+	/* SDIO(/eMMC) Clock is fixed clock divided by 3 */
+	name = ap806_unique_name(dev, np, "sdio");
+	ap806_clks[4] = clk_register_fixed_factor(NULL, name,
+						  fixedclk_name,
+						  0, 1, 3);
+	if (IS_ERR(ap806_clks[4])) {
+		ret = PTR_ERR(ap806_clks[4]);
+		goto fail4;
 	}
 
 	of_clk_add_provider(np, of_clk_src_onecell_get, &ap806_clk_data);
-- 
git-series 0.9.1

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

* [PATCH v2 4/7] dt-bindings: ap806: introduce a new binding
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
                   ` (2 preceding siblings ...)
  2017-05-31 14:07 ` [PATCH v2 3/7] clk: mvebu: " Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 5/7] clk: mvebu: " Gregory CLEMENT
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

This patch updates the documentation according to the changes made in the
patch "clk: mvebu: ap806: introduce a new binding"

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt b/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
index 3faab71dff9f..888c50e0d64f 100644
--- a/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
+++ b/Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt
@@ -7,6 +7,14 @@ registers giving access to numerous features: clocks, pin-muxing and
 many other SoC configuration items. This DT binding allows to describe
 this system controller.
 
+For the top level node:
+ - compatible: must be: "syscon", "simple-mfd";
+  - reg: register area of the AP806 system controller
+
+Clocks:
+-------
+
+
 The Device Tree node representing the AP806 system controller provides
 a number of clocks:
 
@@ -17,15 +25,17 @@ a number of clocks:
 
 Required properties:
 
- - compatible: must be:
-     "marvell,ap806-system-controller", "syscon"
- - reg: register area of the AP806 system controller
+ - compatible: must be: "marvell,ap806-clock"
  - #clock-cells: must be set to 1
 
 Example:
 
 	syscon: system-controller@6f4000 {
-		compatible = "marvell,ap806-system-controller", "syscon";
-		#clock-cells = <1>;
+		compatible = "syscon", "simple-mfd";
 		reg = <0x6f4000 0x1000>;
+
+		ap_clk: clock {
+			compatible = "marvell,ap806-clock";
+			#clock-cells = <1>;
+		};
 	};
-- 
git-series 0.9.1

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

* [PATCH v2 5/7] clk: mvebu: ap806: introduce a new binding
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
                   ` (3 preceding siblings ...)
  2017-05-31 14:07 ` [PATCH v2 4/7] dt-bindings: ap806: introduce a new binding Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806 Gregory CLEMENT
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

As for cp110, the initial intent when the binding of the ap806 system
controller was to have one flat node. The idea being that what is
currently a clock-only driver in drivers would become a MFD driver,
exposing the clock, GPIO and pinctrl functionality. However, after taking
a step back, this would lead to a messy binding. Indeed, a single node
would be a GPIO controller, clock controller, pinmux controller, and
more.

This patch adopts a more classical solution of a top-level syscon node
with sub-nodes for the individual devices. The main benefit will be to
have each functional block associated to its own sub-node where we can
put its own properties.

The introduction of the Armada 7K/8K is still in the early stage so the
plan is to remove the old binding. However, we don't want to break the
device tree compatibility for the few devices already in the field. For
this we still keep the support of the legacy compatible string with a big
warning in the kernel about updating the device tree.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 drivers/clk/mvebu/ap806-system-controller.c | 56 +++++++++++++++++-----
 1 file changed, 44 insertions(+), 12 deletions(-)

diff --git a/drivers/clk/mvebu/ap806-system-controller.c b/drivers/clk/mvebu/ap806-system-controller.c
index 95ae16e203ea..fa2fbd2cef4a 100644
--- a/drivers/clk/mvebu/ap806-system-controller.c
+++ b/drivers/clk/mvebu/ap806-system-controller.c
@@ -44,7 +44,8 @@ static char *ap806_unique_name(struct device *dev, struct device_node *np,
 			(unsigned long long)addr, name);
 }
 
-static int ap806_syscon_clk_probe(struct platform_device *pdev)
+static int ap806_syscon_common_probe(struct platform_device *pdev,
+				     struct device_node *syscon_node)
 {
 	unsigned int freq_mode, cpuclk_freq;
 	const char *name, *fixedclk_name;
@@ -54,7 +55,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	u32 reg;
 	int ret;
 
-	regmap = syscon_node_to_regmap(np);
+	regmap = syscon_node_to_regmap(syscon_node);
 	if (IS_ERR(regmap)) {
 		dev_err(dev, "cannot get regmap\n");
 		return PTR_ERR(regmap);
@@ -110,7 +111,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	cpuclk_freq *= 1000 * 1000;
 
 	/* CPU clocks depend on the Sample At Reset configuration */
-	name = ap806_unique_name(dev, np, "cpu-cluster-0");
+	name = ap806_unique_name(dev, syscon_node, "cpu-cluster-0");
 	ap806_clks[0] = clk_register_fixed_rate(dev, name, NULL,
 						0, cpuclk_freq);
 	if (IS_ERR(ap806_clks[0])) {
@@ -118,7 +119,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 		goto fail0;
 	}
 
-	name = ap806_unique_name(dev, np, "cpu-cluster-1");
+	name = ap806_unique_name(dev, syscon_node, "cpu-cluster-1");
 	ap806_clks[1] = clk_register_fixed_rate(dev, name, NULL, 0,
 						cpuclk_freq);
 	if (IS_ERR(ap806_clks[1])) {
@@ -127,7 +128,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	}
 
 	/* Fixed clock is always 1200 Mhz */
-	fixedclk_name = ap806_unique_name(dev, np, "fixed");
+	fixedclk_name = ap806_unique_name(dev, syscon_node, "fixed");
 	ap806_clks[2] = clk_register_fixed_rate(dev, fixedclk_name, NULL,
 						0, 1200 * 1000 * 1000);
 	if (IS_ERR(ap806_clks[2])) {
@@ -136,7 +137,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	}
 
 	/* MSS Clock is fixed clock divided by 6 */
-	name = ap806_unique_name(dev, np, "mss");
+	name = ap806_unique_name(dev, syscon_node, "mss");
 	ap806_clks[3] = clk_register_fixed_factor(NULL, name, fixedclk_name,
 						  0, 1, 6);
 	if (IS_ERR(ap806_clks[3])) {
@@ -145,7 +146,7 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	}
 
 	/* SDIO(/eMMC) Clock is fixed clock divided by 3 */
-	name = ap806_unique_name(dev, np, "sdio");
+	name = ap806_unique_name(dev, syscon_node, "sdio");
 	ap806_clks[4] = clk_register_fixed_factor(NULL, name,
 						  fixedclk_name,
 						  0, 1, 3);
@@ -175,17 +176,48 @@ static int ap806_syscon_clk_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static const struct of_device_id ap806_syscon_of_match[] = {
+static int ap806_syscon_legacy_probe(struct platform_device *pdev)
+{
+	dev_warn(&pdev->dev, FW_WARN "Using legacy device tree binding\n");
+	dev_warn(&pdev->dev, FW_WARN "Update your device tree:\n");
+	dev_warn(&pdev->dev, FW_WARN
+		 "This binding won't be supported in future kernel\n");
+
+	return ap806_syscon_common_probe(pdev, pdev->dev.of_node);
+
+}
+
+static int ap806_clock_probe(struct platform_device *pdev)
+{
+	return ap806_syscon_common_probe(pdev, pdev->dev.of_node->parent);
+}
+
+static const struct of_device_id ap806_syscon_legacy_of_match[] = {
 	{ .compatible = "marvell,ap806-system-controller", },
 	{ }
 };
 
-static struct platform_driver ap806_syscon_driver = {
-	.probe = ap806_syscon_clk_probe,
+static struct platform_driver ap806_syscon_legacy_driver = {
+	.probe = ap806_syscon_legacy_probe,
 	.driver		= {
 		.name	= "marvell-ap806-system-controller",
-		.of_match_table = ap806_syscon_of_match,
+		.of_match_table = ap806_syscon_legacy_of_match,
+		.suppress_bind_attrs = true,
+	},
+};
+builtin_platform_driver(ap806_syscon_legacy_driver);
+
+static const struct of_device_id ap806_clock_of_match[] = {
+	{ .compatible = "marvell,ap806-clock", },
+	{ }
+};
+
+static struct platform_driver ap806_clock_driver = {
+	.probe = ap806_clock_probe,
+	.driver		= {
+		.name	= "marvell-ap806-clock",
+		.of_match_table = ap806_clock_of_match,
 		.suppress_bind_attrs = true,
 	},
 };
-builtin_platform_driver(ap806_syscon_driver);
+builtin_platform_driver(ap806_clock_driver);
-- 
git-series 0.9.1

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

* [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
                   ` (4 preceding siblings ...)
  2017-05-31 14:07 ` [PATCH v2 5/7] clk: mvebu: " Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-06-08 17:08   ` Gregory CLEMENT
  2017-05-31 14:07 ` [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller " Gregory CLEMENT
  2017-06-01  9:50 ` [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Michael Turquette
  7 siblings, 1 reply; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

The clock-output-names of the ap806-system-controller node are not used
anymore, so remove them.

Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
index fe41bf9c301e..0c25ec62a2a3 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
@@ -244,10 +244,6 @@
 				compatible = "marvell,ap806-system-controller",
 					     "syscon";
 				#clock-cells = <1>;
-				clock-output-names = "ap-cpu-cluster-0",
-						     "ap-cpu-cluster-1",
-						     "ap-fixed", "ap-mss",
-						     "ap-emmc";
 				reg = <0x6f4000 0x1000>;
 			};
 		};
-- 
git-series 0.9.1

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

* [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller on ap806
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
                   ` (5 preceding siblings ...)
  2017-05-31 14:07 ` [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806 Gregory CLEMENT
@ 2017-05-31 14:07 ` Gregory CLEMENT
  2017-06-08 17:09   ` Gregory CLEMENT
  2017-06-01  9:50 ` [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Michael Turquette
  7 siblings, 1 reply; 12+ messages in thread
From: Gregory CLEMENT @ 2017-05-31 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Mike Turquette, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

The new binding for the system controller on ap806 moved the clock into a
subnode. This preliminary step will allow to add gpio and pinctrl
subnodes

Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
index 0c25ec62a2a3..205037e3e7dc 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
@@ -193,7 +193,7 @@
 				#size-cells = <0>;
 				cell-index = <0>;
 				interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&ap_syscon 3>;
+				clocks = <&ap_clk 3>;
 				status = "disabled";
 			};
 
@@ -204,7 +204,7 @@
 				#size-cells = <0>;
 				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 				timeout-ms = <1000>;
-				clocks = <&ap_syscon 3>;
+				clocks = <&ap_clk 3>;
 				status = "disabled";
 			};
 
@@ -214,7 +214,7 @@
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 				reg-io-width = <1>;
-				clocks = <&ap_syscon 3>;
+				clocks = <&ap_clk 3>;
 				status = "disabled";
 			};
 
@@ -224,7 +224,7 @@
 				reg-shift = <2>;
 				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
 				reg-io-width = <1>;
-				clocks = <&ap_syscon 3>;
+				clocks = <&ap_clk 3>;
 				status = "disabled";
 
 			};
@@ -234,17 +234,20 @@
 				reg = <0x6e0000 0x300>;
 				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
 				clock-names = "core";
-				clocks = <&ap_syscon 4>;
+				clocks = <&ap_clk 4>;
 				dma-coherent;
 				marvell,xenon-phy-slow-mode;
 				status = "disabled";
 			};
 
 			ap_syscon: system-controller@6f4000 {
-				compatible = "marvell,ap806-system-controller",
-					     "syscon";
-				#clock-cells = <1>;
+				compatible = "syscon", "simple-mfd";
 				reg = <0x6f4000 0x1000>;
+
+				ap_clk: clock {
+					compatible = "marvell,ap806-clock";
+					#clock-cells = <1>;
+				};
 			};
 		};
 	};
-- 
git-series 0.9.1

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

* Re: [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K
  2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
                   ` (6 preceding siblings ...)
  2017-05-31 14:07 ` [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller " Gregory CLEMENT
@ 2017-06-01  9:50 ` Michael Turquette
  2017-06-02 13:52   ` Gregory CLEMENT
  7 siblings, 1 reply; 12+ messages in thread
From: Michael Turquette @ 2017-06-01  9:50 UTC (permalink / raw)
  To: Gregory CLEMENT, Stephen Boyd, linux-clk, linux-kernel
  Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
	Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel, Rob Herring,
	devicetree, Nadav Haklai, Kostya Porotchkin,
	Neta Zur Hershkovits, Marcin Wojtas, Omri Itach, Shadi Ammouri

Hi Gregory,

Quoting Gregory CLEMENT (2017-05-31 23:07:21)
> Hi,
> 
> This series modifies the device tree binding of the clock of the AP806
> part that we find in the Marvell Armada 7K/8K SoCs.
> 
> As for the previsous series the only change in this second version is
> about the binding documentation: all the documentation related changes
> are now move in their own patches. It allows to provide a stable -dt
> branch for theses changes. I also added the acked-by from Rob Herring.
> 
> Here again the last two patches modifying the device tree _must_ be
> merged through the mvebu tree to avoid future conflict.

The approach (and the patches) look good to me. I took the DT binding
description changes (patches 2 & 4) into clk-ap806-dt stable branch:

https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/log/?h=clk-ap806-dt

Anyone can merge the above branch if they need it as a dep.

The driver changes (patches 1, 3 & 5) are merged on into clk-ap806,
which is based on top of clk-ap806-dt:

https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/log/?h=clk-ap806

Everything has been merged into clk-next. I did not touch the .dts files
at all.

Regards,
Mike

> 
> For the record:
> As for the CP110, we want to be able to ease the integration of new
> clocks without breaking the backward compatibility. It is done in
> patch 3.
> 
> We also want to ease the integration of the pinctrl node in the device
> tree. It is the purpose of the patch 5.
> 
> In this series (as in the previous one for CP110), even if there is
> some change in the device tree binding we paid attention to the
> backward compatibility, and the driver can still work with the old
> device tree.
> 
> Thanks,
> 
> Gregory
> 
> Gregory CLEMENT (7):
>   clk: mvebu: ap806: cosmetic improvement
>   dt-bindings: ap806: do not depend anymore of the *-clock-output-names
>   clk: mvebu: ap806: do not depend anymore of the *-clock-output-names
>   dt-bindings: ap806: introduce a new binding
>   clk: mvebu: ap806: introduce a new binding
>   arm64: dts: marvell: remove clock-output-names on ap806
>   arm64: dts: marvell: use new binding for the system controller on ap806
> 
>  Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt |  24 ++++++++++------
>  arch/arm64/boot/dts/marvell/armada-ap806.dtsi                             |  23 +++++++--------
>  drivers/clk/mvebu/ap806-system-controller.c                               | 107 +++++++++++++++++++++++++++++++++++++++++++++++-------------------------
>  3 files changed, 97 insertions(+), 57 deletions(-)
> 
> base-commit: 4139fcd6c66df1c3d3fa0a0a7cf7f8a8c601a16c
> -- 
> git-series 0.9.1

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

* Re: [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K
  2017-06-01  9:50 ` [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Michael Turquette
@ 2017-06-02 13:52   ` Gregory CLEMENT
  0 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-06-02 13:52 UTC (permalink / raw)
  To: Michael Turquette
  Cc: Stephen Boyd, linux-clk, linux-kernel, Thomas Petazzoni,
	Andrew Lunn, Jason Cooper, devicetree, Omri Itach, Nadav Haklai,
	Kostya Porotchkin, Rob Herring, Neta Zur Hershkovits,
	Shadi Ammouri, Marcin Wojtas, linux-arm-kernel,
	Sebastian Hesselbarth

Hi Michael,
 
 On jeu., juin 01 2017, Michael Turquette <mturquette@baylibre.com> wrote:

> Hi Gregory,
>
> Quoting Gregory CLEMENT (2017-05-31 23:07:21)
>> Hi,
>> 
>> This series modifies the device tree binding of the clock of the AP806
>> part that we find in the Marvell Armada 7K/8K SoCs.
>> 
>> As for the previsous series the only change in this second version is
>> about the binding documentation: all the documentation related changes
>> are now move in their own patches. It allows to provide a stable -dt
>> branch for theses changes. I also added the acked-by from Rob Herring.
>> 
>> Here again the last two patches modifying the device tree _must_ be
>> merged through the mvebu tree to avoid future conflict.
>
> The approach (and the patches) look good to me. I took the DT binding
> description changes (patches 2 & 4) into clk-ap806-dt stable branch:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/log/?h=clk-ap806-dt
>
> Anyone can merge the above branch if they need it as a dep.
>
> The driver changes (patches 1, 3 & 5) are merged on into clk-ap806,
> which is based on top of clk-ap806-dt:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/log/?h=clk-ap806
>
> Everything has been merged into clk-next. I did not touch the .dts files
> at all.
>

Perfect I will take care of the dts patch.

What about the other series on cp110?
a clk_cp110-dt branch will be needed too for the pinctrl series.

Thanks,

Gregory


> Regards,
> Mike
>
>> 
>> For the record:
>> As for the CP110, we want to be able to ease the integration of new
>> clocks without breaking the backward compatibility. It is done in
>> patch 3.
>> 
>> We also want to ease the integration of the pinctrl node in the device
>> tree. It is the purpose of the patch 5.
>> 
>> In this series (as in the previous one for CP110), even if there is
>> some change in the device tree binding we paid attention to the
>> backward compatibility, and the driver can still work with the old
>> device tree.
>> 
>> Thanks,
>> 
>> Gregory
>> 
>> Gregory CLEMENT (7):
>>   clk: mvebu: ap806: cosmetic improvement
>>   dt-bindings: ap806: do not depend anymore of the *-clock-output-names
>>   clk: mvebu: ap806: do not depend anymore of the *-clock-output-names
>>   dt-bindings: ap806: introduce a new binding
>>   clk: mvebu: ap806: introduce a new binding
>>   arm64: dts: marvell: remove clock-output-names on ap806
>>   arm64: dts: marvell: use new binding for the system controller on ap806
>> 
>>  Documentation/devicetree/bindings/arm/marvell/ap806-system-controller.txt |  24 ++++++++++------
>>  arch/arm64/boot/dts/marvell/armada-ap806.dtsi                             |  23 +++++++--------
>>  drivers/clk/mvebu/ap806-system-controller.c                               | 107 +++++++++++++++++++++++++++++++++++++++++++++++-------------------------
>>  3 files changed, 97 insertions(+), 57 deletions(-)
>> 
>> base-commit: 4139fcd6c66df1c3d3fa0a0a7cf7f8a8c601a16c
>> -- 
>> git-series 0.9.1
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

* Re: [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806
  2017-05-31 14:07 ` [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806 Gregory CLEMENT
@ 2017-06-08 17:08   ` Gregory CLEMENT
  0 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-06-08 17:08 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Mike Turquette, linux-clk, linux-kernel, Thomas Petazzoni,
	Andrew Lunn, Jason Cooper, devicetree, Omri Itach, Nadav Haklai,
	Kostya Porotchkin, Rob Herring, Neta Zur Hershkovits,
	Shadi Ammouri, Marcin Wojtas, Stephen Boyd,
	Sebastian Hesselbarth

Hi,
 
 On mer., mai 31 2017, Gregory CLEMENT <gregory.clement@free-electrons.com> wrote:

> The clock-output-names of the ap806-system-controller node are not used
> anymore, so remove them.
>
> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

Applied on mvebu/dt64

Gregory

> ---
>  arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 4 ----
>  1 file changed, 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> index fe41bf9c301e..0c25ec62a2a3 100644
> --- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> +++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> @@ -244,10 +244,6 @@
>  				compatible = "marvell,ap806-system-controller",
>  					     "syscon";
>  				#clock-cells = <1>;
> -				clock-output-names = "ap-cpu-cluster-0",
> -						     "ap-cpu-cluster-1",
> -						     "ap-fixed", "ap-mss",
> -						     "ap-emmc";
>  				reg = <0x6f4000 0x1000>;
>  			};
>  		};
> -- 
> git-series 0.9.1
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

* Re: [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller on ap806
  2017-05-31 14:07 ` [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller " Gregory CLEMENT
@ 2017-06-08 17:09   ` Gregory CLEMENT
  0 siblings, 0 replies; 12+ messages in thread
From: Gregory CLEMENT @ 2017-06-08 17:09 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Mike Turquette, linux-clk, linux-kernel, Thomas Petazzoni,
	Andrew Lunn, Jason Cooper, devicetree, Omri Itach, Nadav Haklai,
	Kostya Porotchkin, Rob Herring, Neta Zur Hershkovits,
	Shadi Ammouri, Marcin Wojtas, Stephen Boyd,
	Sebastian Hesselbarth

Hi,
 
 On mer., mai 31 2017, Gregory CLEMENT <gregory.clement@free-electrons.com> wrote:

> The new binding for the system controller on ap806 moved the clock into a
> subnode. This preliminary step will allow to add gpio and pinctrl
> subnodes
>
> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>


Applied on mvebu/dt64

Gregory

> ---
>  arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> index 0c25ec62a2a3..205037e3e7dc 100644
> --- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> +++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
> @@ -193,7 +193,7 @@
>  				#size-cells = <0>;
>  				cell-index = <0>;
>  				interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
> -				clocks = <&ap_syscon 3>;
> +				clocks = <&ap_clk 3>;
>  				status = "disabled";
>  			};
>  
> @@ -204,7 +204,7 @@
>  				#size-cells = <0>;
>  				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
>  				timeout-ms = <1000>;
> -				clocks = <&ap_syscon 3>;
> +				clocks = <&ap_clk 3>;
>  				status = "disabled";
>  			};
>  
> @@ -214,7 +214,7 @@
>  				reg-shift = <2>;
>  				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
>  				reg-io-width = <1>;
> -				clocks = <&ap_syscon 3>;
> +				clocks = <&ap_clk 3>;
>  				status = "disabled";
>  			};
>  
> @@ -224,7 +224,7 @@
>  				reg-shift = <2>;
>  				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>  				reg-io-width = <1>;
> -				clocks = <&ap_syscon 3>;
> +				clocks = <&ap_clk 3>;
>  				status = "disabled";
>  
>  			};
> @@ -234,17 +234,20 @@
>  				reg = <0x6e0000 0x300>;
>  				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
>  				clock-names = "core";
> -				clocks = <&ap_syscon 4>;
> +				clocks = <&ap_clk 4>;
>  				dma-coherent;
>  				marvell,xenon-phy-slow-mode;
>  				status = "disabled";
>  			};
>  
>  			ap_syscon: system-controller@6f4000 {
> -				compatible = "marvell,ap806-system-controller",
> -					     "syscon";
> -				#clock-cells = <1>;
> +				compatible = "syscon", "simple-mfd";
>  				reg = <0x6f4000 0x1000>;
> +
> +				ap_clk: clock {
> +					compatible = "marvell,ap806-clock";
> +					#clock-cells = <1>;
> +				};
>  			};
>  		};
>  	};
> -- 
> git-series 0.9.1
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

end of thread, other threads:[~2017-06-08 17:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-31 14:07 [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 1/7] clk: mvebu: ap806: cosmetic improvement Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 2/7] dt-bindings: ap806: do not depend anymore of the *-clock-output-names Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 3/7] clk: mvebu: " Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 4/7] dt-bindings: ap806: introduce a new binding Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 5/7] clk: mvebu: " Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 6/7] arm64: dts: marvell: remove clock-output-names on ap806 Gregory CLEMENT
2017-06-08 17:08   ` Gregory CLEMENT
2017-05-31 14:07 ` [PATCH v2 7/7] arm64: dts: marvell: use new binding for the system controller " Gregory CLEMENT
2017-06-08 17:09   ` Gregory CLEMENT
2017-06-01  9:50 ` [PATCH v2 0/7] Improve ap806 clk support on Marvell Armada 7K/8K Michael Turquette
2017-06-02 13:52   ` Gregory CLEMENT

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).