All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-20  2:27 ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: mturquette, sboyd; +Cc: linux-arm-kernel, linux-clk, patches, Loc Ho

Add APM X-Gene SoC and PCP PLL clocks support for v2 hardware.

v2:
* Move the detection of the HW version to compatible string
* Update APM X-Gene clock node binding documentation for v2 hardware
* Update Merlin DT clock node to reflect v2 SoC/PCP PLL hardware
* Fix some minor coding indentation issue with existent code

--
Loc Ho (3):
  Documentation: Update APM X-Gene clock binding for v2 hardware
  clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  arm64: Update the Merlin DT PCP PLL clock node for v2 hardware

 Documentation/devicetree/bindings/clock/xgene.txt |    2 +
 arch/arm64/boot/dts/apm/apm-shadowcat.dtsi        |    2 +-
 drivers/clk/clk-xgene.c                           |  103 +++++++++++++--------
 3 files changed, 69 insertions(+), 38 deletions(-)

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

* [PATCH v2 0/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-20  2:27 ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: linux-arm-kernel

Add APM X-Gene SoC and PCP PLL clocks support for v2 hardware.

v2:
* Move the detection of the HW version to compatible string
* Update APM X-Gene clock node binding documentation for v2 hardware
* Update Merlin DT clock node to reflect v2 SoC/PCP PLL hardware
* Fix some minor coding indentation issue with existent code

--
Loc Ho (3):
  Documentation: Update APM X-Gene clock binding for v2 hardware
  clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  arm64: Update the Merlin DT PCP PLL clock node for v2 hardware

 Documentation/devicetree/bindings/clock/xgene.txt |    2 +
 arch/arm64/boot/dts/apm/apm-shadowcat.dtsi        |    2 +-
 drivers/clk/clk-xgene.c                           |  103 +++++++++++++--------
 3 files changed, 69 insertions(+), 38 deletions(-)

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

* [PATCH v2 1/3] Documentation: Update APM X-Gene clock binding for v2 hardware
  2016-01-20  2:27 ` Loc Ho
@ 2016-01-20  2:27   ` Loc Ho
  -1 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: mturquette, sboyd; +Cc: linux-arm-kernel, linux-clk, patches, Loc Ho

Update APM X-Gene clock binding documentation for SoC and
PCP PLL for v2 hardware.

Signed-off-by: Loc Ho <lho@apm.com>
---
 Documentation/devicetree/bindings/clock/xgene.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/xgene.txt b/Documentation/devicetree/bindings/clock/xgene.txt
index 1c4ef77..3fe3169 100644
--- a/Documentation/devicetree/bindings/clock/xgene.txt
+++ b/Documentation/devicetree/bindings/clock/xgene.txt
@@ -9,6 +9,8 @@ Required properties:
 	"apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock
 	"apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock
 	"apm,xgene-device-clock" - for a X-Gene device clock
+	"apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock
+	"apm,xgene-pcppll-v2-clock" - for a X-Gene PCP PLL v2 clock
 
 Required properties for SoC or PCP PLL clocks:
 - reg : shall be the physical PLL register address for the pll clock.
-- 
1.7.1

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

* [PATCH v2 1/3] Documentation: Update APM X-Gene clock binding for v2 hardware
@ 2016-01-20  2:27   ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: linux-arm-kernel

Update APM X-Gene clock binding documentation for SoC and
PCP PLL for v2 hardware.

Signed-off-by: Loc Ho <lho@apm.com>
---
 Documentation/devicetree/bindings/clock/xgene.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/xgene.txt b/Documentation/devicetree/bindings/clock/xgene.txt
index 1c4ef77..3fe3169 100644
--- a/Documentation/devicetree/bindings/clock/xgene.txt
+++ b/Documentation/devicetree/bindings/clock/xgene.txt
@@ -9,6 +9,8 @@ Required properties:
 	"apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock
 	"apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock
 	"apm,xgene-device-clock" - for a X-Gene device clock
+	"apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock
+	"apm,xgene-pcppll-v2-clock" - for a X-Gene PCP PLL v2 clock
 
 Required properties for SoC or PCP PLL clocks:
 - reg : shall be the physical PLL register address for the pll clock.
-- 
1.7.1

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

* [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  2016-01-20  2:27 ` Loc Ho
@ 2016-01-20  2:27   ` Loc Ho
  -1 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: mturquette, sboyd; +Cc: linux-arm-kernel, linux-clk, patches, Loc Ho

Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
X-Gene SoC v2 and above use an slightly different SoC
and PMD PLL hardware logic.

Signed-off-by: Loc Ho <lho@apm.com>
---
 drivers/clk/clk-xgene.c |  103 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 66 insertions(+), 37 deletions(-)

diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index 10224b0..266d573 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -29,7 +29,9 @@
 #include <linux/of_address.h>
 
 /* Register SCU_PCPPLL bit fields */
-#define N_DIV_RD(src)			(((src) & 0x000001ff))
+#define N_DIV_RD(src)			((src) & 0x000001ff)
+#define SC_N_DIV_RD(src)		((src) & 0x0000007f)
+#define SC_OUTDIV2(src)			(((src) & 0x00000100) >> 8)
 
 /* Register SCU_SOCPLL bit fields */
 #define CLKR_RD(src)			(((src) & 0x07000000)>>24)
@@ -63,6 +65,7 @@ struct xgene_clk_pll {
 	spinlock_t	*lock;
 	u32		pll_offset;
 	enum xgene_pll_type	type;
+	int		version;
 };
 
 #define to_xgene_clk_pll(_hw) container_of(_hw, struct xgene_clk_pll, hw)
@@ -92,27 +95,37 @@ static unsigned long xgene_clk_pll_recalc_rate(struct clk_hw *hw,
 
 	pll = xgene_clk_read(pllclk->reg + pllclk->pll_offset);
 
-	if (pllclk->type == PLL_TYPE_PCP) {
-		/*
-		 * PLL VCO = Reference clock * NF
-		 * PCP PLL = PLL_VCO / 2
-		 */
-		nout = 2;
-		fvco = parent_rate * (N_DIV_RD(pll) + 4);
+	if (pllclk->version <= 1) {
+		if (pllclk->type == PLL_TYPE_PCP) {
+			/*
+			* PLL VCO = Reference clock * NF
+			* PCP PLL = PLL_VCO / 2
+			*/
+			nout = 2;
+			fvco = parent_rate * (N_DIV_RD(pll) + 4);
+		} else {
+			/*
+			* Fref = Reference Clock / NREF;
+			* Fvco = Fref * NFB;
+			* Fout = Fvco / NOUT;
+			*/
+			nref = CLKR_RD(pll) + 1;
+			nout = CLKOD_RD(pll) + 1;
+			nfb = CLKF_RD(pll);
+			fref = parent_rate / nref;
+			fvco = fref * nfb;
+		}
 	} else {
 		/*
-		 * Fref = Reference Clock / NREF;
-		 * Fvco = Fref * NFB;
-		 * Fout = Fvco / NOUT;
+		 * fvco = Reference clock * FBDIVC
+		 * PLL freq = fvco / NOUT
 		 */
-		nref = CLKR_RD(pll) + 1;
-		nout = CLKOD_RD(pll) + 1;
-		nfb = CLKF_RD(pll);
-		fref = parent_rate / nref;
-		fvco = fref * nfb;
+		nout = SC_OUTDIV2(pll) ? 2 : 3;
+		fvco = parent_rate * SC_N_DIV_RD(pll);
 	}
-	pr_debug("%s pll recalc rate %ld parent %ld\n", clk_hw_get_name(hw),
-		fvco / nout, parent_rate);
+	pr_debug("%s pll recalc rate %ld parent %ld version %d\n",
+		 clk_hw_get_name(hw), fvco / nout, parent_rate,
+		 pllclk->version);
 
 	return fvco / nout;
 }
@@ -125,7 +138,7 @@ static const struct clk_ops xgene_clk_pll_ops = {
 static struct clk *xgene_register_clk_pll(struct device *dev,
 	const char *name, const char *parent_name,
 	unsigned long flags, void __iomem *reg, u32 pll_offset,
-	u32 type, spinlock_t *lock)
+	u32 type, spinlock_t *lock, int version)
 {
 	struct xgene_clk_pll *apmclk;
 	struct clk *clk;
@@ -144,6 +157,7 @@ static struct clk *xgene_register_clk_pll(struct device *dev,
 	init.parent_names = parent_name ? &parent_name : NULL;
 	init.num_parents = parent_name ? 1 : 0;
 
+	apmclk->version = version;
 	apmclk->reg = reg;
 	apmclk->lock = lock;
 	apmclk->pll_offset = pll_offset;
@@ -160,26 +174,37 @@ static struct clk *xgene_register_clk_pll(struct device *dev,
 	return clk;
 }
 
+static int xgene_pllclk_version(struct device_node *np)
+{
+	if (of_device_is_compatible(np, "apm,xgene-socpll-clock"))
+		return 1;
+	if (of_device_is_compatible(np, "apm,xgene-pcppll-clock"))
+		return 1;
+	return 2;
+}
+
 static void xgene_pllclk_init(struct device_node *np, enum xgene_pll_type pll_type)
 {
-        const char *clk_name = np->full_name;
-        struct clk *clk;
-        void __iomem *reg;
+	const char *clk_name = np->full_name;
+	struct clk *clk;
+	void __iomem *reg;
+	int version = xgene_pllclk_version(np);
 
-        reg = of_iomap(np, 0);
-        if (reg == NULL) {
-                pr_err("Unable to map CSR register for %s\n", np->full_name);
-                return;
-        }
-        of_property_read_string(np, "clock-output-names", &clk_name);
-        clk = xgene_register_clk_pll(NULL,
-                        clk_name, of_clk_get_parent_name(np, 0),
-                        CLK_IS_ROOT, reg, 0, pll_type, &clk_lock);
-        if (!IS_ERR(clk)) {
-                of_clk_add_provider(np, of_clk_src_simple_get, clk);
-                clk_register_clkdev(clk, clk_name, NULL);
-                pr_debug("Add %s clock PLL\n", clk_name);
-        }
+	reg = of_iomap(np, 0);
+	if (reg == NULL) {
+		pr_err("Unable to map CSR register for %s\n", np->full_name);
+		return;
+	}
+	of_property_read_string(np, "clock-output-names", &clk_name);
+	clk = xgene_register_clk_pll(NULL,
+			clk_name, of_clk_get_parent_name(np, 0),
+			CLK_IS_ROOT, reg, 0, pll_type, &clk_lock,
+			version);
+	if (!IS_ERR(clk)) {
+		of_clk_add_provider(np, of_clk_src_simple_get, clk);
+		clk_register_clkdev(clk, clk_name, NULL);
+		pr_debug("Add %s clock PLL\n", clk_name);
+	}
 }
 
 static void xgene_socpllclk_init(struct device_node *np)
@@ -460,7 +485,7 @@ static void __init xgene_devclk_init(struct device_node *np)
 		rc = of_address_to_resource(np, i, &res);
 		if (rc != 0) {
 			if (i == 0) {
-				pr_err("no DTS register for %s\n", 
+				pr_err("no DTS register for %s\n",
 					np->full_name);
 				return;
 			}
@@ -518,4 +543,8 @@ err:
 
 CLK_OF_DECLARE(xgene_socpll_clock, "apm,xgene-socpll-clock", xgene_socpllclk_init);
 CLK_OF_DECLARE(xgene_pcppll_clock, "apm,xgene-pcppll-clock", xgene_pcppllclk_init);
+CLK_OF_DECLARE(xgene_socpll_v2_clock, "apm,xgene-socpll-v2-clock",
+	       xgene_socpllclk_init);
+CLK_OF_DECLARE(xgene_pcppll_v2_clock, "apm,xgene-pcppll-v2-clock",
+	       xgene_pcppllclk_init);
 CLK_OF_DECLARE(xgene_dev_clock, "apm,xgene-device-clock", xgene_devclk_init);
-- 
1.7.1

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

* [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-20  2:27   ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: linux-arm-kernel

Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
X-Gene SoC v2 and above use an slightly different SoC
and PMD PLL hardware logic.

Signed-off-by: Loc Ho <lho@apm.com>
---
 drivers/clk/clk-xgene.c |  103 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 66 insertions(+), 37 deletions(-)

diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index 10224b0..266d573 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -29,7 +29,9 @@
 #include <linux/of_address.h>
 
 /* Register SCU_PCPPLL bit fields */
-#define N_DIV_RD(src)			(((src) & 0x000001ff))
+#define N_DIV_RD(src)			((src) & 0x000001ff)
+#define SC_N_DIV_RD(src)		((src) & 0x0000007f)
+#define SC_OUTDIV2(src)			(((src) & 0x00000100) >> 8)
 
 /* Register SCU_SOCPLL bit fields */
 #define CLKR_RD(src)			(((src) & 0x07000000)>>24)
@@ -63,6 +65,7 @@ struct xgene_clk_pll {
 	spinlock_t	*lock;
 	u32		pll_offset;
 	enum xgene_pll_type	type;
+	int		version;
 };
 
 #define to_xgene_clk_pll(_hw) container_of(_hw, struct xgene_clk_pll, hw)
@@ -92,27 +95,37 @@ static unsigned long xgene_clk_pll_recalc_rate(struct clk_hw *hw,
 
 	pll = xgene_clk_read(pllclk->reg + pllclk->pll_offset);
 
-	if (pllclk->type == PLL_TYPE_PCP) {
-		/*
-		 * PLL VCO = Reference clock * NF
-		 * PCP PLL = PLL_VCO / 2
-		 */
-		nout = 2;
-		fvco = parent_rate * (N_DIV_RD(pll) + 4);
+	if (pllclk->version <= 1) {
+		if (pllclk->type == PLL_TYPE_PCP) {
+			/*
+			* PLL VCO = Reference clock * NF
+			* PCP PLL = PLL_VCO / 2
+			*/
+			nout = 2;
+			fvco = parent_rate * (N_DIV_RD(pll) + 4);
+		} else {
+			/*
+			* Fref = Reference Clock / NREF;
+			* Fvco = Fref * NFB;
+			* Fout = Fvco / NOUT;
+			*/
+			nref = CLKR_RD(pll) + 1;
+			nout = CLKOD_RD(pll) + 1;
+			nfb = CLKF_RD(pll);
+			fref = parent_rate / nref;
+			fvco = fref * nfb;
+		}
 	} else {
 		/*
-		 * Fref = Reference Clock / NREF;
-		 * Fvco = Fref * NFB;
-		 * Fout = Fvco / NOUT;
+		 * fvco = Reference clock * FBDIVC
+		 * PLL freq = fvco / NOUT
 		 */
-		nref = CLKR_RD(pll) + 1;
-		nout = CLKOD_RD(pll) + 1;
-		nfb = CLKF_RD(pll);
-		fref = parent_rate / nref;
-		fvco = fref * nfb;
+		nout = SC_OUTDIV2(pll) ? 2 : 3;
+		fvco = parent_rate * SC_N_DIV_RD(pll);
 	}
-	pr_debug("%s pll recalc rate %ld parent %ld\n", clk_hw_get_name(hw),
-		fvco / nout, parent_rate);
+	pr_debug("%s pll recalc rate %ld parent %ld version %d\n",
+		 clk_hw_get_name(hw), fvco / nout, parent_rate,
+		 pllclk->version);
 
 	return fvco / nout;
 }
@@ -125,7 +138,7 @@ static const struct clk_ops xgene_clk_pll_ops = {
 static struct clk *xgene_register_clk_pll(struct device *dev,
 	const char *name, const char *parent_name,
 	unsigned long flags, void __iomem *reg, u32 pll_offset,
-	u32 type, spinlock_t *lock)
+	u32 type, spinlock_t *lock, int version)
 {
 	struct xgene_clk_pll *apmclk;
 	struct clk *clk;
@@ -144,6 +157,7 @@ static struct clk *xgene_register_clk_pll(struct device *dev,
 	init.parent_names = parent_name ? &parent_name : NULL;
 	init.num_parents = parent_name ? 1 : 0;
 
+	apmclk->version = version;
 	apmclk->reg = reg;
 	apmclk->lock = lock;
 	apmclk->pll_offset = pll_offset;
@@ -160,26 +174,37 @@ static struct clk *xgene_register_clk_pll(struct device *dev,
 	return clk;
 }
 
+static int xgene_pllclk_version(struct device_node *np)
+{
+	if (of_device_is_compatible(np, "apm,xgene-socpll-clock"))
+		return 1;
+	if (of_device_is_compatible(np, "apm,xgene-pcppll-clock"))
+		return 1;
+	return 2;
+}
+
 static void xgene_pllclk_init(struct device_node *np, enum xgene_pll_type pll_type)
 {
-        const char *clk_name = np->full_name;
-        struct clk *clk;
-        void __iomem *reg;
+	const char *clk_name = np->full_name;
+	struct clk *clk;
+	void __iomem *reg;
+	int version = xgene_pllclk_version(np);
 
-        reg = of_iomap(np, 0);
-        if (reg == NULL) {
-                pr_err("Unable to map CSR register for %s\n", np->full_name);
-                return;
-        }
-        of_property_read_string(np, "clock-output-names", &clk_name);
-        clk = xgene_register_clk_pll(NULL,
-                        clk_name, of_clk_get_parent_name(np, 0),
-                        CLK_IS_ROOT, reg, 0, pll_type, &clk_lock);
-        if (!IS_ERR(clk)) {
-                of_clk_add_provider(np, of_clk_src_simple_get, clk);
-                clk_register_clkdev(clk, clk_name, NULL);
-                pr_debug("Add %s clock PLL\n", clk_name);
-        }
+	reg = of_iomap(np, 0);
+	if (reg == NULL) {
+		pr_err("Unable to map CSR register for %s\n", np->full_name);
+		return;
+	}
+	of_property_read_string(np, "clock-output-names", &clk_name);
+	clk = xgene_register_clk_pll(NULL,
+			clk_name, of_clk_get_parent_name(np, 0),
+			CLK_IS_ROOT, reg, 0, pll_type, &clk_lock,
+			version);
+	if (!IS_ERR(clk)) {
+		of_clk_add_provider(np, of_clk_src_simple_get, clk);
+		clk_register_clkdev(clk, clk_name, NULL);
+		pr_debug("Add %s clock PLL\n", clk_name);
+	}
 }
 
 static void xgene_socpllclk_init(struct device_node *np)
@@ -460,7 +485,7 @@ static void __init xgene_devclk_init(struct device_node *np)
 		rc = of_address_to_resource(np, i, &res);
 		if (rc != 0) {
 			if (i == 0) {
-				pr_err("no DTS register for %s\n", 
+				pr_err("no DTS register for %s\n",
 					np->full_name);
 				return;
 			}
@@ -518,4 +543,8 @@ err:
 
 CLK_OF_DECLARE(xgene_socpll_clock, "apm,xgene-socpll-clock", xgene_socpllclk_init);
 CLK_OF_DECLARE(xgene_pcppll_clock, "apm,xgene-pcppll-clock", xgene_pcppllclk_init);
+CLK_OF_DECLARE(xgene_socpll_v2_clock, "apm,xgene-socpll-v2-clock",
+	       xgene_socpllclk_init);
+CLK_OF_DECLARE(xgene_pcppll_v2_clock, "apm,xgene-pcppll-v2-clock",
+	       xgene_pcppllclk_init);
 CLK_OF_DECLARE(xgene_dev_clock, "apm,xgene-device-clock", xgene_devclk_init);
-- 
1.7.1

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

* [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
  2016-01-20  2:27 ` Loc Ho
@ 2016-01-20  2:27   ` Loc Ho
  -1 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: mturquette, sboyd; +Cc: linux-arm-kernel, linux-clk, patches, Loc Ho

Update Merlin DT PCP PLL clock node to reflect compatible
string change to reflect v2 hardware.

Signed-off-by: Loc Ho <lho@apm.com>
---
 arch/arm64/boot/dts/apm/apm-shadowcat.dtsi |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
index 5d87a3d..83d293e 100644
--- a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
@@ -224,7 +224,7 @@
 			};
 
 			socpll: socpll@17000120 {
-				compatible = "apm,xgene-socpll-clock";
+				compatible = "apm,xgene-socpll-v2-clock";
 				#clock-cells = <1>;
 				clocks = <&refclk 0>;
 				reg = <0x0 0x17000120 0x0 0x1000>;
-- 
1.7.1

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

* [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
@ 2016-01-20  2:27   ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-20  2:27 UTC (permalink / raw)
  To: linux-arm-kernel

Update Merlin DT PCP PLL clock node to reflect compatible
string change to reflect v2 hardware.

Signed-off-by: Loc Ho <lho@apm.com>
---
 arch/arm64/boot/dts/apm/apm-shadowcat.dtsi |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
index 5d87a3d..83d293e 100644
--- a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
@@ -224,7 +224,7 @@
 			};
 
 			socpll: socpll at 17000120 {
-				compatible = "apm,xgene-socpll-clock";
+				compatible = "apm,xgene-socpll-v2-clock";
 				#clock-cells = <1>;
 				clocks = <&refclk 0>;
 				reg = <0x0 0x17000120 0x0 0x1000>;
-- 
1.7.1

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

* Re: [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  2016-01-20  2:27   ` Loc Ho
@ 2016-01-29 20:58     ` Stephen Boyd
  -1 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-29 20:58 UTC (permalink / raw)
  To: Loc Ho; +Cc: mturquette, linux-arm-kernel, linux-clk, patches

On 01/19, Loc Ho wrote:
> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
> X-Gene SoC v2 and above use an slightly different SoC
> and PMD PLL hardware logic.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

It's not from this patch, but I notice that we have a return
inside a void function in this file...

---8<---
From: Stephen Boyd <sboyd@codeaurora.org>
Subject: [PATCH] clk: xgene: Remove return from void function

This function doesn't return anything because it's void. Drop the
return statement.

Cc: Loc Ho <lho@apm.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/clk/clk-xgene.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index 266d573b9134..bd7156baa08b 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -50,7 +50,7 @@ static inline u32 xgene_clk_read(void __iomem *csr)
 
 static inline void xgene_clk_write(u32 data, void __iomem *csr)
 {
-	return writel_relaxed(data, csr);
+	writel_relaxed(data, csr);
 }
 
 /* PLL Clock */
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

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

* [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-29 20:58     ` Stephen Boyd
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-29 20:58 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/19, Loc Ho wrote:
> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
> X-Gene SoC v2 and above use an slightly different SoC
> and PMD PLL hardware logic.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

It's not from this patch, but I notice that we have a return
inside a void function in this file...

---8<---
From: Stephen Boyd <sboyd@codeaurora.org>
Subject: [PATCH] clk: xgene: Remove return from void function

This function doesn't return anything because it's void. Drop the
return statement.

Cc: Loc Ho <lho@apm.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 drivers/clk/clk-xgene.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index 266d573b9134..bd7156baa08b 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -50,7 +50,7 @@ static inline u32 xgene_clk_read(void __iomem *csr)
 
 static inline void xgene_clk_write(u32 data, void __iomem *csr)
 {
-	return writel_relaxed(data, csr);
+	writel_relaxed(data, csr);
 }
 
 /* PLL Clock */
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

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

* Re: [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
  2016-01-20  2:27   ` Loc Ho
@ 2016-01-29 20:58     ` Stephen Boyd
  -1 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-29 20:58 UTC (permalink / raw)
  To: Loc Ho; +Cc: mturquette, linux-arm-kernel, linux-clk, patches

On 01/19, Loc Ho wrote:
> Update Merlin DT PCP PLL clock node to reflect compatible
> string change to reflect v2 hardware.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Please take this through arm-soc.

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

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

* [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
@ 2016-01-29 20:58     ` Stephen Boyd
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-29 20:58 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/19, Loc Ho wrote:
> Update Merlin DT PCP PLL clock node to reflect compatible
> string change to reflect v2 hardware.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Please take this through arm-soc.

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

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

* Re: [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  2016-01-29 20:58     ` Stephen Boyd
@ 2016-01-29 21:44       ` Loc Ho
  -1 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-29 21:44 UTC (permalink / raw)
  To: Stephen Boyd; +Cc: Michael Turquette, linux-arm-kernel, linux-clk, patches

Hi Stephen & All,

On Fri, Jan 29, 2016 at 12:58 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 01/19, Loc Ho wrote:
>> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
>> X-Gene SoC v2 and above use an slightly different SoC
>> and PMD PLL hardware logic.
>>
>> Signed-off-by: Loc Ho <lho@apm.com>
>> ---
>
> It's not from this patch, but I notice that we have a return
> inside a void function in this file...
>
> ---8<---
> From: Stephen Boyd <sboyd@codeaurora.org>
> Subject: [PATCH] clk: xgene: Remove return from void function
>
> This function doesn't return anything because it's void. Drop the
> return statement.
>
> Cc: Loc Ho <lho@apm.com>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---
>  drivers/clk/clk-xgene.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
> index 266d573b9134..bd7156baa08b 100644
> --- a/drivers/clk/clk-xgene.c
> +++ b/drivers/clk/clk-xgene.c
> @@ -50,7 +50,7 @@ static inline u32 xgene_clk_read(void __iomem *csr)
>
>  static inline void xgene_clk_write(u32 data, void __iomem *csr)
>  {
> -       return writel_relaxed(data, csr);
> +       writel_relaxed(data, csr);
>  }
>
>  /* PLL Clock */

Thanks for spotting this. Was my original patch for v2 X-Gene HW
pulled in an specify GIT tree? I don't see it in the clk GIT master.

-Loc

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

* [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-29 21:44       ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-29 21:44 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Stephen & All,

On Fri, Jan 29, 2016 at 12:58 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 01/19, Loc Ho wrote:
>> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
>> X-Gene SoC v2 and above use an slightly different SoC
>> and PMD PLL hardware logic.
>>
>> Signed-off-by: Loc Ho <lho@apm.com>
>> ---
>
> It's not from this patch, but I notice that we have a return
> inside a void function in this file...
>
> ---8<---
> From: Stephen Boyd <sboyd@codeaurora.org>
> Subject: [PATCH] clk: xgene: Remove return from void function
>
> This function doesn't return anything because it's void. Drop the
> return statement.
>
> Cc: Loc Ho <lho@apm.com>
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> ---
>  drivers/clk/clk-xgene.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
> index 266d573b9134..bd7156baa08b 100644
> --- a/drivers/clk/clk-xgene.c
> +++ b/drivers/clk/clk-xgene.c
> @@ -50,7 +50,7 @@ static inline u32 xgene_clk_read(void __iomem *csr)
>
>  static inline void xgene_clk_write(u32 data, void __iomem *csr)
>  {
> -       return writel_relaxed(data, csr);
> +       writel_relaxed(data, csr);
>  }
>
>  /* PLL Clock */

Thanks for spotting this. Was my original patch for v2 X-Gene HW
pulled in an specify GIT tree? I don't see it in the clk GIT master.

-Loc

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

* Re: [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
  2016-01-29 20:58     ` Stephen Boyd
@ 2016-01-29 21:46       ` Loc Ho
  -1 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-29 21:46 UTC (permalink / raw)
  To: Stephen Boyd, Duc Dang
  Cc: Michael Turquette, linux-arm-kernel, linux-clk, patches

Hi Stephen,

On Fri, Jan 29, 2016 at 12:58 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 01/19, Loc Ho wrote:
>> Update Merlin DT PCP PLL clock node to reflect compatible
>> string change to reflect v2 hardware.
>>
>> Signed-off-by: Loc Ho <lho@apm.com>
>> ---
>
> Please take this through arm-soc.

I will ask Duc Dang to put this into APM xgene-next GIT for Arnd or
Olof next pull.

-Loc

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

* [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for v2 hardware
@ 2016-01-29 21:46       ` Loc Ho
  0 siblings, 0 replies; 20+ messages in thread
From: Loc Ho @ 2016-01-29 21:46 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Stephen,

On Fri, Jan 29, 2016 at 12:58 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 01/19, Loc Ho wrote:
>> Update Merlin DT PCP PLL clock node to reflect compatible
>> string change to reflect v2 hardware.
>>
>> Signed-off-by: Loc Ho <lho@apm.com>
>> ---
>
> Please take this through arm-soc.

I will ask Duc Dang to put this into APM xgene-next GIT for Arnd or
Olof next pull.

-Loc

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

* Re: [PATCH v2 1/3] Documentation: Update APM X-Gene clock binding for v2 hardware
  2016-01-20  2:27   ` Loc Ho
@ 2016-01-30  0:33     ` Stephen Boyd
  -1 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-30  0:33 UTC (permalink / raw)
  To: Loc Ho; +Cc: mturquette, linux-arm-kernel, linux-clk, patches

On 01/19, Loc Ho wrote:
> Update APM X-Gene clock binding documentation for SoC and
> PCP PLL for v2 hardware.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Applied to clk-next

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

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

* [PATCH v2 1/3] Documentation: Update APM X-Gene clock binding for v2 hardware
@ 2016-01-30  0:33     ` Stephen Boyd
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-30  0:33 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/19, Loc Ho wrote:
> Update APM X-Gene clock binding documentation for SoC and
> PCP PLL for v2 hardware.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Applied to clk-next

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

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

* Re: [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
  2016-01-20  2:27   ` Loc Ho
@ 2016-01-30  0:33     ` Stephen Boyd
  -1 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-30  0:33 UTC (permalink / raw)
  To: Loc Ho; +Cc: mturquette, linux-arm-kernel, linux-clk, patches

On 01/19, Loc Ho wrote:
> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
> X-Gene SoC v2 and above use an slightly different SoC
> and PMD PLL hardware logic.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Applied to clk-next

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

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

* [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware
@ 2016-01-30  0:33     ` Stephen Boyd
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Boyd @ 2016-01-30  0:33 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/19, Loc Ho wrote:
> Add X-Gene SoC and PMD PLL clocks support for v2 hardware.
> X-Gene SoC v2 and above use an slightly different SoC
> and PMD PLL hardware logic.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---

Applied to clk-next

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

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

end of thread, other threads:[~2016-01-30  0:33 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-20  2:27 [PATCH v2 0/3] clk: xgene: Add SoC and PMD PLL clocks with v2 hardware Loc Ho
2016-01-20  2:27 ` Loc Ho
2016-01-20  2:27 ` [PATCH v2 1/3] Documentation: Update APM X-Gene clock binding for " Loc Ho
2016-01-20  2:27   ` Loc Ho
2016-01-30  0:33   ` Stephen Boyd
2016-01-30  0:33     ` Stephen Boyd
2016-01-20  2:27 ` [PATCH v2 2/3] clk: xgene: Add SoC and PMD PLL clocks with " Loc Ho
2016-01-20  2:27   ` Loc Ho
2016-01-29 20:58   ` Stephen Boyd
2016-01-29 20:58     ` Stephen Boyd
2016-01-29 21:44     ` Loc Ho
2016-01-29 21:44       ` Loc Ho
2016-01-30  0:33   ` Stephen Boyd
2016-01-30  0:33     ` Stephen Boyd
2016-01-20  2:27 ` [PATCH v2 3/3] arm64: Update Merlin DT PCP PLL clock node for " Loc Ho
2016-01-20  2:27   ` Loc Ho
2016-01-29 20:58   ` Stephen Boyd
2016-01-29 20:58     ` Stephen Boyd
2016-01-29 21:46     ` Loc Ho
2016-01-29 21:46       ` Loc Ho

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.