linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms
@ 2013-09-18 12:13 Lee Jones
  2013-09-18 12:13 ` [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers Lee Jones
                   ` (40 more replies)
  0 siblings, 41 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

After this patchset has been applied, we can request clocks directly
from Device Tree without using any AUXDATA device-name hacks. We also
take care to remove all of those at the end of the set.

Most of the code is the same as the previous submission, but on Linus'
request we are starting with a new DT:ed clk_init() function instead
of converting the old one into dual purpose, the to DT only.

 arch/arm/boot/dts/dbx5x0.dtsi           | 124 ++++++++++++++++++++++++++-
 arch/arm/boot/dts/snowball.dts          |   3 +-
 arch/arm/mach-ux500/cpu-db8500.c        |  41 ++-------
 arch/arm/mach-ux500/cpu.c               |  14 +++-
 arch/arm/mach-ux500/timer.c             |   4 +-
 drivers/clk/ux500/Makefile              |   1 +
 drivers/clk/ux500/u8500_of_clk.c        | 558 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/clk/ux500/u8540_clk.c           |   2 +-
 drivers/mfd/db8500-prcmu.c              |   1 -
 drivers/mfd/dbx500-prcmu-regs.h         |   1 -
 drivers/usb/musb/ux500.c                |   2 +-
 include/dt-bindings/mfd/dbx500-prcmu.h  |  83 ++++++++++++++++++
 include/linux/mfd/dbx500-prcmu.h        |  70 +---------------
 include/linux/platform_data/clk-ux500.h |   3 +
 14 files changed, 796 insertions(+), 111 deletions(-)

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

* [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
@ 2013-09-18 12:13 ` Lee Jones
  2013-09-18 12:23   ` Linus Walleij
  2013-09-18 12:13 ` [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file Lee Jones
                   ` (39 subsequent siblings)
  40 siblings, 1 reply; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

... as stipulated by the Hardware Specification document.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 include/linux/mfd/dbx500-prcmu.h | 135 ++++++++++++++++++++-------------------
 1 file changed, 71 insertions(+), 64 deletions(-)

diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h
index ca0790f..87667d4 100644
--- a/include/linux/mfd/dbx500-prcmu.h
+++ b/include/linux/mfd/dbx500-prcmu.h
@@ -97,70 +97,77 @@ enum prcmu_wakeup_index {
 /*
  * Clock identifiers.
  */
-enum prcmu_clock {
-	PRCMU_SGACLK,
-	PRCMU_UARTCLK,
-	PRCMU_MSP02CLK,
-	PRCMU_MSP1CLK,
-	PRCMU_I2CCLK,
-	PRCMU_SDMMCCLK,
-	PRCMU_SPARE1CLK,
-	PRCMU_SLIMCLK,
-	PRCMU_PER1CLK,
-	PRCMU_PER2CLK,
-	PRCMU_PER3CLK,
-	PRCMU_PER5CLK,
-	PRCMU_PER6CLK,
-	PRCMU_PER7CLK,
-	PRCMU_LCDCLK,
-	PRCMU_BMLCLK,
-	PRCMU_HSITXCLK,
-	PRCMU_HSIRXCLK,
-	PRCMU_HDMICLK,
-	PRCMU_APEATCLK,
-	PRCMU_APETRACECLK,
-	PRCMU_MCDECLK,
-	PRCMU_IPI2CCLK,
-	PRCMU_DSIALTCLK,
-	PRCMU_DMACLK,
-	PRCMU_B2R2CLK,
-	PRCMU_TVCLK,
-	PRCMU_SSPCLK,
-	PRCMU_RNGCLK,
-	PRCMU_UICCCLK,
-	PRCMU_PWMCLK,
-	PRCMU_IRDACLK,
-	PRCMU_IRRCCLK,
-	PRCMU_SIACLK,
-	PRCMU_SVACLK,
-	PRCMU_ACLK,
-	PRCMU_HVACLK, /* Ux540 only */
-	PRCMU_G1CLK, /* Ux540 only */
-	PRCMU_SDMMCHCLK,
-	PRCMU_CAMCLK,
-	PRCMU_BML8580CLK,
-	PRCMU_NUM_REG_CLOCKS,
-	PRCMU_SYSCLK = PRCMU_NUM_REG_CLOCKS,
-	PRCMU_CDCLK,
-	PRCMU_TIMCLK,
-	PRCMU_PLLSOC0,
-	PRCMU_PLLSOC1,
-	PRCMU_ARMSS,
-	PRCMU_PLLDDR,
-	PRCMU_PLLDSI,
-	PRCMU_DSI0CLK,
-	PRCMU_DSI1CLK,
-	PRCMU_DSI0ESCCLK,
-	PRCMU_DSI1ESCCLK,
-	PRCMU_DSI2ESCCLK,
-	/* LCD DSI PLL - Ux540 only */
-	PRCMU_PLLDSI_LCD,
-	PRCMU_DSI0CLK_LCD,
-	PRCMU_DSI1CLK_LCD,
-	PRCMU_DSI0ESCCLK_LCD,
-	PRCMU_DSI1ESCCLK_LCD,
-	PRCMU_DSI2ESCCLK_LCD,
-};
+#define ARMCLK			0
+#define PRCMU_ACLK		1
+#define PRCMU_SVAMMCSPCLK 	2
+#define PRCMU_SDMMCHCLK 	2  /* DBx540 only. */
+#define PRCMU_SIACLK 		3
+#define PRCMU_SIAMMDSPCLK 	3  /* DBx540 only. */
+#define PRCMU_SGACLK 		4
+#define PRCMU_UARTCLK 		5
+#define PRCMU_MSP02CLK 		6
+#define PRCMU_MSP1CLK 		7
+#define PRCMU_I2CCLK 		8
+#define PRCMU_SDMMCCLK 		9
+#define PRCMU_SLIMCLK 		10
+#define PRCMU_CAMCLK 		10 /* DBx540 only. */
+#define PRCMU_PER1CLK 		11
+#define PRCMU_PER2CLK 		12
+#define PRCMU_PER3CLK 		13
+#define PRCMU_PER5CLK 		14
+#define PRCMU_PER6CLK 		15
+#define PRCMU_PER7CLK 		16
+#define PRCMU_LCDCLK 		17
+#define PRCMU_BMLCLK 		18
+#define PRCMU_HSITXCLK 		19
+#define PRCMU_HSIRXCLK 		20
+#define PRCMU_HDMICLK		21
+#define PRCMU_APEATCLK 		22
+#define PRCMU_APETRACECLK 	23
+#define PRCMU_MCDECLK  	 	24
+#define PRCMU_IPI2CCLK  	25
+#define PRCMU_DSIALTCLK  	26
+#define PRCMU_DMACLK  	 	27
+#define PRCMU_B2R2CLK  	 	28
+#define PRCMU_TVCLK  	 	29
+#define SPARE_UNIPROCLK  	30
+#define PRCMU_SSPCLK  	 	31
+#define PRCMU_RNGCLK  	 	32
+#define PRCMU_UICCCLK  	 	33
+#define PRCMU_G1CLK             34 /* DBx540 only. */
+#define PRCMU_HVACLK            35 /* DBx540 only. */
+#define PRCMU_SPARE1CLK	 	36
+#define PRCMU_SPARE2CLK	 	37
+
+#define PRCMU_NUM_REG_CLOCKS  	38
+
+#define PRCMU_RTCCLK  	 	PRCMU_NUM_REG_CLOCKS
+#define PRCMU_SYSCLK  	 	39
+#define PRCMU_CDCLK  	 	40
+#define PRCMU_TIMCLK  	 	41
+#define PRCMU_PLLSOC0  	 	42
+#define PRCMU_PLLSOC1  	 	43
+#define PRCMU_ARMSS  	 	44
+#define PRCMU_PLLDDR  	 	45
+#define PRCMU_BML8580CLK        46
+
+/* DSI Clocks */
+#define PRCMU_PLLDSI  	 	47
+#define PRCMU_DSI0CLK 	  	48
+#define PRCMU_DSI1CLK  	 	49
+#define PRCMU_DSI0ESCCLK  	50
+#define PRCMU_DSI1ESCCLK  	51
+#define PRCMU_DSI2ESCCLK  	52
+
+/* LCD DSI PLL - Ux540 only */
+#define PRCMU_PLLDSI_LCD        53
+#define PRCMU_DSI0CLK_LCD       54
+#define PRCMU_DSI1CLK_LCD       55
+#define PRCMU_DSI0ESCCLK_LCD    56
+#define PRCMU_DSI1ESCCLK_LCD    57
+#define PRCMU_DSI2ESCCLK_LCD    58
+
+#define PRCMU_NUM_CLKS  	59
 
 /**
  * enum prcmu_wdog_id - PRCMU watchdog IDs
-- 
1.8.1.2

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

* [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
  2013-09-18 12:13 ` [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers Lee Jones
@ 2013-09-18 12:13 ` Lee Jones
  2013-09-18 12:24   ` Linus Walleij
  2013-09-18 12:14 ` [PATCH 03/41] mfd: dbx500: Remove any mention of the BML8580CLK Lee Jones
                   ` (38 subsequent siblings)
  40 siblings, 1 reply; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

These are required to request DBx500 PRCMU clocks from Device Tree. The
numbers used are taken directly from the Hardware Specification document.
We're moving them from the DBx500 PRCMU include file into the DT include
directory and referencing them from the former via a #include.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 include/dt-bindings/mfd/dbx500-prcmu.h | 84 ++++++++++++++++++++++++++++++++++
 include/linux/mfd/dbx500-prcmu.h       | 77 +------------------------------
 2 files changed, 86 insertions(+), 75 deletions(-)
 create mode 100644 include/dt-bindings/mfd/dbx500-prcmu.h

diff --git a/include/dt-bindings/mfd/dbx500-prcmu.h b/include/dt-bindings/mfd/dbx500-prcmu.h
new file mode 100644
index 0000000..b7ee8c9
--- /dev/null
+++ b/include/dt-bindings/mfd/dbx500-prcmu.h
@@ -0,0 +1,84 @@
+/*
+ * This header provides constants for the PRCMU bindings.
+ *
+ */
+
+#ifndef _DT_BINDINGS_MFD_PRCMU_H
+#define _DT_BINDINGS_MFD_PRCMU_H
+
+/*
+ * Clock identifiers.
+ */
+#define ARMCLK			0
+#define PRCMU_ACLK		1
+#define PRCMU_SVAMMCSPCLK 	2
+#define PRCMU_SDMMCHCLK 	2  /* DBx540 only. */
+#define PRCMU_SIACLK 		3
+#define PRCMU_SIAMMDSPCLK 	3  /* DBx540 only. */
+#define PRCMU_SGACLK 		4
+#define PRCMU_UARTCLK 		5
+#define PRCMU_MSP02CLK 		6
+#define PRCMU_MSP1CLK 		7
+#define PRCMU_I2CCLK 		8
+#define PRCMU_SDMMCCLK 		9
+#define PRCMU_SLIMCLK 		10
+#define PRCMU_CAMCLK 		10 /* DBx540 only. */
+#define PRCMU_PER1CLK 		11
+#define PRCMU_PER2CLK 		12
+#define PRCMU_PER3CLK 		13
+#define PRCMU_PER5CLK 		14
+#define PRCMU_PER6CLK 		15
+#define PRCMU_PER7CLK 		16
+#define PRCMU_LCDCLK 		17
+#define PRCMU_BMLCLK 		18
+#define PRCMU_HSITXCLK 		19
+#define PRCMU_HSIRXCLK 		20
+#define PRCMU_HDMICLK		21
+#define PRCMU_APEATCLK 		22
+#define PRCMU_APETRACECLK 	23
+#define PRCMU_MCDECLK  	 	24
+#define PRCMU_IPI2CCLK  	25
+#define PRCMU_DSIALTCLK  	26
+#define PRCMU_DMACLK  	 	27
+#define PRCMU_B2R2CLK  	 	28
+#define PRCMU_TVCLK  	 	29
+#define SPARE_UNIPROCLK  	30
+#define PRCMU_SSPCLK  	 	31
+#define PRCMU_RNGCLK  	 	32
+#define PRCMU_UICCCLK  	 	33
+#define PRCMU_G1CLK             34 /* DBx540 only. */
+#define PRCMU_HVACLK            35 /* DBx540 only. */
+#define PRCMU_SPARE1CLK	 	36
+#define PRCMU_SPARE2CLK	 	37
+
+#define PRCMU_NUM_REG_CLOCKS  	38
+
+#define PRCMU_RTCCLK  	 	PRCMU_NUM_REG_CLOCKS
+#define PRCMU_SYSCLK  	 	39
+#define PRCMU_CDCLK  	 	40
+#define PRCMU_TIMCLK  	 	41
+#define PRCMU_PLLSOC0  	 	42
+#define PRCMU_PLLSOC1  	 	43
+#define PRCMU_ARMSS  	 	44
+#define PRCMU_PLLDDR  	 	45
+#define PRCMU_BML8580CLK        46
+
+/* DSI Clocks */
+#define PRCMU_PLLDSI  	 	47
+#define PRCMU_DSI0CLK 	  	48
+#define PRCMU_DSI1CLK  	 	49
+#define PRCMU_DSI0ESCCLK  	50
+#define PRCMU_DSI1ESCCLK  	51
+#define PRCMU_DSI2ESCCLK  	52
+
+/* LCD DSI PLL - Ux540 only */
+#define PRCMU_PLLDSI_LCD        53
+#define PRCMU_DSI0CLK_LCD       54
+#define PRCMU_DSI1CLK_LCD       55
+#define PRCMU_DSI0ESCCLK_LCD    56
+#define PRCMU_DSI1ESCCLK_LCD    57
+#define PRCMU_DSI2ESCCLK_LCD    58
+
+#define PRCMU_NUM_CLKS  	59
+
+#endif
diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h
index 87667d4..060e112 100644
--- a/include/linux/mfd/dbx500-prcmu.h
+++ b/include/linux/mfd/dbx500-prcmu.h
@@ -12,6 +12,8 @@
 #include <linux/notifier.h>
 #include <linux/err.h>
 
+#include <dt-bindings/mfd/dbx500-prcmu.h> /* For clock identifiers */
+
 /* Offset for the firmware version within the TCPM */
 #define DB8500_PRCMU_FW_VERSION_OFFSET 0xA4
 #define DBX540_PRCMU_FW_VERSION_OFFSET 0xA8
@@ -94,81 +96,6 @@ enum prcmu_wakeup_index {
 #define PRCMU_CLKSRC_ARMCLKFIX		0x46
 #define PRCMU_CLKSRC_HDMICLK		0x47
 
-/*
- * Clock identifiers.
- */
-#define ARMCLK			0
-#define PRCMU_ACLK		1
-#define PRCMU_SVAMMCSPCLK 	2
-#define PRCMU_SDMMCHCLK 	2  /* DBx540 only. */
-#define PRCMU_SIACLK 		3
-#define PRCMU_SIAMMDSPCLK 	3  /* DBx540 only. */
-#define PRCMU_SGACLK 		4
-#define PRCMU_UARTCLK 		5
-#define PRCMU_MSP02CLK 		6
-#define PRCMU_MSP1CLK 		7
-#define PRCMU_I2CCLK 		8
-#define PRCMU_SDMMCCLK 		9
-#define PRCMU_SLIMCLK 		10
-#define PRCMU_CAMCLK 		10 /* DBx540 only. */
-#define PRCMU_PER1CLK 		11
-#define PRCMU_PER2CLK 		12
-#define PRCMU_PER3CLK 		13
-#define PRCMU_PER5CLK 		14
-#define PRCMU_PER6CLK 		15
-#define PRCMU_PER7CLK 		16
-#define PRCMU_LCDCLK 		17
-#define PRCMU_BMLCLK 		18
-#define PRCMU_HSITXCLK 		19
-#define PRCMU_HSIRXCLK 		20
-#define PRCMU_HDMICLK		21
-#define PRCMU_APEATCLK 		22
-#define PRCMU_APETRACECLK 	23
-#define PRCMU_MCDECLK  	 	24
-#define PRCMU_IPI2CCLK  	25
-#define PRCMU_DSIALTCLK  	26
-#define PRCMU_DMACLK  	 	27
-#define PRCMU_B2R2CLK  	 	28
-#define PRCMU_TVCLK  	 	29
-#define SPARE_UNIPROCLK  	30
-#define PRCMU_SSPCLK  	 	31
-#define PRCMU_RNGCLK  	 	32
-#define PRCMU_UICCCLK  	 	33
-#define PRCMU_G1CLK             34 /* DBx540 only. */
-#define PRCMU_HVACLK            35 /* DBx540 only. */
-#define PRCMU_SPARE1CLK	 	36
-#define PRCMU_SPARE2CLK	 	37
-
-#define PRCMU_NUM_REG_CLOCKS  	38
-
-#define PRCMU_RTCCLK  	 	PRCMU_NUM_REG_CLOCKS
-#define PRCMU_SYSCLK  	 	39
-#define PRCMU_CDCLK  	 	40
-#define PRCMU_TIMCLK  	 	41
-#define PRCMU_PLLSOC0  	 	42
-#define PRCMU_PLLSOC1  	 	43
-#define PRCMU_ARMSS  	 	44
-#define PRCMU_PLLDDR  	 	45
-#define PRCMU_BML8580CLK        46
-
-/* DSI Clocks */
-#define PRCMU_PLLDSI  	 	47
-#define PRCMU_DSI0CLK 	  	48
-#define PRCMU_DSI1CLK  	 	49
-#define PRCMU_DSI0ESCCLK  	50
-#define PRCMU_DSI1ESCCLK  	51
-#define PRCMU_DSI2ESCCLK  	52
-
-/* LCD DSI PLL - Ux540 only */
-#define PRCMU_PLLDSI_LCD        53
-#define PRCMU_DSI0CLK_LCD       54
-#define PRCMU_DSI1CLK_LCD       55
-#define PRCMU_DSI0ESCCLK_LCD    56
-#define PRCMU_DSI1ESCCLK_LCD    57
-#define PRCMU_DSI2ESCCLK_LCD    58
-
-#define PRCMU_NUM_CLKS  	59
-
 /**
  * enum prcmu_wdog_id - PRCMU watchdog IDs
  * @PRCMU_WDOG_ALL: use all timers
-- 
1.8.1.2

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

* [PATCH 03/41] mfd: dbx500: Remove any mention of the BML8580CLK
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
  2013-09-18 12:13 ` [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers Lee Jones
  2013-09-18 12:13 ` [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 04/41] ARM: ux500: Add PRCMU clock node to DBx500 Device Tree Lee Jones
                   ` (37 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

The platform which it pertains to is no longer supported and is actually
causing some confusion in the new common clock implementation. A recent
patch removed its use in the clock driver, let's take out the definitions
too.

Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/db8500-prcmu.c             |  1 -
 drivers/mfd/dbx500-prcmu-regs.h        |  1 -
 include/dt-bindings/mfd/dbx500-prcmu.h | 27 +++++++++++++--------------
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 3c157faee..ed79d7b 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -480,7 +480,6 @@ struct clk_mgt clk_mgt[PRCMU_NUM_REG_CLOCKS] = {
 	CLK_MGT_ENTRY(PER6CLK, PLL_DIV, true),
 	CLK_MGT_ENTRY(PER7CLK, PLL_DIV, true),
 	CLK_MGT_ENTRY(LCDCLK, PLL_FIX, true),
-	CLK_MGT_ENTRY(BML8580CLK, PLL_DIV, true),
 	CLK_MGT_ENTRY(BMLCLK, PLL_DIV, true),
 	CLK_MGT_ENTRY(HSITXCLK, PLL_DIV, true),
 	CLK_MGT_ENTRY(HSIRXCLK, PLL_DIV, true),
diff --git a/drivers/mfd/dbx500-prcmu-regs.h b/drivers/mfd/dbx500-prcmu-regs.h
index 4f6f0fa..7cc32a8 100644
--- a/drivers/mfd/dbx500-prcmu-regs.h
+++ b/drivers/mfd/dbx500-prcmu-regs.h
@@ -32,7 +32,6 @@
 #define PRCM_PER7CLK_MGT	(0x040)
 #define PRCM_LCDCLK_MGT		(0x044)
 #define PRCM_BMLCLK_MGT		(0x04C)
-#define PRCM_BML8580CLK_MGT	(0x108)
 #define PRCM_HSITXCLK_MGT	(0x050)
 #define PRCM_HSIRXCLK_MGT	(0x054)
 #define PRCM_HDMICLK_MGT	(0x058)
diff --git a/include/dt-bindings/mfd/dbx500-prcmu.h b/include/dt-bindings/mfd/dbx500-prcmu.h
index b7ee8c9..552a2d1 100644
--- a/include/dt-bindings/mfd/dbx500-prcmu.h
+++ b/include/dt-bindings/mfd/dbx500-prcmu.h
@@ -61,24 +61,23 @@
 #define PRCMU_PLLSOC1  	 	43
 #define PRCMU_ARMSS  	 	44
 #define PRCMU_PLLDDR  	 	45
-#define PRCMU_BML8580CLK        46
 
 /* DSI Clocks */
-#define PRCMU_PLLDSI  	 	47
-#define PRCMU_DSI0CLK 	  	48
-#define PRCMU_DSI1CLK  	 	49
-#define PRCMU_DSI0ESCCLK  	50
-#define PRCMU_DSI1ESCCLK  	51
-#define PRCMU_DSI2ESCCLK  	52
+#define PRCMU_PLLDSI  	 	46
+#define PRCMU_DSI0CLK 	  	47
+#define PRCMU_DSI1CLK  	 	48
+#define PRCMU_DSI0ESCCLK  	49
+#define PRCMU_DSI1ESCCLK  	50
+#define PRCMU_DSI2ESCCLK  	51
 
 /* LCD DSI PLL - Ux540 only */
-#define PRCMU_PLLDSI_LCD        53
-#define PRCMU_DSI0CLK_LCD       54
-#define PRCMU_DSI1CLK_LCD       55
-#define PRCMU_DSI0ESCCLK_LCD    56
-#define PRCMU_DSI1ESCCLK_LCD    57
-#define PRCMU_DSI2ESCCLK_LCD    58
+#define PRCMU_PLLDSI_LCD        52
+#define PRCMU_DSI0CLK_LCD       53
+#define PRCMU_DSI1CLK_LCD       54
+#define PRCMU_DSI0ESCCLK_LCD    55
+#define PRCMU_DSI1ESCCLK_LCD    56
+#define PRCMU_DSI2ESCCLK_LCD    57
 
-#define PRCMU_NUM_CLKS  	59
+#define PRCMU_NUM_CLKS  	58
 
 #endif
-- 
1.8.1.2

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

* [PATCH 04/41] ARM: ux500: Add PRCMU clock node to DBx500 Device Tree
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (2 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 03/41] mfd: dbx500: Remove any mention of the BML8580CLK Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 05/41] ARM: ux500: Supply the DMA clock lookup to the DBX500 DT Lee Jones
                   ` (36 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index a152945..2c64c85 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -10,6 +10,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/mfd/dbx500-prcmu.h>
 #include "skeleton.dtsi"
 
 / {
@@ -42,6 +43,14 @@
 			interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+		clocks {
+			compatible = "stericsson,u8500-clks";
+
+			prcmu_clk: prcmu-clock {
+				#clock-cells = <1>;
+			};
+		};
+
 		timer at a0410600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xa0410600 0x20>;
-- 
1.8.1.2

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

* [PATCH 05/41] ARM: ux500: Supply the DMA clock lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (3 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 04/41] ARM: ux500: Add PRCMU clock node to DBx500 Device Tree Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 06/41] ARM: ux500: Add PRCC Peripheral clock node to DBx500 Device Tree Lee Jones
                   ` (35 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 2c64c85..0bb8ed7 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -229,6 +229,8 @@
 
 			#dma-cells = <3>;
 			memcpy-channels = <56 57 58 59 60>;
+
+			clocks = <&prcmu_clk PRCMU_DMACLK>;
 		};
 
 		prcmu: prcmu at 80157000 {
-- 
1.8.1.2

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

* [PATCH 06/41] ARM: ux500: Add PRCC Peripheral clock node to DBx500 Device Tree
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (4 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 05/41] ARM: ux500: Supply the DMA clock lookup to the DBX500 DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 07/41] ARM: ux500: Supply the GPIO clocks lookup to the DBX500 DT Lee Jones
                   ` (34 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 0bb8ed7..8a80eb4 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -49,6 +49,10 @@
 			prcmu_clk: prcmu-clock {
 				#clock-cells = <1>;
 			};
+
+			prcc_pclk: prcc-periph-clock {
+				#clock-cells = <2>;
+			};
 		};
 
 		timer at a0410600 {
-- 
1.8.1.2

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

* [PATCH 07/41] ARM: ux500: Supply the GPIO clocks lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (5 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 06/41] ARM: ux500: Add PRCC Peripheral clock node to DBx500 Device Tree Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 08/41] ARM: ux500: Supply the USB clock " Lee Jones
                   ` (33 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 8a80eb4..089b446 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -78,6 +78,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <0>;
+
+			clocks = <&prcc_pclk 1 9>;
 		};
 
 		gpio1: gpio at 8012e080 {
@@ -91,6 +93,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <1>;
+
+			clocks = <&prcc_pclk 1 9>;
 		};
 
 		gpio2: gpio at 8000e000 {
@@ -104,6 +108,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <2>;
+
+			clocks = <&prcc_pclk 3 8>;
 		};
 
 		gpio3: gpio at 8000e080 {
@@ -117,6 +123,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <3>;
+
+			clocks = <&prcc_pclk 3 8>;
 		};
 
 		gpio4: gpio at 8000e100 {
@@ -130,6 +138,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <4>;
+
+			clocks = <&prcc_pclk 3 8>;
 		};
 
 		gpio5: gpio at 8000e180 {
@@ -143,6 +153,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <5>;
+
+			clocks = <&prcc_pclk 3 8>;
 		};
 
 		gpio6: gpio at 8011e000 {
@@ -156,6 +168,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <6>;
+
+			clocks = <&prcc_pclk 2 1>;
 		};
 
 		gpio7: gpio at 8011e080 {
@@ -169,6 +183,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <7>;
+
+			clocks = <&prcc_pclk 2 1>;
 		};
 
 		gpio8: gpio at a03fe000 {
@@ -182,6 +198,8 @@
 			gpio-controller;
 			#gpio-cells = <2>;
 			gpio-bank = <8>;
+
+			clocks = <&prcc_pclk 6 1>;
 		};
 
 		pinctrl {
-- 
1.8.1.2

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

* [PATCH 08/41] ARM: ux500: Supply the USB clock lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (6 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 07/41] ARM: ux500: Supply the GPIO clocks lookup to the DBX500 DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 09/41] ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT Lee Jones
                   ` (32 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 089b446..2c1051d 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -241,6 +241,8 @@
 				    "iep_6_14", "oep_6_14",
 				    "iep_7_15", "oep_7_15",
 				    "iep_8",    "oep_8";
+
+			clocks = <&prcc_pclk 5 0>;
 		};
 
 		dma: dma-controller at 801C0000 {
-- 
1.8.1.2

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

* [PATCH 09/41] ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (7 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 08/41] ARM: ux500: Supply the USB clock " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 10/41] ARM: ux500: Add PRCC Kernel clock node to DBx500 Device Tree Lee Jones
                   ` (31 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/snowball.dts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/snowball.dts b/arch/arm/boot/dts/snowball.dts
index 49824be..e2a71bb 100644
--- a/arch/arm/boot/dts/snowball.dts
+++ b/arch/arm/boot/dts/snowball.dts
@@ -111,12 +111,13 @@
 				vdd33a-supply = <&en_3v3_reg>;
 				vddvario-supply = <&db8500_vape_reg>;
 
-
 				reg-shift = <1>;
 				reg-io-width = <2>;
 				smsc,force-internal-phy;
 				smsc,irq-active-high;
 				smsc,irq-push-pull;
+
+				clocks = <&prcc_pclk 3 0>;
 			};
 		};
 
-- 
1.8.1.2

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

* [PATCH 10/41] ARM: ux500: Add PRCC Kernel clock node to DBx500 Device Tree
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (8 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 09/41] ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 11/41] ARM: ux500: Supply the I2C clocks lookup to the DBX500 DT Lee Jones
                   ` (30 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 2c1051d..5e91063 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -53,6 +53,10 @@
 			prcc_pclk: prcc-periph-clock {
 				#clock-cells = <2>;
 			};
+
+			prcc_kclk: prcc-kernel-clock {
+				#clock-cells = <2>;
+			};
 		};
 
 		timer at a0410600 {
-- 
1.8.1.2

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

* [PATCH 11/41] ARM: ux500: Supply the I2C clocks lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (9 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 10/41] ARM: ux500: Add PRCC Kernel clock node to DBx500 Device Tree Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 12/41] ARM: ux500: Supply the UART " Lee Jones
                   ` (29 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 5e91063..0742e55 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -577,6 +577,8 @@
 			v-i2c-supply = <&db8500_vape_reg>;
 
 			clock-frequency = <400000>;
+			clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
+			clock-names = "i2cclk", "apb_pclk";
 		};
 
 		i2c at 80122000 {
@@ -590,6 +592,9 @@
 			v-i2c-supply = <&db8500_vape_reg>;
 
 			clock-frequency = <400000>;
+
+			clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
+			clock-names = "i2cclk", "apb_pclk";
 		};
 
 		i2c at 80128000 {
@@ -603,6 +608,9 @@
 			v-i2c-supply = <&db8500_vape_reg>;
 
 			clock-frequency = <400000>;
+
+			clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
+			clock-names = "i2cclk", "apb_pclk";
 		};
 
 		i2c at 80110000 {
@@ -616,6 +624,9 @@
 			v-i2c-supply = <&db8500_vape_reg>;
 
 			clock-frequency = <400000>;
+
+			clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
+			clock-names = "i2cclk", "apb_pclk";
 		};
 
 		i2c at 8012a000 {
@@ -629,6 +640,9 @@
 			v-i2c-supply = <&db8500_vape_reg>;
 
 			clock-frequency = <400000>;
+
+			clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 9>;
+			clock-names = "i2cclk", "apb_pclk";
 		};
 
 		ssp at 80002000 {
-- 
1.8.1.2

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

* [PATCH 12/41] ARM: ux500: Supply the UART clocks lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (10 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 11/41] ARM: ux500: Supply the I2C clocks lookup to the DBX500 DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 13/41] ARM: ux500: Supply the SDI (MMC) " Lee Jones
                   ` (28 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 0742e55..13ea13e 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -663,6 +663,9 @@
 			       <&dma 13 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
+			clock-names = "uart", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -675,6 +678,9 @@
 			       <&dma 12 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
+			clock-names = "uart", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -687,6 +693,9 @@
 			       <&dma 11 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
+			clock-names = "uart", "apb_pclk";
+
 			status = "disabled";
 		};
 
-- 
1.8.1.2

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

* [PATCH 13/41] ARM: ux500: Supply the SDI (MMC) clocks lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (11 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 12/41] ARM: ux500: Supply the UART " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 14/41] ARM: ux500: Supply the MSP (Audio) " Lee Jones
                   ` (27 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 13ea13e..75c0646 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -708,6 +708,9 @@
 			       <&dma 29 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -720,6 +723,9 @@
 			       <&dma 32 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -732,6 +738,9 @@
 			       <&dma 28 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -739,6 +748,10 @@
 			compatible = "arm,pl18x", "arm,primecell";
 			reg = <0x80119000 0x1000>;
 			interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -751,6 +764,9 @@
 			       <&dma 42 0 0x0>; /* Logical - MemToDev */
 			dma-names = "rx", "tx";
 
+			clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -758,6 +774,10 @@
 			compatible = "arm,pl18x", "arm,primecell";
 			reg = <0x80008000 0x1000>;
 			interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
+			clock-names = "sdi", "apb_pclk";
+
 			status = "disabled";
 		};
 
-- 
1.8.1.2

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

* [PATCH 14/41] ARM: ux500: Supply the MSP (Audio) clocks lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (12 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 13/41] ARM: ux500: Supply the SDI (MMC) " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 15/41] ARM: ux500: Add RTC (fixed-frequency) clock node to DBx500 Device Tree Lee Jones
                   ` (26 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 75c0646..8857dd1 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -786,6 +786,10 @@
 			reg = <0x80123000 0x1000>;
 			interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
 			v-ape-supply = <&db8500_vape_reg>;
+
+			clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
+			clock-names = "msp", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -794,6 +798,10 @@
 			reg = <0x80124000 0x1000>;
 			interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
 			v-ape-supply = <&db8500_vape_reg>;
+
+			clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
+			clock-names = "msp", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -803,6 +811,10 @@
 			reg = <0x80117000 0x1000>;
 			interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
 			v-ape-supply = <&db8500_vape_reg>;
+
+			clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
+			clock-names = "msp", "apb_pclk";
+
 			status = "disabled";
 		};
 
@@ -811,6 +823,10 @@
 			reg = <0x80125000 0x1000>;
 			interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
 			v-ape-supply = <&db8500_vape_reg>;
+
+			clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
+			clock-names = "msp", "apb_pclk";
+
 			status = "disabled";
 		};
 
-- 
1.8.1.2

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

* [PATCH 15/41] ARM: ux500: Add RTC (fixed-frequency) clock node to DBx500 Device Tree
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (13 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 14/41] ARM: ux500: Supply the MSP (Audio) " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 16/41] ARM: ux500: Supply the RTC clock lookup to the DBX500 DT Lee Jones
                   ` (25 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 8857dd1..77ea36f 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -57,6 +57,10 @@
 			prcc_kclk: prcc-kernel-clock {
 				#clock-cells = <2>;
 			};
+
+			rtc_clk: rtc32k-clock {
+				#clock-cells = <0>;
+			};
 		};
 
 		timer at a0410600 {
-- 
1.8.1.2

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

* [PATCH 16/41] ARM: ux500: Supply the RTC clock lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (14 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 15/41] ARM: ux500: Add RTC (fixed-frequency) clock node to DBx500 Device Tree Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 17/41] ARM: ux500: Add TWD (fixed-factor) clock node to DBx500 Device Tree Lee Jones
                   ` (24 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 77ea36f..81cdfcf 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -73,6 +73,9 @@
 			compatible = "arm,rtc-pl031", "arm,primecell";
 			reg = <0x80154000 0x1000>;
 			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&rtc_clk>;
+			clock-names = "apb_pclk";
 		};
 
 		gpio0: gpio at 8012e000 {
-- 
1.8.1.2

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

* [PATCH 17/41] ARM: ux500: Add TWD (fixed-factor) clock node to DBx500 Device Tree
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (15 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 16/41] ARM: ux500: Supply the RTC clock lookup to the DBX500 DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 18/41] ARM: ux500: Supply the TWD Timer clock lookup to the DBX500 DT Lee Jones
                   ` (23 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 81cdfcf..9adc4e5 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -61,6 +61,10 @@
 			rtc_clk: rtc32k-clock {
 				#clock-cells = <0>;
 			};
+
+			smp_twd_clk: smp-twd-clock {
+				#clock-cells = <0>;
+			};
 		};
 
 		timer at a0410600 {
-- 
1.8.1.2

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

* [PATCH 18/41] ARM: ux500: Supply the TWD Timer clock lookup to the DBX500 DT
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (16 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 17/41] ARM: ux500: Add TWD (fixed-factor) clock node to DBx500 Device Tree Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 19/41] ARM: ux500: Add a DT node for the Nomadik System Timer (MTU0) Lee Jones
                   ` (22 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 9adc4e5..5c3ff94 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -71,6 +71,8 @@
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xa0410600 0x20>;
 			interrupts = <1 13 0x304>; /* IRQ level high per-CPU */
+
+			clocks = <&smp_twd_clk>;
 		};
 
 		rtc at 80154000 {
-- 
1.8.1.2

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

* [PATCH 19/41] ARM: ux500: Add a DT node for the Nomadik System Timer (MTU0)
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (17 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 18/41] ARM: ux500: Supply the TWD Timer clock lookup to the DBX500 DT Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 20/41] ARM: ux500: Don't attempt to enable the Nomadik System Timer twice Lee Jones
                   ` (21 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

The MTU0 is required for full booting of the system. The driver has
been previously DT:ed and is in use on the Nomadik platform, but we
also need to enable it on ux500 based systems.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 5c3ff94..0d2d5d0 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -43,6 +43,7 @@
 			interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
 		};
 
+
 		clocks {
 			compatible = "stericsson,u8500-clks";
 
@@ -67,6 +68,16 @@
 			};
 		};
 
+		mtu at a03c6000 {
+			/* Nomadik System Timer */
+			compatible = "st,nomadik-mtu";
+			reg = <0xa03c6000 0x1000>;
+			interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
+
+			clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>;
+			clock-names = "timclk", "apb_pclk";
+		};
+
 		timer at a0410600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0xa0410600 0x20>;
-- 
1.8.1.2

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

* [PATCH 20/41] ARM: ux500: Don't attempt to enable the Nomadik System Timer twice
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (18 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 19/41] ARM: ux500: Add a DT node for the Nomadik System Timer (MTU0) Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 21/41] clk: ux500: Remove BML8580 clock Lee Jones
                   ` (20 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

When booting with DT enabled we already call clocksource_of_init(),
which in turn calls the OF version of nmdk_timer_init().

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/timer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c
index b6bd0ef..05a4ff7 100644
--- a/arch/arm/mach-ux500/timer.c
+++ b/arch/arm/mach-ux500/timer.c
@@ -97,8 +97,8 @@ dt_fail:
 	 * sched_clock with higher rating then MTU since is always-on.
 	 *
 	 */
-
-	nmdk_timer_init(mtu_timer_base, IRQ_MTU0);
+	if (!of_have_populated_dt())
+		nmdk_timer_init(mtu_timer_base, IRQ_MTU0);
 	clksrc_dbx500_prcmu_init(prcmu_timer_base);
 	ux500_twd_init();
 }
-- 
1.8.1.2

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

* [PATCH 21/41] clk: ux500: Remove BML8580 clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (19 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 20/41] ARM: ux500: Don't attempt to enable the Nomadik System Timer twice Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement Lee Jones
                   ` (19 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

There is no mention of the PRCMU_BML8580CLK in any of the Design
Specifications for the chips supported in Mainline. In fact, where it
is incorrectly used in the u8540 clock definition driver it would
have the side effect of using the incorrect clock management address
([PRCM_BML8580CLK_MGT] 0x108 instead of the correct value 0x04C).

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8540_clk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/ux500/u8540_clk.c b/drivers/clk/ux500/u8540_clk.c
index f262588..20c8add 100644
--- a/drivers/clk/ux500/u8540_clk.c
+++ b/drivers/clk/ux500/u8540_clk.c
@@ -83,7 +83,7 @@ void u8540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	clk_register_clkdev(clk, NULL, "lcd");
 	clk_register_clkdev(clk, "lcd", "mcde");
 
-	clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BML8580CLK,
+	clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK,
 				CLK_IS_ROOT);
 	clk_register_clkdev(clk, NULL, "bml");
 
-- 
1.8.1.2

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

* [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (20 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 21/41] clk: ux500: Remove BML8580 clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-19 12:31   ` Lee Jones
  2013-09-20 20:59   ` Linus Walleij
  2013-09-18 12:14 ` [PATCH 23/41] clk: ux500: Provide u8500_clk with skeleton Device Tree support Lee Jones
                   ` (18 subsequent siblings)
  40 siblings, 2 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Here we're using the old clock initialisation function as a template.
It's necessary to remove all of the clk_register_clkdev() calls as
they don't make sense when booting with Device Tree.

Cc: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/Makefile              |   1 +
 drivers/clk/ux500/u8500_of_clk.c        | 381 ++++++++++++++++++++++++++++++++
 include/linux/platform_data/clk-ux500.h |   3 +
 3 files changed, 385 insertions(+)
 create mode 100644 drivers/clk/ux500/u8500_of_clk.c

diff --git a/drivers/clk/ux500/Makefile b/drivers/clk/ux500/Makefile
index c6a806e..521483f 100644
--- a/drivers/clk/ux500/Makefile
+++ b/drivers/clk/ux500/Makefile
@@ -8,6 +8,7 @@ obj-y += clk-prcmu.o
 obj-y += clk-sysctrl.o
 
 # Clock definitions
+obj-y += u8500_of_clk.o
 obj-y += u8500_clk.o
 obj-y += u9540_clk.o
 obj-y += u8540_clk.o
diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
new file mode 100644
index 0000000..ceebce6
--- /dev/null
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -0,0 +1,381 @@
+/*
+ * Clock definitions for u8500 platform.
+ *
+ * Copyright (C) 2012 ST-Ericsson SA
+ * Author: Ulf Hansson <ulf.hansson@linaro.org>
+ *
+ * License terms: GNU General Public License (GPL) version 2
+ */
+
+#include <linux/clk.h>
+#include <linux/clkdev.h>
+#include <linux/clk-provider.h>
+#include <linux/mfd/dbx500-prcmu.h>
+#include <linux/platform_data/clk-ux500.h>
+#include "clk.h"
+
+void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
+		       u32 clkrst5_base, u32 clkrst6_base)
+{
+	struct prcmu_fw_version *fw_version;
+	const char *sgaclk_parent = NULL;
+	struct clk *clk;
+
+	/* Clock sources */
+	clk = clk_reg_prcmu_gate("soc0_pll", NULL, PRCMU_PLLSOC0,
+				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+
+	clk = clk_reg_prcmu_gate("soc1_pll", NULL, PRCMU_PLLSOC1,
+				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+
+	clk = clk_reg_prcmu_gate("ddr_pll", NULL, PRCMU_PLLDDR,
+				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+
+	/* FIXME: Add sys, ulp and int clocks here. */
+
+	clk = clk_register_fixed_rate(NULL, "rtc32k", "NULL",
+				CLK_IS_ROOT|CLK_IGNORE_UNUSED,
+				32768);
+
+	/* PRCMU clocks */
+	fw_version = prcmu_get_fw_version();
+	if (fw_version != NULL) {
+		switch (fw_version->project) {
+		case PRCMU_FW_PROJECT_U8500_C2:
+		case PRCMU_FW_PROJECT_U8520:
+		case PRCMU_FW_PROJECT_U8420:
+			sgaclk_parent = "soc0_pll";
+			break;
+		default:
+			break;
+		}
+	}
+
+	if (sgaclk_parent)
+		clk = clk_reg_prcmu_gate("sgclk", sgaclk_parent,
+					PRCMU_SGACLK, 0);
+	else
+		clk = clk_reg_prcmu_gate("sgclk", NULL,
+					PRCMU_SGACLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("uartclk", NULL, PRCMU_UARTCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("msp02clk", NULL, PRCMU_MSP02CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("msp1clk", NULL, PRCMU_MSP1CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("i2cclk", NULL, PRCMU_I2CCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("slimclk", NULL, PRCMU_SLIMCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per1clk", NULL, PRCMU_PER1CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per2clk", NULL, PRCMU_PER2CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per3clk", NULL, PRCMU_PER3CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per5clk", NULL, PRCMU_PER5CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per6clk", NULL, PRCMU_PER6CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("per7clk", NULL, PRCMU_PER7CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_scalable("lcdclk", NULL, PRCMU_LCDCLK, 0,
+				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_scalable("hsitxclk", NULL, PRCMU_HSITXCLK, 0,
+				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("hsirxclk", NULL, PRCMU_HSIRXCLK, 0,
+				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("hdmiclk", NULL, PRCMU_HDMICLK, 0,
+				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_gate("apeatclk", NULL, PRCMU_APEATCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("apetraceclk", NULL, PRCMU_APETRACECLK,
+				CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("mcdeclk", NULL, PRCMU_MCDECLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_opp_gate("ipi2cclk", NULL, PRCMU_IPI2CCLK,
+				CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("dsialtclk", NULL, PRCMU_DSIALTCLK,
+				CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("dmaclk", NULL, PRCMU_DMACLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("b2r2clk", NULL, PRCMU_B2R2CLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_scalable("tvclk", NULL, PRCMU_TVCLK, 0,
+				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_gate("sspclk", NULL, PRCMU_SSPCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("rngclk", NULL, PRCMU_RNGCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT);
+
+	clk = clk_reg_prcmu_opp_volt_scalable("sdmmcclk", NULL, PRCMU_SDMMCCLK,
+					100000000,
+					CLK_IS_ROOT|CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk",
+				PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE);
+
+
+	clk = clk_reg_prcmu_scalable("dsi0clk", "dsi_pll",
+				PRCMU_DSI0CLK, 0, CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("dsi1clk", "dsi_pll",
+				PRCMU_DSI1CLK, 0, CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("dsi0escclk", "tvclk",
+				PRCMU_DSI0ESCCLK, 0, CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("dsi1escclk", "tvclk",
+				PRCMU_DSI1ESCCLK, 0, CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable("dsi2escclk", "tvclk",
+				PRCMU_DSI2ESCCLK, 0, CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcmu_scalable_rate("armss", NULL,
+				PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+
+	clk = clk_register_fixed_factor(NULL, "smp_twd", "armss",
+				CLK_IGNORE_UNUSED, 1, 2);
+
+	/*
+	 * FIXME: Add special handled PRCMU clocks here:
+	 * 1. clkout0yuv, use PRCMU as parent + need regulator + pinctrl.
+	 * 2. ab9540_clkout1yuv, see clkout0yuv
+	 */
+
+	/* PRCC P-clocks */
+	clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", clkrst1_base,
+				BIT(0), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", clkrst1_base,
+				BIT(1), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", clkrst1_base,
+				BIT(2), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", clkrst1_base,
+				BIT(3), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", clkrst1_base,
+				BIT(4), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", clkrst1_base,
+				BIT(5), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", clkrst1_base,
+				BIT(6), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", clkrst1_base,
+				BIT(7), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", clkrst1_base,
+				BIT(8), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", clkrst1_base,
+				BIT(9), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", clkrst1_base,
+				BIT(10), 0);
+
+	clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", clkrst1_base,
+				BIT(11), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", clkrst2_base,
+				BIT(0), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", clkrst2_base,
+				BIT(1), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", clkrst2_base,
+				BIT(2), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", clkrst2_base,
+				BIT(3), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", clkrst2_base,
+				BIT(4), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", clkrst2_base,
+				BIT(5), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", clkrst2_base,
+				BIT(6), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", clkrst2_base,
+				BIT(7), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", clkrst2_base,
+				BIT(8), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", clkrst2_base,
+				BIT(9), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", clkrst2_base,
+				BIT(10), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", clkrst2_base,
+				BIT(11), 0);
+
+	clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", clkrst2_base,
+				BIT(12), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", clkrst3_base,
+				BIT(0), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", clkrst3_base,
+				BIT(1), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", clkrst3_base,
+				BIT(2), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", clkrst3_base,
+				BIT(3), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", clkrst3_base,
+				BIT(4), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", clkrst3_base,
+				BIT(5), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", clkrst3_base,
+				BIT(6), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", clkrst3_base,
+				BIT(7), 0);
+
+	clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", clkrst3_base,
+				BIT(8), 0);
+
+	clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", clkrst5_base,
+				BIT(0), 0);
+
+	clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", clkrst5_base,
+				BIT(1), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", clkrst6_base,
+				BIT(0), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", clkrst6_base,
+				BIT(1), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", clkrst6_base,
+				BIT(2), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", clkrst6_base,
+				BIT(3), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", clkrst6_base,
+				BIT(4), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", clkrst6_base,
+				BIT(5), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", clkrst6_base,
+				BIT(6), 0);
+
+	clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", clkrst6_base,
+				BIT(7), 0);
+
+	/* PRCC K-clocks
+	 *
+	 * FIXME: Some drivers requires PERPIH[n| to be automatically enabled
+	 * by enabling just the K-clock, even if it is not a valid parent to
+	 * the K-clock. Until drivers get fixed we might need some kind of
+	 * "parent muxed join".
+	 */
+
+	/* Periph1 */
+	clk = clk_reg_prcc_kclk("p1_uart0_kclk", "uartclk",
+			clkrst1_base, BIT(0), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_uart1_kclk", "uartclk",
+			clkrst1_base, BIT(1), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_i2c1_kclk", "i2cclk",
+			clkrst1_base, BIT(2), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_msp0_kclk", "msp02clk",
+			clkrst1_base, BIT(3), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_msp1_kclk", "msp1clk",
+			clkrst1_base, BIT(4), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_sdi0_kclk", "sdmmcclk",
+			clkrst1_base, BIT(5), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_i2c2_kclk", "i2cclk",
+			clkrst1_base, BIT(6), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_slimbus0_kclk", "slimclk",
+			clkrst1_base, BIT(8), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_i2c4_kclk", "i2cclk",
+			clkrst1_base, BIT(9), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p1_msp3_kclk", "msp1clk",
+			clkrst1_base, BIT(10), CLK_SET_RATE_GATE);
+
+	/* Periph2 */
+	clk = clk_reg_prcc_kclk("p2_i2c3_kclk", "i2cclk",
+			clkrst2_base, BIT(0), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p2_sdi4_kclk", "sdmmcclk",
+			clkrst2_base, BIT(2), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p2_msp2_kclk", "msp02clk",
+			clkrst2_base, BIT(3), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p2_sdi1_kclk", "sdmmcclk",
+			clkrst2_base, BIT(4), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p2_sdi3_kclk", "sdmmcclk",
+			clkrst2_base, BIT(5), CLK_SET_RATE_GATE);
+
+	/* Note that rate is received from parent. */
+	clk = clk_reg_prcc_kclk("p2_ssirx_kclk", "hsirxclk",
+			clkrst2_base, BIT(6),
+			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
+	clk = clk_reg_prcc_kclk("p2_ssitx_kclk", "hsitxclk",
+			clkrst2_base, BIT(7),
+			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
+
+	/* Periph3 */
+	clk = clk_reg_prcc_kclk("p3_ssp0_kclk", "sspclk",
+			clkrst3_base, BIT(1), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_ssp1_kclk", "sspclk",
+			clkrst3_base, BIT(2), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_i2c0_kclk", "i2cclk",
+			clkrst3_base, BIT(3), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_sdi2_kclk", "sdmmcclk",
+			clkrst3_base, BIT(4), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k",
+			clkrst3_base, BIT(5), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk",
+			clkrst3_base, BIT(6), CLK_SET_RATE_GATE);
+
+	clk = clk_reg_prcc_kclk("p3_sdi5_kclk", "sdmmcclk",
+			clkrst3_base, BIT(7), CLK_SET_RATE_GATE);
+
+	/* Periph6 */
+	clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk",
+			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);
+}
diff --git a/include/linux/platform_data/clk-ux500.h b/include/linux/platform_data/clk-ux500.h
index 9d98f3a..97baf83 100644
--- a/include/linux/platform_data/clk-ux500.h
+++ b/include/linux/platform_data/clk-ux500.h
@@ -10,6 +10,9 @@
 #ifndef __CLK_UX500_H
 #define __CLK_UX500_H
 
+void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
+		       u32 clkrst5_base, u32 clkrst6_base);
+
 void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 		    u32 clkrst5_base, u32 clkrst6_base);
 void u9540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
-- 
1.8.1.2

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

* [PATCH 23/41] clk: ux500: Provide u8500_clk with skeleton Device Tree support
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (21 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 24/41] clk: ux500: Add a 2-cell Device Tree parser for obtaining PRCC clocks Lee Jones
                   ` (17 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

The functional components will be added on a per-clock basis.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index ceebce6..bfbe3ca 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -7,6 +7,7 @@
  * License terms: GNU General Public License (GPL) version 2
  */
 
+#include <linux/of.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 #include <linux/clk-provider.h>
@@ -14,13 +15,27 @@
 #include <linux/platform_data/clk-ux500.h>
 #include "clk.h"
 
+static const struct of_device_id u8500_clk_of_match[] = {
+	{ .compatible = "stericsson,u8500-clks", },
+	{ },
+};
+
 void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 		       u32 clkrst5_base, u32 clkrst6_base)
 {
 	struct prcmu_fw_version *fw_version;
+	struct device_node *np = NULL;
+	struct device_node *child = NULL;
 	const char *sgaclk_parent = NULL;
 	struct clk *clk;
 
+	if (of_have_populated_dt())
+		np = of_find_matching_node(NULL, u8500_clk_of_match);
+	if (!np) {
+		pr_err("Either DT or U8500 Clock node not found\n");
+		return;
+	}
+
 	/* Clock sources */
 	clk = clk_reg_prcmu_gate("soc0_pll", NULL, PRCMU_PLLSOC0,
 				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
@@ -378,4 +393,8 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	/* Periph6 */
 	clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk",
 			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);
+
+	for_each_child_of_node(np, child) {
+		/* Place holder for supported nodes. */
+	}
 }
-- 
1.8.1.2

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

* [PATCH 24/41] clk: ux500: Add a 2-cell Device Tree parser for obtaining PRCC clocks
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (22 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 23/41] clk: ux500: Provide u8500_clk with skeleton Device Tree support Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 25/41] clk: ux500: Add Device Tree support for the PRCMU clock Lee Jones
                   ` (16 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

PRCC (peripheral and kernel) clocks are specified using a property tuple
<&phandle base bit>, where 'base' is the peripheral (1, 2, 3, 5 or 6),
and bit is read-in value into that peripheral stipulated by the hardware
specification.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index bfbe3ca..b9b3317 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -15,6 +15,28 @@
 #include <linux/platform_data/clk-ux500.h>
 #include "clk.h"
 
+#define PRCC_SHOW(clk, base, bit) \
+	clk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit]
+
+struct clk *ux500_twocell_get(struct of_phandle_args *clkspec, void *data)
+{
+	struct clk **clk_data = data;
+	unsigned int base, bit;
+
+	if (clkspec->args_count != 2)
+		return  ERR_PTR(-EINVAL);
+
+	base = clkspec->args[0];
+	bit = clkspec->args[1];
+
+	if (base != 1 && base != 2 && base != 3 && base != 5 && base != 6) {
+		pr_err("%s: invalid PRCC base %d\n", __func__, base);
+		return ERR_PTR(-EINVAL);
+	}
+
+	return PRCC_SHOW(clk_data, base, bit);
+}
+
 static const struct of_device_id u8500_clk_of_match[] = {
 	{ .compatible = "stericsson,u8500-clks", },
 	{ },
-- 
1.8.1.2

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

* [PATCH 25/41] clk: ux500: Add Device Tree support for the PRCMU clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (23 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 24/41] clk: ux500: Add a 2-cell Device Tree parser for obtaining PRCC clocks Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 26/41] clk: ux500: Add Device Tree support for the PRCC Peripheral clock Lee Jones
                   ` (15 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

This patch enables clocks to be specified from Device Tree via phandles
to the "prcmu-clock" node.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 50 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 48 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index b9b3317..f5534fd 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -15,6 +15,8 @@
 #include <linux/platform_data/clk-ux500.h>
 #include "clk.h"
 
+static struct clk *prcmu_clk[PRCMU_NUM_CLKS];
+
 #define PRCC_SHOW(clk, base, bit) \
 	clk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit]
 
@@ -61,12 +63,15 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	/* Clock sources */
 	clk = clk_reg_prcmu_gate("soc0_pll", NULL, PRCMU_PLLSOC0,
 				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+	prcmu_clk[PRCMU_PLLSOC0] = clk;
 
 	clk = clk_reg_prcmu_gate("soc1_pll", NULL, PRCMU_PLLSOC1,
 				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+	prcmu_clk[PRCMU_PLLSOC1] = clk;
 
 	clk = clk_reg_prcmu_gate("ddr_pll", NULL, PRCMU_PLLDDR,
 				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
+	prcmu_clk[PRCMU_PLLDDR] = clk;
 
 	/* FIXME: Add sys, ulp and int clocks here. */
 
@@ -94,93 +99,128 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	else
 		clk = clk_reg_prcmu_gate("sgclk", NULL,
 					PRCMU_SGACLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_SGACLK] = clk;
 
 	clk = clk_reg_prcmu_gate("uartclk", NULL, PRCMU_UARTCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_UARTCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("msp02clk", NULL, PRCMU_MSP02CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_MSP02CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("msp1clk", NULL, PRCMU_MSP1CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_MSP1CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("i2cclk", NULL, PRCMU_I2CCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_I2CCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("slimclk", NULL, PRCMU_SLIMCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_SLIMCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per1clk", NULL, PRCMU_PER1CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER1CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per2clk", NULL, PRCMU_PER2CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER2CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per3clk", NULL, PRCMU_PER3CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER3CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per5clk", NULL, PRCMU_PER5CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER5CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per6clk", NULL, PRCMU_PER6CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER6CLK] = clk;
 
 	clk = clk_reg_prcmu_gate("per7clk", NULL, PRCMU_PER7CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_PER7CLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("lcdclk", NULL, PRCMU_LCDCLK, 0,
 				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_LCDCLK] = clk;
 
 	clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_BMLCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("hsitxclk", NULL, PRCMU_HSITXCLK, 0,
 				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_HSITXCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("hsirxclk", NULL, PRCMU_HSIRXCLK, 0,
 				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_HSIRXCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("hdmiclk", NULL, PRCMU_HDMICLK, 0,
 				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_HDMICLK] = clk;
 
 	clk = clk_reg_prcmu_gate("apeatclk", NULL, PRCMU_APEATCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_APEATCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("apetraceclk", NULL, PRCMU_APETRACECLK,
 				CLK_IS_ROOT);
+	prcmu_clk[PRCMU_APETRACECLK] = clk;
 
 	clk = clk_reg_prcmu_gate("mcdeclk", NULL, PRCMU_MCDECLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_MCDECLK] = clk;
 
 	clk = clk_reg_prcmu_opp_gate("ipi2cclk", NULL, PRCMU_IPI2CCLK,
 				CLK_IS_ROOT);
+	prcmu_clk[PRCMU_IPI2CCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("dsialtclk", NULL, PRCMU_DSIALTCLK,
 				CLK_IS_ROOT);
+	prcmu_clk[PRCMU_DSIALTCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("dmaclk", NULL, PRCMU_DMACLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_DMACLK] = clk;
 
 	clk = clk_reg_prcmu_gate("b2r2clk", NULL, PRCMU_B2R2CLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_B2R2CLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("tvclk", NULL, PRCMU_TVCLK, 0,
 				CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_TVCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("sspclk", NULL, PRCMU_SSPCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_SSPCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("rngclk", NULL, PRCMU_RNGCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_RNGCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_UICCCLK] = clk;
 
 	clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT);
+	prcmu_clk[PRCMU_TIMCLK] = clk;
 
 	clk = clk_reg_prcmu_opp_volt_scalable("sdmmcclk", NULL, PRCMU_SDMMCCLK,
 					100000000,
 					CLK_IS_ROOT|CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_SDMMCCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk",
 				PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE);
-
+	prcmu_clk[PRCMU_PLLDSI] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi0clk", "dsi_pll",
 				PRCMU_DSI0CLK, 0, CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_DSI0CLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi1clk", "dsi_pll",
 				PRCMU_DSI1CLK, 0, CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_DSI1CLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi0escclk", "tvclk",
 				PRCMU_DSI0ESCCLK, 0, CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_DSI0ESCCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi1escclk", "tvclk",
 				PRCMU_DSI1ESCCLK, 0, CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_DSI1ESCCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable("dsi2escclk", "tvclk",
 				PRCMU_DSI2ESCCLK, 0, CLK_SET_RATE_GATE);
+	prcmu_clk[PRCMU_DSI2ESCCLK] = clk;
 
 	clk = clk_reg_prcmu_scalable_rate("armss", NULL,
 				PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED);
@@ -417,6 +457,12 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);
 
 	for_each_child_of_node(np, child) {
-		/* Place holder for supported nodes. */
+		static struct clk_onecell_data clk_data;
+
+		if (!of_node_cmp(child->name, "prcmu-clock")) {
+			clk_data.clks = prcmu_clk;
+			clk_data.clk_num = ARRAY_SIZE(prcmu_clk);
+			of_clk_add_provider(child, of_clk_src_onecell_get, &clk_data);
+		}
 	}
 }
-- 
1.8.1.2

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

* [PATCH 26/41] clk: ux500: Add Device Tree support for the PRCC Peripheral clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (24 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 25/41] clk: ux500: Add Device Tree support for the PRCMU clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 27/41] clk: ux500: Add Device Tree support for the PRCC Kernel clock Lee Jones
                   ` (14 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

This patch enables clocks to be specified from Device Tree via phandles
to the "prcc-periph-clock" node.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 52 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index f5534fd..dcc736a 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -15,10 +15,16 @@
 #include <linux/platform_data/clk-ux500.h>
 #include "clk.h"
 
+#define PRCC_NUM_PERIPH_CLUSTERS 6
+#define PRCC_PERIPHS_PER_CLUSTER 32
+
 static struct clk *prcmu_clk[PRCMU_NUM_CLKS];
+static struct clk *prcc_pclk[(PRCC_NUM_PERIPH_CLUSTERS + 1) * PRCC_PERIPHS_PER_CLUSTER];
 
 #define PRCC_SHOW(clk, base, bit) \
 	clk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit]
+#define PRCC_PCLK_STORE(clk, base, bit)	\
+	prcc_pclk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk
 
 struct clk *ux500_twocell_get(struct of_phandle_args *clkspec, void *data)
 {
@@ -237,135 +243,179 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	/* PRCC P-clocks */
 	clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", clkrst1_base,
 				BIT(0), 0);
+	PRCC_PCLK_STORE(clk, 1, 0);
 
 	clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", clkrst1_base,
 				BIT(1), 0);
+	PRCC_PCLK_STORE(clk, 1, 1);
 
 	clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", clkrst1_base,
 				BIT(2), 0);
+	PRCC_PCLK_STORE(clk, 1, 2);
 
 	clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", clkrst1_base,
 				BIT(3), 0);
+	PRCC_PCLK_STORE(clk, 1, 3);
 
 	clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", clkrst1_base,
 				BIT(4), 0);
+	PRCC_PCLK_STORE(clk, 1, 4);
 
 	clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", clkrst1_base,
 				BIT(5), 0);
+	PRCC_PCLK_STORE(clk, 1, 5);
 
 	clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", clkrst1_base,
 				BIT(6), 0);
+	PRCC_PCLK_STORE(clk, 1, 6);
 
 	clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", clkrst1_base,
 				BIT(7), 0);
+	PRCC_PCLK_STORE(clk, 1, 7);
 
 	clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", clkrst1_base,
 				BIT(8), 0);
+	PRCC_PCLK_STORE(clk, 1, 8);
 
 	clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", clkrst1_base,
 				BIT(9), 0);
+	PRCC_PCLK_STORE(clk, 1, 9);
 
 	clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", clkrst1_base,
 				BIT(10), 0);
+	PRCC_PCLK_STORE(clk, 1, 10);
 
 	clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", clkrst1_base,
 				BIT(11), 0);
+	PRCC_PCLK_STORE(clk, 1, 11);
 
 	clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", clkrst2_base,
 				BIT(0), 0);
+	PRCC_PCLK_STORE(clk, 2, 0);
 
 	clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", clkrst2_base,
 				BIT(1), 0);
+	PRCC_PCLK_STORE(clk, 2, 1);
 
 	clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", clkrst2_base,
 				BIT(2), 0);
+	PRCC_PCLK_STORE(clk, 2, 2);
 
 	clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", clkrst2_base,
 				BIT(3), 0);
+	PRCC_PCLK_STORE(clk, 2, 3);
 
 	clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", clkrst2_base,
 				BIT(4), 0);
+	PRCC_PCLK_STORE(clk, 2, 4);
 
 	clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", clkrst2_base,
 				BIT(5), 0);
+	PRCC_PCLK_STORE(clk, 2, 5);
 
 	clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", clkrst2_base,
 				BIT(6), 0);
+	PRCC_PCLK_STORE(clk, 2, 6);
 
 	clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", clkrst2_base,
 				BIT(7), 0);
+	PRCC_PCLK_STORE(clk, 2, 7);
 
 	clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", clkrst2_base,
 				BIT(8), 0);
+	PRCC_PCLK_STORE(clk, 2, 8);
 
 	clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", clkrst2_base,
 				BIT(9), 0);
+	PRCC_PCLK_STORE(clk, 2, 9);
 
 	clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", clkrst2_base,
 				BIT(10), 0);
+	PRCC_PCLK_STORE(clk, 2, 10);
 
 	clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", clkrst2_base,
 				BIT(11), 0);
+	PRCC_PCLK_STORE(clk, 2, 1);
 
 	clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", clkrst2_base,
 				BIT(12), 0);
+	PRCC_PCLK_STORE(clk, 2, 12);
 
 	clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", clkrst3_base,
 				BIT(0), 0);
+	PRCC_PCLK_STORE(clk, 3, 0);
 
 	clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", clkrst3_base,
 				BIT(1), 0);
+	PRCC_PCLK_STORE(clk, 3, 1);
 
 	clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", clkrst3_base,
 				BIT(2), 0);
+	PRCC_PCLK_STORE(clk, 3, 2);
 
 	clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", clkrst3_base,
 				BIT(3), 0);
+	PRCC_PCLK_STORE(clk, 3, 3);
 
 	clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", clkrst3_base,
 				BIT(4), 0);
+	PRCC_PCLK_STORE(clk, 3, 4);
 
 	clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", clkrst3_base,
 				BIT(5), 0);
+	PRCC_PCLK_STORE(clk, 3, 5);
 
 	clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", clkrst3_base,
 				BIT(6), 0);
+	PRCC_PCLK_STORE(clk, 3, 6);
 
 	clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", clkrst3_base,
 				BIT(7), 0);
+	PRCC_PCLK_STORE(clk, 3, 7);
 
 	clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", clkrst3_base,
 				BIT(8), 0);
+	PRCC_PCLK_STORE(clk, 3, 8);
 
 	clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", clkrst5_base,
 				BIT(0), 0);
+	PRCC_PCLK_STORE(clk, 5, 0);
 
 	clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", clkrst5_base,
 				BIT(1), 0);
+	PRCC_PCLK_STORE(clk, 5, 1);
 
 	clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", clkrst6_base,
 				BIT(0), 0);
+	PRCC_PCLK_STORE(clk, 6, 0);
 
 	clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", clkrst6_base,
 				BIT(1), 0);
+	PRCC_PCLK_STORE(clk, 6, 1);
 
 	clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", clkrst6_base,
 				BIT(2), 0);
+	PRCC_PCLK_STORE(clk, 6, 2);
 
 	clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", clkrst6_base,
 				BIT(3), 0);
+	PRCC_PCLK_STORE(clk, 6, 3);
 
 	clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", clkrst6_base,
 				BIT(4), 0);
+	PRCC_PCLK_STORE(clk, 6, 4);
 
 	clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", clkrst6_base,
 				BIT(5), 0);
+	PRCC_PCLK_STORE(clk, 6, 5);
 
 	clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", clkrst6_base,
 				BIT(6), 0);
+	PRCC_PCLK_STORE(clk, 6, 6);
 
 	clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", clkrst6_base,
 				BIT(7), 0);
+	PRCC_PCLK_STORE(clk, 6, 7);
 
 	/* PRCC K-clocks
 	 *
@@ -464,5 +514,7 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 			clk_data.clk_num = ARRAY_SIZE(prcmu_clk);
 			of_clk_add_provider(child, of_clk_src_onecell_get, &clk_data);
 		}
+		if (!of_node_cmp(child->name, "prcc-periph-clock"))
+			of_clk_add_provider(child, ux500_twocell_get, prcc_pclk);
 	}
 }
-- 
1.8.1.2

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

* [PATCH 27/41] clk: ux500: Add Device Tree support for the PRCC Kernel clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (25 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 26/41] clk: ux500: Add Device Tree support for the PRCC Peripheral clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 28/41] clk: ux500: Add Device Tree support for the RTC clock Lee Jones
                   ` (13 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

This patch enables clocks to be specified from Device Tree via phandles
to the "prcc-kernel-clock" node.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index dcc736a..4fcafd0 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -20,11 +20,14 @@
 
 static struct clk *prcmu_clk[PRCMU_NUM_CLKS];
 static struct clk *prcc_pclk[(PRCC_NUM_PERIPH_CLUSTERS + 1) * PRCC_PERIPHS_PER_CLUSTER];
+static struct clk *prcc_kclk[(PRCC_NUM_PERIPH_CLUSTERS + 1) * PRCC_PERIPHS_PER_CLUSTER];
 
 #define PRCC_SHOW(clk, base, bit) \
 	clk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit]
 #define PRCC_PCLK_STORE(clk, base, bit)	\
 	prcc_pclk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk
+#define PRCC_KCLK_STORE(clk, base, bit)        \
+	prcc_kclk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk
 
 struct clk *ux500_twocell_get(struct of_phandle_args *clkspec, void *data)
 {
@@ -428,83 +431,109 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	/* Periph1 */
 	clk = clk_reg_prcc_kclk("p1_uart0_kclk", "uartclk",
 			clkrst1_base, BIT(0), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 0);
 
 	clk = clk_reg_prcc_kclk("p1_uart1_kclk", "uartclk",
 			clkrst1_base, BIT(1), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 1);
 
 	clk = clk_reg_prcc_kclk("p1_i2c1_kclk", "i2cclk",
 			clkrst1_base, BIT(2), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 2);
 
 	clk = clk_reg_prcc_kclk("p1_msp0_kclk", "msp02clk",
 			clkrst1_base, BIT(3), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 3);
 
 	clk = clk_reg_prcc_kclk("p1_msp1_kclk", "msp1clk",
 			clkrst1_base, BIT(4), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 4);
 
 	clk = clk_reg_prcc_kclk("p1_sdi0_kclk", "sdmmcclk",
 			clkrst1_base, BIT(5), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 5);
 
 	clk = clk_reg_prcc_kclk("p1_i2c2_kclk", "i2cclk",
 			clkrst1_base, BIT(6), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 6);
 
 	clk = clk_reg_prcc_kclk("p1_slimbus0_kclk", "slimclk",
 			clkrst1_base, BIT(8), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 8);
 
 	clk = clk_reg_prcc_kclk("p1_i2c4_kclk", "i2cclk",
 			clkrst1_base, BIT(9), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 9);
 
 	clk = clk_reg_prcc_kclk("p1_msp3_kclk", "msp1clk",
 			clkrst1_base, BIT(10), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 1, 10);
 
 	/* Periph2 */
 	clk = clk_reg_prcc_kclk("p2_i2c3_kclk", "i2cclk",
 			clkrst2_base, BIT(0), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 2, 0);
 
 	clk = clk_reg_prcc_kclk("p2_sdi4_kclk", "sdmmcclk",
 			clkrst2_base, BIT(2), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 2, 2);
 
 	clk = clk_reg_prcc_kclk("p2_msp2_kclk", "msp02clk",
 			clkrst2_base, BIT(3), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 2, 3);
 
 	clk = clk_reg_prcc_kclk("p2_sdi1_kclk", "sdmmcclk",
 			clkrst2_base, BIT(4), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 2, 4);
 
 	clk = clk_reg_prcc_kclk("p2_sdi3_kclk", "sdmmcclk",
 			clkrst2_base, BIT(5), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 2, 5);
 
 	/* Note that rate is received from parent. */
 	clk = clk_reg_prcc_kclk("p2_ssirx_kclk", "hsirxclk",
 			clkrst2_base, BIT(6),
 			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
+	PRCC_KCLK_STORE(clk, 2, 6);
+
 	clk = clk_reg_prcc_kclk("p2_ssitx_kclk", "hsitxclk",
 			clkrst2_base, BIT(7),
 			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
+	PRCC_KCLK_STORE(clk, 2, 7);
 
 	/* Periph3 */
 	clk = clk_reg_prcc_kclk("p3_ssp0_kclk", "sspclk",
 			clkrst3_base, BIT(1), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 1);
 
 	clk = clk_reg_prcc_kclk("p3_ssp1_kclk", "sspclk",
 			clkrst3_base, BIT(2), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 2);
 
 	clk = clk_reg_prcc_kclk("p3_i2c0_kclk", "i2cclk",
 			clkrst3_base, BIT(3), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 3);
 
 	clk = clk_reg_prcc_kclk("p3_sdi2_kclk", "sdmmcclk",
 			clkrst3_base, BIT(4), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 4);
 
 	clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k",
 			clkrst3_base, BIT(5), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 5);
 
 	clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk",
 			clkrst3_base, BIT(6), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 6);
 
 	clk = clk_reg_prcc_kclk("p3_sdi5_kclk", "sdmmcclk",
 			clkrst3_base, BIT(7), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 3, 7);
 
 	/* Periph6 */
 	clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk",
 			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);
+	PRCC_KCLK_STORE(clk, 6, 0);
 
 	for_each_child_of_node(np, child) {
 		static struct clk_onecell_data clk_data;
@@ -516,5 +545,8 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 		}
 		if (!of_node_cmp(child->name, "prcc-periph-clock"))
 			of_clk_add_provider(child, ux500_twocell_get, prcc_pclk);
+
+		if (!of_node_cmp(child->name, "prcc-kernel-clock"))
+			of_clk_add_provider(child, ux500_twocell_get, prcc_kclk);
 	}
 }
-- 
1.8.1.2

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

* [PATCH 28/41] clk: ux500: Add Device Tree support for the RTC clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (26 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 27/41] clk: ux500: Add Device Tree support for the PRCC Kernel clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 29/41] clk: ux500: Add Device Tree support for the TWD clock Lee Jones
                   ` (12 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

This patch enables the RTC fixed frequency clock to be specified from
Device Tree via phandles to the "rtc32k-clock" node.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index 4fcafd0..fc647cf 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -60,7 +60,7 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	struct device_node *np = NULL;
 	struct device_node *child = NULL;
 	const char *sgaclk_parent = NULL;
-	struct clk *clk;
+	struct clk *clk, *rtc_clk;
 
 	if (of_have_populated_dt())
 		np = of_find_matching_node(NULL, u8500_clk_of_match);
@@ -84,7 +84,7 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 
 	/* FIXME: Add sys, ulp and int clocks here. */
 
-	clk = clk_register_fixed_rate(NULL, "rtc32k", "NULL",
+	rtc_clk = clk_register_fixed_rate(NULL, "rtc32k", "NULL",
 				CLK_IS_ROOT|CLK_IGNORE_UNUSED,
 				32768);
 
@@ -548,5 +548,8 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 
 		if (!of_node_cmp(child->name, "prcc-kernel-clock"))
 			of_clk_add_provider(child, ux500_twocell_get, prcc_kclk);
+
+		if (!of_node_cmp(child->name, "rtc32k-clock"))
+			of_clk_add_provider(child, of_clk_src_simple_get, rtc_clk);
 	}
 }
-- 
1.8.1.2

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

* [PATCH 29/41] clk: ux500: Add Device Tree support for the TWD clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (27 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 28/41] clk: ux500: Add Device Tree support for the RTC clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock Lee Jones
                   ` (11 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

This patch enables the TWD fixed factor clock to be specified from
Device Tree via phandles to the "smp-twd-clock" node.

Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/ux500/u8500_of_clk.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
index fc647cf..0769db8 100644
--- a/drivers/clk/ux500/u8500_of_clk.c
+++ b/drivers/clk/ux500/u8500_of_clk.c
@@ -60,7 +60,7 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	struct device_node *np = NULL;
 	struct device_node *child = NULL;
 	const char *sgaclk_parent = NULL;
-	struct clk *clk, *rtc_clk;
+	struct clk *clk, *rtc_clk, *twd_clk;
 
 	if (of_have_populated_dt())
 		np = of_find_matching_node(NULL, u8500_clk_of_match);
@@ -234,7 +234,7 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 	clk = clk_reg_prcmu_scalable_rate("armss", NULL,
 				PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED);
 
-	clk = clk_register_fixed_factor(NULL, "smp_twd", "armss",
+	twd_clk = clk_register_fixed_factor(NULL, "smp_twd", "armss",
 				CLK_IGNORE_UNUSED, 1, 2);
 
 	/*
@@ -551,5 +551,8 @@ void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
 
 		if (!of_node_cmp(child->name, "rtc32k-clock"))
 			of_clk_add_provider(child, of_clk_src_simple_get, rtc_clk);
+
+		if (!of_node_cmp(child->name, "smp-twd-clock"))
+			of_clk_add_provider(child, of_clk_src_simple_get, twd_clk);
 	}
 }
-- 
1.8.1.2

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

* [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (28 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 29/41] clk: ux500: Add Device Tree support for the TWD clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-20 20:41   ` Linus Walleij
  2013-09-23 20:43   ` Felipe Balbi
  2013-09-18 12:14 ` [PATCH 31/41] ARM: ux500: Call appropriate clock initialisation based on DT or !DT booting Lee Jones
                   ` (10 subsequent siblings)
  40 siblings, 2 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

If we supply a con_id then the clock framework will search for that name
in MUSB's Device Tree node for the 'clock-names' property. If it's absent
the clock request will fail. However, if we don't supply the con_id then
clk_get() will call into clk_sys() which will use the device name to
search for the appropriate clock, which is much more natural than forcing
'usb'.

Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/usb/musb/ux500.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/musb/ux500.c b/drivers/usb/musb/ux500.c
index fce71b6..5543b89 100644
--- a/drivers/usb/musb/ux500.c
+++ b/drivers/usb/musb/ux500.c
@@ -259,7 +259,7 @@ static int ux500_probe(struct platform_device *pdev)
 		goto err1;
 	}
 
-	clk = clk_get(&pdev->dev, "usb");
+	clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(clk)) {
 		dev_err(&pdev->dev, "failed to get clock\n");
 		ret = PTR_ERR(clk);
-- 
1.8.1.2

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

* [PATCH 31/41] ARM: ux500: Call appropriate clock initialisation based on DT or !DT booting
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (29 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 32/41] ARM: ux500: Remove AUXDATA relating to GPIO clock-name bindings Lee Jones
                   ` (9 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

The ux500 platform will soon be converted to Device Tree only. When that
happens the old clock initialisation will be ripped out. In the meantime
however, we have to make a decision and call the appropriate
initialisation code manually.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index e6fb023..3c211d2 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -70,9 +70,17 @@ void __init ux500_init_irq(void)
 	if (cpu_is_u8500_family()) {
 		prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1);
 		ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1);
-		u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE,
-			       U8500_CLKRST3_BASE, U8500_CLKRST5_BASE,
-			       U8500_CLKRST6_BASE);
+
+		if (of_have_populated_dt())
+			u8500_of_clk_init(U8500_CLKRST1_BASE,
+					  U8500_CLKRST2_BASE,
+					  U8500_CLKRST3_BASE,
+					  U8500_CLKRST5_BASE,
+					  U8500_CLKRST6_BASE);
+		else
+			u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE,
+				       U8500_CLKRST3_BASE, U8500_CLKRST5_BASE,
+				       U8500_CLKRST6_BASE);
 	} else if (cpu_is_u9540()) {
 		prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1);
 		ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1);
-- 
1.8.1.2

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

* [PATCH 32/41] ARM: ux500: Remove AUXDATA relating to GPIO clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (30 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 31/41] ARM: ux500: Call appropriate clock initialisation based on DT or !DT booting Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 33/41] ARM: ux500: Remove AUXDATA relating to UART " Lee Jones
                   ` (8 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 12eee81..a5e89af 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -228,15 +228,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4",  &mop500_sdi4_data),
 	/* Requires clock name bindings. */
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e000, "gpio.2", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e080, "gpio.3", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e100, "gpio.4", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e180, "gpio.5", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL),
-	OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL),
 	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL),
 	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL),
 	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
-- 
1.8.1.2

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

* [PATCH 33/41] ARM: ux500: Remove AUXDATA relating to UART clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (31 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 32/41] ARM: ux500: Remove AUXDATA relating to GPIO clock-name bindings Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 34/41] ARM: ux500: Remove AUXDATA relating to I2C " Lee Jones
                   ` (7 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index a5e89af..44e656d 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -219,9 +219,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	/* Requires call-back bindings. */
 	OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata),
 	/* Requires DMA bindings. */
-	OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", NULL),
-	OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", NULL),
-	OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", NULL),
 	OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0",  &ssp0_plat),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0",  &mop500_sdi0_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1",  &mop500_sdi1_data),
-- 
1.8.1.2

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

* [PATCH 34/41] ARM: ux500: Remove AUXDATA relating to I2C clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (32 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 33/41] ARM: ux500: Remove AUXDATA relating to UART " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 35/41] ARM: ux500: Relocate AUXDATA relating to MSP (Audio) Lee Jones
                   ` (6 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 44e656d..44b4879 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -225,11 +225,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4",  &mop500_sdi4_data),
 	/* Requires clock name bindings. */
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL),
-	OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
 	OF_DEV_AUXDATA("stericsson,db8500-musb", 0xa03e0000, "musb-ux500.0", NULL),
 	OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
 			&db8500_prcmu_pdata),
-- 
1.8.1.2

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

* [PATCH 35/41] ARM: ux500: Relocate AUXDATA relating to MSP (Audio)
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (33 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 34/41] ARM: ux500: Remove AUXDATA relating to I2C " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 36/41] ARM: ux500: Remove AUXDATA relating to USB clock-name bindings Lee Jones
                   ` (5 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

MSP no longer requires clock-name bindings, so we need to move them to
a more appropriate header indicating that we're still passing DMA
related platform data to them.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 44b4879..dd6af6c 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -224,6 +224,14 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1",  &mop500_sdi1_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4",  &mop500_sdi4_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000,
+		       "ux500-msp-i2s.0", &msp0_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000,
+		       "ux500-msp-i2s.1", &msp1_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000,
+		       "ux500-msp-i2s.2", &msp2_platform_data),
+	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
+		       "ux500-msp-i2s.3", &msp3_platform_data),
 	/* Requires clock name bindings. */
 	OF_DEV_AUXDATA("stericsson,db8500-musb", 0xa03e0000, "musb-ux500.0", NULL),
 	OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
@@ -236,15 +244,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	/* Requires device name bindings. */
 	OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE,
 		"pinctrl-db8500", NULL),
-	/* Requires clock name and DMA bindings. */
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000,
-		"ux500-msp-i2s.0", &msp0_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000,
-		"ux500-msp-i2s.1", &msp1_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000,
-		"ux500-msp-i2s.2", &msp2_platform_data),
-	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
-		"ux500-msp-i2s.3", &msp3_platform_data),
 	/* Requires clock name bindings and channel address lookup table. */
 	OF_DEV_AUXDATA("stericsson,db8500-dma40", 0x801C0000, "dma40.0", NULL),
 	{},
-- 
1.8.1.2

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

* [PATCH 36/41] ARM: ux500: Remove AUXDATA relating to USB clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (34 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 35/41] ARM: ux500: Relocate AUXDATA relating to MSP (Audio) Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 37/41] ARM: ux500: Remove AUXDATA relating to Ethernet " Lee Jones
                   ` (4 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index dd6af6c..7e32c7b 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -233,7 +233,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
 		       "ux500-msp-i2s.3", &msp3_platform_data),
 	/* Requires clock name bindings. */
-	OF_DEV_AUXDATA("stericsson,db8500-musb", 0xa03e0000, "musb-ux500.0", NULL),
 	OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
 			&db8500_prcmu_pdata),
 	OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x.0", NULL),
-- 
1.8.1.2

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

* [PATCH 37/41] ARM: ux500: Remove AUXDATA relating to Ethernet clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (35 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 36/41] ARM: ux500: Remove AUXDATA relating to USB clock-name bindings Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 38/41] ARM: ux500: Remove AUXDATA relating to DMA " Lee Jones
                   ` (3 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 7e32c7b..689d3a8 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -235,7 +235,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	/* Requires clock name bindings. */
 	OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
 			&db8500_prcmu_pdata),
-	OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x.0", NULL),
 	OF_DEV_AUXDATA("stericsson,ux500-cryp", 0xa03cb000, "cryp1", NULL),
 	OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL),
 	OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0",
-- 
1.8.1.2

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

* [PATCH 38/41] ARM: ux500: Remove AUXDATA relating to DMA clock-name bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (36 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 37/41] ARM: ux500: Remove AUXDATA relating to Ethernet " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 39/41] ARM: ux500: Reclassify PRCMU AUXDATA entry Lee Jones
                   ` (2 subsequent siblings)
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 689d3a8..844c2fe 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -242,8 +242,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	/* Requires device name bindings. */
 	OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE,
 		"pinctrl-db8500", NULL),
-	/* Requires clock name bindings and channel address lookup table. */
-	OF_DEV_AUXDATA("stericsson,db8500-dma40", 0x801C0000, "dma40.0", NULL),
 	{},
 };
 
-- 
1.8.1.2

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

* [PATCH 39/41] ARM: ux500: Reclassify PRCMU AUXDATA entry
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (37 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 38/41] ARM: ux500: Remove AUXDATA relating to DMA " Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 40/41] ARM: ux500: Remove SSP AUXDATA pertaining to DMA bindings Lee Jones
  2013-09-18 12:14 ` [PATCH 41/41] ARM: ux500: Fix trivial whitespace/tabbing issue Lee Jones
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

We still need to utilise the AUXDATA system for the PRCMU to pass
through platform data which can not be DT:ed i.e. regulator initialisation
values. All we're doing in this patch is changing the comment header to be
more accurate.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 844c2fe..28a69d1 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -232,7 +232,7 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 		       "ux500-msp-i2s.2", &msp2_platform_data),
 	OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000,
 		       "ux500-msp-i2s.3", &msp3_platform_data),
-	/* Requires clock name bindings. */
+	/* Requires non-DT:able platform data. */
 	OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu",
 			&db8500_prcmu_pdata),
 	OF_DEV_AUXDATA("stericsson,ux500-cryp", 0xa03cb000, "cryp1", NULL),
-- 
1.8.1.2

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

* [PATCH 40/41] ARM: ux500: Remove SSP AUXDATA pertaining to DMA bindings
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (38 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 39/41] ARM: ux500: Reclassify PRCMU AUXDATA entry Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  2013-09-18 12:14 ` [PATCH 41/41] ARM: ux500: Fix trivial whitespace/tabbing issue Lee Jones
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

These are now cared for from the Device Tree.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/mach-ux500/cpu-db8500.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 28a69d1..27734e7 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -219,7 +219,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
 	/* Requires call-back bindings. */
 	OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata),
 	/* Requires DMA bindings. */
-	OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0",  &ssp0_plat),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0",  &mop500_sdi0_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1",  &mop500_sdi1_data),
 	OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2",  &mop500_sdi2_data),
-- 
1.8.1.2

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

* [PATCH 41/41] ARM: ux500: Fix trivial whitespace/tabbing issue
  2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
                   ` (39 preceding siblings ...)
  2013-09-18 12:14 ` [PATCH 40/41] ARM: ux500: Remove SSP AUXDATA pertaining to DMA bindings Lee Jones
@ 2013-09-18 12:14 ` Lee Jones
  40 siblings, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-18 12:14 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/dbx5x0.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/dbx5x0.dtsi b/arch/arm/boot/dts/dbx5x0.dtsi
index 0d2d5d0..e93b54c 100644
--- a/arch/arm/boot/dts/dbx5x0.dtsi
+++ b/arch/arm/boot/dts/dbx5x0.dtsi
@@ -308,7 +308,7 @@
 					     <22 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
 				status = "disabled";
-			 };
+			};
 
 			db8500-prcmu-regulators {
 				compatible = "stericsson,db8500-prcmu-regulator";
-- 
1.8.1.2

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

* [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers
  2013-09-18 12:13 ` [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers Lee Jones
@ 2013-09-18 12:23   ` Linus Walleij
  0 siblings, 0 replies; 50+ messages in thread
From: Linus Walleij @ 2013-09-18 12:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 18, 2013 at 2:13 PM, Lee Jones <lee.jones@linaro.org> wrote:

> ... as stipulated by the Hardware Specification document.
>
> Acked-by: Samuel Ortiz <sameo@linux.intel.com>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

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

* [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file
  2013-09-18 12:13 ` [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file Lee Jones
@ 2013-09-18 12:24   ` Linus Walleij
  0 siblings, 0 replies; 50+ messages in thread
From: Linus Walleij @ 2013-09-18 12:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 18, 2013 at 2:13 PM, Lee Jones <lee.jones@linaro.org> wrote:

> These are required to request DBx500 PRCMU clocks from Device Tree. The
> numbers used are taken directly from the Hardware Specification document.
> We're moving them from the DBx500 PRCMU include file into the DT include
> directory and referencing them from the former via a #include.
>
> Acked-by: Samuel Ortiz <sameo@linux.intel.com>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

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

* [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement
  2013-09-18 12:14 ` [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement Lee Jones
@ 2013-09-19 12:31   ` Lee Jones
  2013-09-20 20:59   ` Linus Walleij
  1 sibling, 0 replies; 50+ messages in thread
From: Lee Jones @ 2013-09-19 12:31 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Mike,

Sorry for top, posting.

This one requires your attention, thanks.

> Here we're using the old clock initialisation function as a template.
> It's necessary to remove all of the clk_register_clkdev() calls as
> they don't make sense when booting with Device Tree.
> 
> Cc: Mike Turquette <mturquette@linaro.org>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/ux500/Makefile              |   1 +
>  drivers/clk/ux500/u8500_of_clk.c        | 381 ++++++++++++++++++++++++++++++++
>  include/linux/platform_data/clk-ux500.h |   3 +
>  3 files changed, 385 insertions(+)
>  create mode 100644 drivers/clk/ux500/u8500_of_clk.c
> 
> diff --git a/drivers/clk/ux500/Makefile b/drivers/clk/ux500/Makefile
> index c6a806e..521483f 100644
> --- a/drivers/clk/ux500/Makefile
> +++ b/drivers/clk/ux500/Makefile
> @@ -8,6 +8,7 @@ obj-y += clk-prcmu.o
>  obj-y += clk-sysctrl.o
>  
>  # Clock definitions
> +obj-y += u8500_of_clk.o
>  obj-y += u8500_clk.o
>  obj-y += u9540_clk.o
>  obj-y += u8540_clk.o
> diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c
> new file mode 100644
> index 0000000..ceebce6
> --- /dev/null
> +++ b/drivers/clk/ux500/u8500_of_clk.c
> @@ -0,0 +1,381 @@
> +/*
> + * Clock definitions for u8500 platform.
> + *
> + * Copyright (C) 2012 ST-Ericsson SA
> + * Author: Ulf Hansson <ulf.hansson@linaro.org>
> + *
> + * License terms: GNU General Public License (GPL) version 2
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clkdev.h>
> +#include <linux/clk-provider.h>
> +#include <linux/mfd/dbx500-prcmu.h>
> +#include <linux/platform_data/clk-ux500.h>
> +#include "clk.h"
> +
> +void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
> +		       u32 clkrst5_base, u32 clkrst6_base)
> +{
> +	struct prcmu_fw_version *fw_version;
> +	const char *sgaclk_parent = NULL;
> +	struct clk *clk;
> +
> +	/* Clock sources */
> +	clk = clk_reg_prcmu_gate("soc0_pll", NULL, PRCMU_PLLSOC0,
> +				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
> +
> +	clk = clk_reg_prcmu_gate("soc1_pll", NULL, PRCMU_PLLSOC1,
> +				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
> +
> +	clk = clk_reg_prcmu_gate("ddr_pll", NULL, PRCMU_PLLDDR,
> +				CLK_IS_ROOT|CLK_IGNORE_UNUSED);
> +
> +	/* FIXME: Add sys, ulp and int clocks here. */
> +
> +	clk = clk_register_fixed_rate(NULL, "rtc32k", "NULL",
> +				CLK_IS_ROOT|CLK_IGNORE_UNUSED,
> +				32768);
> +
> +	/* PRCMU clocks */
> +	fw_version = prcmu_get_fw_version();
> +	if (fw_version != NULL) {
> +		switch (fw_version->project) {
> +		case PRCMU_FW_PROJECT_U8500_C2:
> +		case PRCMU_FW_PROJECT_U8520:
> +		case PRCMU_FW_PROJECT_U8420:
> +			sgaclk_parent = "soc0_pll";
> +			break;
> +		default:
> +			break;
> +		}
> +	}
> +
> +	if (sgaclk_parent)
> +		clk = clk_reg_prcmu_gate("sgclk", sgaclk_parent,
> +					PRCMU_SGACLK, 0);
> +	else
> +		clk = clk_reg_prcmu_gate("sgclk", NULL,
> +					PRCMU_SGACLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("uartclk", NULL, PRCMU_UARTCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("msp02clk", NULL, PRCMU_MSP02CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("msp1clk", NULL, PRCMU_MSP1CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("i2cclk", NULL, PRCMU_I2CCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("slimclk", NULL, PRCMU_SLIMCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per1clk", NULL, PRCMU_PER1CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per2clk", NULL, PRCMU_PER2CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per3clk", NULL, PRCMU_PER3CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per5clk", NULL, PRCMU_PER5CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per6clk", NULL, PRCMU_PER6CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("per7clk", NULL, PRCMU_PER7CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_scalable("lcdclk", NULL, PRCMU_LCDCLK, 0,
> +				CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_scalable("hsitxclk", NULL, PRCMU_HSITXCLK, 0,
> +				CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("hsirxclk", NULL, PRCMU_HSIRXCLK, 0,
> +				CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("hdmiclk", NULL, PRCMU_HDMICLK, 0,
> +				CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_gate("apeatclk", NULL, PRCMU_APEATCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("apetraceclk", NULL, PRCMU_APETRACECLK,
> +				CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("mcdeclk", NULL, PRCMU_MCDECLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_opp_gate("ipi2cclk", NULL, PRCMU_IPI2CCLK,
> +				CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("dsialtclk", NULL, PRCMU_DSIALTCLK,
> +				CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("dmaclk", NULL, PRCMU_DMACLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("b2r2clk", NULL, PRCMU_B2R2CLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_scalable("tvclk", NULL, PRCMU_TVCLK, 0,
> +				CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_gate("sspclk", NULL, PRCMU_SSPCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("rngclk", NULL, PRCMU_RNGCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT);
> +
> +	clk = clk_reg_prcmu_opp_volt_scalable("sdmmcclk", NULL, PRCMU_SDMMCCLK,
> +					100000000,
> +					CLK_IS_ROOT|CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk",
> +				PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE);
> +
> +
> +	clk = clk_reg_prcmu_scalable("dsi0clk", "dsi_pll",
> +				PRCMU_DSI0CLK, 0, CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("dsi1clk", "dsi_pll",
> +				PRCMU_DSI1CLK, 0, CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("dsi0escclk", "tvclk",
> +				PRCMU_DSI0ESCCLK, 0, CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("dsi1escclk", "tvclk",
> +				PRCMU_DSI1ESCCLK, 0, CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable("dsi2escclk", "tvclk",
> +				PRCMU_DSI2ESCCLK, 0, CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcmu_scalable_rate("armss", NULL,
> +				PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED);
> +
> +	clk = clk_register_fixed_factor(NULL, "smp_twd", "armss",
> +				CLK_IGNORE_UNUSED, 1, 2);
> +
> +	/*
> +	 * FIXME: Add special handled PRCMU clocks here:
> +	 * 1. clkout0yuv, use PRCMU as parent + need regulator + pinctrl.
> +	 * 2. ab9540_clkout1yuv, see clkout0yuv
> +	 */
> +
> +	/* PRCC P-clocks */
> +	clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", clkrst1_base,
> +				BIT(0), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", clkrst1_base,
> +				BIT(1), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", clkrst1_base,
> +				BIT(2), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", clkrst1_base,
> +				BIT(3), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", clkrst1_base,
> +				BIT(4), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", clkrst1_base,
> +				BIT(5), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", clkrst1_base,
> +				BIT(6), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", clkrst1_base,
> +				BIT(7), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", clkrst1_base,
> +				BIT(8), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", clkrst1_base,
> +				BIT(9), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", clkrst1_base,
> +				BIT(10), 0);
> +
> +	clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", clkrst1_base,
> +				BIT(11), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", clkrst2_base,
> +				BIT(0), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", clkrst2_base,
> +				BIT(1), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", clkrst2_base,
> +				BIT(2), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", clkrst2_base,
> +				BIT(3), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", clkrst2_base,
> +				BIT(4), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", clkrst2_base,
> +				BIT(5), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", clkrst2_base,
> +				BIT(6), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", clkrst2_base,
> +				BIT(7), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", clkrst2_base,
> +				BIT(8), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", clkrst2_base,
> +				BIT(9), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", clkrst2_base,
> +				BIT(10), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", clkrst2_base,
> +				BIT(11), 0);
> +
> +	clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", clkrst2_base,
> +				BIT(12), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", clkrst3_base,
> +				BIT(0), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", clkrst3_base,
> +				BIT(1), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", clkrst3_base,
> +				BIT(2), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", clkrst3_base,
> +				BIT(3), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", clkrst3_base,
> +				BIT(4), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", clkrst3_base,
> +				BIT(5), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", clkrst3_base,
> +				BIT(6), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", clkrst3_base,
> +				BIT(7), 0);
> +
> +	clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", clkrst3_base,
> +				BIT(8), 0);
> +
> +	clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", clkrst5_base,
> +				BIT(0), 0);
> +
> +	clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", clkrst5_base,
> +				BIT(1), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", clkrst6_base,
> +				BIT(0), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", clkrst6_base,
> +				BIT(1), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", clkrst6_base,
> +				BIT(2), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", clkrst6_base,
> +				BIT(3), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", clkrst6_base,
> +				BIT(4), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", clkrst6_base,
> +				BIT(5), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", clkrst6_base,
> +				BIT(6), 0);
> +
> +	clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", clkrst6_base,
> +				BIT(7), 0);
> +
> +	/* PRCC K-clocks
> +	 *
> +	 * FIXME: Some drivers requires PERPIH[n| to be automatically enabled
> +	 * by enabling just the K-clock, even if it is not a valid parent to
> +	 * the K-clock. Until drivers get fixed we might need some kind of
> +	 * "parent muxed join".
> +	 */
> +
> +	/* Periph1 */
> +	clk = clk_reg_prcc_kclk("p1_uart0_kclk", "uartclk",
> +			clkrst1_base, BIT(0), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_uart1_kclk", "uartclk",
> +			clkrst1_base, BIT(1), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_i2c1_kclk", "i2cclk",
> +			clkrst1_base, BIT(2), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_msp0_kclk", "msp02clk",
> +			clkrst1_base, BIT(3), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_msp1_kclk", "msp1clk",
> +			clkrst1_base, BIT(4), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_sdi0_kclk", "sdmmcclk",
> +			clkrst1_base, BIT(5), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_i2c2_kclk", "i2cclk",
> +			clkrst1_base, BIT(6), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_slimbus0_kclk", "slimclk",
> +			clkrst1_base, BIT(8), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_i2c4_kclk", "i2cclk",
> +			clkrst1_base, BIT(9), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p1_msp3_kclk", "msp1clk",
> +			clkrst1_base, BIT(10), CLK_SET_RATE_GATE);
> +
> +	/* Periph2 */
> +	clk = clk_reg_prcc_kclk("p2_i2c3_kclk", "i2cclk",
> +			clkrst2_base, BIT(0), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p2_sdi4_kclk", "sdmmcclk",
> +			clkrst2_base, BIT(2), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p2_msp2_kclk", "msp02clk",
> +			clkrst2_base, BIT(3), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p2_sdi1_kclk", "sdmmcclk",
> +			clkrst2_base, BIT(4), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p2_sdi3_kclk", "sdmmcclk",
> +			clkrst2_base, BIT(5), CLK_SET_RATE_GATE);
> +
> +	/* Note that rate is received from parent. */
> +	clk = clk_reg_prcc_kclk("p2_ssirx_kclk", "hsirxclk",
> +			clkrst2_base, BIT(6),
> +			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
> +	clk = clk_reg_prcc_kclk("p2_ssitx_kclk", "hsitxclk",
> +			clkrst2_base, BIT(7),
> +			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);
> +
> +	/* Periph3 */
> +	clk = clk_reg_prcc_kclk("p3_ssp0_kclk", "sspclk",
> +			clkrst3_base, BIT(1), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_ssp1_kclk", "sspclk",
> +			clkrst3_base, BIT(2), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_i2c0_kclk", "i2cclk",
> +			clkrst3_base, BIT(3), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_sdi2_kclk", "sdmmcclk",
> +			clkrst3_base, BIT(4), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k",
> +			clkrst3_base, BIT(5), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk",
> +			clkrst3_base, BIT(6), CLK_SET_RATE_GATE);
> +
> +	clk = clk_reg_prcc_kclk("p3_sdi5_kclk", "sdmmcclk",
> +			clkrst3_base, BIT(7), CLK_SET_RATE_GATE);
> +
> +	/* Periph6 */
> +	clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk",
> +			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);
> +}
> diff --git a/include/linux/platform_data/clk-ux500.h b/include/linux/platform_data/clk-ux500.h
> index 9d98f3a..97baf83 100644
> --- a/include/linux/platform_data/clk-ux500.h
> +++ b/include/linux/platform_data/clk-ux500.h
> @@ -10,6 +10,9 @@
>  #ifndef __CLK_UX500_H
>  #define __CLK_UX500_H
>  
> +void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
> +		       u32 clkrst5_base, u32 clkrst6_base);
> +
>  void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,
>  		    u32 clkrst5_base, u32 clkrst6_base);
>  void u9540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base,

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock
  2013-09-18 12:14 ` [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock Lee Jones
@ 2013-09-20 20:41   ` Linus Walleij
  2013-09-23 20:43   ` Felipe Balbi
  1 sibling, 0 replies; 50+ messages in thread
From: Linus Walleij @ 2013-09-20 20:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 18, 2013 at 2:14 PM, Lee Jones <lee.jones@linaro.org> wrote:

> If we supply a con_id then the clock framework will search for that name
> in MUSB's Device Tree node for the 'clock-names' property. If it's absent
> the clock request will fail. However, if we don't supply the con_id then
> clk_get() will call into clk_sys() which will use the device name to
> search for the appropriate clock, which is much more natural than forcing
> 'usb'.
>
> Cc: Felipe Balbi <balbi@ti.com>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>

Looks fine to me, Felipe can we have your ACK on this so I can take
this with the rest of the clock stuff through ARM SoC?

Yours,
Linus Walleij

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

* [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement
  2013-09-18 12:14 ` [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement Lee Jones
  2013-09-19 12:31   ` Lee Jones
@ 2013-09-20 20:59   ` Linus Walleij
  2013-12-13  1:51     ` Mike Turquette
  1 sibling, 1 reply; 50+ messages in thread
From: Linus Walleij @ 2013-09-20 20:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 18, 2013 at 2:14 PM, Lee Jones <lee.jones@linaro.org> wrote:

> Here we're using the old clock initialisation function as a template.
> It's necessary to remove all of the clk_register_clkdev() calls as
> they don't make sense when booting with Device Tree.
>
> Cc: Mike Turquette <mturquette@linaro.org>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>

I *really* like the looks of this! Mike can we have your ACK on this?

Yours,
Linus Walleij

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

* [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock
  2013-09-18 12:14 ` [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock Lee Jones
  2013-09-20 20:41   ` Linus Walleij
@ 2013-09-23 20:43   ` Felipe Balbi
  1 sibling, 0 replies; 50+ messages in thread
From: Felipe Balbi @ 2013-09-23 20:43 UTC (permalink / raw)
  To: linux-arm-kernel

hi,

On Wed, Sep 18, 2013 at 01:14:27PM +0100, Lee Jones wrote:
> If we supply a con_id then the clock framework will search for that name
> in MUSB's Device Tree node for the 'clock-names' property. If it's absent
> the clock request will fail. However, if we don't supply the con_id then
> clk_get() will call into clk_sys() which will use the device name to
> search for the appropriate clock, which is much more natural than forcing
> 'usb'.
> 
> Cc: Felipe Balbi <balbi@ti.com>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>

fine by me :-)

Acked-by: Felipe Balbi <balbi@ti.com>

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130923/96d5d51e/attachment.sig>

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

* [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement
  2013-09-20 20:59   ` Linus Walleij
@ 2013-12-13  1:51     ` Mike Turquette
  2013-12-19 20:15       ` Ulf Hansson
  0 siblings, 1 reply; 50+ messages in thread
From: Mike Turquette @ 2013-12-13  1:51 UTC (permalink / raw)
  To: linux-arm-kernel

Quoting Linus Walleij (2013-09-20 13:59:46)
> On Wed, Sep 18, 2013 at 2:14 PM, Lee Jones <lee.jones@linaro.org> wrote:
> 
> > Here we're using the old clock initialisation function as a template.
> > It's necessary to remove all of the clk_register_clkdev() calls as
> > they don't make sense when booting with Device Tree.
> >
> > Cc: Mike Turquette <mturquette@linaro.org>
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> 
> I *really* like the looks of this! Mike can we have your ACK on this?

Acked-by: Mike Turquette <mturquette@linaro.org>

> 
> Yours,
> Linus Walleij

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

* [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement
  2013-12-13  1:51     ` Mike Turquette
@ 2013-12-19 20:15       ` Ulf Hansson
  0 siblings, 0 replies; 50+ messages in thread
From: Ulf Hansson @ 2013-12-19 20:15 UTC (permalink / raw)
  To: linux-arm-kernel

On 13 December 2013 02:51, Mike Turquette <mturquette@linaro.org> wrote:
> Quoting Linus Walleij (2013-09-20 13:59:46)
>> On Wed, Sep 18, 2013 at 2:14 PM, Lee Jones <lee.jones@linaro.org> wrote:
>>
>> > Here we're using the old clock initialisation function as a template.
>> > It's necessary to remove all of the clk_register_clkdev() calls as
>> > they don't make sense when booting with Device Tree.
>> >
>> > Cc: Mike Turquette <mturquette@linaro.org>
>> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
>>
>> I *really* like the looks of this! Mike can we have your ACK on this?
>
> Acked-by: Mike Turquette <mturquette@linaro.org>

Hi Mike,

This went in through arm soc a while ago, it is present in 3.13 rc.
Thanks for your ack, anyway.

Kind regards
Uffe

>
>>
>> Yours,
>> Linus Walleij
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

end of thread, other threads:[~2013-12-19 20:15 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-18 12:13 [PATCH v2 00/41] Enable common clock with Device Tree on ux500 platforms Lee Jones
2013-09-18 12:13 ` [PATCH 01/41] mfd: dbx500-prcmu: Correctly reorder PRCMU clock identifiers Lee Jones
2013-09-18 12:23   ` Linus Walleij
2013-09-18 12:13 ` [PATCH 02/41] mfd: dbx500-prcmu: Move PRCMU numerical clock identifiers into DT include file Lee Jones
2013-09-18 12:24   ` Linus Walleij
2013-09-18 12:14 ` [PATCH 03/41] mfd: dbx500: Remove any mention of the BML8580CLK Lee Jones
2013-09-18 12:14 ` [PATCH 04/41] ARM: ux500: Add PRCMU clock node to DBx500 Device Tree Lee Jones
2013-09-18 12:14 ` [PATCH 05/41] ARM: ux500: Supply the DMA clock lookup to the DBX500 DT Lee Jones
2013-09-18 12:14 ` [PATCH 06/41] ARM: ux500: Add PRCC Peripheral clock node to DBx500 Device Tree Lee Jones
2013-09-18 12:14 ` [PATCH 07/41] ARM: ux500: Supply the GPIO clocks lookup to the DBX500 DT Lee Jones
2013-09-18 12:14 ` [PATCH 08/41] ARM: ux500: Supply the USB clock " Lee Jones
2013-09-18 12:14 ` [PATCH 09/41] ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT Lee Jones
2013-09-18 12:14 ` [PATCH 10/41] ARM: ux500: Add PRCC Kernel clock node to DBx500 Device Tree Lee Jones
2013-09-18 12:14 ` [PATCH 11/41] ARM: ux500: Supply the I2C clocks lookup to the DBX500 DT Lee Jones
2013-09-18 12:14 ` [PATCH 12/41] ARM: ux500: Supply the UART " Lee Jones
2013-09-18 12:14 ` [PATCH 13/41] ARM: ux500: Supply the SDI (MMC) " Lee Jones
2013-09-18 12:14 ` [PATCH 14/41] ARM: ux500: Supply the MSP (Audio) " Lee Jones
2013-09-18 12:14 ` [PATCH 15/41] ARM: ux500: Add RTC (fixed-frequency) clock node to DBx500 Device Tree Lee Jones
2013-09-18 12:14 ` [PATCH 16/41] ARM: ux500: Supply the RTC clock lookup to the DBX500 DT Lee Jones
2013-09-18 12:14 ` [PATCH 17/41] ARM: ux500: Add TWD (fixed-factor) clock node to DBx500 Device Tree Lee Jones
2013-09-18 12:14 ` [PATCH 18/41] ARM: ux500: Supply the TWD Timer clock lookup to the DBX500 DT Lee Jones
2013-09-18 12:14 ` [PATCH 19/41] ARM: ux500: Add a DT node for the Nomadik System Timer (MTU0) Lee Jones
2013-09-18 12:14 ` [PATCH 20/41] ARM: ux500: Don't attempt to enable the Nomadik System Timer twice Lee Jones
2013-09-18 12:14 ` [PATCH 21/41] clk: ux500: Remove BML8580 clock Lee Jones
2013-09-18 12:14 ` [PATCH 22/41] clk: ux500: Copy u8500_clk_init() ready for DT enablement Lee Jones
2013-09-19 12:31   ` Lee Jones
2013-09-20 20:59   ` Linus Walleij
2013-12-13  1:51     ` Mike Turquette
2013-12-19 20:15       ` Ulf Hansson
2013-09-18 12:14 ` [PATCH 23/41] clk: ux500: Provide u8500_clk with skeleton Device Tree support Lee Jones
2013-09-18 12:14 ` [PATCH 24/41] clk: ux500: Add a 2-cell Device Tree parser for obtaining PRCC clocks Lee Jones
2013-09-18 12:14 ` [PATCH 25/41] clk: ux500: Add Device Tree support for the PRCMU clock Lee Jones
2013-09-18 12:14 ` [PATCH 26/41] clk: ux500: Add Device Tree support for the PRCC Peripheral clock Lee Jones
2013-09-18 12:14 ` [PATCH 27/41] clk: ux500: Add Device Tree support for the PRCC Kernel clock Lee Jones
2013-09-18 12:14 ` [PATCH 28/41] clk: ux500: Add Device Tree support for the RTC clock Lee Jones
2013-09-18 12:14 ` [PATCH 29/41] clk: ux500: Add Device Tree support for the TWD clock Lee Jones
2013-09-18 12:14 ` [PATCH 30/41] usb: musb: ux500: Don't supply a con_id when requesting the clock Lee Jones
2013-09-20 20:41   ` Linus Walleij
2013-09-23 20:43   ` Felipe Balbi
2013-09-18 12:14 ` [PATCH 31/41] ARM: ux500: Call appropriate clock initialisation based on DT or !DT booting Lee Jones
2013-09-18 12:14 ` [PATCH 32/41] ARM: ux500: Remove AUXDATA relating to GPIO clock-name bindings Lee Jones
2013-09-18 12:14 ` [PATCH 33/41] ARM: ux500: Remove AUXDATA relating to UART " Lee Jones
2013-09-18 12:14 ` [PATCH 34/41] ARM: ux500: Remove AUXDATA relating to I2C " Lee Jones
2013-09-18 12:14 ` [PATCH 35/41] ARM: ux500: Relocate AUXDATA relating to MSP (Audio) Lee Jones
2013-09-18 12:14 ` [PATCH 36/41] ARM: ux500: Remove AUXDATA relating to USB clock-name bindings Lee Jones
2013-09-18 12:14 ` [PATCH 37/41] ARM: ux500: Remove AUXDATA relating to Ethernet " Lee Jones
2013-09-18 12:14 ` [PATCH 38/41] ARM: ux500: Remove AUXDATA relating to DMA " Lee Jones
2013-09-18 12:14 ` [PATCH 39/41] ARM: ux500: Reclassify PRCMU AUXDATA entry Lee Jones
2013-09-18 12:14 ` [PATCH 40/41] ARM: ux500: Remove SSP AUXDATA pertaining to DMA bindings Lee Jones
2013-09-18 12:14 ` [PATCH 41/41] ARM: ux500: Fix trivial whitespace/tabbing issue Lee Jones

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).