* [PATCH v2 0/7] exynos5420: clock file cleanup
@ 2014-03-27 11:07 Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets Shaik Ameer Basha
` (6 more replies)
0 siblings, 7 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Shaik Ameer Basha
Many changes/fixes have been identified for clock file for exynos5420.
These include correct parents, bit fields, new clocks etc. Existing
files needs some correction in terms of names of the clock and
indentation. These issues are addressed in this patch series. It also
replaces the usage of enums with macro as clock ids.
This patch series is rebased on,
git://git.kernel.org/pub/scm/linux/kernel/git/tfiga/samsung-clk.git:samsung-next
This patch is also dependent on the following patches.
ARM: dts: Add I2S nodes to exynos5420
ARM: dts: add dt node for sss module for exynos5250/5420
ARM: dts: update watchdog device nodes for exynos5250 and exynos5420
ARM: dts: use macros in clock bindings for exynos5420
Changes since v1:
-----------------
1] Addressed review comments from Tomasz Figa.
http://www.spinics.net/lists/devicetree/msg16759.html
http://www.spinics.net/lists/devicetree/msg16760.html
Rahul Sharma (7):
clk: exynos5420: Add more clock register offsets
clk: exynos5420: Add more clock IDs
clk: exynos5420: Rename clock IDs
clk: exynos5420: Rename clock names
clk: exynos5420: Add missing clocks
clk: exynos5420: Add more registers to restore list
ARM: dts: update macros in clock bindings for exynos5420
arch/arm/boot/dts/exynos5420.dtsi | 90 +--
drivers/clk/samsung/clk-exynos5420.c | 1029 +++++++++++++++++++++-----------
include/dt-bindings/clock/exynos5420.h | 214 ++++---
3 files changed, 871 insertions(+), 462 deletions(-)
--
1.7.9.5
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-04-15 16:45 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 2/7] clk: exynos5420: Add more clock IDs Shaik Ameer Basha
` (5 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
This patch adds the missing clock register offsets for Exynos5420.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 13f624d..3d0fb77 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -27,6 +27,9 @@
#define DIV_CPU1 0x504
#define GATE_BUS_CPU 0x700
#define GATE_SCLK_CPU 0x800
+#define CLKOUT_CMU_CPU 0xa00
+#define DIV_G2D 0x8500
+#define GATE_BUS_G2D 0x8700
#define GATE_IP_G2D 0x8800
#define CPLL_LOCK 0x10020
#define DPLL_LOCK 0x10030
@@ -39,7 +42,11 @@
#define CPLL_CON0 0x10120
#define DPLL_CON0 0x10128
#define EPLL_CON0 0x10130
+#define EPLL_CON1 0x10134
+#define EPLL_CON2 0x10138
#define RPLL_CON0 0x10140
+#define RPLL_CON1 0x10144
+#define RPLL_CON2 0x10148
#define IPLL_CON0 0x10150
#define SPLL_CON0 0x10160
#define VPLL_CON0 0x10170
@@ -57,10 +64,13 @@
#define SRC_FSYS 0x10244
#define SRC_PERIC0 0x10250
#define SRC_PERIC1 0x10254
+#define SRC_ISP 0x10270
#define SRC_TOP10 0x10280
#define SRC_TOP11 0x10284
#define SRC_TOP12 0x10288
-#define SRC_MASK_DISP10 0x1032c
+#define SRC_MASK_TOP2 0x10308
+#define SRC_MASK_DISP10 0x1032c
+#define SRC_MASK_MAU 0x10334
#define SRC_MASK_FSYS 0x10340
#define SRC_MASK_PERIC0 0x10350
#define SRC_MASK_PERIC1 0x10354
@@ -77,24 +87,41 @@
#define DIV_PERIC2 0x10560
#define DIV_PERIC3 0x10564
#define DIV_PERIC4 0x10568
+#define SCLK_DIV_ISP0 0x10580
+#define SCLK_DIV_ISP1 0x10584
+#define DIV2_RATIO0 0x10590
+#define DIV4_RATIO 0x105a0
#define GATE_BUS_TOP 0x10700
+#define GATE_BUS_GSCL0 0x10710
+#define GATE_BUS_GSCL1 0x10720
+#define GATE_BUS_DISP1 0x10728
+#define GATE_BUS_MFC 0x10734
+#define GATE_BUS_GEN 0x1073c
#define GATE_BUS_FSYS0 0x10740
+#define GATE_BUS_FSYS2 0x10748
+#define GATE_BUS_MSCL 0x1074C
#define GATE_BUS_PERIC 0x10750
#define GATE_BUS_PERIC1 0x10754
#define GATE_BUS_PERIS0 0x10760
#define GATE_BUS_PERIS1 0x10764
+#define GATE_BUS_NOC 0x10770
+#define GATE_TOP_SCLK_ISP 0x10870
#define GATE_IP_GSCL0 0x10910
#define GATE_IP_GSCL1 0x10920
#define GATE_IP_MFC 0x1092c
#define GATE_IP_DISP1 0x10928
#define GATE_IP_G3D 0x10930
#define GATE_IP_GEN 0x10934
+#define GATE_IP_FSYS 0x10944
+#define GATE_IP_PERIC 0x10950
+#define GATE_IP_PERIS 0x10960
#define GATE_IP_MSCL 0x10970
#define GATE_TOP_SCLK_GSCL 0x10820
#define GATE_TOP_SCLK_DISP1 0x10828
#define GATE_TOP_SCLK_MAU 0x1083c
#define GATE_TOP_SCLK_FSYS 0x10840
#define GATE_TOP_SCLK_PERIC 0x10850
+#define TOP_SPARE2 0x10b08
#define BPLL_LOCK 0x20010
#define BPLL_CON0 0x20110
#define SRC_CDREX 0x20200
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/7] clk: exynos5420: Add more clock IDs
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-04-15 16:50 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 3/7] clk: exynos5420: Rename " Shaik Ameer Basha
` (4 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
Add more clock IDs to be used in DT bindings for Exynos5420.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
include/dt-bindings/clock/exynos5420.h | 62 ++++++++++++++++++++++++++++++--
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
index 5eefd88..e921913 100644
--- a/include/dt-bindings/clock/exynos5420.h
+++ b/include/dt-bindings/clock/exynos5420.h
@@ -58,6 +58,16 @@
#define CLK_SCLK_GSCL_WA 156
#define CLK_SCLK_GSCL_WB 157
#define CLK_SCLK_HDMIPHY 158
+#define CLK_SCLK_MPHY_REFCLK 159
+#define CLK_SCLK_SPI0_ISP 160
+#define CLK_SCLK_SPI1_ISP 161
+#define CLK_SCLK_UART_ISP 162
+#define CLK_SCLK_ISP_SENSOR0 163
+#define CLK_SCLK_ISP_SENSOR1 164
+#define CLK_SCLK_ISP_SENSOR2 165
+#define CLK_SCLK_PWM_ISP 166
+#define CLK_SCLK_HSIC_12M 167
+#define CLK_SCLK_MPHY_IXTAL24 168
/* gate clocks */
#define CLK_ACLK66_PERIC 256
@@ -123,6 +133,7 @@
#define CLK_USBH20 365
#define CLK_USBD300 366
#define CLK_USBD301 367
+#define CLK_PCLK200_FSYS 370
#define CLK_ACLK400_MSCL 380
#define CLK_MSCL0 381
#define CLK_MSCL1 382
@@ -141,6 +152,8 @@
#define CLK_ACLK300_DISP1 420
#define CLK_FIMD1 421
#define CLK_SMMU_FIMD1 422
+#define CLK_SMMU_FIMD1M1 423
+#define CLK_ACLK400_DISP1 424
#define CLK_ACLK166 430
#define CLK_MIXER 431
#define CLK_ACLK266 440
@@ -172,12 +185,57 @@
#define CLK_SMMU_FIMCL1 493
#define CLK_SMMU_FIMCL3 494
#define CLK_FIMC_LITE3 495
-#define CLK_ACLK_G3D 500
-#define CLK_G3D 501
+#define CLK_G3D 500
#define CLK_SMMU_MIXER 502
+#define CLK_PCLK_TZPC10 503
+#define CLK_PCLK_TZPC11 504
+#define CLK_PCLK_MC 505
+#define CLK_PCLK_TOP_RTC 506
+#define CLK_SMMU_JPEG2 507
+#define CLK_PCLK_ROTATOR 508
+#define CLK_SMMU_RTIC 509
+#define CLK_PCLK_G2D 510
+#define CLK_ACLK_SMMU_G2D 511
+#define CLK_SMMU_G2D 512
+#define CLK_ACLK_SMMU_MDMA0 513
+#define CLK_SMMU_MDMA0 514
+#define CLK_ACLK_SMMU_SSS 515
+#define CLK_SMMU_SSS 516
+#define CLK_SMMU_SLIM_SSS 517
+#define CLK_ACLK_SMMU_SLIM_SSS 518
+#define CLK_ACLK266_ISP 519
+#define CLK_ACLK400_ISP 520
+#define CLK_ACLK333_432_ISP0 521
+#define CLK_ACLK333_432_ISP 522
+#define CLK_ACLK_SMMU_MIXER 523
+#define CLK_PCLK_HDMIPHY 524
+#define CLK_PCLK_GSCL0 525
+#define CLK_PCLK_GSCL1 526
+#define CLK_PCLK_FIMC_3AA 527
+#define CLK_ACLK_FIMC_LITE0 528
+#define CLK_ACLK_FIMC_LITE1 529
+#define CLK_PCLK_FIMC_LITE0 530
+#define CLK_PCLK_FIMC_LITE1 531
+#define CLK_PCLK_FIMC_LITE3 532
+#define CLK_PCLK_MSCL0 533
+#define CLK_PCLK_MSCL1 534
+#define CLK_PCLK_MSCL2 535
+#define CLK_PCLK_MFC 536
/* mux clocks */
#define CLK_MOUT_HDMI 640
+#define CLK_MOUT_FIMD1 641
+#define CLK_MOUT_MAUDIO0 642
+#define CLK_MOUT_SPI0 643
+#define CLK_MOUT_SPI1 644
+#define CLK_MOUT_SPI2 645
+#define CLK_MOUT_SW_ACLK333 646
+#define CLK_MOUT_USER_ACLK333 647
+#define CLK_MOUT_SW_ACLK300_GSCL 648
+#define CLK_MOUT_USER_ACLK300_GSCL 649
+#define CLK_MOUT_SW_ACLK333_432_GSCL 650
+#define CLK_MOUT_USER_ACLK333_432_GSCL 651
+#define CLK_MOUT_G3D 652
/* divider clocks */
#define CLK_DOUT_PIXEL 768
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 2/7] clk: exynos5420: Add more clock IDs Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-03-27 19:49 ` Gerhard Sittig
2014-04-15 17:03 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 4/7] clk: exynos5420: Rename clock names Shaik Ameer Basha
` (3 subsequent siblings)
6 siblings, 2 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
This patch renames the clock IDs used for the DT bindings as
per Exynos5420 datasheet.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 162 +++++++++++++++++---------------
include/dt-bindings/clock/exynos5420.h | 138 +++++++++++++--------------
2 files changed, 154 insertions(+), 146 deletions(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 3d0fb77..1402554 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -544,8 +544,8 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
/* TODO: Re-verify the CG bits for all the gate clocks */
- GATE_A(CLK_MCT, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0, 0,
- "mct"),
+ GATE_A(CLK_PCLK_MCT, "pclk_st", "aclk66_psgen",
+ GATE_BUS_PERIS1, 2, 0, 0, "mct"),
GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys",
GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0),
@@ -643,83 +643,90 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_TOP_SCLK_MAU, 1, CLK_SET_RATE_PARENT, 0),
/* FSYS */
GATE(CLK_TSI, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0),
- GATE(CLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
- GATE(CLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
+ GATE(CLK_ACLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
+ GATE(CLK_ACLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
GATE(CLK_UFS, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0),
- GATE(CLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
- GATE(CLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
- GATE(CLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
- GATE(CLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
- GATE(CLK_SROMC, "sromc", "aclk200_fsys2",
+ GATE(CLK_ACLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
+ GATE(CLK_ACLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
+ GATE(CLK_ACLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
+ GATE(CLK_ACLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
+ GATE(CLK_HCLK_SROMC, "sromc", "aclk200_fsys2",
GATE_BUS_FSYS0, 19, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_USBH20, "usbh20", "aclk200_fsys", GATE_BUS_FSYS0, 20, 0, 0),
- GATE(CLK_USBD300, "usbd300", "aclk200_fsys", GATE_BUS_FSYS0, 21, 0, 0),
- GATE(CLK_USBD301, "usbd301", "aclk200_fsys", GATE_BUS_FSYS0, 28, 0, 0),
+ GATE(CLK_HCLK_USBH20, "usbh20", "aclk200_fsys",
+ GATE_BUS_FSYS0, 20, 0, 0),
+ GATE(CLK_HCLK_USBD300, "usbd300", "aclk200_fsys",
+ GATE_BUS_FSYS0, 21, 0, 0),
+ GATE(CLK_HCLK_USBD301, "usbd301", "aclk200_fsys",
+ GATE_BUS_FSYS0, 28, 0, 0),
/* UART */
- GATE(CLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
- GATE(CLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
- GATE_A(CLK_UART2, "uart2", "aclk66_peric",
+ GATE(CLK_PCLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
+ GATE(CLK_PCLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
+ GATE_A(CLK_PCLK_UART2, "uart2", "aclk66_peric",
GATE_BUS_PERIC, 6, CLK_IGNORE_UNUSED, 0, "uart2"),
- GATE(CLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
+ GATE(CLK_PCLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
/* I2C */
- GATE(CLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
- GATE(CLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
- GATE(CLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
- GATE(CLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
- GATE(CLK_I2C4, "i2c4", "aclk66_peric", GATE_BUS_PERIC, 13, 0, 0),
- GATE(CLK_I2C5, "i2c5", "aclk66_peric", GATE_BUS_PERIC, 14, 0, 0),
- GATE(CLK_I2C6, "i2c6", "aclk66_peric", GATE_BUS_PERIC, 15, 0, 0),
- GATE(CLK_I2C7, "i2c7", "aclk66_peric", GATE_BUS_PERIC, 16, 0, 0),
- GATE(CLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric", GATE_BUS_PERIC, 17, 0,
- 0),
- GATE(CLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0),
+ GATE(CLK_PCLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
+ GATE(CLK_PCLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
+ GATE(CLK_PCLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
+ GATE(CLK_PCLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
+ GATE(CLK_PCLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric",
+ GATE_BUS_PERIC, 17, 0, 0),
+ GATE(CLK_PCLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0),
/* SPI */
- GATE(CLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
- GATE(CLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
- GATE(CLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
+ GATE(CLK_PCLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
+ GATE(CLK_PCLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
+ GATE(CLK_PCLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0),
/* I2S */
- GATE(CLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
- GATE(CLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
+ GATE(CLK_PCLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
+ GATE(CLK_PCLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
/* PCM */
- GATE(CLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
- GATE(CLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
+ GATE(CLK_PCLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
+ GATE(CLK_PCLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
/* PWM */
- GATE(CLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
+ GATE(CLK_PCLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
/* SPDIF */
- GATE(CLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0),
-
- GATE(CLK_I2C8, "i2c8", "aclk66_peric", GATE_BUS_PERIC1, 0, 0, 0),
- GATE(CLK_I2C9, "i2c9", "aclk66_peric", GATE_BUS_PERIC1, 1, 0, 0),
- GATE(CLK_I2C10, "i2c10", "aclk66_peric", GATE_BUS_PERIC1, 2, 0, 0),
+ GATE(CLK_PCLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0),
- GATE(CLK_CHIPID, "chipid", "aclk66_psgen",
+ GATE(CLK_PCLK_CHIPID, "chipid", "aclk66_psgen",
GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_SYSREG, "sysreg", "aclk66_psgen",
+ GATE(CLK_PCLK_SYSREG, "sysreg", "aclk66_psgen",
GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0, 0),
- GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0, 0),
- GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0, 0),
- GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0, 0),
- GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0, 0),
- GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0, 0),
- GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0, 0),
- GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0, 0),
- GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0, 0),
- GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0, 0),
+ GATE(CLK_PCLK_TZPC0, "tzpc0", "aclk66_psgen",
+ GATE_BUS_PERIS0, 18, 0, 0),
+ GATE(CLK_PCLK_TZPC1, "tzpc1", "aclk66_psgen",
+ GATE_BUS_PERIS0, 19, 0, 0),
+ GATE(CLK_PCLK_TZPC2, "tzpc2", "aclk66_psgen",
+ GATE_BUS_PERIS0, 20, 0, 0),
+ GATE(CLK_PCLK_TZPC3, "tzpc3", "aclk66_psgen",
+ GATE_BUS_PERIS0, 21, 0, 0),
+ GATE(CLK_PCLK_TZPC4, "tzpc4", "aclk66_psgen",
+ GATE_BUS_PERIS0, 22, 0, 0),
+ GATE(CLK_PCLK_TZPC5, "tzpc5", "aclk66_psgen",
+ GATE_BUS_PERIS0, 23, 0, 0),
+ GATE(CLK_PCLK_TZPC6, "tzpc6", "aclk66_psgen",
+ GATE_BUS_PERIS0, 24, 0, 0),
+ GATE(CLK_PCLK_TZPC7, "tzpc7", "aclk66_psgen",
+ GATE_BUS_PERIS0, 25, 0, 0),
+ GATE(CLK_PCLK_TZPC8, "tzpc8", "aclk66_psgen",
+ GATE_BUS_PERIS0, 26, 0, 0),
+ GATE(CLK_PCLK_TZPC9, "tzpc9", "aclk66_psgen",
+ GATE_BUS_PERIS0, 27, 0, 0),
GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0,
0),
GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0),
- GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
- GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
- GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
- GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0),
+ GATE(CLK_PCLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
+ GATE(CLK_PCLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
+ GATE(CLK_PCLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
+ GATE(CLK_PCLK_TMU_GPU, "tmu_gpu", "aclk66_psgen",
+ GATE_BUS_PERIS1, 6, 0, 0),
- GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
- GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
- GATE(CLK_CLK_3AA, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0, 0),
+ GATE(CLK_ACLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
+ GATE(CLK_ACLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
+ GATE(CLK_ACLK_FIMC_3AA, "clk_3aa", "aclk300_gscl",
+ GATE_IP_GSCL0, 4, 0, 0),
GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0,
0),
@@ -731,38 +738,39 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
0),
GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0,
0),
- GATE(CLK_GSCL_WA, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0, 0),
+ GATE(CLK_PCLK_GSCL_WA, "gscl_wa", "aclk300_gscl",
+ GATE_IP_GSCL1, 12, 0, 0),
GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0),
GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl",
GATE_IP_GSCL1, 16, 0, 0),
- GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
+ GATE(CLK_ACLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
GATE_IP_GSCL1, 17, 0, 0),
- GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
- GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
- GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
- GATE(CLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
- GATE(CLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
- GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0,
- 0),
+ GATE(CLK_ACLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
+ GATE(CLK_PCLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
+ GATE(CLK_PCLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
+ GATE(CLK_ACLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
+ GATE(CLK_PCLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
+ GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1", "aclk300_disp1",
+ GATE_IP_DISP1, 8, 0, 0),
- GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
+ GATE(CLK_ACLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0),
GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0),
GATE(CLK_G3D, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0),
- GATE(CLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
- GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
- GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
- GATE(CLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
+ GATE(CLK_ACLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
+ GATE(CLK_ACLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
+ GATE(CLK_ACLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
+ GATE(CLK_ACLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0),
GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0),
GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0),
- GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
- GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
- GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
+ GATE(CLK_ACLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
+ GATE(CLK_ACLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
+ GATE(CLK_ACLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0,
0),
GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0,
@@ -773,7 +781,7 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
0),
/* SSS */
- GATE(CLK_SSS, "sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
+ GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
};
static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = {
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
index e921913..598eb48 100644
--- a/include/dt-bindings/clock/exynos5420.h
+++ b/include/dt-bindings/clock/exynos5420.h
@@ -71,120 +71,120 @@
/* gate clocks */
#define CLK_ACLK66_PERIC 256
-#define CLK_UART0 257
-#define CLK_UART1 258
-#define CLK_UART2 259
-#define CLK_UART3 260
-#define CLK_I2C0 261
-#define CLK_I2C1 262
-#define CLK_I2C2 263
-#define CLK_I2C3 264
+#define CLK_PCLK_UART0 257
+#define CLK_PCLK_UART1 258
+#define CLK_PCLK_UART2 259
+#define CLK_PCLK_UART3 260
+#define CLK_PCLK_I2C0 261
+#define CLK_PCLK_I2C1 262
+#define CLK_PCLK_I2C2 263
+#define CLK_PCLK_I2C3 264
#define CLK_I2C4 265
#define CLK_I2C5 266
#define CLK_I2C6 267
#define CLK_I2C7 268
-#define CLK_I2C_HDMI 269
-#define CLK_TSADC 270
-#define CLK_SPI0 271
-#define CLK_SPI1 272
-#define CLK_SPI2 273
+#define CLK_PCLK_I2C_HDMI 269
+#define CLK_PCLK_TSADC 270
+#define CLK_PCLK_SPI0 271
+#define CLK_PCLK_SPI1 272
+#define CLK_PCLK_SPI2 273
#define CLK_KEYIF 274
-#define CLK_I2S1 275
-#define CLK_I2S2 276
-#define CLK_PCM1 277
-#define CLK_PCM2 278
-#define CLK_PWM 279
-#define CLK_SPDIF 280
+#define CLK_PCLK_I2S1 275
+#define CLK_PCLK_I2S2 276
+#define CLK_PCLK_PCM1 277
+#define CLK_PCLK_PCM2 278
+#define CLK_PCLK_PWM 279
+#define CLK_PCLK_SPDIF 280
#define CLK_I2C8 281
#define CLK_I2C9 282
#define CLK_I2C10 283
#define CLK_ACLK66_PSGEN 300
-#define CLK_CHIPID 301
-#define CLK_SYSREG 302
-#define CLK_TZPC0 303
-#define CLK_TZPC1 304
-#define CLK_TZPC2 305
-#define CLK_TZPC3 306
-#define CLK_TZPC4 307
-#define CLK_TZPC5 308
-#define CLK_TZPC6 309
-#define CLK_TZPC7 310
-#define CLK_TZPC8 311
-#define CLK_TZPC9 312
+#define CLK_PCLK_CHIPID 301
+#define CLK_PCLK_SYSREG 302
+#define CLK_PCLK_TZPC0 303
+#define CLK_PCLK_TZPC1 304
+#define CLK_PCLK_TZPC2 305
+#define CLK_PCLK_TZPC3 306
+#define CLK_PCLK_TZPC4 307
+#define CLK_PCLK_TZPC5 308
+#define CLK_PCLK_TZPC6 309
+#define CLK_PCLK_TZPC7 310
+#define CLK_PCLK_TZPC8 311
+#define CLK_PCLK_TZPC9 312
#define CLK_HDMI_CEC 313
#define CLK_SECKEY 314
-#define CLK_MCT 315
-#define CLK_WDT 316
-#define CLK_RTC 317
-#define CLK_TMU 318
-#define CLK_TMU_GPU 319
+#define CLK_PCLK_MCT 315
+#define CLK_PCLK_WDT 316
+#define CLK_PCLK_RTC 317
+#define CLK_PCLK_TMU 318
+#define CLK_PCLK_TMU_GPU 319
#define CLK_PCLK66_GPIO 330
#define CLK_ACLK200_FSYS2 350
-#define CLK_MMC0 351
-#define CLK_MMC1 352
-#define CLK_MMC2 353
-#define CLK_SROMC 354
+#define CLK_ACLK_MMC0 351
+#define CLK_ACLK_MMC1 352
+#define CLK_ACLK_MMC2 353
+#define CLK_HCLK_SROMC 354
#define CLK_UFS 355
#define CLK_ACLK200_FSYS 360
#define CLK_TSI 361
-#define CLK_PDMA0 362
-#define CLK_PDMA1 363
-#define CLK_RTIC 364
-#define CLK_USBH20 365
-#define CLK_USBD300 366
-#define CLK_USBD301 367
+#define CLK_ACLK_PDMA0 362
+#define CLK_ACLK_PDMA1 363
+#define CLK_ACLK_RTIC 364
+#define CLK_HCLK_USBH20 365
+#define CLK_HCLK_USBD300 366
+#define CLK_HCLK_USBD301 367
#define CLK_PCLK200_FSYS 370
#define CLK_ACLK400_MSCL 380
-#define CLK_MSCL0 381
-#define CLK_MSCL1 382
-#define CLK_MSCL2 383
+#define CLK_ACLK_MSCL0 381
+#define CLK_ACLK_MSCL1 382
+#define CLK_ACLK_MSCL2 383
#define CLK_SMMU_MSCL0 384
#define CLK_SMMU_MSCL1 385
#define CLK_SMMU_MSCL2 386
#define CLK_ACLK333 400
-#define CLK_MFC 401
+#define CLK_ACLK_MFC 401
#define CLK_SMMU_MFCL 402
#define CLK_SMMU_MFCR 403
#define CLK_ACLK200_DISP1 410
-#define CLK_DSIM1 411
-#define CLK_DP1 412
-#define CLK_HDMI 413
+#define CLK_PCLK_DSIM1 411
+#define CLK_PCLK_DP1 412
+#define CLK_PCLK_HDMI 413
#define CLK_ACLK300_DISP1 420
-#define CLK_FIMD1 421
-#define CLK_SMMU_FIMD1 422
+#define CLK_ACLK_FIMD1 421
+#define CLK_SMMU_FIMD1M0 422
#define CLK_SMMU_FIMD1M1 423
#define CLK_ACLK400_DISP1 424
#define CLK_ACLK166 430
-#define CLK_MIXER 431
+#define CLK_ACLK_MIXER 431
#define CLK_ACLK266 440
-#define CLK_ROTATOR 441
-#define CLK_MDMA1 442
+#define CLK_ACLK_ROTATOR 441
+#define CLK_ACLK_MDMA1 442
#define CLK_SMMU_ROTATOR 443
#define CLK_SMMU_MDMA1 444
#define CLK_ACLK300_JPEG 450
-#define CLK_JPEG 451
-#define CLK_JPEG2 452
+#define CLK_ACLK_JPEG 451
+#define CLK_ACLK_JPEG2 452
#define CLK_SMMU_JPEG 453
#define CLK_ACLK300_GSCL 460
#define CLK_SMMU_GSCL0 461
#define CLK_SMMU_GSCL1 462
-#define CLK_GSCL_WA 463
+#define CLK_PCLK_GSCL_WA 463
#define CLK_GSCL_WB 464
-#define CLK_GSCL0 465
-#define CLK_GSCL1 466
-#define CLK_CLK_3AA 467
+#define CLK_ACLK_GSCL0 465
+#define CLK_ACLK_GSCL1 466
+#define CLK_ACLK_FIMC_3AA 467
#define CLK_ACLK266_G2D 470
-#define CLK_SSS 471
-#define CLK_SLIM_SSS 472
-#define CLK_MDMA0 473
+#define CLK_ACLK_SSS 471
+#define CLK_ACLK_SLIM_SSS 472
+#define CLK_ACLK_MDMA0 473
#define CLK_ACLK333_G2D 480
-#define CLK_G2D 481
+#define CLK_ACLK_G2D 481
#define CLK_ACLK333_432_GSCL 490
#define CLK_SMMU_3AA 491
#define CLK_SMMU_FIMCL0 492
#define CLK_SMMU_FIMCL1 493
#define CLK_SMMU_FIMCL3 494
-#define CLK_FIMC_LITE3 495
+#define CLK_ACLK_FIMC_LITE3 495
#define CLK_G3D 500
#define CLK_SMMU_MIXER 502
#define CLK_PCLK_TZPC10 503
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 4/7] clk: exynos5420: Rename clock names
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
` (2 preceding siblings ...)
2014-03-27 11:07 ` [PATCH v2 3/7] clk: exynos5420: Rename " Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-04-15 17:05 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 5/7] clk: exynos5420: Add missing clocks Shaik Ameer Basha
` (2 subsequent siblings)
6 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
Maintain the mout_, dout_, sclk_ prefix to the clock names
wherever applicable.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 750 ++++++++++++++++++--------------
include/dt-bindings/clock/exynos5420.h | 14 +-
2 files changed, 419 insertions(+), 345 deletions(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 1402554..793fb3d 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -244,85 +244,92 @@ static void exynos5420_clk_sleep_init(void) {}
#endif
/* list of all parent clocks */
-PNAME(mspll_cpu_p) = { "sclk_cpll", "sclk_dpll",
- "sclk_mpll", "sclk_spll" };
-PNAME(cpu_p) = { "mout_apll" , "mout_mspll_cpu" };
-PNAME(kfc_p) = { "mout_kpll" , "mout_mspll_kfc" };
-PNAME(apll_p) = { "fin_pll", "fout_apll", };
-PNAME(bpll_p) = { "fin_pll", "fout_bpll", };
-PNAME(cpll_p) = { "fin_pll", "fout_cpll", };
-PNAME(dpll_p) = { "fin_pll", "fout_dpll", };
-PNAME(epll_p) = { "fin_pll", "fout_epll", };
-PNAME(ipll_p) = { "fin_pll", "fout_ipll", };
-PNAME(kpll_p) = { "fin_pll", "fout_kpll", };
-PNAME(mpll_p) = { "fin_pll", "fout_mpll", };
-PNAME(rpll_p) = { "fin_pll", "fout_rpll", };
-PNAME(spll_p) = { "fin_pll", "fout_spll", };
-PNAME(vpll_p) = { "fin_pll", "fout_vpll", };
-
-PNAME(group1_p) = { "sclk_cpll", "sclk_dpll", "sclk_mpll" };
-PNAME(group2_p) = { "fin_pll", "sclk_cpll", "sclk_dpll", "sclk_mpll",
- "sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(group3_p) = { "sclk_rpll", "sclk_spll" };
-PNAME(group4_p) = { "sclk_ipll", "sclk_dpll", "sclk_mpll" };
-PNAME(group5_p) = { "sclk_vpll", "sclk_dpll" };
-
-PNAME(sw_aclk66_p) = { "dout_aclk66", "sclk_spll" };
-PNAME(aclk66_peric_p) = { "fin_pll", "mout_sw_aclk66" };
-
-PNAME(sw_aclk200_fsys_p) = { "dout_aclk200_fsys", "sclk_spll"};
-PNAME(user_aclk200_fsys_p) = { "fin_pll", "mout_sw_aclk200_fsys" };
-
-PNAME(sw_aclk200_fsys2_p) = { "dout_aclk200_fsys2", "sclk_spll"};
-PNAME(user_aclk200_fsys2_p) = { "fin_pll", "mout_sw_aclk200_fsys2" };
-
-PNAME(sw_aclk200_p) = { "dout_aclk200", "sclk_spll"};
-PNAME(aclk200_disp1_p) = { "fin_pll", "mout_sw_aclk200" };
-
-PNAME(sw_aclk400_mscl_p) = { "dout_aclk400_mscl", "sclk_spll"};
-PNAME(user_aclk400_mscl_p) = { "fin_pll", "mout_sw_aclk400_mscl" };
-
-PNAME(sw_aclk333_p) = { "dout_aclk333", "sclk_spll"};
-PNAME(user_aclk333_p) = { "fin_pll", "mout_sw_aclk333" };
-
-PNAME(sw_aclk166_p) = { "dout_aclk166", "sclk_spll"};
-PNAME(user_aclk166_p) = { "fin_pll", "mout_sw_aclk166" };
-
-PNAME(sw_aclk266_p) = { "dout_aclk266", "sclk_spll"};
-PNAME(user_aclk266_p) = { "fin_pll", "mout_sw_aclk266" };
-
-PNAME(sw_aclk333_432_gscl_p) = { "dout_aclk333_432_gscl", "sclk_spll"};
-PNAME(user_aclk333_432_gscl_p) = { "fin_pll", "mout_sw_aclk333_432_gscl" };
-
-PNAME(sw_aclk300_gscl_p) = { "dout_aclk300_gscl", "sclk_spll"};
-PNAME(user_aclk300_gscl_p) = { "fin_pll", "mout_sw_aclk300_gscl" };
-
-PNAME(sw_aclk300_disp1_p) = { "dout_aclk300_disp1", "sclk_spll"};
-PNAME(user_aclk300_disp1_p) = { "fin_pll", "mout_sw_aclk300_disp1" };
-
-PNAME(sw_aclk300_jpeg_p) = { "dout_aclk300_jpeg", "sclk_spll"};
-PNAME(user_aclk300_jpeg_p) = { "fin_pll", "mout_sw_aclk300_jpeg" };
-
-PNAME(sw_aclk_g3d_p) = { "dout_aclk_g3d", "sclk_spll"};
-PNAME(user_aclk_g3d_p) = { "fin_pll", "mout_sw_aclk_g3d" };
-
-PNAME(sw_aclk266_g2d_p) = { "dout_aclk266_g2d", "sclk_spll"};
-PNAME(user_aclk266_g2d_p) = { "fin_pll", "mout_sw_aclk266_g2d" };
-
-PNAME(sw_aclk333_g2d_p) = { "dout_aclk333_g2d", "sclk_spll"};
-PNAME(user_aclk333_g2d_p) = { "fin_pll", "mout_sw_aclk333_g2d" };
-
-PNAME(audio0_p) = { "fin_pll", "cdclk0", "sclk_dpll", "sclk_mpll",
- "sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(audio1_p) = { "fin_pll", "cdclk1", "sclk_dpll", "sclk_mpll",
- "sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(audio2_p) = { "fin_pll", "cdclk2", "sclk_dpll", "sclk_mpll",
- "sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(spdif_p) = { "fin_pll", "dout_audio0", "dout_audio1", "dout_audio2",
- "spdif_extclk", "sclk_ipll", "sclk_epll", "sclk_rpll" };
-PNAME(hdmi_p) = { "dout_hdmi_pixel", "sclk_hdmiphy" };
-PNAME(maudio0_p) = { "fin_pll", "maudio_clk", "sclk_dpll", "sclk_mpll",
- "sclk_spll", "sclk_ipll", "sclk_epll", "sclk_rpll" };
+PNAME(mout_mspll_cpu_p) = {"mout_sclk_cpll", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll"};
+PNAME(mout_cpu_p) = {"mout_apll" , "mout_mspll_cpu"};
+PNAME(mout_kfc_p) = {"mout_kpll" , "mout_mspll_kfc"};
+PNAME(mout_apll_p) = {"fin_pll", "fout_apll"};
+PNAME(mout_bpll_p) = {"fin_pll", "fout_bpll"};
+PNAME(mout_cpll_p) = {"fin_pll", "fout_cpll"};
+PNAME(mout_dpll_p) = {"fin_pll", "fout_dpll"};
+PNAME(mout_epll_p) = {"fin_pll", "fout_epll"};
+PNAME(mout_ipll_p) = {"fin_pll", "fout_ipll"};
+PNAME(mout_kpll_p) = {"fin_pll", "fout_kpll"};
+PNAME(mout_mpll_p) = {"fin_pll", "fout_mpll"};
+PNAME(mout_rpll_p) = {"fin_pll", "fout_rpll"};
+PNAME(mout_spll_p) = {"fin_pll", "fout_spll"};
+PNAME(mout_vpll_p) = {"fin_pll", "fout_vpll"};
+
+PNAME(mout_group1_p) = {"mout_sclk_cpll", "mout_sclk_dpll",
+ "mout_sclk_mpll"};
+PNAME(mout_group2_p) = {"fin_pll", "mout_sclk_cpll",
+ "mout_sclk_dpll", "mout_sclk_mpll", "mout_sclk_spll",
+ "mout_sclk_ipll", "mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_group3_p) = {"mout_sclk_rpll", "mout_sclk_spll"};
+PNAME(mout_group4_p) = {"mout_sclk_ipll", "mout_sclk_dpll", "mout_sclk_mpll"};
+PNAME(mout_group5_p) = {"mout_sclk_vpll", "mout_sclk_dpll"};
+
+PNAME(mout_sw_aclk66_p) = {"dout_aclk66", "mout_sclk_spll"};
+PNAME(mout_user_aclk66_peric_p) = {"fin_pll", "mout_sw_aclk66"};
+
+PNAME(mout_sw_aclk200_fsys_p) = {"dout_aclk200_fsys", "mout_sclk_spll"};
+PNAME(mout_user_aclk200_fsys_p) = {"fin_pll", "mout_sw_aclk200_fsys"};
+
+PNAME(mout_sw_aclk200_fsys2_p) = {"dout_aclk200_fsys2", "mout_sclk_spll"};
+PNAME(mout_user_aclk200_fsys2_p) = {"fin_pll", "mout_sw_aclk200_fsys2"};
+
+PNAME(mout_sw_aclk200_p) = {"dout_aclk200", "mout_sclk_spll"};
+PNAME(mout_aclk200_disp1_p) = {"fin_pll", "mout_sw_aclk200"};
+
+PNAME(mout_sw_aclk400_mscl_p) = {"dout_aclk400_mscl", "mout_sclk_spll"};
+PNAME(mout_user_aclk400_mscl_p) = {"fin_pll", "mout_sw_aclk400_mscl"};
+
+PNAME(mout_sw_aclk333_p) = {"dout_aclk333", "mout_sclk_spll"};
+PNAME(mout_user_aclk333_p) = {"fin_pll", "mout_sw_aclk333"};
+
+PNAME(mout_sw_aclk166_p) = {"dout_aclk166", "mout_sclk_spll"};
+PNAME(mout_user_aclk166_p) = {"fin_pll", "mout_sw_aclk166"};
+
+PNAME(mout_sw_aclk266_p) = {"dout_aclk266", "mout_sclk_spll"};
+PNAME(mout_user_aclk266_p) = {"fin_pll", "mout_sw_aclk266"};
+
+PNAME(mout_sw_aclk333_432_gscl_p) = {"dout_aclk333_432_gscl", "mout_sclk_spll"};
+PNAME(mout_user_aclk333_432_gscl_p) = {"fin_pll", "mout_sw_aclk333_432_gscl"};
+
+PNAME(mout_sw_aclk300_gscl_p) = {"dout_aclk300_gscl", "mout_sclk_spll"};
+PNAME(mout_user_aclk300_gscl_p) = {"fin_pll", "mout_sw_aclk300_gscl"};
+
+PNAME(mout_sw_aclk300_disp1_p) = {"dout_aclk300_disp1", "mout_sclk_spll"};
+PNAME(mout_user_aclk300_disp1_p) = {"fin_pll", "mout_sw_aclk300_disp1"};
+
+PNAME(mout_sw_aclk300_jpeg_p) = {"dout_aclk300_jpeg", "mout_sclk_spll"};
+PNAME(mout_user_aclk300_jpeg_p) = {"fin_pll", "mout_sw_aclk300_jpeg"};
+
+PNAME(mout_sw_aclk_g3d_p) = {"dout_aclk_g3d", "mout_sclk_spll"};
+PNAME(mout_user_aclk_g3d_p) = {"fin_pll", "mout_sw_aclk_g3d"};
+
+PNAME(mout_sw_aclk266_g2d_p) = {"dout_aclk266_g2d", "mout_sclk_spll"};
+PNAME(mout_user_aclk266_g2d_p) = {"fin_pll", "mout_sw_aclk266_g2d"};
+
+PNAME(mout_sw_aclk333_g2d_p) = {"dout_aclk333_g2d", "mout_sclk_spll"};
+PNAME(mout_user_aclk333_g2d_p) = {"fin_pll", "mout_sw_aclk333_g2d"};
+
+PNAME(mout_audio0_p) = {"fin_pll", "cdclk0", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
+ "mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_audio1_p) = {"fin_pll", "cdclk1", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
+ "mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_audio2_p) = {"fin_pll", "cdclk2", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
+ "mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_spdif_p) = {"fin_pll", "dout_audio0", "dout_audio1",
+ "dout_audio2", "spdif_extclk", "mout_sclk_ipll",
+ "mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_hdmi_p) = {"dout_hdmi_pixel", "sclk_hdmiphy"};
+PNAME(mout_maudio0_p) = {"fin_pll", "maudio_clk", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
+ "mout_sclk_epll", "mout_sclk_rpll"};
/* fixed rate clocks generated outside the soc */
static struct samsung_fixed_rate_clock exynos5420_fixed_rate_ext_clks[] __initdata = {
@@ -339,134 +346,145 @@ static struct samsung_fixed_rate_clock exynos5420_fixed_rate_clks[] __initdata =
};
static struct samsung_fixed_factor_clock exynos5420_fixed_factor_clks[] __initdata = {
- FFACTOR(0, "sclk_hsic_12m", "fin_pll", 1, 2, 0),
+ FFACTOR(0, "ffactor_hsic_12m", "fin_pll", 1, 2, 0),
};
static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
- MUX(0, "mout_mspll_kfc", mspll_cpu_p, SRC_TOP7, 8, 2),
- MUX(0, "mout_mspll_cpu", mspll_cpu_p, SRC_TOP7, 12, 2),
- MUX(0, "mout_apll", apll_p, SRC_CPU, 0, 1),
- MUX(0, "mout_cpu", cpu_p, SRC_CPU, 16, 1),
- MUX(0, "mout_kpll", kpll_p, SRC_KFC, 0, 1),
- MUX(0, "mout_cpu_kfc", kfc_p, SRC_KFC, 16, 1),
+ MUX(0, "mout_mspll_kfc", mout_mspll_cpu_p, SRC_TOP7, 8, 2),
+ MUX(0, "mout_mspll_cpu", mout_mspll_cpu_p, SRC_TOP7, 12, 2),
+ MUX(0, "mout_apll", mout_apll_p, SRC_CPU, 0, 1),
+ MUX(0, "mout_cpu", mout_cpu_p, SRC_CPU, 16, 1),
+ MUX(0, "mout_kpll", mout_kpll_p, SRC_KFC, 0, 1),
+ MUX(0, "mout_kfc", mout_kfc_p, SRC_KFC, 16, 1),
- MUX(0, "sclk_bpll", bpll_p, SRC_CDREX, 0, 1),
+ MUX(0, "sclk_bpll", mout_bpll_p, TOP_SPARE2, 0, 1),
- MUX_A(0, "mout_aclk400_mscl", group1_p,
+ MUX_A(0, "mout_aclk400_mscl", mout_group1_p,
SRC_TOP0, 4, 2, "aclk400_mscl"),
- MUX(0, "mout_aclk200", group1_p, SRC_TOP0, 8, 2),
- MUX(0, "mout_aclk200_fsys2", group1_p, SRC_TOP0, 12, 2),
- MUX(0, "mout_aclk200_fsys", group1_p, SRC_TOP0, 28, 2),
-
- MUX(0, "mout_aclk333_432_gscl", group4_p, SRC_TOP1, 0, 2),
- MUX(0, "mout_aclk66", group1_p, SRC_TOP1, 8, 2),
- MUX(0, "mout_aclk266", group1_p, SRC_TOP1, 20, 2),
- MUX(0, "mout_aclk166", group1_p, SRC_TOP1, 24, 2),
- MUX(0, "mout_aclk333", group1_p, SRC_TOP1, 28, 2),
-
- MUX(0, "mout_aclk333_g2d", group1_p, SRC_TOP2, 8, 2),
- MUX(0, "mout_aclk266_g2d", group1_p, SRC_TOP2, 12, 2),
- MUX(0, "mout_aclk_g3d", group5_p, SRC_TOP2, 16, 1),
- MUX(0, "mout_aclk300_jpeg", group1_p, SRC_TOP2, 20, 2),
- MUX(0, "mout_aclk300_disp1", group1_p, SRC_TOP2, 24, 2),
- MUX(0, "mout_aclk300_gscl", group1_p, SRC_TOP2, 28, 2),
-
- MUX(0, "mout_user_aclk400_mscl", user_aclk400_mscl_p,
+ MUX(0, "mout_aclk200", mout_group1_p, SRC_TOP0, 8, 2),
+ MUX(0, "mout_aclk200_fsys2", mout_group1_p, SRC_TOP0, 12, 2),
+ MUX(0, "mout_aclk200_fsys", mout_group1_p, SRC_TOP0, 28, 2),
+
+ MUX(0, "mout_aclk333_432_gscl", mout_group4_p, SRC_TOP1, 0, 2),
+ MUX(0, "mout_aclk66", mout_group1_p, SRC_TOP1, 8, 2),
+ MUX(0, "mout_aclk266", mout_group1_p, SRC_TOP1, 20, 2),
+ MUX(0, "mout_aclk166", mout_group1_p, SRC_TOP1, 24, 2),
+ MUX(0, "mout_aclk333", mout_group1_p, SRC_TOP1, 28, 2),
+
+ MUX(0, "mout_aclk333_g2d", mout_group1_p, SRC_TOP2, 8, 2),
+ MUX(0, "mout_aclk266_g2d", mout_group1_p, SRC_TOP2, 12, 2),
+ MUX(0, "mout_aclk_g3d", mout_group5_p, SRC_TOP2, 16, 1),
+ MUX(0, "mout_aclk300_jpeg", mout_group1_p, SRC_TOP2, 20, 2),
+ MUX(0, "mout_aclk300_disp1", mout_group1_p, SRC_TOP2, 24, 2),
+ MUX(0, "mout_aclk300_gscl", mout_group1_p, SRC_TOP2, 28, 2),
+
+ MUX(0, "mout_user_aclk400_mscl", mout_user_aclk400_mscl_p,
SRC_TOP3, 4, 1),
- MUX_A(0, "mout_aclk200_disp1", aclk200_disp1_p,
- SRC_TOP3, 8, 1, "aclk200_disp1"),
- MUX(0, "mout_user_aclk200_fsys2", user_aclk200_fsys2_p,
+ MUX(0, "mout_aclk200_disp1", mout_aclk200_disp1_p, SRC_TOP3, 8, 1),
+ MUX(0, "mout_user_aclk200_fsys2", mout_user_aclk200_fsys2_p,
SRC_TOP3, 12, 1),
- MUX(0, "mout_user_aclk200_fsys", user_aclk200_fsys_p,
+ MUX(0, "mout_user_aclk200_fsys", mout_user_aclk200_fsys_p,
SRC_TOP3, 28, 1),
- MUX(0, "mout_user_aclk333_432_gscl", user_aclk333_432_gscl_p,
- SRC_TOP4, 0, 1),
- MUX(0, "mout_aclk66_peric", aclk66_peric_p, SRC_TOP4, 8, 1),
- MUX(0, "mout_user_aclk266", user_aclk266_p, SRC_TOP4, 20, 1),
- MUX(0, "mout_user_aclk166", user_aclk166_p, SRC_TOP4, 24, 1),
- MUX(0, "mout_user_aclk333", user_aclk333_p, SRC_TOP4, 28, 1),
-
- MUX(0, "mout_aclk66_psgen", aclk66_peric_p, SRC_TOP5, 4, 1),
- MUX(0, "mout_user_aclk333_g2d", user_aclk333_g2d_p, SRC_TOP5, 8, 1),
- MUX(0, "mout_user_aclk266_g2d", user_aclk266_g2d_p, SRC_TOP5, 12, 1),
- MUX_A(0, "mout_user_aclk_g3d", user_aclk_g3d_p,
- SRC_TOP5, 16, 1, "aclkg3d"),
- MUX(0, "mout_user_aclk300_jpeg", user_aclk300_jpeg_p,
+ MUX(CLK_MOUT_USER_ACLK333_432_GSCL, "mout_user_aclk333_432_gscl",
+ mout_user_aclk333_432_gscl_p, SRC_TOP4, 0, 1),
+ MUX(0, "mout_user_aclk66_peric", mout_user_aclk66_peric_p,
+ SRC_TOP4, 8, 1),
+ MUX(0, "mout_user_aclk266", mout_user_aclk266_p, SRC_TOP4, 20, 1),
+ MUX(0, "mout_user_aclk166", mout_user_aclk166_p, SRC_TOP4, 24, 1),
+ MUX(CLK_MOUT_USER_ACLK333, "mout_user_aclk333", mout_user_aclk333_p,
+ SRC_TOP4, 28, 1),
+
+ MUX(0, "mout_user_aclk66_psgen", mout_user_aclk66_peric_p, SRC_TOP5,
+ 4, 1),
+ MUX(0, "mout_user_aclk333_g2d", mout_user_aclk333_g2d_p, SRC_TOP5,
+ 8, 1),
+ MUX(0, "mout_user_aclk266_g2d", mout_user_aclk266_g2d_p, SRC_TOP5,
+ 12, 1),
+ MUX(CLK_MOUT_G3D, "mout_user_aclk_g3d", mout_user_aclk_g3d_p,
+ SRC_TOP5, 16, 1),
+ MUX(0, "mout_user_aclk300_jpeg", mout_user_aclk300_jpeg_p,
SRC_TOP5, 20, 1),
- MUX(0, "mout_user_aclk300_disp1", user_aclk300_disp1_p,
+ MUX(0, "mout_user_aclk300_disp1", mout_user_aclk300_disp1_p,
SRC_TOP5, 24, 1),
- MUX(0, "mout_user_aclk300_gscl", user_aclk300_gscl_p,
- SRC_TOP5, 28, 1),
-
- MUX(0, "sclk_mpll", mpll_p, SRC_TOP6, 0, 1),
- MUX(0, "sclk_vpll", vpll_p, SRC_TOP6, 4, 1),
- MUX(0, "sclk_spll", spll_p, SRC_TOP6, 8, 1),
- MUX(0, "sclk_ipll", ipll_p, SRC_TOP6, 12, 1),
- MUX(0, "sclk_rpll", rpll_p, SRC_TOP6, 16, 1),
- MUX(0, "sclk_epll", epll_p, SRC_TOP6, 20, 1),
- MUX(0, "sclk_dpll", dpll_p, SRC_TOP6, 24, 1),
- MUX(0, "sclk_cpll", cpll_p, SRC_TOP6, 28, 1),
-
- MUX(0, "mout_sw_aclk400_mscl", sw_aclk400_mscl_p, SRC_TOP10, 4, 1),
- MUX(0, "mout_sw_aclk200", sw_aclk200_p, SRC_TOP10, 8, 1),
- MUX(0, "mout_sw_aclk200_fsys2", sw_aclk200_fsys2_p,
+ MUX(CLK_MOUT_USER_ACLK300_GSCL, "mout_user_aclk300_gscl",
+ mout_user_aclk300_gscl_p, SRC_TOP5, 28, 1),
+
+ MUX(0, "mout_sclk_mpll", mout_mpll_p, SRC_TOP6, 0, 1),
+ MUX(0, "mout_sclk_vpll", mout_vpll_p, SRC_TOP6, 4, 1),
+ MUX(0, "mout_sclk_spll", mout_spll_p, SRC_TOP6, 8, 1),
+ MUX(0, "mout_sclk_ipll", mout_ipll_p, SRC_TOP6, 12, 1),
+ MUX(0, "mout_sclk_rpll", mout_rpll_p, SRC_TOP6, 16, 1),
+ MUX(0, "mout_sclk_epll", mout_epll_p, SRC_TOP6, 20, 1),
+ MUX(0, "mout_sclk_dpll", mout_dpll_p, SRC_TOP6, 24, 1),
+ MUX(0, "mout_sclk_cpll", mout_cpll_p, SRC_TOP6, 28, 1),
+
+ MUX(0, "mout_sw_aclk400_mscl", mout_sw_aclk400_mscl_p,
+ SRC_TOP10, 4, 1),
+ MUX(0, "mout_sw_aclk200", mout_sw_aclk200_p, SRC_TOP10, 8, 1),
+ MUX(0, "mout_sw_aclk200_fsys2", mout_sw_aclk200_fsys2_p,
SRC_TOP10, 12, 1),
- MUX(0, "mout_sw_aclk200_fsys", sw_aclk200_fsys_p, SRC_TOP10, 28, 1),
-
- MUX(0, "mout_sw_aclk333_432_gscl", sw_aclk333_432_gscl_p,
- SRC_TOP11, 0, 1),
- MUX(0, "mout_sw_aclk66", sw_aclk66_p, SRC_TOP11, 8, 1),
- MUX(0, "mout_sw_aclk266", sw_aclk266_p, SRC_TOP11, 20, 1),
- MUX(0, "mout_sw_aclk166", sw_aclk166_p, SRC_TOP11, 24, 1),
- MUX(0, "mout_sw_aclk333", sw_aclk333_p, SRC_TOP11, 28, 1),
-
- MUX(0, "mout_sw_aclk333_g2d", sw_aclk333_g2d_p, SRC_TOP12, 8, 1),
- MUX(0, "mout_sw_aclk266_g2d", sw_aclk266_g2d_p, SRC_TOP12, 12, 1),
- MUX(0, "mout_sw_aclk_g3d", sw_aclk_g3d_p, SRC_TOP12, 16, 1),
- MUX(0, "mout_sw_aclk300_jpeg", sw_aclk300_jpeg_p, SRC_TOP12, 20, 1),
- MUX(0, "mout_sw_aclk300_disp1", sw_aclk300_disp1_p,
+ MUX(0, "mout_sw_aclk200_fsys", mout_sw_aclk200_fsys_p,
+ SRC_TOP10, 28, 1),
+ MUX(CLK_MOUT_SW_ACLK333_432_GSCL, "mout_sw_aclk333_432_gscl",
+ mout_sw_aclk333_432_gscl_p, SRC_TOP11, 0, 1),
+ MUX(0, "mout_sw_aclk66", mout_sw_aclk66_p, SRC_TOP11, 8, 1),
+ MUX(0, "mout_sw_aclk266", mout_sw_aclk266_p, SRC_TOP11, 20, 1),
+ MUX(0, "mout_sw_aclk166", mout_sw_aclk166_p, SRC_TOP11, 24, 1),
+ MUX(CLK_MOUT_SW_ACLK333, "mout_sw_aclk333", mout_sw_aclk333_p,
+ SRC_TOP11, 28, 1),
+
+ MUX(0, "mout_sw_aclk333_g2d", mout_sw_aclk333_g2d_p,
+ SRC_TOP12, 8, 1),
+ MUX(0, "mout_sw_aclk266_g2d", mout_sw_aclk266_g2d_p,
+ SRC_TOP12, 12, 1),
+ MUX(0, "mout_sw_aclk_g3d", mout_sw_aclk_g3d_p, SRC_TOP12, 16, 1),
+ MUX(0, "mout_sw_aclk300_jpeg", mout_sw_aclk300_jpeg_p,
+ SRC_TOP12, 20, 1),
+ MUX(0, "mout_sw_aclk300_disp1", mout_sw_aclk300_disp1_p,
SRC_TOP12, 24, 1),
- MUX(0, "mout_sw_aclk300_gscl", sw_aclk300_gscl_p, SRC_TOP12, 28, 1),
+ MUX(CLK_MOUT_SW_ACLK300_GSCL, "mout_sw_aclk300_gscl",
+ mout_sw_aclk300_gscl_p, SRC_TOP12, 28, 1),
/* DISP1 Block */
- MUX(0, "mout_fimd1", group3_p, SRC_DISP10, 4, 1),
- MUX(0, "mout_mipi1", group2_p, SRC_DISP10, 16, 3),
- MUX(0, "mout_dp1", group2_p, SRC_DISP10, 20, 3),
- MUX(0, "mout_pixel", group2_p, SRC_DISP10, 24, 3),
- MUX(CLK_MOUT_HDMI, "mout_hdmi", hdmi_p, SRC_DISP10, 28, 1),
+ MUX(CLK_MOUT_FIMD1, "mout_fimd1", mout_group3_p, SRC_DISP10, 4, 1),
+ MUX(0, "mout_mipi1", mout_group2_p, SRC_DISP10, 16, 3),
+ MUX(0, "mout_dp1", mout_group2_p, SRC_DISP10, 20, 3),
+ MUX(0, "mout_pixel", mout_group2_p, SRC_DISP10, 24, 3),
+ MUX(CLK_MOUT_HDMI, "mout_hdmi", mout_hdmi_p, SRC_DISP10, 28, 1),
/* MAU Block */
- MUX(0, "mout_maudio0", maudio0_p, SRC_MAU, 28, 3),
+ MUX_F(CLK_MOUT_MAUDIO0, "mout_maudio0", mout_maudio0_p, SRC_MAU, 28, 3,
+ CLK_SET_RATE_PARENT, 0),
/* FSYS Block */
- MUX(0, "mout_usbd301", group2_p, SRC_FSYS, 4, 3),
- MUX(0, "mout_mmc0", group2_p, SRC_FSYS, 8, 3),
- MUX(0, "mout_mmc1", group2_p, SRC_FSYS, 12, 3),
- MUX(0, "mout_mmc2", group2_p, SRC_FSYS, 16, 3),
- MUX(0, "mout_usbd300", group2_p, SRC_FSYS, 20, 3),
- MUX(0, "mout_unipro", group2_p, SRC_FSYS, 24, 3),
+ MUX(0, "mout_usbd301", mout_group2_p, SRC_FSYS, 4, 3),
+ MUX(0, "mout_mmc0", mout_group2_p, SRC_FSYS, 8, 3),
+ MUX(0, "mout_mmc1", mout_group2_p, SRC_FSYS, 12, 3),
+ MUX(0, "mout_mmc2", mout_group2_p, SRC_FSYS, 16, 3),
+ MUX(0, "mout_usbd300", mout_group2_p, SRC_FSYS, 20, 3),
+ MUX(0, "mout_unipro", mout_group2_p, SRC_FSYS, 24, 3),
/* PERIC Block */
- MUX(0, "mout_uart0", group2_p, SRC_PERIC0, 4, 3),
- MUX(0, "mout_uart1", group2_p, SRC_PERIC0, 8, 3),
- MUX(0, "mout_uart2", group2_p, SRC_PERIC0, 12, 3),
- MUX(0, "mout_uart3", group2_p, SRC_PERIC0, 16, 3),
- MUX(0, "mout_pwm", group2_p, SRC_PERIC0, 24, 3),
- MUX(0, "mout_spdif", spdif_p, SRC_PERIC0, 28, 3),
- MUX(0, "mout_audio0", audio0_p, SRC_PERIC1, 8, 3),
- MUX(0, "mout_audio1", audio1_p, SRC_PERIC1, 12, 3),
- MUX(0, "mout_audio2", audio2_p, SRC_PERIC1, 16, 3),
- MUX(0, "mout_spi0", group2_p, SRC_PERIC1, 20, 3),
- MUX(0, "mout_spi1", group2_p, SRC_PERIC1, 24, 3),
- MUX(0, "mout_spi2", group2_p, SRC_PERIC1, 28, 3),
+ MUX(0, "mout_uart0", mout_group2_p, SRC_PERIC0, 4, 3),
+ MUX(0, "mout_uart1", mout_group2_p, SRC_PERIC0, 8, 3),
+ MUX(0, "mout_uart2", mout_group2_p, SRC_PERIC0, 12, 3),
+ MUX(0, "mout_uart3", mout_group2_p, SRC_PERIC0, 16, 3),
+ MUX(0, "mout_pwm", mout_group2_p, SRC_PERIC0, 24, 3),
+ MUX(0, "mout_spdif", mout_spdif_p, SRC_PERIC0, 28, 3),
+ MUX(0, "mout_audio0", mout_audio0_p, SRC_PERIC1, 8, 3),
+ MUX(0, "mout_audio1", mout_audio1_p, SRC_PERIC1, 12, 3),
+ MUX(0, "mout_audio2", mout_audio2_p, SRC_PERIC1, 16, 3),
+ MUX(CLK_MOUT_SPI0, "mout_spi0", mout_group2_p, SRC_PERIC1, 20, 3),
+ MUX(CLK_MOUT_SPI1, "mout_spi1", mout_group2_p, SRC_PERIC1, 24, 3),
+ MUX(CLK_MOUT_SPI2, "mout_spi2", mout_group2_p, SRC_PERIC1, 28, 3),
};
static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
- DIV(0, "div_arm", "mout_cpu", DIV_CPU0, 0, 3),
+ DIV(0, "dout_armclk1", "mout_cpu", DIV_CPU0, 0, 3),
DIV(0, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3),
- DIV(0, "armclk2", "div_arm", DIV_CPU0, 28, 3),
- DIV(0, "div_kfc", "mout_cpu_kfc", DIV_KFC0, 0, 3),
+ DIV(0, "dout_armclk2", "dout_armclk1", DIV_CPU0, 28, 3),
+ DIV(0, "dout_kfc", "mout_kfc", DIV_KFC0, 0, 3),
DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3),
DIV(0, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3),
@@ -486,12 +504,11 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(0, "dout_aclk266_g2d", "mout_aclk266_g2d", DIV_TOP2, 12, 3),
DIV(0, "dout_aclk_g3d", "mout_aclk_g3d", DIV_TOP2, 16, 3),
DIV(0, "dout_aclk300_jpeg", "mout_aclk300_jpeg", DIV_TOP2, 20, 3),
- DIV_A(0, "dout_aclk300_disp1", "mout_aclk300_disp1",
- DIV_TOP2, 24, 3, "aclk300_disp1"),
+ DIV(0, "dout_aclk300_disp1", "mout_aclk300_disp1", DIV_TOP2, 24, 3),
DIV(0, "dout_aclk300_gscl", "mout_aclk300_gscl", DIV_TOP2, 28, 3),
/* DISP1 Block */
- DIV(0, "dout_fimd1", "mout_fimd1", DIV_DISP10, 0, 4),
+ DIV(0, "dout_fimd1", "mout_fimd1_final", DIV_DISP10, 0, 4),
DIV(0, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8),
DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4),
DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
@@ -537,41 +554,41 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(0, "dout_audio2", "mout_audio2", DIV_PERIC3, 28, 4),
/* SPI Pre-Ratio */
- DIV(0, "dout_pre_spi0", "dout_spi0", DIV_PERIC4, 8, 8),
- DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8),
- DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8),
+ DIV(0, "dout_spi0_pre", "dout_spi0", DIV_PERIC4, 8, 8),
+ DIV(0, "dout_spi1_pre", "dout_spi1", DIV_PERIC4, 16, 8),
+ DIV(0, "dout_spi2_pre", "dout_spi2", DIV_PERIC4, 24, 8),
};
static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
- /* TODO: Re-verify the CG bits for all the gate clocks */
- GATE_A(CLK_PCLK_MCT, "pclk_st", "aclk66_psgen",
- GATE_BUS_PERIS1, 2, 0, 0, "mct"),
-
- GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys",
- GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk200_fsys2", "mout_user_aclk200_fsys2",
- GATE_BUS_FSYS0, 10, CLK_IGNORE_UNUSED, 0),
-
- GATE(0, "aclk333_g2d", "mout_user_aclk333_g2d",
- GATE_BUS_TOP, 0, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk266_g2d", "mout_user_aclk266_g2d",
- GATE_BUS_TOP, 1, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg",
- GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl",
- GATE_BUS_TOP, 6, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl",
- GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0),
- GATE(0, "pclk66_gpio", "mout_sw_aclk66",
- GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk66_psgen", "mout_aclk66_psgen",
- GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk66_peric", "mout_aclk66_peric",
- GATE_BUS_TOP, 11, 0, 0),
- GATE(0, "aclk166", "mout_user_aclk166",
- GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0),
- GATE(0, "aclk333", "mout_aclk333",
- GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK_MCT, "pclk_mct", "aclk66_psgen",
+ GATE_BUS_PERIS1, 2, 0, 0),
+
+ GATE(CLK_ACLK200_FSYS, "aclk200_fsys", "mout_user_aclk200_fsys",
+ GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK200_FSYS2, "aclk200_fsys2", "mout_user_aclk200_fsys2",
+ GATE_BUS_FSYS0, 10, CLK_IGNORE_UNUSED, 0),
+
+ GATE(CLK_ACLK333_G2D, "aclk333_g2d", "mout_user_aclk333_g2d",
+ GATE_BUS_TOP, 0, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK266_G2D, "aclk266_g2d", "mout_user_aclk266_g2d",
+ GATE_BUS_TOP, 1, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK300_JPEG, "aclk300_jpeg", "mout_user_aclk300_jpeg",
+ GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK300_GSCL, "aclk300_gscl", "mout_user_aclk300_gscl",
+ GATE_BUS_TOP, 6, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK333_432_GSCL, "aclk333_432_gscl",
+ "mout_user_aclk333_432_gscl",
+ GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK66_GPIO, "pclk66_gpio", "mout_user_aclk66_gpio",
+ GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK66_PSGEN, "aclk66_psgen", "mout_user_aclk66_psgen",
+ GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK66_PERIC, "aclk66_peric", "mout_user_aclk66_peric",
+ GATE_BUS_TOP, 11, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK166, "aclk166", "mout_user_aclk166",
+ GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK333, "aclk333", "mout_user_aclk333",
+ GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0),
/* sclk */
GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0",
@@ -582,11 +599,11 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_TOP_SCLK_PERIC, 2, CLK_SET_RATE_PARENT, 0),
GATE(CLK_SCLK_UART3, "sclk_uart3", "dout_uart3",
GATE_TOP_SCLK_PERIC, 3, CLK_SET_RATE_PARENT, 0),
- GATE(CLK_SCLK_SPI0, "sclk_spi0", "dout_pre_spi0",
+ GATE(CLK_SCLK_SPI0, "sclk_spi0", "dout_spi0_pre",
GATE_TOP_SCLK_PERIC, 6, CLK_SET_RATE_PARENT, 0),
- GATE(CLK_SCLK_SPI1, "sclk_spi1", "dout_pre_spi1",
+ GATE(CLK_SCLK_SPI1, "sclk_spi1", "dout_spi1_pre",
GATE_TOP_SCLK_PERIC, 7, CLK_SET_RATE_PARENT, 0),
- GATE(CLK_SCLK_SPI2, "sclk_spi2", "dout_pre_spi2",
+ GATE(CLK_SCLK_SPI2, "sclk_spi2", "dout_spi2_pre",
GATE_TOP_SCLK_PERIC, 8, CLK_SET_RATE_PARENT, 0),
GATE(CLK_SCLK_SPDIF, "sclk_spdif", "mout_spdif",
GATE_TOP_SCLK_PERIC, 9, CLK_SET_RATE_PARENT, 0),
@@ -612,16 +629,16 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE(CLK_SCLK_USBPHY300, "sclk_usbphy300", "dout_usbphy300",
GATE_TOP_SCLK_FSYS, 8, CLK_SET_RATE_PARENT, 0),
GATE(CLK_SCLK_USBD300, "sclk_usbd300", "dout_usbd300",
- GATE_TOP_SCLK_FSYS, 9, CLK_SET_RATE_PARENT, 0),
+ GATE_TOP_SCLK_FSYS, 9, CLK_IGNORE_UNUSED, 0),
GATE(CLK_SCLK_USBD301, "sclk_usbd301", "dout_usbd301",
- GATE_TOP_SCLK_FSYS, 10, CLK_SET_RATE_PARENT, 0),
+ GATE_TOP_SCLK_FSYS, 10, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_SCLK_USBD301, "sclk_unipro", "dout_unipro",
- SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0),
+ GATE(CLK_SCLK_UNIPRO, "sclk_unipro", "dout_unipro",
+ GATE_IP_FSYS, 23, CLK_SET_RATE_PARENT, 0),
- GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "aclK333_432_gscl",
+ GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "mout_user_aclk333_432_gscl",
GATE_TOP_SCLK_GSCL, 6, CLK_SET_RATE_PARENT, 0),
- GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "aclk333_432_gscl",
+ GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "mout_user_aclk333_432_gscl",
GATE_TOP_SCLK_GSCL, 7, CLK_SET_RATE_PARENT, 0),
/* Display */
@@ -643,142 +660,199 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_TOP_SCLK_MAU, 1, CLK_SET_RATE_PARENT, 0),
/* FSYS */
GATE(CLK_TSI, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0),
- GATE(CLK_ACLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
- GATE(CLK_ACLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
+ GATE(CLK_ACLK_PDMA0, "aclk_pdma0", "aclk200_fsys",
+ GATE_BUS_FSYS0, 1, 0, 0),
+ GATE(CLK_ACLK_PDMA1, "aclk_pdma1", "aclk200_fsys",
+ GATE_BUS_FSYS0, 2, 0, 0),
GATE(CLK_UFS, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0),
- GATE(CLK_ACLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
- GATE(CLK_ACLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
- GATE(CLK_ACLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
- GATE(CLK_ACLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
- GATE(CLK_HCLK_SROMC, "sromc", "aclk200_fsys2",
- GATE_BUS_FSYS0, 19, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_HCLK_USBH20, "usbh20", "aclk200_fsys",
- GATE_BUS_FSYS0, 20, 0, 0),
- GATE(CLK_HCLK_USBD300, "usbd300", "aclk200_fsys",
+ GATE(CLK_ACLK_RTIC, "aclk_rtic", "aclk200_fsys2",
+ GATE_IP_FSYS, 9, 0, 0),
+ GATE(CLK_ACLK_MMC0, "aclk_mmc0", "aclk200_fsys2",
+ GATE_BUS_FSYS0, 12, 0, 0),
+ GATE(CLK_ACLK_MMC1, "aclk_mmc1", "aclk200_fsys2",
+ GATE_BUS_FSYS0, 13, 0, 0),
+ GATE(CLK_ACLK_MMC2, "aclk_mmc2", "aclk200_fsys2",
+ GATE_BUS_FSYS0, 14, 0, 0),
+ GATE(CLK_HCLK_SROMC, "hclk_sromc", "aclk200_fsys2",
+ GATE_IP_FSYS, 17, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_HCLK_USBH20, "hclk_usbh20", "aclk200_fsys",
+ GATE_IP_FSYS, 18, 0, 0),
+ GATE(CLK_HCLK_USBD300, "hclk_usbd300", "aclk200_fsys",
GATE_BUS_FSYS0, 21, 0, 0),
- GATE(CLK_HCLK_USBD301, "usbd301", "aclk200_fsys",
+ GATE(CLK_HCLK_USBD301, "hclk_usbd301", "aclk200_fsys",
GATE_BUS_FSYS0, 28, 0, 0),
/* UART */
- GATE(CLK_PCLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
- GATE(CLK_PCLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
- GATE_A(CLK_PCLK_UART2, "uart2", "aclk66_peric",
- GATE_BUS_PERIC, 6, CLK_IGNORE_UNUSED, 0, "uart2"),
- GATE(CLK_PCLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
+ GATE(CLK_PCLK_UART0, "pclk_uart0", "aclk66_peric",
+ GATE_BUS_PERIC, 4, 0, 0),
+ GATE(CLK_PCLK_UART1, "pclk_uart1", "aclk66_peric",
+ GATE_BUS_PERIC, 5, 0, 0),
+ GATE(CLK_PCLK_UART2, "pclk_uart2", "aclk66_peric",
+ GATE_BUS_PERIC, 6, 0, 0),
+ GATE(CLK_PCLK_UART3, "pclk_uart3", "aclk66_peric",
+ GATE_BUS_PERIC, 7, 0, 0),
/* I2C */
- GATE(CLK_PCLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
- GATE(CLK_PCLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
- GATE(CLK_PCLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
- GATE(CLK_PCLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
- GATE(CLK_PCLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric",
+ GATE(CLK_PCLK_I2C0, "pclk_i2c0", "aclk66_peric",
+ GATE_IP_PERIC, 6, 0, 0),
+ GATE(CLK_PCLK_I2C1, "pclk_i2c1", "aclk66_peric",
+ GATE_IP_PERIC, 7, 0, 0),
+ GATE(CLK_PCLK_I2C2, "pclk_i2c2", "aclk66_peric",
+ GATE_IP_PERIC, 8, 0, 0),
+ GATE(CLK_PCLK_I2C3, "pclk_i2c3", "aclk66_peric",
+ GATE_IP_PERIC, 9, 0, 0),
+ GATE(CLK_PCLK_USI0, "pclk_usi0", "aclk66_peric",
+ GATE_IP_PERIC, 10, 0, 0),
+ GATE(CLK_PCLK_USI1, "pclk_usi1", "aclk66_peric",
+ GATE_IP_PERIC, 11, 0, 0),
+ GATE(CLK_PCLK_USI2, "pclk_usi2", "aclk66_peric",
+ GATE_IP_PERIC, 12, 0, 0),
+ GATE(CLK_PCLK_USI3, "pclk_usi3", "aclk66_peric",
+ GATE_IP_PERIC, 13, 0, 0),
+ GATE(CLK_PCLK_USI4, "pclk_usi4", "aclk66_peric",
+ GATE_IP_PERIC, 28, 0, 0),
+ GATE(CLK_PCLK_USI5, "pclk_usi5", "aclk66_peric",
+ GATE_IP_PERIC, 30, 0, 0),
+ GATE(CLK_PCLK_USI6, "pclk_usi6", "aclk66_peric",
+ GATE_IP_PERIC, 31, 0, 0),
+
+ GATE(CLK_PCLK_I2C_HDMI, "pclk_i2c_hdmi", "aclk66_peric",
GATE_BUS_PERIC, 17, 0, 0),
- GATE(CLK_PCLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0),
+ GATE(CLK_PCLK_TSADC, "pclk_tsadc", "aclk66_peric",
+ GATE_IP_PERIC, 15, 0, 0),
/* SPI */
- GATE(CLK_PCLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
- GATE(CLK_PCLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
- GATE(CLK_PCLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
+ GATE(CLK_PCLK_SPI0, "pclk_spi0", "aclk66_peric",
+ GATE_BUS_PERIC, 19, 0, 0),
+ GATE(CLK_PCLK_SPI1, "pclk_spi1", "aclk66_peric",
+ GATE_BUS_PERIC, 20, 0, 0),
+ GATE(CLK_PCLK_SPI2, "pclk_spi2", "aclk66_peric",
+ GATE_BUS_PERIC, 21, 0, 0),
GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0),
/* I2S */
- GATE(CLK_PCLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
- GATE(CLK_PCLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
+ GATE(CLK_PCLK_I2S1, "pclk_i2s1", "aclk66_peric",
+ GATE_BUS_PERIC, 23, 0, 0),
+ GATE(CLK_PCLK_I2S2, "pclk_i2s2", "aclk66_peric",
+ GATE_BUS_PERIC, 24, 0, 0),
/* PCM */
- GATE(CLK_PCLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
- GATE(CLK_PCLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
+ GATE(CLK_PCLK_PCM1, "pclk_pcm1", "aclk66_peric",
+ GATE_BUS_PERIC, 25, 0, 0),
+ GATE(CLK_PCLK_PCM2, "pclk_pcm2", "aclk66_peric",
+ GATE_BUS_PERIC, 26, 0, 0),
/* PWM */
GATE(CLK_PCLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
/* SPDIF */
- GATE(CLK_PCLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0),
-
- GATE(CLK_PCLK_CHIPID, "chipid", "aclk66_psgen",
- GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_PCLK_SYSREG, "sysreg", "aclk66_psgen",
- GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0),
- GATE(CLK_PCLK_TZPC0, "tzpc0", "aclk66_psgen",
- GATE_BUS_PERIS0, 18, 0, 0),
- GATE(CLK_PCLK_TZPC1, "tzpc1", "aclk66_psgen",
- GATE_BUS_PERIS0, 19, 0, 0),
- GATE(CLK_PCLK_TZPC2, "tzpc2", "aclk66_psgen",
- GATE_BUS_PERIS0, 20, 0, 0),
- GATE(CLK_PCLK_TZPC3, "tzpc3", "aclk66_psgen",
- GATE_BUS_PERIS0, 21, 0, 0),
- GATE(CLK_PCLK_TZPC4, "tzpc4", "aclk66_psgen",
- GATE_BUS_PERIS0, 22, 0, 0),
- GATE(CLK_PCLK_TZPC5, "tzpc5", "aclk66_psgen",
- GATE_BUS_PERIS0, 23, 0, 0),
- GATE(CLK_PCLK_TZPC6, "tzpc6", "aclk66_psgen",
- GATE_BUS_PERIS0, 24, 0, 0),
- GATE(CLK_PCLK_TZPC7, "tzpc7", "aclk66_psgen",
- GATE_BUS_PERIS0, 25, 0, 0),
- GATE(CLK_PCLK_TZPC8, "tzpc8", "aclk66_psgen",
- GATE_BUS_PERIS0, 26, 0, 0),
- GATE(CLK_PCLK_TZPC9, "tzpc9", "aclk66_psgen",
- GATE_BUS_PERIS0, 27, 0, 0),
-
- GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0,
- 0),
+ GATE(CLK_PCLK_SPDIF, "pclk_spdif", "aclk66_peric",
+ GATE_BUS_PERIC, 29, 0, 0),
+
+ GATE(CLK_PCLK_CHIPID, "pclk_chipid", "aclk66_psgen",
+ GATE_IP_PERIS, 0, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK_SYSREG, "pclk_sysreg", "aclk66_psgen",
+ GATE_IP_PERIS, 1, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK_TZPC0, "pclk_tzpc0", "aclk66_psgen",
+ GATE_IP_PERIS, 6, 0, 0),
+ GATE(CLK_PCLK_TZPC1, "pclk_tzpc1", "aclk66_psgen",
+ GATE_IP_PERIS, 7, 0, 0),
+ GATE(CLK_PCLK_TZPC2, "pclk_tzpc2", "aclk66_psgen",
+ GATE_IP_PERIS, 8, 0, 0),
+ GATE(CLK_PCLK_TZPC3, "pclk_tzpc3", "aclk66_psgen",
+ GATE_IP_PERIS, 9, 0, 0),
+ GATE(CLK_PCLK_TZPC4, "pclk_tzpc4", "aclk66_psgen",
+ GATE_IP_PERIS, 10, 0, 0),
+ GATE(CLK_PCLK_TZPC5, "pclk_tzpc5", "aclk66_psgen",
+ GATE_IP_PERIS, 11, 0, 0),
+ GATE(CLK_PCLK_TZPC6, "pclk_tzpc6", "aclk66_psgen",
+ GATE_IP_PERIS, 12, 0, 0),
+ GATE(CLK_PCLK_TZPC7, "pclk_tzpc7", "aclk66_psgen",
+ GATE_IP_PERIS, 13, 0, 0),
+ GATE(CLK_PCLK_TZPC8, "pclk_tzpc8", "aclk66_psgen",
+ GATE_IP_PERIS, 14, 0, 0),
+ GATE(CLK_PCLK_TZPC9, "pclk_tzpc9", "aclk66_psgen",
+ GATE_IP_PERIS, 15, 0, 0),
+ GATE(CLK_PCLK_TZPC10, "pclk_tzpc10", "aclk66_psgen",
+ GATE_BUS_GEN, 30, 0, 0),
+ GATE(CLK_PCLK_TZPC11, "pclk_tzpc11", "aclk66_psgen",
+ GATE_BUS_GEN, 31, 0, 0),
+
+ GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen",
+ GATE_BUS_PERIS1, 0, 0, 0),
GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0),
- GATE(CLK_PCLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
- GATE(CLK_PCLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
- GATE(CLK_PCLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
- GATE(CLK_PCLK_TMU_GPU, "tmu_gpu", "aclk66_psgen",
- GATE_BUS_PERIS1, 6, 0, 0),
-
- GATE(CLK_ACLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
- GATE(CLK_ACLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
- GATE(CLK_ACLK_FIMC_3AA, "clk_3aa", "aclk300_gscl",
+ GATE(CLK_PCLK_WDT, "pclk_wdt", "aclk66_psgen", GATE_IP_PERIS, 19, 0, 0),
+ GATE(CLK_PCLK_RTC, "pclk_rtc", "aclk66_psgen", GATE_IP_PERIS, 20, 0, 0),
+ GATE(CLK_PCLK_TMU, "pclk_tmu", "aclk66_psgen", GATE_IP_PERIS, 21, 0, 0),
+ GATE(CLK_PCLK_TMU_GPU, "pclk_tmu_gpu", "aclk66_psgen",
+ GATE_IP_PERIS, 22, 0, 0),
+
+ GATE(CLK_ACLK_GSCL0, "aclk_gscl0", "mout_user_aclk300_gscl",
+ GATE_IP_GSCL0, 0, 0, 0),
+ GATE(CLK_ACLK_GSCL1, "aclk_gscl1", "mout_user_aclk300_gscl",
+ GATE_IP_GSCL0, 1, 0, 0),
+ GATE(CLK_ACLK_FIMC_3AA, "aclk_fimc_3aa", "aclk333_432_gscl",
GATE_IP_GSCL0, 4, 0, 0),
- GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0,
- 0),
- GATE(CLK_SMMU_FIMCL0, "smmu_fimcl0", "aclk333_432_gscl",
+ GATE(CLK_SMMU_3AA, "smmu_3aa", "dout_gscl_blk_333",
+ GATE_IP_GSCL1, 2, 0, 0),
+ GATE(CLK_SMMU_FIMCL0, "smmu_fimcl0", "dout_gscl_blk_333",
GATE_IP_GSCL1, 3, 0, 0),
- GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "aclk333_432_gscl",
+ GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "dout_gscl_blk_333",
GATE_IP_GSCL1, 4, 0, 0),
- GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "aclk300_gscl", GATE_IP_GSCL1, 6, 0,
- 0),
- GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0,
- 0),
- GATE(CLK_PCLK_GSCL_WA, "gscl_wa", "aclk300_gscl",
- GATE_IP_GSCL1, 12, 0, 0),
+ GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "dout_gscl_blk_300",
+ GATE_IP_GSCL1, 6, 0, 0),
+ GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "dout_gscl_blk_300",
+ GATE_IP_GSCL1, 7, 0, 0),
+ GATE(CLK_PCLK_GSCL_WA, "pclk_gscl_wa", "dout_gscl_blk_333",
+ GATE_BUS_GSCL1, 28, 0, 0),
GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0),
- GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl",
+ GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "dout_gscl_blk_333",
GATE_IP_GSCL1, 16, 0, 0),
- GATE(CLK_ACLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
+ GATE(CLK_ACLK_FIMC_LITE3, "aclk_fimc_lite3", "aclk333_432_gscl",
GATE_IP_GSCL1, 17, 0, 0),
- GATE(CLK_ACLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
- GATE(CLK_PCLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
- GATE(CLK_PCLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
- GATE(CLK_ACLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
- GATE(CLK_PCLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
- GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1", "aclk300_disp1",
- GATE_IP_DISP1, 8, 0, 0),
-
- GATE(CLK_ACLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
- GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0),
- GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0),
-
- GATE(CLK_G3D, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0),
-
- GATE(CLK_ACLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
- GATE(CLK_ACLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
- GATE(CLK_ACLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
- GATE(CLK_ACLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
- GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0),
- GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0),
- GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0),
-
- GATE(CLK_ACLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
- GATE(CLK_ACLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
- GATE(CLK_ACLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
- GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0,
- 0),
- GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0,
- 0),
- GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "aclk400_mscl", GATE_IP_MSCL, 10, 0,
- 0),
- GATE(CLK_SMMU_MIXER, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0,
- 0),
+ GATE(CLK_ACLK_FIMD1, "aclk_fimd1", "mout_user_aclk300_disp1",
+ GATE_IP_DISP1, 0, 0, 0),
+ GATE(CLK_PCLK_DSIM1, "pclk_dsim1", "dout_disp1_blk",
+ GATE_BUS_DISP1, 17, 0, 0),
+ GATE(CLK_PCLK_DP1, "pclk_dp1", "dout_disp1_blk",
+ GATE_BUS_DISP1, 18, 0, 0),
+ GATE(CLK_ACLK_MIXER, "aclk_mixer", "aclk200_disp1",
+ GATE_IP_DISP1, 5, 0, 0),
+ GATE(CLK_PCLK_HDMI, "pclk_hdmi", "dout_disp1_blk",
+ GATE_BUS_DISP1, 19, 0, 0),
+ GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1m0", "dout_disp1_blk",
+ GATE_IP_DISP1, 7, 0, 0),
+
+ GATE(CLK_ACLK_MFC, "aclk_mfc", "mout_user_aclk333",
+ GATE_BUS_MFC, 0, 0, 0),
+ GATE(CLK_SMMU_MFCL, "smmu_mfcl", "dout_mfc_blk", GATE_IP_MFC, 1, 0, 0),
+ GATE(CLK_SMMU_MFCR, "smmu_mfcr", "dout_mfc_blk", GATE_IP_MFC, 2, 0, 0),
+ GATE(CLK_G3D, "clk_g3d", "mout_user_aclk_g3d",
+ GATE_IP_G3D, 9, 0, 0),
+
+ GATE(CLK_ACLK_ROTATOR, "aclk_rotator", "mout_user_aclk266",
+ GATE_IP_GEN, 1, 0, 0),
+ GATE(CLK_ACLK_JPEG, "aclk_jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
+ GATE(CLK_ACLK_JPEG2, "aclk_jpeg2", "aclk300_jpeg",
+ GATE_IP_GEN, 3, 0, 0),
+ GATE(CLK_ACLK_MDMA1, "aclk_mdma1", "mout_user_aclk266",
+ GATE_IP_GEN, 4, 0, 0),
+ GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "dout_gen_blk",
+ GATE_IP_GEN, 6, 0, 0),
+ GATE(CLK_SMMU_JPEG, "smmu_jpeg", "dout_jpg_blk", GATE_IP_GEN, 7, 0, 0),
+ GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "dout_gen_blk",
+ GATE_IP_GEN, 9, 0, 0),
+
+ GATE(CLK_ACLK_MSCL0, "aclk_mscl0", "aclk400_mscl",
+ GATE_BUS_MSCL, 0, 0, 0),
+ GATE(CLK_ACLK_MSCL1, "aclk_mscl1", "aclk400_mscl",
+ GATE_BUS_MSCL, 1, 0, 0),
+ GATE(CLK_ACLK_MSCL2, "aclk_mscl2", "aclk400_mscl",
+ GATE_BUS_MSCL, 2, 0, 0),
+ GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "dout_mscl_blk",
+ GATE_IP_MSCL, 8, 0, 0),
+ GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "dout_mscl_blk",
+ GATE_IP_MSCL, 9, 0, 0),
+ GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "dout_mscl_blk",
+ GATE_IP_MSCL, 10, 0, 0),
+ GATE(CLK_SMMU_MIXER, "smmu_mixer", "dout_disp1_blk",
+ GATE_IP_DISP1, 9, 0, 0),
/* SSS */
GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
index 598eb48..dde01fc 100644
--- a/include/dt-bindings/clock/exynos5420.h
+++ b/include/dt-bindings/clock/exynos5420.h
@@ -79,10 +79,10 @@
#define CLK_PCLK_I2C1 262
#define CLK_PCLK_I2C2 263
#define CLK_PCLK_I2C3 264
-#define CLK_I2C4 265
-#define CLK_I2C5 266
-#define CLK_I2C6 267
-#define CLK_I2C7 268
+#define CLK_PCLK_USI0 265
+#define CLK_PCLK_USI1 266
+#define CLK_PCLK_USI2 267
+#define CLK_PCLK_USI3 268
#define CLK_PCLK_I2C_HDMI 269
#define CLK_PCLK_TSADC 270
#define CLK_PCLK_SPI0 271
@@ -95,9 +95,9 @@
#define CLK_PCLK_PCM2 278
#define CLK_PCLK_PWM 279
#define CLK_PCLK_SPDIF 280
-#define CLK_I2C8 281
-#define CLK_I2C9 282
-#define CLK_I2C10 283
+#define CLK_PCLK_USI4 281
+#define CLK_PCLK_USI5 282
+#define CLK_PCLK_USI6 283
#define CLK_ACLK66_PSGEN 300
#define CLK_PCLK_CHIPID 301
#define CLK_PCLK_SYSREG 302
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 5/7] clk: exynos5420: Add missing clocks
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
` (3 preceding siblings ...)
2014-03-27 11:07 ` [PATCH v2 4/7] clk: exynos5420: Rename clock names Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-04-15 17:56 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 6/7] clk: exynos5420: Add more registers to restore list Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 7/7] ARM: dts: update macros in clock bindings for exynos5420 Shaik Ameer Basha
6 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
This patch adds the missing clocks related to the modules
like FIMD, DP, GSCL, MSCL, ISP, MFC etc.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 221 +++++++++++++++++++++++++++++++++-
1 file changed, 219 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 793fb3d..26ddf33 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -269,15 +269,36 @@ PNAME(mout_group3_p) = {"mout_sclk_rpll", "mout_sclk_spll"};
PNAME(mout_group4_p) = {"mout_sclk_ipll", "mout_sclk_dpll", "mout_sclk_mpll"};
PNAME(mout_group5_p) = {"mout_sclk_vpll", "mout_sclk_dpll"};
+PNAME(mout_fimd1_final_p) = {"mout_fimd1", "mout_fimd1_opt"};
PNAME(mout_sw_aclk66_p) = {"dout_aclk66", "mout_sclk_spll"};
PNAME(mout_user_aclk66_peric_p) = {"fin_pll", "mout_sw_aclk66"};
+PNAME(mout_user_aclk66_gpio_p) = {"mout_sw_aclk66", "ffactor_sw_aclk66"};
PNAME(mout_sw_aclk200_fsys_p) = {"dout_aclk200_fsys", "mout_sclk_spll"};
+PNAME(mout_sw_pclk200_fsys_p) = {"dout_pclk200_fsys", "mout_sclk_spll"};
+PNAME(mout_user_pclk200_fsys_p) = {"fin_pll", "mout_sw_pclk200_fsys"};
PNAME(mout_user_aclk200_fsys_p) = {"fin_pll", "mout_sw_aclk200_fsys"};
PNAME(mout_sw_aclk200_fsys2_p) = {"dout_aclk200_fsys2", "mout_sclk_spll"};
PNAME(mout_user_aclk200_fsys2_p) = {"fin_pll", "mout_sw_aclk200_fsys2"};
+PNAME(mout_sw_aclk100_noc_p) = {"dout_aclk100_noc", "mout_sclk_spll"};
+PNAME(mout_user_aclk100_noc_p) = {"fin_pll", "mout_sw_aclk100_noc"};
+
+PNAME(mout_sw_aclk400_wcore_p) = {"dout_aclk400_wcore", "mout_sclk_spll"};
+PNAME(mout_aclk400_wcore_bpll_p) = {"mout_aclk400_wcore", "sclk_bpll"};
+PNAME(mout_user_aclk400_wcore_p) = {"fin_pll", "mout_sw_aclk400_wcore"};
+
+PNAME(mout_sw_aclk400_isp_p) = {"dout_aclk400_isp", "mout_sclk_spll"};
+PNAME(mout_user_aclk400_isp_p) = {"fin_pll", "mout_sw_aclk400_isp"};
+
+PNAME(mout_sw_aclk333_432_isp0_p) = {"dout_aclk333_432_isp0",
+ "mout_sclk_spll"};
+PNAME(mout_user_aclk333_432_isp0_p) = {"fin_pll", "mout_sw_aclk333_432_isp0"};
+
+PNAME(mout_sw_aclk333_432_isp_p) = {"dout_aclk333_432_isp", "mout_sclk_spll"};
+PNAME(mout_user_aclk333_432_isp_p) = {"fin_pll", "mout_sw_aclk333_432_isp"};
+
PNAME(mout_sw_aclk200_p) = {"dout_aclk200", "mout_sclk_spll"};
PNAME(mout_aclk200_disp1_p) = {"fin_pll", "mout_sw_aclk200"};
@@ -292,6 +313,7 @@ PNAME(mout_user_aclk166_p) = {"fin_pll", "mout_sw_aclk166"};
PNAME(mout_sw_aclk266_p) = {"dout_aclk266", "mout_sclk_spll"};
PNAME(mout_user_aclk266_p) = {"fin_pll", "mout_sw_aclk266"};
+PNAME(mout_user_aclk266_isp_p) = {"fin_pll", "mout_sw_aclk266"};
PNAME(mout_sw_aclk333_432_gscl_p) = {"dout_aclk333_432_gscl", "mout_sclk_spll"};
PNAME(mout_user_aclk333_432_gscl_p) = {"fin_pll", "mout_sw_aclk333_432_gscl"};
@@ -300,7 +322,9 @@ PNAME(mout_sw_aclk300_gscl_p) = {"dout_aclk300_gscl", "mout_sclk_spll"};
PNAME(mout_user_aclk300_gscl_p) = {"fin_pll", "mout_sw_aclk300_gscl"};
PNAME(mout_sw_aclk300_disp1_p) = {"dout_aclk300_disp1", "mout_sclk_spll"};
+PNAME(mout_sw_aclk400_disp1_p) = {"dout_aclk400_disp1", "mout_sclk_spll"};
PNAME(mout_user_aclk300_disp1_p) = {"fin_pll", "mout_sw_aclk300_disp1"};
+PNAME(mout_user_aclk400_disp1_p) = {"fin_pll", "mout_sw_aclk400_disp1"};
PNAME(mout_sw_aclk300_jpeg_p) = {"dout_aclk300_jpeg", "mout_sclk_spll"};
PNAME(mout_user_aclk300_jpeg_p) = {"fin_pll", "mout_sw_aclk300_jpeg"};
@@ -330,6 +354,8 @@ PNAME(mout_hdmi_p) = {"dout_hdmi_pixel", "sclk_hdmiphy"};
PNAME(mout_maudio0_p) = {"fin_pll", "maudio_clk", "mout_sclk_dpll",
"mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
"mout_sclk_epll", "mout_sclk_rpll"};
+PNAME(mout_mau_epll_clk_p) = {"mout_sclk_epll", "mout_sclk_dpll",
+ "mout_sclk_mpll", "mout_sclk_spll"};
/* fixed rate clocks generated outside the soc */
static struct samsung_fixed_rate_clock exynos5420_fixed_rate_ext_clks[] __initdata = {
@@ -347,6 +373,7 @@ static struct samsung_fixed_rate_clock exynos5420_fixed_rate_clks[] __initdata =
static struct samsung_fixed_factor_clock exynos5420_fixed_factor_clks[] __initdata = {
FFACTOR(0, "ffactor_hsic_12m", "fin_pll", 1, 2, 0),
+ FFACTOR(0, "ffactor_sw_aclk66", "mout_sw_aclk66", 1, 2, 0),
};
static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
@@ -452,6 +479,10 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
MUX(0, "mout_dp1", mout_group2_p, SRC_DISP10, 20, 3),
MUX(0, "mout_pixel", mout_group2_p, SRC_DISP10, 24, 3),
MUX(CLK_MOUT_HDMI, "mout_hdmi", mout_hdmi_p, SRC_DISP10, 28, 1),
+ MUX_F(0, "mout_fimd1_opt", mout_group2_p, SRC_DISP10, 8, 3,
+ CLK_SET_RATE_PARENT, 0),
+ MUX_F(0, "mout_fimd1_final", mout_fimd1_final_p, TOP_SPARE2, 8, 1,
+ CLK_SET_RATE_PARENT, 0),
/* MAU Block */
MUX_F(CLK_MOUT_MAUDIO0, "mout_maudio0", mout_maudio0_p, SRC_MAU, 28, 3,
@@ -464,6 +495,7 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
MUX(0, "mout_mmc2", mout_group2_p, SRC_FSYS, 16, 3),
MUX(0, "mout_usbd300", mout_group2_p, SRC_FSYS, 20, 3),
MUX(0, "mout_unipro", mout_group2_p, SRC_FSYS, 24, 3),
+ MUX(0, "mout_mphy_refclk", mout_group2_p, SRC_FSYS, 28, 3),
/* PERIC Block */
MUX(0, "mout_uart0", mout_group2_p, SRC_PERIC0, 4, 3),
@@ -478,6 +510,58 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
MUX(CLK_MOUT_SPI0, "mout_spi0", mout_group2_p, SRC_PERIC1, 20, 3),
MUX(CLK_MOUT_SPI1, "mout_spi1", mout_group2_p, SRC_PERIC1, 24, 3),
MUX(CLK_MOUT_SPI2, "mout_spi2", mout_group2_p, SRC_PERIC1, 28, 3),
+
+ MUX(0, "mout_user_aclk66_gpio", mout_user_aclk66_gpio_p,
+ SRC_TOP7, 4, 1),
+ MUX_F(0, "mout_mau_epll_clk", mout_mau_epll_clk_p, SRC_TOP7, 20, 2,
+ CLK_SET_RATE_PARENT, 0),
+ MUX(0, "mout_pclk200_fsys", mout_group1_p, SRC_TOP0, 24, 2),
+ MUX(0, "mout_sw_pclk200_fsys", mout_sw_pclk200_fsys_p,
+ SRC_TOP10, 24, 1),
+ MUX(0, "mout_user_pclk200_fsys", mout_user_pclk200_fsys_p,
+ SRC_TOP3, 24, 1),
+ MUX(0, "mout_aclk100_noc", mout_group1_p, SRC_TOP0, 20, 2),
+ MUX(0, "mout_sw_aclk100_noc", mout_sw_aclk100_noc_p,
+ SRC_TOP10, 20, 1),
+ MUX(0, "mout_user_aclk100_noc", mout_user_aclk100_noc_p,
+ SRC_TOP3, 20, 1),
+ MUX(0, "mout_aclk400_wcore", mout_group1_p, SRC_TOP0, 16, 2),
+ MUX(0, "mout_aclk400_wcore_bpll", mout_aclk400_wcore_bpll_p,
+ TOP_SPARE2, 4, 1),
+ MUX(0, "mout_sw_aclk400_wcore", mout_sw_aclk400_wcore_p,
+ SRC_TOP10, 16, 1),
+ MUX(0, "mout_user_aclk400_wcore", mout_user_aclk400_wcore_p,
+ SRC_TOP3, 16, 1),
+ MUX(0, "mout_aclk400_isp", mout_group1_p, SRC_TOP0, 0, 2),
+ MUX(0, "mout_sw_aclk400_isp", mout_sw_aclk400_isp_p,
+ SRC_TOP10, 0, 1),
+ MUX(0, "mout_user_aclk400_isp", mout_user_aclk400_isp_p,
+ SRC_TOP3, 0, 1),
+ MUX(0, "mout_aclk333_432_isp0", mout_group4_p, SRC_TOP1, 12, 2),
+ MUX(0, "mout_sw_aclk333_432_isp0", mout_sw_aclk333_432_isp0_p,
+ SRC_TOP11, 12, 1),
+ MUX(0, "mout_user_aclk333_432_isp0", mout_user_aclk333_432_isp0_p,
+ SRC_TOP4, 12, 1),
+ MUX(0, "mout_aclk333_432_isp", mout_group4_p,
+ SRC_TOP1, 4, 2),
+ MUX(0, "mout_sw_aclk333_432_isp", mout_sw_aclk333_432_isp_p,
+ SRC_TOP11, 4, 1),
+ MUX(0, "mout_user_aclk333_432_isp", mout_user_aclk333_432_isp_p,
+ SRC_TOP4, 4, 1),
+ MUX(0, "mout_user_aclk266_isp", mout_user_aclk266_isp_p,
+ SRC_TOP4, 16, 1),
+ MUX(0, "mout_aclk400_disp1", mout_group1_p, SRC_TOP2, 4, 2),
+ MUX(0, "mout_sw_aclk400_disp1", mout_sw_aclk400_disp1_p,
+ SRC_TOP12, 4, 1),
+ MUX(0, "mout_user_aclk400_disp1", mout_user_aclk400_disp1_p,
+ SRC_TOP5, 0, 1),
+
+ /* ISP Block*/
+ MUX(0, "mout_pwm_isp", mout_group2_p, SRC_ISP, 24, 3),
+ MUX(0, "mout_uart_isp", mout_group2_p, SRC_ISP, 20, 3),
+ MUX(0, "mout_spi0_isp", mout_group2_p, SRC_ISP, 12, 3),
+ MUX(0, "mout_spi1_isp", mout_group2_p, SRC_ISP, 16, 3),
+ MUX(0, "mout_isp_sensor", mout_group2_p, SRC_ISP, 28, 3),
};
static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
@@ -512,6 +596,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(0, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8),
DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4),
DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
+ DIV(0, "dout_disp1_blk", "aclk200_disp1", DIV2_RATIO0, 16, 2),
/* Audio Block */
DIV(0, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4),
@@ -529,6 +614,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(0, "dout_mmc2", "mout_mmc2", DIV_FSYS1, 20, 10),
DIV(0, "dout_unipro", "mout_unipro", DIV_FSYS2, 24, 8),
+ DIV(0, "dout_mphy_refclk", "mout_mphy_refclk", DIV_FSYS2, 16, 8),
/* UART and PWM */
DIV(0, "dout_uart0", "mout_uart0", DIV_PERIC0, 8, 4),
@@ -557,6 +643,39 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
DIV(0, "dout_spi0_pre", "dout_spi0", DIV_PERIC4, 8, 8),
DIV(0, "dout_spi1_pre", "dout_spi1", DIV_PERIC4, 16, 8),
DIV(0, "dout_spi2_pre", "dout_spi2", DIV_PERIC4, 24, 8),
+
+ DIV(0, "dout_aclk400_disp1", "mout_aclk400_disp1",
+ DIV_TOP2, 4, 3),
+ DIV(0, "dout_aclk100_noc", "mout_aclk100_noc", DIV_TOP0, 20, 3),
+ DIV(0, "dout_aclk400_wcore", "mout_aclk400_wcore_bpll",
+ DIV_TOP0, 16, 3),
+ DIV(0, "dout_aclk400_isp", "mout_aclk400_isp", DIV_TOP0, 0, 3),
+ DIV(0, "dout_aclk333_432_isp0", "mout_aclk333_432_isp0",
+ DIV_TOP1, 16, 3),
+ DIV(0, "dout_aclk333_432_isp", "mout_aclk333_432_isp",
+ DIV_TOP1, 4, 3),
+ /* Mfc Blk */
+ DIV(0, "dout_mfc_blk", "mout_user_aclk333", DIV4_RATIO, 0, 2),
+ /* Gscl Blk */
+ DIV(0, "dout_gscl_blk_300", "mout_user_aclk300_gscl",
+ DIV2_RATIO0, 4, 2),
+ DIV(0, "dout_gscl_blk_333", "aclk333_432_gscl", DIV2_RATIO0, 6, 2),
+ /* Mscl Blk */
+ DIV(0, "dout_mscl_blk", "aclk400_mscl", DIV2_RATIO0, 28, 2),
+ /* Psgen */
+ DIV(0, "dout_gen_blk", "mout_user_aclk266", DIV2_RATIO0, 8, 1),
+ /* Jpeg */
+ DIV(0, "dout_jpg_blk", "aclk166", DIV2_RATIO0, 20, 1),
+ /* isp */
+ DIV(0, "dout_pwm_isp", "mout_pwm_isp", SCLK_DIV_ISP1, 28, 4),
+ DIV(0, "dout_uart_isp", "mout_uart_isp", SCLK_DIV_ISP1, 24, 4),
+ DIV(0, "dout_spi0_isp", "mout_spi0_isp", SCLK_DIV_ISP1, 16, 4),
+ DIV(0, "dout_spi1_isp", "mout_spi1_isp", SCLK_DIV_ISP1, 20, 4),
+ DIV(0, "dout_spi0_isp_pre", "dout_spi0_isp", SCLK_DIV_ISP1, 0, 8),
+ DIV(0, "dout_spi1_isp_pre", "dout_spi1_isp", SCLK_DIV_ISP1, 8, 8),
+ DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8),
+ DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8),
+ DIV(0, "dout_isp_sensor2", "mout_isp_sensor", SCLK_DIV_ISP0, 24, 8),
};
static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
@@ -781,12 +900,18 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE(CLK_PCLK_TMU_GPU, "pclk_tmu_gpu", "aclk66_psgen",
GATE_IP_PERIS, 22, 0, 0),
+ GATE(CLK_PCLK_GSCL0, "pclk_gscl0", "dout_gscl_blk_300",
+ GATE_IP_GSCL0, 14, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK_GSCL1, "pclk_gscl1", "dout_gscl_blk_300",
+ GATE_IP_GSCL0, 15, CLK_IGNORE_UNUSED, 0),
GATE(CLK_ACLK_GSCL0, "aclk_gscl0", "mout_user_aclk300_gscl",
GATE_IP_GSCL0, 0, 0, 0),
GATE(CLK_ACLK_GSCL1, "aclk_gscl1", "mout_user_aclk300_gscl",
GATE_IP_GSCL0, 1, 0, 0),
GATE(CLK_ACLK_FIMC_3AA, "aclk_fimc_3aa", "aclk333_432_gscl",
GATE_IP_GSCL0, 4, 0, 0),
+ GATE(CLK_PCLK_FIMC_3AA, "pclk_fimc_3aa", "dout_gscl_blk_333",
+ GATE_IP_GSCL0, 9, 0, 0),
GATE(CLK_SMMU_3AA, "smmu_3aa", "dout_gscl_blk_333",
GATE_IP_GSCL1, 2, 0, 0),
@@ -818,9 +943,13 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_BUS_DISP1, 19, 0, 0),
GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1m0", "dout_disp1_blk",
GATE_IP_DISP1, 7, 0, 0),
+ GATE(CLK_SMMU_FIMD1M1, "smmu_fimd1m1", "dout_disp1_blk",
+ GATE_IP_DISP1, 8, 0, 0),
GATE(CLK_ACLK_MFC, "aclk_mfc", "mout_user_aclk333",
GATE_BUS_MFC, 0, 0, 0),
+ GATE(CLK_PCLK_MFC, "pclk_mfc", "dout_mfc_blk",
+ GATE_BUS_MFC, 16, CLK_IGNORE_UNUSED, 0),
GATE(CLK_SMMU_MFCL, "smmu_mfcl", "dout_mfc_blk", GATE_IP_MFC, 1, 0, 0),
GATE(CLK_SMMU_MFCR, "smmu_mfcr", "dout_mfc_blk", GATE_IP_MFC, 2, 0, 0),
GATE(CLK_G3D, "clk_g3d", "mout_user_aclk_g3d",
@@ -828,14 +957,24 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE(CLK_ACLK_ROTATOR, "aclk_rotator", "mout_user_aclk266",
GATE_IP_GEN, 1, 0, 0),
+ GATE(CLK_PCLK_ROTATOR, "pclk_rotator", "dout_gen_blk",
+ GATE_BUS_GEN, 13, 0, 0),
GATE(CLK_ACLK_JPEG, "aclk_jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
GATE(CLK_ACLK_JPEG2, "aclk_jpeg2", "aclk300_jpeg",
GATE_IP_GEN, 3, 0, 0),
+ GATE(CLK_ACLK_MDMA0, "aclk_mdma0", "aclk266_g2d",
+ GATE_BUS_G2D, 1, CLK_IGNORE_UNUSED, 0),
GATE(CLK_ACLK_MDMA1, "aclk_mdma1", "mout_user_aclk266",
GATE_IP_GEN, 4, 0, 0),
GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "dout_gen_blk",
GATE_IP_GEN, 6, 0, 0),
+ GATE(CLK_ACLK_SMMU_MDMA0, "aclk_smmu_mdma0", "aclk266_g2d",
+ GATE_BUS_G2D, 5, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_MDMA0, "smmu_mdma0", "aclk266_g2d",
+ GATE_BUS_G2D, 20, CLK_IGNORE_UNUSED, 0),
GATE(CLK_SMMU_JPEG, "smmu_jpeg", "dout_jpg_blk", GATE_IP_GEN, 7, 0, 0),
+ GATE(CLK_SMMU_JPEG2, "smmu_jpeg2", "dout_jpg_blk",
+ GATE_BUS_GEN, 28, 0, 0),
GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "dout_gen_blk",
GATE_IP_GEN, 9, 0, 0),
@@ -845,14 +984,92 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
GATE_BUS_MSCL, 1, 0, 0),
GATE(CLK_ACLK_MSCL2, "aclk_mscl2", "aclk400_mscl",
GATE_BUS_MSCL, 2, 0, 0),
+ GATE(CLK_PCLK_MSCL0, "pclk_mscl0", "dout_mscl_blk",
+ GATE_BUS_MSCL, 8, 0, 0),
+ GATE(CLK_PCLK_MSCL1, "pclk_mscl1", "dout_mscl_blk",
+ GATE_BUS_MSCL, 9, 0, 0),
+ GATE(CLK_PCLK_MSCL2, "pclk_mscl2", "dout_mscl_blk",
+ GATE_BUS_MSCL, 10, 0, 0),
GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "dout_mscl_blk",
GATE_IP_MSCL, 8, 0, 0),
GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "dout_mscl_blk",
GATE_IP_MSCL, 9, 0, 0),
GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "dout_mscl_blk",
GATE_IP_MSCL, 10, 0, 0),
- GATE(CLK_SMMU_MIXER, "smmu_mixer", "dout_disp1_blk",
- GATE_IP_DISP1, 9, 0, 0),
+ GATE(CLK_ACLK_SMMU_MIXER, "aclk_smmu_mixer", "aclk200_disp1",
+ GATE_BUS_DISP1, 9, CLK_IGNORE_UNUSED, 0),
+
+ /* aclk333 gates internal MFC busses and should not be gated. */
+ /* aclk266 also gates other IPs in psgen. It should not be gated. */
+ GATE(CLK_ACLK266, "aclk266", "mout_user_aclk266",
+ GATE_BUS_NOC, 22, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK200_DISP1, "aclk200_disp1", "mout_aclk200_disp1",
+ GATE_BUS_TOP, 18, CLK_IGNORE_UNUSED, 0),
+ /* gating of aclk300_gscl causes system hang. It should not be gated. */
+ GATE(CLK_ACLK400_MSCL, "aclk400_mscl", "mout_user_aclk400_mscl",
+ GATE_BUS_TOP, 17, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK300_DISP1, "aclk300_disp1", "mout_user_aclk300_disp1",
+ SRC_MASK_TOP2, 24, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK266_ISP, "aclk266_isp", "mout_user_aclk266_isp",
+ GATE_BUS_TOP, 13, 0, 0),
+ GATE(CLK_ACLK400_ISP, "aclk400_isp", "mout_user_aclk400_isp",
+ GATE_BUS_TOP, 16, 0, 0),
+ GATE(CLK_ACLK333_432_ISP0, "aclk333_432_isp0",
+ "mout_user_aclk333_432_isp0", GATE_BUS_TOP, 5, 0, 0),
+ GATE(CLK_ACLK333_432_ISP, "aclk333_432_isp",
+ "mout_user_aclk333_432_isp", GATE_BUS_TOP, 8, 0, 0),
+ /* misc: mct, adc, chipid, wdt, rtc, sysreg etc */
+ GATE(CLK_PCLK_MC, "pclk_mc", "aclk66_psgen", GATE_BUS_GEN, 12, 0, 0),
+ GATE(CLK_PCLK_TOP_RTC, "pclk_top_rtc", "aclk66_psgen",
+ GATE_IP_GEN, 5, 0, 0),
+ GATE(CLK_SCLK_HSIC_12M, "sclk_hsic_12m", "ffactor_hsic_12m",
+ GATE_BUS_TOP, 29, 0, 0),
+ GATE(CLK_SCLK_MPHY_IXTAL24, "sclk_mphy_ixtal24", "mphy_refclk_ixtal24",
+ GATE_BUS_TOP, 28, 0, 0),
+ /*
+ * HACK: When aclk_fimd1 is gated, aclk300_disp1 also gets gated as
+ * aclk_fimd1 is the only child node. aclk300_disp1 is connected
+ * to hdmi, mixer IPs through internal busses. gating of aclk300_disp1
+ * breaks HDMI S2R.
+ */
+ GATE(CLK_PCLK_HDMIPHY, "pclk_hdmiphy", "dout_disp1_blk",
+ GATE_BUS_DISP1, 15, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SCLK_MPHY_REFCLK, "sclk_mphy_refclk", "dout_mphy_refclk",
+ GATE_BUS_TOP, 30, 0, 0),
+ GATE(CLK_ACLK_FIMC_LITE0, "aclk_fimc_lite0", "aclk333_432_gscl",
+ GATE_IP_GSCL0, 5, 0, 0),
+ GATE(CLK_ACLK_FIMC_LITE1, "aclk_fimc_lite1", "aclk333_432_gscl",
+ GATE_IP_GSCL0, 6, 0, 0),
+ GATE(CLK_PCLK_FIMC_LITE0, "pclk_fimc_lite0", "dout_gscl_blk_333",
+ GATE_IP_GSCL0, 10, 0, 0),
+ GATE(CLK_PCLK_FIMC_LITE1, "pclk_fimc_lite1", "dout_gscl_blk_333",
+ GATE_IP_GSCL0, 11, 0, 0),
+ GATE(CLK_PCLK_FIMC_LITE3, "pclk_fimc_lite3", "dout_gscl_blk_333",
+ GATE_BUS_GSCL0, 13, 0, 0),
+ /* g2d */
+ GATE(CLK_ACLK_G2D, "aclk_g2d", "aclk333_g2d",
+ GATE_BUS_G2D, 3, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PCLK_G2D, "pclk_g2d", "aclk266_g2d",
+ GATE_BUS_G2D, 19, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ACLK_SMMU_G2D, "aclk_smmu_g2d", "aclk333_g2d",
+ GATE_BUS_G2D, 7, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_G2D, "smmu_g2d", "aclk266_g2d",
+ GATE_BUS_G2D, 22, CLK_IGNORE_UNUSED, 0),
+ /* ISP */
+ GATE(CLK_SCLK_PWM_ISP, "sclk_pwm_isp", "dout_pwm_isp",
+ GATE_TOP_SCLK_ISP, 3, 0, 0),
+ GATE(CLK_SCLK_UART_ISP, "sclk_uart_isp", "dout_uart_isp",
+ GATE_TOP_SCLK_ISP, 0, 0, 0),
+ GATE(CLK_SCLK_SPI0_ISP, "sclk_spi0_isp", "dout_spi0_isp_pre",
+ GATE_TOP_SCLK_ISP, 1, 0, 0),
+ GATE(CLK_SCLK_SPI1_ISP, "sclk_spi1_isp", "dout_spi1_isp_pre",
+ GATE_TOP_SCLK_ISP, 2, 0, 0),
+ GATE(CLK_SCLK_ISP_SENSOR0, "sclk_isp_sensor0", "dout_isp_sensor0",
+ GATE_TOP_SCLK_ISP, 4, 0, 0),
+ GATE(CLK_SCLK_ISP_SENSOR1, "sclk_isp_sensor1", "dout_isp_sensor1",
+ GATE_TOP_SCLK_ISP, 8, 0, 0),
+ GATE(CLK_SCLK_ISP_SENSOR2, "sclk_isp_sensor2", "dout_isp_sensor2",
+ GATE_TOP_SCLK_ISP, 12, 0, 0),
/* SSS */
GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 6/7] clk: exynos5420: Add more registers to restore list
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
` (4 preceding siblings ...)
2014-03-27 11:07 ` [PATCH v2 5/7] clk: exynos5420: Add missing clocks Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 7/7] ARM: dts: update macros in clock bindings for exynos5420 Shaik Ameer Basha
6 siblings, 0 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
Some of the clock registers should retain their state during
system suspend/resume operation. This patch adds more clock
registers to this list.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/clk/samsung/clk-exynos5420.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 26ddf33..2067797 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -152,6 +152,13 @@ static unsigned long exynos5420_clk_regs[] __initdata = {
DIV_CPU1,
GATE_BUS_CPU,
GATE_SCLK_CPU,
+ CLKOUT_CMU_CPU,
+ EPLL_CON0,
+ EPLL_CON1,
+ EPLL_CON2,
+ RPLL_CON0,
+ RPLL_CON1,
+ RPLL_CON2,
SRC_TOP0,
SRC_TOP1,
SRC_TOP2,
@@ -172,6 +179,7 @@ static unsigned long exynos5420_clk_regs[] __initdata = {
SRC_MASK_FSYS,
SRC_MASK_PERIC0,
SRC_MASK_PERIC1,
+ SRC_ISP,
DIV_TOP0,
DIV_TOP1,
DIV_TOP2,
@@ -185,27 +193,44 @@ static unsigned long exynos5420_clk_regs[] __initdata = {
DIV_PERIC2,
DIV_PERIC3,
DIV_PERIC4,
+ SCLK_DIV_ISP0,
+ SCLK_DIV_ISP1,
+ DIV2_RATIO0,
+ DIV4_RATIO,
GATE_BUS_TOP,
+ GATE_BUS_GSCL0,
+ GATE_BUS_GSCL1,
+ GATE_BUS_DISP1,
+ GATE_BUS_MFC,
+ GATE_BUS_GEN,
GATE_BUS_FSYS0,
+ GATE_BUS_FSYS2,
+ GATE_BUS_MSCL,
GATE_BUS_PERIC,
GATE_BUS_PERIC1,
GATE_BUS_PERIS0,
GATE_BUS_PERIS1,
+ GATE_BUS_NOC,
+ GATE_TOP_SCLK_ISP,
GATE_IP_GSCL0,
GATE_IP_GSCL1,
GATE_IP_MFC,
GATE_IP_DISP1,
GATE_IP_G3D,
GATE_IP_GEN,
+ GATE_IP_FSYS,
+ GATE_IP_PERIC,
+ GATE_IP_PERIS,
GATE_IP_MSCL,
GATE_TOP_SCLK_GSCL,
GATE_TOP_SCLK_DISP1,
GATE_TOP_SCLK_MAU,
GATE_TOP_SCLK_FSYS,
GATE_TOP_SCLK_PERIC,
- SRC_CDREX,
+ TOP_SPARE2,
SRC_KFC,
DIV_KFC0,
+ SRC_MASK_TOP2,
};
static int exynos5420_clk_suspend(void)
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 7/7] ARM: dts: update macros in clock bindings for exynos5420
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
` (5 preceding siblings ...)
2014-03-27 11:07 ` [PATCH v2 6/7] clk: exynos5420: Add more registers to restore list Shaik Ameer Basha
@ 2014-03-27 11:07 ` Shaik Ameer Basha
[not found] ` <1395918470-16374-8-git-send-email-shaik.ameer-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
6 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-03-27 11:07 UTC (permalink / raw)
To: linux-samsung-soc, devicetree, linux-arm-kernel
Cc: mturquette, kgene.kim, tomasz.figa, joshi, shaik.samsung,
r.sh.open, Rahul Sharma, Shaik Ameer Basha
From: Rahul Sharma <rahul.sharma@samsung.com>
This patch updates the macros as per the latest changes and
replaces magic numbers with macros defined in DT header for
exynos5420.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
arch/arm/boot/dts/exynos5420.dtsi | 90 ++++++++++++++++++-------------------
1 file changed, 45 insertions(+), 45 deletions(-)
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 7c53ae9..2e60c80 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -129,7 +129,7 @@
compatible = "samsung,mfc-v7";
reg = <0x11000000 0x10000>;
interrupts = <0 96 0>;
- clocks = <&clock CLK_MFC>;
+ clocks = <&clock CLK_ACLK_MFC>;
clock-names = "mfc";
};
@@ -139,7 +139,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x12200000 0x2000>;
- clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
+ clocks = <&clock CLK_ACLK_MMC0>, <&clock CLK_SCLK_MMC0>;
clock-names = "biu", "ciu";
fifo-depth = <0x40>;
status = "disabled";
@@ -151,7 +151,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x12210000 0x2000>;
- clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
+ clocks = <&clock CLK_ACLK_MMC1>, <&clock CLK_SCLK_MMC1>;
clock-names = "biu", "ciu";
fifo-depth = <0x40>;
status = "disabled";
@@ -163,7 +163,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x12220000 0x1000>;
- clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
+ clocks = <&clock CLK_ACLK_MMC2>, <&clock CLK_SCLK_MMC2>;
clock-names = "biu", "ciu";
fifo-depth = <0x40>;
status = "disabled";
@@ -177,7 +177,7 @@
interrupt-parent = <&mct_map>;
interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>,
<8>, <9>, <10>, <11>;
- clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
+ clocks = <&clock CLK_FIN_PLL>, <&clock CLK_PCLK_MCT>;
clock-names = "fin_pll", "mct";
mct_map: mct-map {
@@ -271,7 +271,7 @@
};
rtc@101E0000 {
- clocks = <&clock CLK_RTC>;
+ clocks = <&clock CLK_PCLK_RTC>;
clock-names = "rtc";
status = "okay";
};
@@ -287,7 +287,7 @@
compatible = "arm,pl330", "arm,primecell";
reg = <0x121A0000 0x1000>;
interrupts = <0 34 0>;
- clocks = <&clock CLK_PDMA0>;
+ clocks = <&clock CLK_ACLK_PDMA0>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
@@ -298,7 +298,7 @@
compatible = "arm,pl330", "arm,primecell";
reg = <0x121B0000 0x1000>;
interrupts = <0 35 0>;
- clocks = <&clock CLK_PDMA1>;
+ clocks = <&clock CLK_ACLK_PDMA1>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
@@ -309,7 +309,7 @@
compatible = "arm,pl330", "arm,primecell";
reg = <0x10800000 0x1000>;
interrupts = <0 33 0>;
- clocks = <&clock CLK_MDMA0>;
+ clocks = <&clock CLK_ACLK_MDMA0>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
@@ -320,7 +320,7 @@
compatible = "arm,pl330", "arm,primecell";
reg = <0x11C10000 0x1000>;
interrupts = <0 124 0>;
- clocks = <&clock CLK_MDMA1>;
+ clocks = <&clock CLK_ACLK_MDMA1>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
@@ -351,7 +351,7 @@
dmas = <&pdma1 12
&pdma1 11>;
dma-names = "tx", "rx";
- clocks = <&clock CLK_I2S1>, <&clock CLK_SCLK_I2S1>;
+ clocks = <&clock CLK_PCLK_I2S1>, <&clock CLK_SCLK_I2S1>;
clock-names = "iis", "i2s_opclk0";
pinctrl-names = "default";
pinctrl-0 = <&i2s1_bus>;
@@ -364,7 +364,7 @@
dmas = <&pdma0 12
&pdma0 11>;
dma-names = "tx", "rx";
- clocks = <&clock CLK_I2S2>, <&clock CLK_SCLK_I2S2>;
+ clocks = <&clock CLK_PCLK_I2S2>, <&clock CLK_SCLK_I2S2>;
clock-names = "iis", "i2s_opclk0";
pinctrl-names = "default";
pinctrl-0 = <&i2s2_bus>;
@@ -382,7 +382,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&spi0_bus>;
- clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
+ clocks = <&clock CLK_PCLK_SPI0>, <&clock CLK_SCLK_SPI0>;
clock-names = "spi", "spi_busclk0";
status = "disabled";
};
@@ -398,7 +398,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&spi1_bus>;
- clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
+ clocks = <&clock CLK_PCLK_SPI1>, <&clock CLK_SCLK_SPI1>;
clock-names = "spi", "spi_busclk0";
status = "disabled";
};
@@ -414,28 +414,28 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&spi2_bus>;
- clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
+ clocks = <&clock CLK_PCLK_SPI2>, <&clock CLK_SCLK_SPI2>;
clock-names = "spi", "spi_busclk0";
status = "disabled";
};
serial@12C00000 {
- clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
+ clocks = <&clock CLK_PCLK_UART0>, <&clock CLK_SCLK_UART0>;
clock-names = "uart", "clk_uart_baud0";
};
serial@12C10000 {
- clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
+ clocks = <&clock CLK_PCLK_UART1>, <&clock CLK_SCLK_UART1>;
clock-names = "uart", "clk_uart_baud0";
};
serial@12C20000 {
- clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
+ clocks = <&clock CLK_PCLK_UART2>, <&clock CLK_SCLK_UART2>;
clock-names = "uart", "clk_uart_baud0";
};
serial@12C30000 {
- clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
+ clocks = <&clock CLK_PCLK_UART3>, <&clock CLK_SCLK_UART3>;
clock-names = "uart", "clk_uart_baud0";
};
@@ -444,7 +444,7 @@
reg = <0x12dd0000 0x100>;
samsung,pwm-outputs = <0>, <1>, <2>, <3>;
#pwm-cells = <3>;
- clocks = <&clock CLK_PWM>;
+ clocks = <&clock CLK_PCLK_PWM>;
clock-names = "timers";
};
@@ -455,7 +455,7 @@
};
dp-controller@145B0000 {
- clocks = <&clock CLK_DP1>;
+ clocks = <&clock CLK_PCLK_DP1>;
clock-names = "dp";
phys = <&dp_phy>;
phy-names = "dp";
@@ -463,7 +463,7 @@
fimd@14400000 {
samsung,power-domain = <&disp_pd>;
- clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
+ clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_ACLK_FIMD1>;
clock-names = "sclk_fimd", "fimd";
};
@@ -471,7 +471,7 @@
compatible = "samsung,exynos-adc-v2";
reg = <0x12D10000 0x100>, <0x10040720 0x4>;
interrupts = <0 106 0>;
- clocks = <&clock CLK_TSADC>;
+ clocks = <&clock CLK_PCLK_TSADC>;
clock-names = "adc";
#io-channel-cells = <1>;
io-channel-ranges;
@@ -484,7 +484,7 @@
interrupts = <0 56 0>;
#address-cells = <1>;
#size-cells = <0>;
- clocks = <&clock CLK_I2C0>;
+ clocks = <&clock CLK_PCLK_I2C0>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c0_bus>;
@@ -497,7 +497,7 @@
interrupts = <0 57 0>;
#address-cells = <1>;
#size-cells = <0>;
- clocks = <&clock CLK_I2C1>;
+ clocks = <&clock CLK_PCLK_I2C1>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c1_bus>;
@@ -510,7 +510,7 @@
interrupts = <0 58 0>;
#address-cells = <1>;
#size-cells = <0>;
- clocks = <&clock CLK_I2C2>;
+ clocks = <&clock CLK_PCLK_I2C2>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c2_bus>;
@@ -523,7 +523,7 @@
interrupts = <0 59 0>;
#address-cells = <1>;
#size-cells = <0>;
- clocks = <&clock CLK_I2C3>;
+ clocks = <&clock CLK_PCLK_I2C3>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c3_bus>;
@@ -538,7 +538,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c4_hs_bus>;
- clocks = <&clock CLK_I2C4>;
+ clocks = <&clock CLK_PCLK_USI0>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -551,7 +551,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c5_hs_bus>;
- clocks = <&clock CLK_I2C5>;
+ clocks = <&clock CLK_PCLK_USI1>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -564,7 +564,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c6_hs_bus>;
- clocks = <&clock CLK_I2C6>;
+ clocks = <&clock CLK_PCLK_USI2>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -577,7 +577,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c7_hs_bus>;
- clocks = <&clock CLK_I2C7>;
+ clocks = <&clock CLK_PCLK_USI3>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -590,7 +590,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c8_hs_bus>;
- clocks = <&clock CLK_I2C8>;
+ clocks = <&clock CLK_PCLK_USI4>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -603,7 +603,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c9_hs_bus>;
- clocks = <&clock CLK_I2C9>;
+ clocks = <&clock CLK_PCLK_USI5>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -616,7 +616,7 @@
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c10_hs_bus>;
- clocks = <&clock CLK_I2C10>;
+ clocks = <&clock CLK_PCLK_USI6>;
clock-names = "hsi2c";
status = "disabled";
};
@@ -625,7 +625,7 @@
compatible = "samsung,exynos4212-hdmi";
reg = <0x14530000 0x70000>;
interrupts = <0 95 0>;
- clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
+ clocks = <&clock CLK_PCLK_HDMI>, <&clock CLK_SCLK_HDMI>,
<&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
<&clock CLK_MOUT_HDMI>;
clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
@@ -637,7 +637,7 @@
compatible = "samsung,exynos5420-mixer";
reg = <0x14450000 0x10000>;
interrupts = <0 94 0>;
- clocks = <&clock CLK_MIXER>, <&clock CLK_SCLK_HDMI>;
+ clocks = <&clock CLK_ACLK_MIXER>, <&clock CLK_SCLK_HDMI>;
clock-names = "mixer", "sclk_hdmi";
};
@@ -645,7 +645,7 @@
compatible = "samsung,exynos5-gsc";
reg = <0x13e00000 0x1000>;
interrupts = <0 85 0>;
- clocks = <&clock CLK_GSCL0>;
+ clocks = <&clock CLK_ACLK_GSCL0>;
clock-names = "gscl";
samsung,power-domain = <&gsc_pd>;
};
@@ -654,7 +654,7 @@
compatible = "samsung,exynos5-gsc";
reg = <0x13e10000 0x1000>;
interrupts = <0 86 0>;
- clocks = <&clock CLK_GSCL1>;
+ clocks = <&clock CLK_ACLK_GSCL1>;
clock-names = "gscl";
samsung,power-domain = <&gsc_pd>;
};
@@ -668,7 +668,7 @@
compatible = "samsung,exynos5420-tmu";
reg = <0x10060000 0x100>;
interrupts = <0 65 0>;
- clocks = <&clock CLK_TMU>;
+ clocks = <&clock CLK_PCLK_TMU>;
clock-names = "tmu_apbif";
};
@@ -676,7 +676,7 @@
compatible = "samsung,exynos5420-tmu";
reg = <0x10064000 0x100>;
interrupts = <0 183 0>;
- clocks = <&clock CLK_TMU>;
+ clocks = <&clock CLK_PCLK_TMU>;
clock-names = "tmu_apbif";
};
@@ -684,7 +684,7 @@
compatible = "samsung,exynos5420-tmu-ext-triminfo";
reg = <0x10068000 0x100>, <0x1006c000 0x4>;
interrupts = <0 184 0>;
- clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
+ clocks = <&clock CLK_PCLK_TMU>, <&clock CLK_PCLK_TMU>;
clock-names = "tmu_apbif", "tmu_triminfo_apbif";
};
@@ -692,7 +692,7 @@
compatible = "samsung,exynos5420-tmu-ext-triminfo";
reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
interrupts = <0 185 0>;
- clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
+ clocks = <&clock CLK_PCLK_TMU>, <&clock CLK_PCLK_TMU_GPU>;
clock-names = "tmu_apbif", "tmu_triminfo_apbif";
};
@@ -700,7 +700,7 @@
compatible = "samsung,exynos5420-tmu-ext-triminfo";
reg = <0x100a0000 0x100>, <0x10068000 0x4>;
interrupts = <0 215 0>;
- clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
+ clocks = <&clock CLK_PCLK_TMU_GPU>, <&clock CLK_PCLK_TMU>;
clock-names = "tmu_apbif", "tmu_triminfo_apbif";
};
@@ -708,7 +708,7 @@
compatible = "samsung,exynos5420-wdt";
reg = <0x101D0000 0x100>;
interrupts = <0 42 0>;
- clocks = <&clock CLK_WDT>;
+ clocks = <&clock CLK_PCLK_WDT>;
clock-names = "watchdog";
samsung,syscon-phandle = <&pmu_system_controller>;
};
@@ -717,7 +717,7 @@
compatible = "samsung,exynos4210-secss";
reg = <0x10830000 0x10000>;
interrupts = <0 112 0>;
- clocks = <&clock 471>;
+ clocks = <&clock CLK_ACLK_SSS>;
clock-names = "secss";
samsung,power-domain = <&g2d_pd>;
};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-03-27 11:07 ` [PATCH v2 3/7] clk: exynos5420: Rename " Shaik Ameer Basha
@ 2014-03-27 19:49 ` Gerhard Sittig
2014-04-01 4:42 ` Shaik Ameer Basha
2014-04-15 17:03 ` Tomasz Figa
1 sibling, 1 reply; 20+ messages in thread
From: Gerhard Sittig @ 2014-03-27 19:49 UTC (permalink / raw)
To: Shaik Ameer Basha
Cc: linux-samsung-soc, devicetree, linux-arm-kernel, mturquette,
kgene.kim, tomasz.figa, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
On Thu, 2014-03-27 at 16:37 +0530, Shaik Ameer Basha wrote:
>
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> This patch renames the clock IDs used for the DT bindings as
> per Exynos5420 datasheet.
>
> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
> ---
> drivers/clk/samsung/clk-exynos5420.c | 162 +++++++++++++++++---------------
> include/dt-bindings/clock/exynos5420.h | 138 +++++++++++++--------------
> 2 files changed, 154 insertions(+), 146 deletions(-)
does this break bisection when you rename symbolic identifiers in
their declaration yet don't update references at the users?
virtually yours
Gerhard Sittig
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-03-27 19:49 ` Gerhard Sittig
@ 2014-04-01 4:42 ` Shaik Ameer Basha
2014-04-01 4:44 ` Shaik Ameer Basha
0 siblings, 1 reply; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-04-01 4:42 UTC (permalink / raw)
To: Gerhard Sittig
Cc: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel, mturquette, Kukjin Kim, tomasz.figa,
sunil joshi, Rahul Sharma, Rahul Sharma
On Fri, Mar 28, 2014 at 1:19 AM, Gerhard Sittig <gsi@denx.de> wrote:
> On Thu, 2014-03-27 at 16:37 +0530, Shaik Ameer Basha wrote:
>>
>> From: Rahul Sharma <rahul.sharma@samsung.com>
>>
>> This patch renames the clock IDs used for the DT bindings as
>> per Exynos5420 datasheet.
>>
>> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
>> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
>> ---
>> drivers/clk/samsung/clk-exynos5420.c | 162 +++++++++++++++++---------------
>> include/dt-bindings/clock/exynos5420.h | 138 +++++++++++++--------------
>> 2 files changed, 154 insertions(+), 146 deletions(-)
>
> does this break bisection when you rename symbolic identifiers in
> their declaration yet don't update references at the users?
Hi Gerhard,
Thanks for the review.
You are right. Actually I check for bisect build when I rebased to
linux-next and samsung-clk (of tomasz figa) branches.
I didn't check for bisect build after rebased to following patch.
ARM: dts: use macros in clock bindings for exynos5420
>
>
> virtually yours
> Gerhard Sittig
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-04-01 4:42 ` Shaik Ameer Basha
@ 2014-04-01 4:44 ` Shaik Ameer Basha
0 siblings, 0 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-04-01 4:44 UTC (permalink / raw)
To: Gerhard Sittig
Cc: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel, mturquette, Kukjin Kim, tomasz.figa,
sunil joshi, Rahul Sharma, Rahul Sharma
On Tue, Apr 1, 2014 at 10:12 AM, Shaik Ameer Basha
<shaik.samsung@gmail.com> wrote:
> On Fri, Mar 28, 2014 at 1:19 AM, Gerhard Sittig <gsi@denx.de> wrote:
>> On Thu, 2014-03-27 at 16:37 +0530, Shaik Ameer Basha wrote:
>>>
>>> From: Rahul Sharma <rahul.sharma@samsung.com>
>>>
>>> This patch renames the clock IDs used for the DT bindings as
>>> per Exynos5420 datasheet.
>>>
>>> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
>>> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
>>> ---
>>> drivers/clk/samsung/clk-exynos5420.c | 162 +++++++++++++++++---------------
>>> include/dt-bindings/clock/exynos5420.h | 138 +++++++++++++--------------
>>> 2 files changed, 154 insertions(+), 146 deletions(-)
>>
>> does this break bisection when you rename symbolic identifiers in
>> their declaration yet don't update references at the users?
>
> Hi Gerhard,
>
> Thanks for the review.
> You are right. Actually I check for bisect build when I rebased to
> linux-next and samsung-clk (of tomasz figa) branches.
>
> I didn't check for bisect build after rebased to following patch.
> ARM: dts: use macros in clock bindings for exynos5420
>
Will fix this in the next version of patch series.
Regards,
Shaik Ameer Basha
>>
>>
>> virtually yours
>> Gerhard Sittig
>> --
>> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
>> HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
>> Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets
2014-03-27 11:07 ` [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets Shaik Ameer Basha
@ 2014-04-15 16:45 ` Tomasz Figa
2014-04-20 7:27 ` Shaik Ameer Basha
0 siblings, 1 reply; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 16:45 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel
Cc: mturquette, kgene.kim, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> This patch adds the missing clock register offsets for Exynos5420.
>
> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
> ---
> drivers/clk/samsung/clk-exynos5420.c | 29 ++++++++++++++++++++++++++++-
> 1 file changed, 28 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
> index 13f624d..3d0fb77 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -27,6 +27,9 @@
> #define DIV_CPU1 0x504
> #define GATE_BUS_CPU 0x700
> #define GATE_SCLK_CPU 0x800
> +#define CLKOUT_CMU_CPU 0xa00
> +#define DIV_G2D 0x8500
> +#define GATE_BUS_G2D 0x8700
> #define GATE_IP_G2D 0x8800
> #define CPLL_LOCK 0x10020
> #define DPLL_LOCK 0x10030
> @@ -39,7 +42,11 @@
> #define CPLL_CON0 0x10120
> #define DPLL_CON0 0x10128
> #define EPLL_CON0 0x10130
> +#define EPLL_CON1 0x10134
> +#define EPLL_CON2 0x10138
> #define RPLL_CON0 0x10140
> +#define RPLL_CON1 0x10144
> +#define RPLL_CON2 0x10148
> #define IPLL_CON0 0x10150
> #define SPLL_CON0 0x10160
> #define VPLL_CON0 0x10170
> @@ -57,10 +64,13 @@
> #define SRC_FSYS 0x10244
> #define SRC_PERIC0 0x10250
> #define SRC_PERIC1 0x10254
> +#define SRC_ISP 0x10270
> #define SRC_TOP10 0x10280
> #define SRC_TOP11 0x10284
> #define SRC_TOP12 0x10288
> -#define SRC_MASK_DISP10 0x1032c
> +#define SRC_MASK_TOP2 0x10308
> +#define SRC_MASK_DISP10 0x1032c
> +#define SRC_MASK_MAU 0x10334
> #define SRC_MASK_FSYS 0x10340
> #define SRC_MASK_PERIC0 0x10350
> #define SRC_MASK_PERIC1 0x10354
> @@ -77,24 +87,41 @@
> #define DIV_PERIC2 0x10560
> #define DIV_PERIC3 0x10564
> #define DIV_PERIC4 0x10568
> +#define SCLK_DIV_ISP0 0x10580
> +#define SCLK_DIV_ISP1 0x10584
> +#define DIV2_RATIO0 0x10590
> +#define DIV4_RATIO 0x105a0
> #define GATE_BUS_TOP 0x10700
> +#define GATE_BUS_GSCL0 0x10710
> +#define GATE_BUS_GSCL1 0x10720
> +#define GATE_BUS_DISP1 0x10728
> +#define GATE_BUS_MFC 0x10734
> +#define GATE_BUS_GEN 0x1073c
> #define GATE_BUS_FSYS0 0x10740
> +#define GATE_BUS_FSYS2 0x10748
> +#define GATE_BUS_MSCL 0x1074C
> #define GATE_BUS_PERIC 0x10750
> #define GATE_BUS_PERIC1 0x10754
> #define GATE_BUS_PERIS0 0x10760
> #define GATE_BUS_PERIS1 0x10764
> +#define GATE_BUS_NOC 0x10770
> +#define GATE_TOP_SCLK_ISP 0x10870
> #define GATE_IP_GSCL0 0x10910
> #define GATE_IP_GSCL1 0x10920
> #define GATE_IP_MFC 0x1092c
> #define GATE_IP_DISP1 0x10928
> #define GATE_IP_G3D 0x10930
> #define GATE_IP_GEN 0x10934
> +#define GATE_IP_FSYS 0x10944
> +#define GATE_IP_PERIC 0x10950
> +#define GATE_IP_PERIS 0x10960
> #define GATE_IP_MSCL 0x10970
> #define GATE_TOP_SCLK_GSCL 0x10820
> #define GATE_TOP_SCLK_DISP1 0x10828
> #define GATE_TOP_SCLK_MAU 0x1083c
> #define GATE_TOP_SCLK_FSYS 0x10840
> #define GATE_TOP_SCLK_PERIC 0x10850
> +#define TOP_SPARE2 0x10b08
> #define BPLL_LOCK 0x20010
> #define BPLL_CON0 0x20110
> #define SRC_CDREX 0x20200
>
From this patch, it's hard to tell what is the use for those registers.
I think they should be added along with definitions that need them.
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 2/7] clk: exynos5420: Add more clock IDs
2014-03-27 11:07 ` [PATCH v2 2/7] clk: exynos5420: Add more clock IDs Shaik Ameer Basha
@ 2014-04-15 16:50 ` Tomasz Figa
2014-04-20 7:30 ` Shaik Ameer Basha
0 siblings, 1 reply; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 16:50 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel
Cc: mturquette, kgene.kim, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> Add more clock IDs to be used in DT bindings for Exynos5420.
>
> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
> ---
> include/dt-bindings/clock/exynos5420.h | 62 ++++++++++++++++++++++++++++++--
> 1 file changed, 60 insertions(+), 2 deletions(-)
>
> diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
> index 5eefd88..e921913 100644
> --- a/include/dt-bindings/clock/exynos5420.h
> +++ b/include/dt-bindings/clock/exynos5420.h
> @@ -58,6 +58,16 @@
> #define CLK_SCLK_GSCL_WA 156
> #define CLK_SCLK_GSCL_WB 157
> #define CLK_SCLK_HDMIPHY 158
> +#define CLK_SCLK_MPHY_REFCLK 159
> +#define CLK_SCLK_SPI0_ISP 160
> +#define CLK_SCLK_SPI1_ISP 161
> +#define CLK_SCLK_UART_ISP 162
> +#define CLK_SCLK_ISP_SENSOR0 163
> +#define CLK_SCLK_ISP_SENSOR1 164
> +#define CLK_SCLK_ISP_SENSOR2 165
> +#define CLK_SCLK_PWM_ISP 166
> +#define CLK_SCLK_HSIC_12M 167
> +#define CLK_SCLK_MPHY_IXTAL24 168
>
> /* gate clocks */
> #define CLK_ACLK66_PERIC 256
> @@ -123,6 +133,7 @@
> #define CLK_USBH20 365
> #define CLK_USBD300 366
> #define CLK_USBD301 367
> +#define CLK_PCLK200_FSYS 370
> #define CLK_ACLK400_MSCL 380
> #define CLK_MSCL0 381
> #define CLK_MSCL1 382
> @@ -141,6 +152,8 @@
> #define CLK_ACLK300_DISP1 420
> #define CLK_FIMD1 421
> #define CLK_SMMU_FIMD1 422
> +#define CLK_SMMU_FIMD1M1 423
> +#define CLK_ACLK400_DISP1 424
> #define CLK_ACLK166 430
> #define CLK_MIXER 431
> #define CLK_ACLK266 440
> @@ -172,12 +185,57 @@
> #define CLK_SMMU_FIMCL1 493
> #define CLK_SMMU_FIMCL3 494
> #define CLK_FIMC_LITE3 495
> -#define CLK_ACLK_G3D 500
> -#define CLK_G3D 501
> +#define CLK_G3D 500
What is the reason for this ID change? Even if CLK_ACLK_G3D is removed,
as it wasn't even referenced by the driver, original clock IDs should
remain fixed.
> #define CLK_SMMU_MIXER 502
> +#define CLK_PCLK_TZPC10 503
> +#define CLK_PCLK_TZPC11 504
> +#define CLK_PCLK_MC 505
> +#define CLK_PCLK_TOP_RTC 506
> +#define CLK_SMMU_JPEG2 507
> +#define CLK_PCLK_ROTATOR 508
> +#define CLK_SMMU_RTIC 509
> +#define CLK_PCLK_G2D 510
> +#define CLK_ACLK_SMMU_G2D 511
> +#define CLK_SMMU_G2D 512
> +#define CLK_ACLK_SMMU_MDMA0 513
> +#define CLK_SMMU_MDMA0 514
> +#define CLK_ACLK_SMMU_SSS 515
> +#define CLK_SMMU_SSS 516
> +#define CLK_SMMU_SLIM_SSS 517
> +#define CLK_ACLK_SMMU_SLIM_SSS 518
> +#define CLK_ACLK266_ISP 519
> +#define CLK_ACLK400_ISP 520
> +#define CLK_ACLK333_432_ISP0 521
> +#define CLK_ACLK333_432_ISP 522
> +#define CLK_ACLK_SMMU_MIXER 523
> +#define CLK_PCLK_HDMIPHY 524
> +#define CLK_PCLK_GSCL0 525
> +#define CLK_PCLK_GSCL1 526
> +#define CLK_PCLK_FIMC_3AA 527
> +#define CLK_ACLK_FIMC_LITE0 528
> +#define CLK_ACLK_FIMC_LITE1 529
> +#define CLK_PCLK_FIMC_LITE0 530
> +#define CLK_PCLK_FIMC_LITE1 531
> +#define CLK_PCLK_FIMC_LITE3 532
> +#define CLK_PCLK_MSCL0 533
> +#define CLK_PCLK_MSCL1 534
> +#define CLK_PCLK_MSCL2 535
> +#define CLK_PCLK_MFC 536
>
> /* mux clocks */
> #define CLK_MOUT_HDMI 640
> +#define CLK_MOUT_FIMD1 641
> +#define CLK_MOUT_MAUDIO0 642
> +#define CLK_MOUT_SPI0 643
> +#define CLK_MOUT_SPI1 644
> +#define CLK_MOUT_SPI2 645
> +#define CLK_MOUT_SW_ACLK333 646
> +#define CLK_MOUT_USER_ACLK333 647
> +#define CLK_MOUT_SW_ACLK300_GSCL 648
> +#define CLK_MOUT_USER_ACLK300_GSCL 649
> +#define CLK_MOUT_SW_ACLK333_432_GSCL 650
> +#define CLK_MOUT_USER_ACLK333_432_GSCL 651
> +#define CLK_MOUT_G3D 652
>
> /* divider clocks */
> #define CLK_DOUT_PIXEL 768
>
Also similar comment as for patch 1/7, it's hard to tell why this change
is needed at all.
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-03-27 11:07 ` [PATCH v2 3/7] clk: exynos5420: Rename " Shaik Ameer Basha
2014-03-27 19:49 ` Gerhard Sittig
@ 2014-04-15 17:03 ` Tomasz Figa
2014-04-20 8:32 ` Shaik Ameer Basha
1 sibling, 1 reply; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 17:03 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel
Cc: mturquette, kgene.kim, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> This patch renames the clock IDs used for the DT bindings as
> per Exynos5420 datasheet.
>
> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
> ---
> drivers/clk/samsung/clk-exynos5420.c | 162 +++++++++++++++++---------------
> include/dt-bindings/clock/exynos5420.h | 138 +++++++++++++--------------
> 2 files changed, 154 insertions(+), 146 deletions(-)
>
> diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
> index 3d0fb77..1402554 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -544,8 +544,8 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
>
> static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> /* TODO: Re-verify the CG bits for all the gate clocks */
> - GATE_A(CLK_MCT, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0, 0,
> - "mct"),
> + GATE_A(CLK_PCLK_MCT, "pclk_st", "aclk66_psgen",
> + GATE_BUS_PERIS1, 2, 0, 0, "mct"),
Clock IDs should generally match clock names, while this one obviously
does not. Either you should update both, or... (see below)
>
> GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys",
> GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0),
> @@ -643,83 +643,90 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> GATE_TOP_SCLK_MAU, 1, CLK_SET_RATE_PARENT, 0),
> /* FSYS */
> GATE(CLK_TSI, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0),
> - GATE(CLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
> - GATE(CLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
> + GATE(CLK_ACLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
> + GATE(CLK_ACLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
> GATE(CLK_UFS, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0),
> - GATE(CLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
> - GATE(CLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
> - GATE(CLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
> - GATE(CLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
> - GATE(CLK_SROMC, "sromc", "aclk200_fsys2",
> + GATE(CLK_ACLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
> + GATE(CLK_ACLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
> + GATE(CLK_ACLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
> + GATE(CLK_ACLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
> + GATE(CLK_HCLK_SROMC, "sromc", "aclk200_fsys2",
> GATE_BUS_FSYS0, 19, CLK_IGNORE_UNUSED, 0),
> - GATE(CLK_USBH20, "usbh20", "aclk200_fsys", GATE_BUS_FSYS0, 20, 0, 0),
> - GATE(CLK_USBD300, "usbd300", "aclk200_fsys", GATE_BUS_FSYS0, 21, 0, 0),
> - GATE(CLK_USBD301, "usbd301", "aclk200_fsys", GATE_BUS_FSYS0, 28, 0, 0),
> + GATE(CLK_HCLK_USBH20, "usbh20", "aclk200_fsys",
> + GATE_BUS_FSYS0, 20, 0, 0),
> + GATE(CLK_HCLK_USBD300, "usbd300", "aclk200_fsys",
> + GATE_BUS_FSYS0, 21, 0, 0),
> + GATE(CLK_HCLK_USBD301, "usbd301", "aclk200_fsys",
> + GATE_BUS_FSYS0, 28, 0, 0),
>
> /* UART */
> - GATE(CLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
> - GATE(CLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
> - GATE_A(CLK_UART2, "uart2", "aclk66_peric",
> + GATE(CLK_PCLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
> + GATE(CLK_PCLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
> + GATE_A(CLK_PCLK_UART2, "uart2", "aclk66_peric",
> GATE_BUS_PERIC, 6, CLK_IGNORE_UNUSED, 0, "uart2"),
> - GATE(CLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
> + GATE(CLK_PCLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
> /* I2C */
> - GATE(CLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
> - GATE(CLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
> - GATE(CLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
> - GATE(CLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
> - GATE(CLK_I2C4, "i2c4", "aclk66_peric", GATE_BUS_PERIC, 13, 0, 0),
> - GATE(CLK_I2C5, "i2c5", "aclk66_peric", GATE_BUS_PERIC, 14, 0, 0),
> - GATE(CLK_I2C6, "i2c6", "aclk66_peric", GATE_BUS_PERIC, 15, 0, 0),
> - GATE(CLK_I2C7, "i2c7", "aclk66_peric", GATE_BUS_PERIC, 16, 0, 0),
> - GATE(CLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric", GATE_BUS_PERIC, 17, 0,
> - 0),
> - GATE(CLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0),
> + GATE(CLK_PCLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
> + GATE(CLK_PCLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
> + GATE(CLK_PCLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
> + GATE(CLK_PCLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
> + GATE(CLK_PCLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric",
> + GATE_BUS_PERIC, 17, 0, 0),
> + GATE(CLK_PCLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0, 0),
> /* SPI */
> - GATE(CLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
> - GATE(CLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
> - GATE(CLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
> + GATE(CLK_PCLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
> + GATE(CLK_PCLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
> + GATE(CLK_PCLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
> GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0),
> /* I2S */
> - GATE(CLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
> - GATE(CLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
> + GATE(CLK_PCLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
> + GATE(CLK_PCLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
> /* PCM */
> - GATE(CLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
> - GATE(CLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
> + GATE(CLK_PCLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
> + GATE(CLK_PCLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
> /* PWM */
> - GATE(CLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
> + GATE(CLK_PCLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
> /* SPDIF */
> - GATE(CLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0),
> -
> - GATE(CLK_I2C8, "i2c8", "aclk66_peric", GATE_BUS_PERIC1, 0, 0, 0),
> - GATE(CLK_I2C9, "i2c9", "aclk66_peric", GATE_BUS_PERIC1, 1, 0, 0),
> - GATE(CLK_I2C10, "i2c10", "aclk66_peric", GATE_BUS_PERIC1, 2, 0, 0),
> + GATE(CLK_PCLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0, 0),
>
> - GATE(CLK_CHIPID, "chipid", "aclk66_psgen",
> + GATE(CLK_PCLK_CHIPID, "chipid", "aclk66_psgen",
> GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0),
> - GATE(CLK_SYSREG, "sysreg", "aclk66_psgen",
> + GATE(CLK_PCLK_SYSREG, "sysreg", "aclk66_psgen",
> GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0),
> - GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0, 0),
> - GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0, 0),
> - GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0, 0),
> - GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0, 0),
> - GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0, 0),
> - GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0, 0),
> - GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0, 0),
> - GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0, 0),
> - GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0, 0),
> - GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0, 0),
> + GATE(CLK_PCLK_TZPC0, "tzpc0", "aclk66_psgen",
> + GATE_BUS_PERIS0, 18, 0, 0),
> + GATE(CLK_PCLK_TZPC1, "tzpc1", "aclk66_psgen",
> + GATE_BUS_PERIS0, 19, 0, 0),
> + GATE(CLK_PCLK_TZPC2, "tzpc2", "aclk66_psgen",
> + GATE_BUS_PERIS0, 20, 0, 0),
> + GATE(CLK_PCLK_TZPC3, "tzpc3", "aclk66_psgen",
> + GATE_BUS_PERIS0, 21, 0, 0),
> + GATE(CLK_PCLK_TZPC4, "tzpc4", "aclk66_psgen",
> + GATE_BUS_PERIS0, 22, 0, 0),
> + GATE(CLK_PCLK_TZPC5, "tzpc5", "aclk66_psgen",
> + GATE_BUS_PERIS0, 23, 0, 0),
> + GATE(CLK_PCLK_TZPC6, "tzpc6", "aclk66_psgen",
> + GATE_BUS_PERIS0, 24, 0, 0),
> + GATE(CLK_PCLK_TZPC7, "tzpc7", "aclk66_psgen",
> + GATE_BUS_PERIS0, 25, 0, 0),
> + GATE(CLK_PCLK_TZPC8, "tzpc8", "aclk66_psgen",
> + GATE_BUS_PERIS0, 26, 0, 0),
> + GATE(CLK_PCLK_TZPC9, "tzpc9", "aclk66_psgen",
> + GATE_BUS_PERIS0, 27, 0, 0),
>
> GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0,
> 0),
> GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0),
> - GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
> - GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
> - GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
> - GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0),
> + GATE(CLK_PCLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
> + GATE(CLK_PCLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
> + GATE(CLK_PCLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
> + GATE(CLK_PCLK_TMU_GPU, "tmu_gpu", "aclk66_psgen",
> + GATE_BUS_PERIS1, 6, 0, 0),
>
I'm starting to suspect that there is something wrong with this driver.
Why does it use GATE_BUS_* registers? I believe they provide too fine
grained control over clocks to suit expectations of our drivers, which
usually need one "bus clock" gate and optionally one "special clock" gate.
The problem with GATE_BUS_* bits is that they provide control over every
single clock of over single IP and each IP can have multiple bus clocks
(e.g. ACLK, PCLK, HCLK, etc.). Gating or ungating one is not enough to
either properly save power or make the device operable. That's why all
previous SoCs (Exynos4, Exynos5250) simply used GATE_IP_* registers that
provide per IP control which matches what our drivers use.
I need to verify this further in datasheet (as soon as I get access to
one...), but I suspect this is plain wrong.
Now, one side effect of using GATE_IP_* registers will be no need to add
*CLK_ prefix to clock IDs as they would be simply gating the IPs, not
their particular clocks.
> - GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
> - GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
> - GATE(CLK_CLK_3AA, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0, 0),
> + GATE(CLK_ACLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
> + GATE(CLK_ACLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
> + GATE(CLK_ACLK_FIMC_3AA, "clk_3aa", "aclk300_gscl",
> + GATE_IP_GSCL0, 4, 0, 0),
>
> GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0,
> 0),
> @@ -731,38 +738,39 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> 0),
> GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0,
> 0),
> - GATE(CLK_GSCL_WA, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0, 0),
> + GATE(CLK_PCLK_GSCL_WA, "gscl_wa", "aclk300_gscl",
> + GATE_IP_GSCL1, 12, 0, 0),
> GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0),
> GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl",
> GATE_IP_GSCL1, 16, 0, 0),
> - GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
> + GATE(CLK_ACLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
> GATE_IP_GSCL1, 17, 0, 0),
>
> - GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
> - GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
> - GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
> - GATE(CLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
> - GATE(CLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
> - GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0,
> - 0),
> + GATE(CLK_ACLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
> + GATE(CLK_PCLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
> + GATE(CLK_PCLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
> + GATE(CLK_ACLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
> + GATE(CLK_PCLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
> + GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1", "aclk300_disp1",
> + GATE_IP_DISP1, 8, 0, 0),
>
> - GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
> + GATE(CLK_ACLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
> GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0),
> GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0),
>
> GATE(CLK_G3D, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0),
>
> - GATE(CLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
> - GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
> - GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
> - GATE(CLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
> + GATE(CLK_ACLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
> + GATE(CLK_ACLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
> + GATE(CLK_ACLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
> + GATE(CLK_ACLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
> GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0),
> GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0),
> GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0),
>
> - GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
> - GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
> - GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
> + GATE(CLK_ACLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
> + GATE(CLK_ACLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
> + GATE(CLK_ACLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
> GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0,
> 0),
> GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0,
> @@ -773,7 +781,7 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> 0),
>
> /* SSS */
> - GATE(CLK_SSS, "sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
> + GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
> };
>
> static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = {
> diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h
> index e921913..598eb48 100644
> --- a/include/dt-bindings/clock/exynos5420.h
> +++ b/include/dt-bindings/clock/exynos5420.h
> @@ -71,120 +71,120 @@
>
> /* gate clocks */
> #define CLK_ACLK66_PERIC 256
> -#define CLK_UART0 257
> -#define CLK_UART1 258
> -#define CLK_UART2 259
> -#define CLK_UART3 260
> -#define CLK_I2C0 261
> -#define CLK_I2C1 262
> -#define CLK_I2C2 263
> -#define CLK_I2C3 264
> +#define CLK_PCLK_UART0 257
> +#define CLK_PCLK_UART1 258
> +#define CLK_PCLK_UART2 259
> +#define CLK_PCLK_UART3 260
> +#define CLK_PCLK_I2C0 261
> +#define CLK_PCLK_I2C1 262
> +#define CLK_PCLK_I2C2 263
> +#define CLK_PCLK_I2C3 264
> #define CLK_I2C4 265
> #define CLK_I2C5 266
> #define CLK_I2C6 267
> #define CLK_I2C7 268
> -#define CLK_I2C_HDMI 269
> -#define CLK_TSADC 270
> -#define CLK_SPI0 271
> -#define CLK_SPI1 272
> -#define CLK_SPI2 273
> +#define CLK_PCLK_I2C_HDMI 269
> +#define CLK_PCLK_TSADC 270
> +#define CLK_PCLK_SPI0 271
> +#define CLK_PCLK_SPI1 272
> +#define CLK_PCLK_SPI2 273
> #define CLK_KEYIF 274
> -#define CLK_I2S1 275
> -#define CLK_I2S2 276
> -#define CLK_PCM1 277
> -#define CLK_PCM2 278
> -#define CLK_PWM 279
> -#define CLK_SPDIF 280
> +#define CLK_PCLK_I2S1 275
> +#define CLK_PCLK_I2S2 276
> +#define CLK_PCLK_PCM1 277
> +#define CLK_PCLK_PCM2 278
> +#define CLK_PCLK_PWM 279
> +#define CLK_PCLK_SPDIF 280
> #define CLK_I2C8 281
> #define CLK_I2C9 282
> #define CLK_I2C10 283
> #define CLK_ACLK66_PSGEN 300
> -#define CLK_CHIPID 301
> -#define CLK_SYSREG 302
> -#define CLK_TZPC0 303
> -#define CLK_TZPC1 304
> -#define CLK_TZPC2 305
> -#define CLK_TZPC3 306
> -#define CLK_TZPC4 307
> -#define CLK_TZPC5 308
> -#define CLK_TZPC6 309
> -#define CLK_TZPC7 310
> -#define CLK_TZPC8 311
> -#define CLK_TZPC9 312
> +#define CLK_PCLK_CHIPID 301
> +#define CLK_PCLK_SYSREG 302
> +#define CLK_PCLK_TZPC0 303
> +#define CLK_PCLK_TZPC1 304
> +#define CLK_PCLK_TZPC2 305
> +#define CLK_PCLK_TZPC3 306
> +#define CLK_PCLK_TZPC4 307
> +#define CLK_PCLK_TZPC5 308
> +#define CLK_PCLK_TZPC6 309
> +#define CLK_PCLK_TZPC7 310
> +#define CLK_PCLK_TZPC8 311
> +#define CLK_PCLK_TZPC9 312
> #define CLK_HDMI_CEC 313
> #define CLK_SECKEY 314
> -#define CLK_MCT 315
> -#define CLK_WDT 316
> -#define CLK_RTC 317
> -#define CLK_TMU 318
> -#define CLK_TMU_GPU 319
> +#define CLK_PCLK_MCT 315
> +#define CLK_PCLK_WDT 316
> +#define CLK_PCLK_RTC 317
> +#define CLK_PCLK_TMU 318
> +#define CLK_PCLK_TMU_GPU 319
> #define CLK_PCLK66_GPIO 330
> #define CLK_ACLK200_FSYS2 350
> -#define CLK_MMC0 351
> -#define CLK_MMC1 352
> -#define CLK_MMC2 353
> -#define CLK_SROMC 354
> +#define CLK_ACLK_MMC0 351
> +#define CLK_ACLK_MMC1 352
> +#define CLK_ACLK_MMC2 353
> +#define CLK_HCLK_SROMC 354
> #define CLK_UFS 355
> #define CLK_ACLK200_FSYS 360
> #define CLK_TSI 361
> -#define CLK_PDMA0 362
> -#define CLK_PDMA1 363
> -#define CLK_RTIC 364
> -#define CLK_USBH20 365
> -#define CLK_USBD300 366
> -#define CLK_USBD301 367
> +#define CLK_ACLK_PDMA0 362
> +#define CLK_ACLK_PDMA1 363
> +#define CLK_ACLK_RTIC 364
> +#define CLK_HCLK_USBH20 365
> +#define CLK_HCLK_USBD300 366
> +#define CLK_HCLK_USBD301 367
> #define CLK_PCLK200_FSYS 370
> #define CLK_ACLK400_MSCL 380
> -#define CLK_MSCL0 381
> -#define CLK_MSCL1 382
> -#define CLK_MSCL2 383
> +#define CLK_ACLK_MSCL0 381
> +#define CLK_ACLK_MSCL1 382
> +#define CLK_ACLK_MSCL2 383
> #define CLK_SMMU_MSCL0 384
> #define CLK_SMMU_MSCL1 385
> #define CLK_SMMU_MSCL2 386
> #define CLK_ACLK333 400
> -#define CLK_MFC 401
> +#define CLK_ACLK_MFC 401
> #define CLK_SMMU_MFCL 402
> #define CLK_SMMU_MFCR 403
> #define CLK_ACLK200_DISP1 410
> -#define CLK_DSIM1 411
> -#define CLK_DP1 412
> -#define CLK_HDMI 413
> +#define CLK_PCLK_DSIM1 411
> +#define CLK_PCLK_DP1 412
> +#define CLK_PCLK_HDMI 413
> #define CLK_ACLK300_DISP1 420
> -#define CLK_FIMD1 421
> -#define CLK_SMMU_FIMD1 422
> +#define CLK_ACLK_FIMD1 421
> +#define CLK_SMMU_FIMD1M0 422
> #define CLK_SMMU_FIMD1M1 423
> #define CLK_ACLK400_DISP1 424
> #define CLK_ACLK166 430
> -#define CLK_MIXER 431
> +#define CLK_ACLK_MIXER 431
> #define CLK_ACLK266 440
> -#define CLK_ROTATOR 441
> -#define CLK_MDMA1 442
> +#define CLK_ACLK_ROTATOR 441
> +#define CLK_ACLK_MDMA1 442
> #define CLK_SMMU_ROTATOR 443
> #define CLK_SMMU_MDMA1 444
> #define CLK_ACLK300_JPEG 450
> -#define CLK_JPEG 451
> -#define CLK_JPEG2 452
> +#define CLK_ACLK_JPEG 451
> +#define CLK_ACLK_JPEG2 452
> #define CLK_SMMU_JPEG 453
> #define CLK_ACLK300_GSCL 460
> #define CLK_SMMU_GSCL0 461
> #define CLK_SMMU_GSCL1 462
> -#define CLK_GSCL_WA 463
> +#define CLK_PCLK_GSCL_WA 463
> #define CLK_GSCL_WB 464
> -#define CLK_GSCL0 465
> -#define CLK_GSCL1 466
> -#define CLK_CLK_3AA 467
> +#define CLK_ACLK_GSCL0 465
> +#define CLK_ACLK_GSCL1 466
> +#define CLK_ACLK_FIMC_3AA 467
> #define CLK_ACLK266_G2D 470
> -#define CLK_SSS 471
> -#define CLK_SLIM_SSS 472
> -#define CLK_MDMA0 473
> +#define CLK_ACLK_SSS 471
> +#define CLK_ACLK_SLIM_SSS 472
> +#define CLK_ACLK_MDMA0 473
> #define CLK_ACLK333_G2D 480
> -#define CLK_G2D 481
> +#define CLK_ACLK_G2D 481
> #define CLK_ACLK333_432_GSCL 490
> #define CLK_SMMU_3AA 491
> #define CLK_SMMU_FIMCL0 492
> #define CLK_SMMU_FIMCL1 493
> #define CLK_SMMU_FIMCL3 494
> -#define CLK_FIMC_LITE3 495
> +#define CLK_ACLK_FIMC_LITE3 495
> #define CLK_G3D 500
> #define CLK_SMMU_MIXER 502
> #define CLK_PCLK_TZPC10 503
>
As Gerhard already mentioned, this will break bisection of existing
users of old macros, so this is a bad idea to change them this way.
Anyway, most of those renames are mostly adding *CLK_ prefixes, so I
really wonder if this is necessary, especially considering the
GATE_BUS_* issue I mentioned above and that clock names (and parent
names in all their children) would have to be updated as well. What do
you think?
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 4/7] clk: exynos5420: Rename clock names
2014-03-27 11:07 ` [PATCH v2 4/7] clk: exynos5420: Rename clock names Shaik Ameer Basha
@ 2014-04-15 17:05 ` Tomasz Figa
0 siblings, 0 replies; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 17:05 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel
Cc: mturquette, kgene.kim, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> Maintain the mout_, dout_, sclk_ prefix to the clock names
> wherever applicable.
Looking at the patch, it does seem to do more than that. Considering my
comments to patch 3/7, I would drop the renames simply adding *CLK_
prefix (except SCLK_, which is fine as it specifies clock type, just as
MOUT_/DOUT_/etc.).
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 5/7] clk: exynos5420: Add missing clocks
2014-03-27 11:07 ` [PATCH v2 5/7] clk: exynos5420: Add missing clocks Shaik Ameer Basha
@ 2014-04-15 17:56 ` Tomasz Figa
0 siblings, 0 replies; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 17:56 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel
Cc: mturquette, kgene.kim, joshi, shaik.samsung, r.sh.open,
Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma@samsung.com>
>
> This patch adds the missing clocks related to the modules
> like FIMD, DP, GSCL, MSCL, ISP, MFC etc.
>
> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
> ---
> drivers/clk/samsung/clk-exynos5420.c | 221 +++++++++++++++++++++++++++++++++-
> 1 file changed, 219 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
> index 793fb3d..26ddf33 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -269,15 +269,36 @@ PNAME(mout_group3_p) = {"mout_sclk_rpll", "mout_sclk_spll"};
> PNAME(mout_group4_p) = {"mout_sclk_ipll", "mout_sclk_dpll", "mout_sclk_mpll"};
> PNAME(mout_group5_p) = {"mout_sclk_vpll", "mout_sclk_dpll"};
>
> +PNAME(mout_fimd1_final_p) = {"mout_fimd1", "mout_fimd1_opt"};
> PNAME(mout_sw_aclk66_p) = {"dout_aclk66", "mout_sclk_spll"};
> PNAME(mout_user_aclk66_peric_p) = {"fin_pll", "mout_sw_aclk66"};
> +PNAME(mout_user_aclk66_gpio_p) = {"mout_sw_aclk66", "ffactor_sw_aclk66"};
>
> PNAME(mout_sw_aclk200_fsys_p) = {"dout_aclk200_fsys", "mout_sclk_spll"};
> +PNAME(mout_sw_pclk200_fsys_p) = {"dout_pclk200_fsys", "mout_sclk_spll"};
> +PNAME(mout_user_pclk200_fsys_p) = {"fin_pll", "mout_sw_pclk200_fsys"};
> PNAME(mout_user_aclk200_fsys_p) = {"fin_pll", "mout_sw_aclk200_fsys"};
>
> PNAME(mout_sw_aclk200_fsys2_p) = {"dout_aclk200_fsys2", "mout_sclk_spll"};
> PNAME(mout_user_aclk200_fsys2_p) = {"fin_pll", "mout_sw_aclk200_fsys2"};
>
> +PNAME(mout_sw_aclk100_noc_p) = {"dout_aclk100_noc", "mout_sclk_spll"};
> +PNAME(mout_user_aclk100_noc_p) = {"fin_pll", "mout_sw_aclk100_noc"};
> +
> +PNAME(mout_sw_aclk400_wcore_p) = {"dout_aclk400_wcore", "mout_sclk_spll"};
> +PNAME(mout_aclk400_wcore_bpll_p) = {"mout_aclk400_wcore", "sclk_bpll"};
> +PNAME(mout_user_aclk400_wcore_p) = {"fin_pll", "mout_sw_aclk400_wcore"};
> +
> +PNAME(mout_sw_aclk400_isp_p) = {"dout_aclk400_isp", "mout_sclk_spll"};
> +PNAME(mout_user_aclk400_isp_p) = {"fin_pll", "mout_sw_aclk400_isp"};
> +
> +PNAME(mout_sw_aclk333_432_isp0_p) = {"dout_aclk333_432_isp0",
> + "mout_sclk_spll"};
> +PNAME(mout_user_aclk333_432_isp0_p) = {"fin_pll", "mout_sw_aclk333_432_isp0"};
> +
> +PNAME(mout_sw_aclk333_432_isp_p) = {"dout_aclk333_432_isp", "mout_sclk_spll"};
> +PNAME(mout_user_aclk333_432_isp_p) = {"fin_pll", "mout_sw_aclk333_432_isp"};
> +
> PNAME(mout_sw_aclk200_p) = {"dout_aclk200", "mout_sclk_spll"};
> PNAME(mout_aclk200_disp1_p) = {"fin_pll", "mout_sw_aclk200"};
>
> @@ -292,6 +313,7 @@ PNAME(mout_user_aclk166_p) = {"fin_pll", "mout_sw_aclk166"};
>
> PNAME(mout_sw_aclk266_p) = {"dout_aclk266", "mout_sclk_spll"};
> PNAME(mout_user_aclk266_p) = {"fin_pll", "mout_sw_aclk266"};
> +PNAME(mout_user_aclk266_isp_p) = {"fin_pll", "mout_sw_aclk266"};
>
> PNAME(mout_sw_aclk333_432_gscl_p) = {"dout_aclk333_432_gscl", "mout_sclk_spll"};
> PNAME(mout_user_aclk333_432_gscl_p) = {"fin_pll", "mout_sw_aclk333_432_gscl"};
> @@ -300,7 +322,9 @@ PNAME(mout_sw_aclk300_gscl_p) = {"dout_aclk300_gscl", "mout_sclk_spll"};
> PNAME(mout_user_aclk300_gscl_p) = {"fin_pll", "mout_sw_aclk300_gscl"};
>
> PNAME(mout_sw_aclk300_disp1_p) = {"dout_aclk300_disp1", "mout_sclk_spll"};
> +PNAME(mout_sw_aclk400_disp1_p) = {"dout_aclk400_disp1", "mout_sclk_spll"};
> PNAME(mout_user_aclk300_disp1_p) = {"fin_pll", "mout_sw_aclk300_disp1"};
> +PNAME(mout_user_aclk400_disp1_p) = {"fin_pll", "mout_sw_aclk400_disp1"};
>
> PNAME(mout_sw_aclk300_jpeg_p) = {"dout_aclk300_jpeg", "mout_sclk_spll"};
> PNAME(mout_user_aclk300_jpeg_p) = {"fin_pll", "mout_sw_aclk300_jpeg"};
> @@ -330,6 +354,8 @@ PNAME(mout_hdmi_p) = {"dout_hdmi_pixel", "sclk_hdmiphy"};
> PNAME(mout_maudio0_p) = {"fin_pll", "maudio_clk", "mout_sclk_dpll",
> "mout_sclk_mpll", "mout_sclk_spll", "mout_sclk_ipll",
> "mout_sclk_epll", "mout_sclk_rpll"};
> +PNAME(mout_mau_epll_clk_p) = {"mout_sclk_epll", "mout_sclk_dpll",
> + "mout_sclk_mpll", "mout_sclk_spll"};
>
> /* fixed rate clocks generated outside the soc */
> static struct samsung_fixed_rate_clock exynos5420_fixed_rate_ext_clks[] __initdata = {
> @@ -347,6 +373,7 @@ static struct samsung_fixed_rate_clock exynos5420_fixed_rate_clks[] __initdata =
>
> static struct samsung_fixed_factor_clock exynos5420_fixed_factor_clks[] __initdata = {
> FFACTOR(0, "ffactor_hsic_12m", "fin_pll", 1, 2, 0),
> + FFACTOR(0, "ffactor_sw_aclk66", "mout_sw_aclk66", 1, 2, 0),
> };
>
> static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
> @@ -452,6 +479,10 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
> MUX(0, "mout_dp1", mout_group2_p, SRC_DISP10, 20, 3),
> MUX(0, "mout_pixel", mout_group2_p, SRC_DISP10, 24, 3),
> MUX(CLK_MOUT_HDMI, "mout_hdmi", mout_hdmi_p, SRC_DISP10, 28, 1),
> + MUX_F(0, "mout_fimd1_opt", mout_group2_p, SRC_DISP10, 8, 3,
> + CLK_SET_RATE_PARENT, 0),
> + MUX_F(0, "mout_fimd1_final", mout_fimd1_final_p, TOP_SPARE2, 8, 1,
> + CLK_SET_RATE_PARENT, 0),
>
> /* MAU Block */
> MUX_F(CLK_MOUT_MAUDIO0, "mout_maudio0", mout_maudio0_p, SRC_MAU, 28, 3,
> @@ -464,6 +495,7 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
> MUX(0, "mout_mmc2", mout_group2_p, SRC_FSYS, 16, 3),
> MUX(0, "mout_usbd300", mout_group2_p, SRC_FSYS, 20, 3),
> MUX(0, "mout_unipro", mout_group2_p, SRC_FSYS, 24, 3),
> + MUX(0, "mout_mphy_refclk", mout_group2_p, SRC_FSYS, 28, 3),
>
> /* PERIC Block */
> MUX(0, "mout_uart0", mout_group2_p, SRC_PERIC0, 4, 3),
> @@ -478,6 +510,58 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = {
> MUX(CLK_MOUT_SPI0, "mout_spi0", mout_group2_p, SRC_PERIC1, 20, 3),
> MUX(CLK_MOUT_SPI1, "mout_spi1", mout_group2_p, SRC_PERIC1, 24, 3),
> MUX(CLK_MOUT_SPI2, "mout_spi2", mout_group2_p, SRC_PERIC1, 28, 3),
> +
> + MUX(0, "mout_user_aclk66_gpio", mout_user_aclk66_gpio_p,
> + SRC_TOP7, 4, 1),
> + MUX_F(0, "mout_mau_epll_clk", mout_mau_epll_clk_p, SRC_TOP7, 20, 2,
> + CLK_SET_RATE_PARENT, 0),
> + MUX(0, "mout_pclk200_fsys", mout_group1_p, SRC_TOP0, 24, 2),
> + MUX(0, "mout_sw_pclk200_fsys", mout_sw_pclk200_fsys_p,
> + SRC_TOP10, 24, 1),
> + MUX(0, "mout_user_pclk200_fsys", mout_user_pclk200_fsys_p,
> + SRC_TOP3, 24, 1),
> + MUX(0, "mout_aclk100_noc", mout_group1_p, SRC_TOP0, 20, 2),
> + MUX(0, "mout_sw_aclk100_noc", mout_sw_aclk100_noc_p,
> + SRC_TOP10, 20, 1),
> + MUX(0, "mout_user_aclk100_noc", mout_user_aclk100_noc_p,
> + SRC_TOP3, 20, 1),
> + MUX(0, "mout_aclk400_wcore", mout_group1_p, SRC_TOP0, 16, 2),
> + MUX(0, "mout_aclk400_wcore_bpll", mout_aclk400_wcore_bpll_p,
> + TOP_SPARE2, 4, 1),
> + MUX(0, "mout_sw_aclk400_wcore", mout_sw_aclk400_wcore_p,
> + SRC_TOP10, 16, 1),
> + MUX(0, "mout_user_aclk400_wcore", mout_user_aclk400_wcore_p,
> + SRC_TOP3, 16, 1),
> + MUX(0, "mout_aclk400_isp", mout_group1_p, SRC_TOP0, 0, 2),
> + MUX(0, "mout_sw_aclk400_isp", mout_sw_aclk400_isp_p,
> + SRC_TOP10, 0, 1),
> + MUX(0, "mout_user_aclk400_isp", mout_user_aclk400_isp_p,
> + SRC_TOP3, 0, 1),
> + MUX(0, "mout_aclk333_432_isp0", mout_group4_p, SRC_TOP1, 12, 2),
> + MUX(0, "mout_sw_aclk333_432_isp0", mout_sw_aclk333_432_isp0_p,
> + SRC_TOP11, 12, 1),
> + MUX(0, "mout_user_aclk333_432_isp0", mout_user_aclk333_432_isp0_p,
> + SRC_TOP4, 12, 1),
> + MUX(0, "mout_aclk333_432_isp", mout_group4_p,
> + SRC_TOP1, 4, 2),
> + MUX(0, "mout_sw_aclk333_432_isp", mout_sw_aclk333_432_isp_p,
> + SRC_TOP11, 4, 1),
> + MUX(0, "mout_user_aclk333_432_isp", mout_user_aclk333_432_isp_p,
> + SRC_TOP4, 4, 1),
> + MUX(0, "mout_user_aclk266_isp", mout_user_aclk266_isp_p,
> + SRC_TOP4, 16, 1),
> + MUX(0, "mout_aclk400_disp1", mout_group1_p, SRC_TOP2, 4, 2),
> + MUX(0, "mout_sw_aclk400_disp1", mout_sw_aclk400_disp1_p,
> + SRC_TOP12, 4, 1),
> + MUX(0, "mout_user_aclk400_disp1", mout_user_aclk400_disp1_p,
> + SRC_TOP5, 0, 1),
> +
> + /* ISP Block*/
> + MUX(0, "mout_pwm_isp", mout_group2_p, SRC_ISP, 24, 3),
> + MUX(0, "mout_uart_isp", mout_group2_p, SRC_ISP, 20, 3),
> + MUX(0, "mout_spi0_isp", mout_group2_p, SRC_ISP, 12, 3),
> + MUX(0, "mout_spi1_isp", mout_group2_p, SRC_ISP, 16, 3),
> + MUX(0, "mout_isp_sensor", mout_group2_p, SRC_ISP, 28, 3),
> };
>
> static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
> @@ -512,6 +596,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
> DIV(0, "dout_mipi1", "mout_mipi1", DIV_DISP10, 16, 8),
> DIV(0, "dout_dp1", "mout_dp1", DIV_DISP10, 24, 4),
> DIV(CLK_DOUT_PIXEL, "dout_hdmi_pixel", "mout_pixel", DIV_DISP10, 28, 4),
> + DIV(0, "dout_disp1_blk", "aclk200_disp1", DIV2_RATIO0, 16, 2),
>
> /* Audio Block */
> DIV(0, "dout_maudio0", "mout_maudio0", DIV_MAU, 20, 4),
> @@ -529,6 +614,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
> DIV(0, "dout_mmc2", "mout_mmc2", DIV_FSYS1, 20, 10),
>
> DIV(0, "dout_unipro", "mout_unipro", DIV_FSYS2, 24, 8),
> + DIV(0, "dout_mphy_refclk", "mout_mphy_refclk", DIV_FSYS2, 16, 8),
>
> /* UART and PWM */
> DIV(0, "dout_uart0", "mout_uart0", DIV_PERIC0, 8, 4),
> @@ -557,6 +643,39 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = {
> DIV(0, "dout_spi0_pre", "dout_spi0", DIV_PERIC4, 8, 8),
> DIV(0, "dout_spi1_pre", "dout_spi1", DIV_PERIC4, 16, 8),
> DIV(0, "dout_spi2_pre", "dout_spi2", DIV_PERIC4, 24, 8),
> +
> + DIV(0, "dout_aclk400_disp1", "mout_aclk400_disp1",
> + DIV_TOP2, 4, 3),
> + DIV(0, "dout_aclk100_noc", "mout_aclk100_noc", DIV_TOP0, 20, 3),
> + DIV(0, "dout_aclk400_wcore", "mout_aclk400_wcore_bpll",
> + DIV_TOP0, 16, 3),
> + DIV(0, "dout_aclk400_isp", "mout_aclk400_isp", DIV_TOP0, 0, 3),
> + DIV(0, "dout_aclk333_432_isp0", "mout_aclk333_432_isp0",
> + DIV_TOP1, 16, 3),
> + DIV(0, "dout_aclk333_432_isp", "mout_aclk333_432_isp",
> + DIV_TOP1, 4, 3),
> + /* Mfc Blk */
> + DIV(0, "dout_mfc_blk", "mout_user_aclk333", DIV4_RATIO, 0, 2),
> + /* Gscl Blk */
> + DIV(0, "dout_gscl_blk_300", "mout_user_aclk300_gscl",
> + DIV2_RATIO0, 4, 2),
> + DIV(0, "dout_gscl_blk_333", "aclk333_432_gscl", DIV2_RATIO0, 6, 2),
> + /* Mscl Blk */
> + DIV(0, "dout_mscl_blk", "aclk400_mscl", DIV2_RATIO0, 28, 2),
> + /* Psgen */
> + DIV(0, "dout_gen_blk", "mout_user_aclk266", DIV2_RATIO0, 8, 1),
> + /* Jpeg */
> + DIV(0, "dout_jpg_blk", "aclk166", DIV2_RATIO0, 20, 1),
> + /* isp */
> + DIV(0, "dout_pwm_isp", "mout_pwm_isp", SCLK_DIV_ISP1, 28, 4),
> + DIV(0, "dout_uart_isp", "mout_uart_isp", SCLK_DIV_ISP1, 24, 4),
> + DIV(0, "dout_spi0_isp", "mout_spi0_isp", SCLK_DIV_ISP1, 16, 4),
> + DIV(0, "dout_spi1_isp", "mout_spi1_isp", SCLK_DIV_ISP1, 20, 4),
> + DIV(0, "dout_spi0_isp_pre", "dout_spi0_isp", SCLK_DIV_ISP1, 0, 8),
> + DIV(0, "dout_spi1_isp_pre", "dout_spi1_isp", SCLK_DIV_ISP1, 8, 8),
> + DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8),
> + DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8),
> + DIV(0, "dout_isp_sensor2", "mout_isp_sensor", SCLK_DIV_ISP0, 24, 8),
> };
>
> static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> @@ -781,12 +900,18 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> GATE(CLK_PCLK_TMU_GPU, "pclk_tmu_gpu", "aclk66_psgen",
> GATE_IP_PERIS, 22, 0, 0),
>
> + GATE(CLK_PCLK_GSCL0, "pclk_gscl0", "dout_gscl_blk_300",
> + GATE_IP_GSCL0, 14, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_PCLK_GSCL1, "pclk_gscl1", "dout_gscl_blk_300",
> + GATE_IP_GSCL0, 15, CLK_IGNORE_UNUSED, 0),
> GATE(CLK_ACLK_GSCL0, "aclk_gscl0", "mout_user_aclk300_gscl",
> GATE_IP_GSCL0, 0, 0, 0),
> GATE(CLK_ACLK_GSCL1, "aclk_gscl1", "mout_user_aclk300_gscl",
> GATE_IP_GSCL0, 1, 0, 0),
> GATE(CLK_ACLK_FIMC_3AA, "aclk_fimc_3aa", "aclk333_432_gscl",
> GATE_IP_GSCL0, 4, 0, 0),
> + GATE(CLK_PCLK_FIMC_3AA, "pclk_fimc_3aa", "dout_gscl_blk_333",
> + GATE_IP_GSCL0, 9, 0, 0),
>
> GATE(CLK_SMMU_3AA, "smmu_3aa", "dout_gscl_blk_333",
> GATE_IP_GSCL1, 2, 0, 0),
> @@ -818,9 +943,13 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> GATE_BUS_DISP1, 19, 0, 0),
> GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1m0", "dout_disp1_blk",
> GATE_IP_DISP1, 7, 0, 0),
> + GATE(CLK_SMMU_FIMD1M1, "smmu_fimd1m1", "dout_disp1_blk",
> + GATE_IP_DISP1, 8, 0, 0),
>
> GATE(CLK_ACLK_MFC, "aclk_mfc", "mout_user_aclk333",
> GATE_BUS_MFC, 0, 0, 0),
> + GATE(CLK_PCLK_MFC, "pclk_mfc", "dout_mfc_blk",
> + GATE_BUS_MFC, 16, CLK_IGNORE_UNUSED, 0),
> GATE(CLK_SMMU_MFCL, "smmu_mfcl", "dout_mfc_blk", GATE_IP_MFC, 1, 0, 0),
> GATE(CLK_SMMU_MFCR, "smmu_mfcr", "dout_mfc_blk", GATE_IP_MFC, 2, 0, 0),
> GATE(CLK_G3D, "clk_g3d", "mout_user_aclk_g3d",
> @@ -828,14 +957,24 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
>
> GATE(CLK_ACLK_ROTATOR, "aclk_rotator", "mout_user_aclk266",
> GATE_IP_GEN, 1, 0, 0),
> + GATE(CLK_PCLK_ROTATOR, "pclk_rotator", "dout_gen_blk",
> + GATE_BUS_GEN, 13, 0, 0),
> GATE(CLK_ACLK_JPEG, "aclk_jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
> GATE(CLK_ACLK_JPEG2, "aclk_jpeg2", "aclk300_jpeg",
> GATE_IP_GEN, 3, 0, 0),
> + GATE(CLK_ACLK_MDMA0, "aclk_mdma0", "aclk266_g2d",
> + GATE_BUS_G2D, 1, CLK_IGNORE_UNUSED, 0),
> GATE(CLK_ACLK_MDMA1, "aclk_mdma1", "mout_user_aclk266",
> GATE_IP_GEN, 4, 0, 0),
> GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "dout_gen_blk",
> GATE_IP_GEN, 6, 0, 0),
> + GATE(CLK_ACLK_SMMU_MDMA0, "aclk_smmu_mdma0", "aclk266_g2d",
> + GATE_BUS_G2D, 5, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_SMMU_MDMA0, "smmu_mdma0", "aclk266_g2d",
> + GATE_BUS_G2D, 20, CLK_IGNORE_UNUSED, 0),
> GATE(CLK_SMMU_JPEG, "smmu_jpeg", "dout_jpg_blk", GATE_IP_GEN, 7, 0, 0),
> + GATE(CLK_SMMU_JPEG2, "smmu_jpeg2", "dout_jpg_blk",
> + GATE_BUS_GEN, 28, 0, 0),
> GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "dout_gen_blk",
> GATE_IP_GEN, 9, 0, 0),
>
> @@ -845,14 +984,92 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
> GATE_BUS_MSCL, 1, 0, 0),
> GATE(CLK_ACLK_MSCL2, "aclk_mscl2", "aclk400_mscl",
> GATE_BUS_MSCL, 2, 0, 0),
> + GATE(CLK_PCLK_MSCL0, "pclk_mscl0", "dout_mscl_blk",
> + GATE_BUS_MSCL, 8, 0, 0),
> + GATE(CLK_PCLK_MSCL1, "pclk_mscl1", "dout_mscl_blk",
> + GATE_BUS_MSCL, 9, 0, 0),
> + GATE(CLK_PCLK_MSCL2, "pclk_mscl2", "dout_mscl_blk",
> + GATE_BUS_MSCL, 10, 0, 0),
> GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "dout_mscl_blk",
> GATE_IP_MSCL, 8, 0, 0),
> GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "dout_mscl_blk",
> GATE_IP_MSCL, 9, 0, 0),
> GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "dout_mscl_blk",
> GATE_IP_MSCL, 10, 0, 0),
> - GATE(CLK_SMMU_MIXER, "smmu_mixer", "dout_disp1_blk",
> - GATE_IP_DISP1, 9, 0, 0),
> + GATE(CLK_ACLK_SMMU_MIXER, "aclk_smmu_mixer", "aclk200_disp1",
> + GATE_BUS_DISP1, 9, CLK_IGNORE_UNUSED, 0),
> +
> + /* aclk333 gates internal MFC busses and should not be gated. */
> + /* aclk266 also gates other IPs in psgen. It should not be gated. */
> + GATE(CLK_ACLK266, "aclk266", "mout_user_aclk266",
> + GATE_BUS_NOC, 22, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_ACLK200_DISP1, "aclk200_disp1", "mout_aclk200_disp1",
> + GATE_BUS_TOP, 18, CLK_IGNORE_UNUSED, 0),
> + /* gating of aclk300_gscl causes system hang. It should not be gated. */
> + GATE(CLK_ACLK400_MSCL, "aclk400_mscl", "mout_user_aclk400_mscl",
> + GATE_BUS_TOP, 17, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_ACLK300_DISP1, "aclk300_disp1", "mout_user_aclk300_disp1",
> + SRC_MASK_TOP2, 24, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_ACLK266_ISP, "aclk266_isp", "mout_user_aclk266_isp",
> + GATE_BUS_TOP, 13, 0, 0),
> + GATE(CLK_ACLK400_ISP, "aclk400_isp", "mout_user_aclk400_isp",
> + GATE_BUS_TOP, 16, 0, 0),
> + GATE(CLK_ACLK333_432_ISP0, "aclk333_432_isp0",
> + "mout_user_aclk333_432_isp0", GATE_BUS_TOP, 5, 0, 0),
> + GATE(CLK_ACLK333_432_ISP, "aclk333_432_isp",
> + "mout_user_aclk333_432_isp", GATE_BUS_TOP, 8, 0, 0),
> + /* misc: mct, adc, chipid, wdt, rtc, sysreg etc */
> + GATE(CLK_PCLK_MC, "pclk_mc", "aclk66_psgen", GATE_BUS_GEN, 12, 0, 0),
> + GATE(CLK_PCLK_TOP_RTC, "pclk_top_rtc", "aclk66_psgen",
> + GATE_IP_GEN, 5, 0, 0),
> + GATE(CLK_SCLK_HSIC_12M, "sclk_hsic_12m", "ffactor_hsic_12m",
> + GATE_BUS_TOP, 29, 0, 0),
> + GATE(CLK_SCLK_MPHY_IXTAL24, "sclk_mphy_ixtal24", "mphy_refclk_ixtal24",
> + GATE_BUS_TOP, 28, 0, 0),
> + /*
> + * HACK: When aclk_fimd1 is gated, aclk300_disp1 also gets gated as
> + * aclk_fimd1 is the only child node. aclk300_disp1 is connected
> + * to hdmi, mixer IPs through internal busses. gating of aclk300_disp1
> + * breaks HDMI S2R.
> + */
> + GATE(CLK_PCLK_HDMIPHY, "pclk_hdmiphy", "dout_disp1_blk",
> + GATE_BUS_DISP1, 15, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_SCLK_MPHY_REFCLK, "sclk_mphy_refclk", "dout_mphy_refclk",
> + GATE_BUS_TOP, 30, 0, 0),
> + GATE(CLK_ACLK_FIMC_LITE0, "aclk_fimc_lite0", "aclk333_432_gscl",
> + GATE_IP_GSCL0, 5, 0, 0),
> + GATE(CLK_ACLK_FIMC_LITE1, "aclk_fimc_lite1", "aclk333_432_gscl",
> + GATE_IP_GSCL0, 6, 0, 0),
> + GATE(CLK_PCLK_FIMC_LITE0, "pclk_fimc_lite0", "dout_gscl_blk_333",
> + GATE_IP_GSCL0, 10, 0, 0),
> + GATE(CLK_PCLK_FIMC_LITE1, "pclk_fimc_lite1", "dout_gscl_blk_333",
> + GATE_IP_GSCL0, 11, 0, 0),
> + GATE(CLK_PCLK_FIMC_LITE3, "pclk_fimc_lite3", "dout_gscl_blk_333",
> + GATE_BUS_GSCL0, 13, 0, 0),
> + /* g2d */
> + GATE(CLK_ACLK_G2D, "aclk_g2d", "aclk333_g2d",
> + GATE_BUS_G2D, 3, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_PCLK_G2D, "pclk_g2d", "aclk266_g2d",
> + GATE_BUS_G2D, 19, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_ACLK_SMMU_G2D, "aclk_smmu_g2d", "aclk333_g2d",
> + GATE_BUS_G2D, 7, CLK_IGNORE_UNUSED, 0),
> + GATE(CLK_SMMU_G2D, "smmu_g2d", "aclk266_g2d",
> + GATE_BUS_G2D, 22, CLK_IGNORE_UNUSED, 0),
> + /* ISP */
> + GATE(CLK_SCLK_PWM_ISP, "sclk_pwm_isp", "dout_pwm_isp",
> + GATE_TOP_SCLK_ISP, 3, 0, 0),
> + GATE(CLK_SCLK_UART_ISP, "sclk_uart_isp", "dout_uart_isp",
> + GATE_TOP_SCLK_ISP, 0, 0, 0),
> + GATE(CLK_SCLK_SPI0_ISP, "sclk_spi0_isp", "dout_spi0_isp_pre",
> + GATE_TOP_SCLK_ISP, 1, 0, 0),
> + GATE(CLK_SCLK_SPI1_ISP, "sclk_spi1_isp", "dout_spi1_isp_pre",
> + GATE_TOP_SCLK_ISP, 2, 0, 0),
> + GATE(CLK_SCLK_ISP_SENSOR0, "sclk_isp_sensor0", "dout_isp_sensor0",
> + GATE_TOP_SCLK_ISP, 4, 0, 0),
> + GATE(CLK_SCLK_ISP_SENSOR1, "sclk_isp_sensor1", "dout_isp_sensor1",
> + GATE_TOP_SCLK_ISP, 8, 0, 0),
> + GATE(CLK_SCLK_ISP_SENSOR2, "sclk_isp_sensor2", "dout_isp_sensor2",
> + GATE_TOP_SCLK_ISP, 12, 0, 0),
>
> /* SSS */
> GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
>
This is really hard to review. May I ask you to split it into separate
patch adding clocks for each block mentioned in description, please?
Also, as I mentioned in my comments to patches 1/7 and 2/7, respective
IDs and registers being added should be in respective patches.
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 7/7] ARM: dts: update macros in clock bindings for exynos5420
[not found] ` <1395918470-16374-8-git-send-email-shaik.ameer-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
@ 2014-04-15 18:01 ` Tomasz Figa
0 siblings, 0 replies; 20+ messages in thread
From: Tomasz Figa @ 2014-04-15 18:01 UTC (permalink / raw)
To: Shaik Ameer Basha, linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Cc: mturquette-QSEj5FYQhm4dnm+yROfE0A,
kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, joshi-Sze3O3UU22JBDgjK7y7TUQ,
shaik.samsung-Re5JQEeQqe8AvxtiuMwx3w,
r.sh.open-Re5JQEeQqe8AvxtiuMwx3w, Rahul Sharma
Hi Shaik,
On 27.03.2014 12:07, Shaik Ameer Basha wrote:
> From: Rahul Sharma <rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>
> This patch updates the macros as per the latest changes and
> replaces magic numbers with macros defined in DT header for
> exynos5420.
>
Contents of dts files are not "bindings", they are just device tree
sources/data, defined according to some bindings. Bindings are defined
sets of nodes and properties and their formats, as you can see in
Documentation/devicetree/bindings/, where documentation of supported
bindings is available.
So this patch doesn't update clock bindings, but rather device nodes.
Following would be more appropriate: "ARM: dts: update clock IDs in
device tree of Exynos5420".
However, as mentioned in comments to previous patches, most (if not all)
of the changes below could be probably dropped.
Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets
2014-04-15 16:45 ` Tomasz Figa
@ 2014-04-20 7:27 ` Shaik Ameer Basha
0 siblings, 0 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-04-20 7:27 UTC (permalink / raw)
To: Tomasz Figa
Cc: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel, Mike Turquette, Kukjin Kim, sunil joshi,
Rahul Sharma, Rahul Sharma
Hi Tomasz,
Thanks for the review comments.
On Tue, Apr 15, 2014 at 10:15 PM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Hi Shaik,
>
>
> On 27.03.2014 12:07, Shaik Ameer Basha wrote:
>>
>> From: Rahul Sharma <rahul.sharma@samsung.com>
>>
>> This patch adds the missing clock register offsets for Exynos5420.
>>
>> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
>> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
>> ---
>> drivers/clk/samsung/clk-exynos5420.c | 29
>> ++++++++++++++++++++++++++++-
>> 1 file changed, 28 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/samsung/clk-exynos5420.c
>> b/drivers/clk/samsung/clk-exynos5420.c
>> index 13f624d..3d0fb77 100644
>> --- a/drivers/clk/samsung/clk-exynos5420.c
>> +++ b/drivers/clk/samsung/clk-exynos5420.c
>> @@ -27,6 +27,9 @@
>> #define DIV_CPU1 0x504
>> #define GATE_BUS_CPU 0x700
>> #define GATE_SCLK_CPU 0x800
>> +#define CLKOUT_CMU_CPU 0xa00
>> +#define DIV_G2D 0x8500
>> +#define GATE_BUS_G2D 0x8700
>> #define GATE_IP_G2D 0x8800
>> #define CPLL_LOCK 0x10020
>> #define DPLL_LOCK 0x10030
>> @@ -39,7 +42,11 @@
>> #define CPLL_CON0 0x10120
>> #define DPLL_CON0 0x10128
>> #define EPLL_CON0 0x10130
>> +#define EPLL_CON1 0x10134
>> +#define EPLL_CON2 0x10138
>> #define RPLL_CON0 0x10140
>> +#define RPLL_CON1 0x10144
>> +#define RPLL_CON2 0x10148
>> #define IPLL_CON0 0x10150
>> #define SPLL_CON0 0x10160
>> #define VPLL_CON0 0x10170
>> @@ -57,10 +64,13 @@
>> #define SRC_FSYS 0x10244
>> #define SRC_PERIC0 0x10250
>> #define SRC_PERIC1 0x10254
>> +#define SRC_ISP 0x10270
>> #define SRC_TOP10 0x10280
>> #define SRC_TOP11 0x10284
>> #define SRC_TOP12 0x10288
>> -#define SRC_MASK_DISP10 0x1032c
>> +#define SRC_MASK_TOP2 0x10308
>> +#define SRC_MASK_DISP10 0x1032c
>> +#define SRC_MASK_MAU 0x10334
>> #define SRC_MASK_FSYS 0x10340
>> #define SRC_MASK_PERIC0 0x10350
>> #define SRC_MASK_PERIC1 0x10354
>> @@ -77,24 +87,41 @@
>> #define DIV_PERIC2 0x10560
>> #define DIV_PERIC3 0x10564
>> #define DIV_PERIC4 0x10568
>> +#define SCLK_DIV_ISP0 0x10580
>> +#define SCLK_DIV_ISP1 0x10584
>> +#define DIV2_RATIO0 0x10590
>> +#define DIV4_RATIO 0x105a0
>> #define GATE_BUS_TOP 0x10700
>> +#define GATE_BUS_GSCL0 0x10710
>> +#define GATE_BUS_GSCL1 0x10720
>> +#define GATE_BUS_DISP1 0x10728
>> +#define GATE_BUS_MFC 0x10734
>> +#define GATE_BUS_GEN 0x1073c
>> #define GATE_BUS_FSYS0 0x10740
>> +#define GATE_BUS_FSYS2 0x10748
>> +#define GATE_BUS_MSCL 0x1074C
>> #define GATE_BUS_PERIC 0x10750
>> #define GATE_BUS_PERIC1 0x10754
>> #define GATE_BUS_PERIS0 0x10760
>> #define GATE_BUS_PERIS1 0x10764
>> +#define GATE_BUS_NOC 0x10770
>> +#define GATE_TOP_SCLK_ISP 0x10870
>> #define GATE_IP_GSCL0 0x10910
>> #define GATE_IP_GSCL1 0x10920
>> #define GATE_IP_MFC 0x1092c
>> #define GATE_IP_DISP1 0x10928
>> #define GATE_IP_G3D 0x10930
>> #define GATE_IP_GEN 0x10934
>> +#define GATE_IP_FSYS 0x10944
>> +#define GATE_IP_PERIC 0x10950
>> +#define GATE_IP_PERIS 0x10960
>> #define GATE_IP_MSCL 0x10970
>> #define GATE_TOP_SCLK_GSCL 0x10820
>> #define GATE_TOP_SCLK_DISP1 0x10828
>> #define GATE_TOP_SCLK_MAU 0x1083c
>> #define GATE_TOP_SCLK_FSYS 0x10840
>> #define GATE_TOP_SCLK_PERIC 0x10850
>> +#define TOP_SPARE2 0x10b08
>> #define BPLL_LOCK 0x20010
>> #define BPLL_CON0 0x20110
>> #define SRC_CDREX 0x20200
>>
>
> From this patch, it's hard to tell what is the use for those registers. I
> think they should be added along with definitions that need them.
>
Ok. will add this macros along with the corresponding clock definitions.
Regards,
Shaik Ameer Basha
> Best regards,
> Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 2/7] clk: exynos5420: Add more clock IDs
2014-04-15 16:50 ` Tomasz Figa
@ 2014-04-20 7:30 ` Shaik Ameer Basha
0 siblings, 0 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-04-20 7:30 UTC (permalink / raw)
To: Tomasz Figa
Cc: devicetree, linux-samsung-soc, Shaik Ameer Basha, sunil joshi,
Kukjin Kim, Rahul Sharma, Mike Turquette, linux-arm-kernel,
Rahul Sharma
Hi Tomasz,
On Tue, Apr 15, 2014 at 10:20 PM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Hi Shaik,
>
>
> On 27.03.2014 12:07, Shaik Ameer Basha wrote:
>>
>> From: Rahul Sharma <rahul.sharma@samsung.com>
>>
>> Add more clock IDs to be used in DT bindings for Exynos5420.
>>
>> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
>> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
>> ---
>> include/dt-bindings/clock/exynos5420.h | 62
>> ++++++++++++++++++++++++++++++--
>> 1 file changed, 60 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/dt-bindings/clock/exynos5420.h
>> b/include/dt-bindings/clock/exynos5420.h
>> index 5eefd88..e921913 100644
>> --- a/include/dt-bindings/clock/exynos5420.h
>> +++ b/include/dt-bindings/clock/exynos5420.h
>> @@ -58,6 +58,16 @@
>> #define CLK_SCLK_GSCL_WA 156
>> #define CLK_SCLK_GSCL_WB 157
>> #define CLK_SCLK_HDMIPHY 158
>> +#define CLK_SCLK_MPHY_REFCLK 159
>> +#define CLK_SCLK_SPI0_ISP 160
>> +#define CLK_SCLK_SPI1_ISP 161
>> +#define CLK_SCLK_UART_ISP 162
>> +#define CLK_SCLK_ISP_SENSOR0 163
>> +#define CLK_SCLK_ISP_SENSOR1 164
>> +#define CLK_SCLK_ISP_SENSOR2 165
>> +#define CLK_SCLK_PWM_ISP 166
>> +#define CLK_SCLK_HSIC_12M 167
>> +#define CLK_SCLK_MPHY_IXTAL24 168
>>
>> /* gate clocks */
>> #define CLK_ACLK66_PERIC 256
>> @@ -123,6 +133,7 @@
>> #define CLK_USBH20 365
>> #define CLK_USBD300 366
>> #define CLK_USBD301 367
>> +#define CLK_PCLK200_FSYS 370
>> #define CLK_ACLK400_MSCL 380
>> #define CLK_MSCL0 381
>> #define CLK_MSCL1 382
>> @@ -141,6 +152,8 @@
>> #define CLK_ACLK300_DISP1 420
>> #define CLK_FIMD1 421
>> #define CLK_SMMU_FIMD1 422
>> +#define CLK_SMMU_FIMD1M1 423
>> +#define CLK_ACLK400_DISP1 424
>> #define CLK_ACLK166 430
>> #define CLK_MIXER 431
>> #define CLK_ACLK266 440
>> @@ -172,12 +185,57 @@
>> #define CLK_SMMU_FIMCL1 493
>> #define CLK_SMMU_FIMCL3 494
>> #define CLK_FIMC_LITE3 495
>> -#define CLK_ACLK_G3D 500
>> -#define CLK_G3D 501
>> +#define CLK_G3D 500
>
>
> What is the reason for this ID change? Even if CLK_ACLK_G3D is removed, as
> it wasn't even referenced by the driver, original clock IDs should remain
> fixed.
My Bad.
Anyways, I am planning to post one more patch at the end of the series
to remove the gaps b/w the numbers.
I hope there is no significance of the numbers once we move completely
to macros.
>
>
>> #define CLK_SMMU_MIXER 502
>> +#define CLK_PCLK_TZPC10 503
>> +#define CLK_PCLK_TZPC11 504
>> +#define CLK_PCLK_MC 505
>> +#define CLK_PCLK_TOP_RTC 506
>> +#define CLK_SMMU_JPEG2 507
>> +#define CLK_PCLK_ROTATOR 508
>> +#define CLK_SMMU_RTIC 509
>> +#define CLK_PCLK_G2D 510
>> +#define CLK_ACLK_SMMU_G2D 511
>> +#define CLK_SMMU_G2D 512
>> +#define CLK_ACLK_SMMU_MDMA0 513
>> +#define CLK_SMMU_MDMA0 514
>> +#define CLK_ACLK_SMMU_SSS 515
>> +#define CLK_SMMU_SSS 516
>> +#define CLK_SMMU_SLIM_SSS 517
>> +#define CLK_ACLK_SMMU_SLIM_SSS 518
>> +#define CLK_ACLK266_ISP 519
>> +#define CLK_ACLK400_ISP 520
>> +#define CLK_ACLK333_432_ISP0 521
>> +#define CLK_ACLK333_432_ISP 522
>> +#define CLK_ACLK_SMMU_MIXER 523
>> +#define CLK_PCLK_HDMIPHY 524
>> +#define CLK_PCLK_GSCL0 525
>> +#define CLK_PCLK_GSCL1 526
>> +#define CLK_PCLK_FIMC_3AA 527
>> +#define CLK_ACLK_FIMC_LITE0 528
>> +#define CLK_ACLK_FIMC_LITE1 529
>> +#define CLK_PCLK_FIMC_LITE0 530
>> +#define CLK_PCLK_FIMC_LITE1 531
>> +#define CLK_PCLK_FIMC_LITE3 532
>> +#define CLK_PCLK_MSCL0 533
>> +#define CLK_PCLK_MSCL1 534
>> +#define CLK_PCLK_MSCL2 535
>> +#define CLK_PCLK_MFC 536
>>
>> /* mux clocks */
>> #define CLK_MOUT_HDMI 640
>> +#define CLK_MOUT_FIMD1 641
>> +#define CLK_MOUT_MAUDIO0 642
>> +#define CLK_MOUT_SPI0 643
>> +#define CLK_MOUT_SPI1 644
>> +#define CLK_MOUT_SPI2 645
>> +#define CLK_MOUT_SW_ACLK333 646
>> +#define CLK_MOUT_USER_ACLK333 647
>> +#define CLK_MOUT_SW_ACLK300_GSCL 648
>> +#define CLK_MOUT_USER_ACLK300_GSCL 649
>> +#define CLK_MOUT_SW_ACLK333_432_GSCL 650
>> +#define CLK_MOUT_USER_ACLK333_432_GSCL 651
>> +#define CLK_MOUT_G3D 652
>>
>> /* divider clocks */
>> #define CLK_DOUT_PIXEL 768
>>
>
> Also similar comment as for patch 1/7, it's hard to tell why this change is
> needed at all.
Ok. Will take care for the next series.
Regards,
Shaik Ameer Basha
>
> Best regards,
> Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 3/7] clk: exynos5420: Rename clock IDs
2014-04-15 17:03 ` Tomasz Figa
@ 2014-04-20 8:32 ` Shaik Ameer Basha
0 siblings, 0 replies; 20+ messages in thread
From: Shaik Ameer Basha @ 2014-04-20 8:32 UTC (permalink / raw)
To: Tomasz Figa
Cc: Shaik Ameer Basha, linux-samsung-soc, devicetree,
linux-arm-kernel, Mike Turquette, Kukjin Kim, sunil joshi,
Rahul Sharma, Rahul Sharma
Hi Tomasz,
Thanks for the review comments.
On Tue, Apr 15, 2014 at 10:33 PM, Tomasz Figa <tomasz.figa@gmail.com> wrote:
> Hi Shaik,
>
>
> On 27.03.2014 12:07, Shaik Ameer Basha wrote:
>>
>> From: Rahul Sharma <rahul.sharma@samsung.com>
>>
>> This patch renames the clock IDs used for the DT bindings as
>> per Exynos5420 datasheet.
>>
>> Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
>> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
>> ---
>> drivers/clk/samsung/clk-exynos5420.c | 162
>> +++++++++++++++++---------------
>> include/dt-bindings/clock/exynos5420.h | 138
>> +++++++++++++--------------
>> 2 files changed, 154 insertions(+), 146 deletions(-)
>>
>> diff --git a/drivers/clk/samsung/clk-exynos5420.c
>> b/drivers/clk/samsung/clk-exynos5420.c
>> index 3d0fb77..1402554 100644
>> --- a/drivers/clk/samsung/clk-exynos5420.c
>> +++ b/drivers/clk/samsung/clk-exynos5420.c
>> @@ -544,8 +544,8 @@ static struct samsung_div_clock exynos5420_div_clks[]
>> __initdata = {
>>
>> static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = {
>> /* TODO: Re-verify the CG bits for all the gate clocks */
>> - GATE_A(CLK_MCT, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0,
>> 0,
>> - "mct"),
>> + GATE_A(CLK_PCLK_MCT, "pclk_st", "aclk66_psgen",
>> + GATE_BUS_PERIS1, 2, 0, 0, "mct"),
True. I think somehow i missed it. I will fix that.
>
>
> Clock IDs should generally match clock names, while this one obviously does
> not. Either you should update both, or... (see below)
>
>
>>
>> GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys",
>> GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0),
>> @@ -643,83 +643,90 @@ static struct samsung_gate_clock
>> exynos5420_gate_clks[] __initdata = {
>> GATE_TOP_SCLK_MAU, 1, CLK_SET_RATE_PARENT, 0),
>> /* FSYS */
>> GATE(CLK_TSI, "tsi", "aclk200_fsys", GATE_BUS_FSYS0, 0, 0, 0),
>> - GATE(CLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1, 0, 0),
>> - GATE(CLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2, 0, 0),
>> + GATE(CLK_ACLK_PDMA0, "pdma0", "aclk200_fsys", GATE_BUS_FSYS0, 1,
>> 0, 0),
>> + GATE(CLK_ACLK_PDMA1, "pdma1", "aclk200_fsys", GATE_BUS_FSYS0, 2,
>> 0, 0),
>> GATE(CLK_UFS, "ufs", "aclk200_fsys2", GATE_BUS_FSYS0, 3, 0, 0),
>> - GATE(CLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0, 0),
>> - GATE(CLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12, 0, 0),
>> - GATE(CLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13, 0, 0),
>> - GATE(CLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14, 0, 0),
>> - GATE(CLK_SROMC, "sromc", "aclk200_fsys2",
>> + GATE(CLK_ACLK_RTIC, "rtic", "aclk200_fsys", GATE_BUS_FSYS0, 5, 0,
>> 0),
>> + GATE(CLK_ACLK_MMC0, "mmc0", "aclk200_fsys2", GATE_BUS_FSYS0, 12,
>> 0, 0),
>> + GATE(CLK_ACLK_MMC1, "mmc1", "aclk200_fsys2", GATE_BUS_FSYS0, 13,
>> 0, 0),
>> + GATE(CLK_ACLK_MMC2, "mmc2", "aclk200_fsys2", GATE_BUS_FSYS0, 14,
>> 0, 0),
>> + GATE(CLK_HCLK_SROMC, "sromc", "aclk200_fsys2",
>> GATE_BUS_FSYS0, 19, CLK_IGNORE_UNUSED, 0),
>> - GATE(CLK_USBH20, "usbh20", "aclk200_fsys", GATE_BUS_FSYS0, 20, 0,
>> 0),
>> - GATE(CLK_USBD300, "usbd300", "aclk200_fsys", GATE_BUS_FSYS0, 21,
>> 0, 0),
>> - GATE(CLK_USBD301, "usbd301", "aclk200_fsys", GATE_BUS_FSYS0, 28,
>> 0, 0),
>> + GATE(CLK_HCLK_USBH20, "usbh20", "aclk200_fsys",
>> + GATE_BUS_FSYS0, 20, 0, 0),
>> + GATE(CLK_HCLK_USBD300, "usbd300", "aclk200_fsys",
>> + GATE_BUS_FSYS0, 21, 0, 0),
>> + GATE(CLK_HCLK_USBD301, "usbd301", "aclk200_fsys",
>> + GATE_BUS_FSYS0, 28, 0, 0),
>>
>> /* UART */
>> - GATE(CLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4, 0, 0),
>> - GATE(CLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5, 0, 0),
>> - GATE_A(CLK_UART2, "uart2", "aclk66_peric",
>> + GATE(CLK_PCLK_UART0, "uart0", "aclk66_peric", GATE_BUS_PERIC, 4,
>> 0, 0),
>> + GATE(CLK_PCLK_UART1, "uart1", "aclk66_peric", GATE_BUS_PERIC, 5,
>> 0, 0),
>> + GATE_A(CLK_PCLK_UART2, "uart2", "aclk66_peric",
>> GATE_BUS_PERIC, 6, CLK_IGNORE_UNUSED, 0, "uart2"),
>> - GATE(CLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7, 0, 0),
>> + GATE(CLK_PCLK_UART3, "uart3", "aclk66_peric", GATE_BUS_PERIC, 7,
>> 0, 0),
>> /* I2C */
>> - GATE(CLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0, 0),
>> - GATE(CLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0, 0),
>> - GATE(CLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0, 0),
>> - GATE(CLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0, 0),
>> - GATE(CLK_I2C4, "i2c4", "aclk66_peric", GATE_BUS_PERIC, 13, 0, 0),
>> - GATE(CLK_I2C5, "i2c5", "aclk66_peric", GATE_BUS_PERIC, 14, 0, 0),
>> - GATE(CLK_I2C6, "i2c6", "aclk66_peric", GATE_BUS_PERIC, 15, 0, 0),
>> - GATE(CLK_I2C7, "i2c7", "aclk66_peric", GATE_BUS_PERIC, 16, 0, 0),
>> - GATE(CLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric", GATE_BUS_PERIC, 17,
>> 0,
>> - 0),
>> - GATE(CLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18, 0,
>> 0),
>> + GATE(CLK_PCLK_I2C0, "i2c0", "aclk66_peric", GATE_BUS_PERIC, 9, 0,
>> 0),
>> + GATE(CLK_PCLK_I2C1, "i2c1", "aclk66_peric", GATE_BUS_PERIC, 10, 0,
>> 0),
>> + GATE(CLK_PCLK_I2C2, "i2c2", "aclk66_peric", GATE_BUS_PERIC, 11, 0,
>> 0),
>> + GATE(CLK_PCLK_I2C3, "i2c3", "aclk66_peric", GATE_BUS_PERIC, 12, 0,
>> 0),
>> + GATE(CLK_PCLK_I2C_HDMI, "i2c_hdmi", "aclk66_peric",
>> + GATE_BUS_PERIC, 17, 0, 0),
>> + GATE(CLK_PCLK_TSADC, "tsadc", "aclk66_peric", GATE_BUS_PERIC, 18,
>> 0, 0),
>> /* SPI */
>> - GATE(CLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0, 0),
>> - GATE(CLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0, 0),
>> - GATE(CLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0, 0),
>> + GATE(CLK_PCLK_SPI0, "spi0", "aclk66_peric", GATE_BUS_PERIC, 19, 0,
>> 0),
>> + GATE(CLK_PCLK_SPI1, "spi1", "aclk66_peric", GATE_BUS_PERIC, 20, 0,
>> 0),
>> + GATE(CLK_PCLK_SPI2, "spi2", "aclk66_peric", GATE_BUS_PERIC, 21, 0,
>> 0),
>> GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0,
>> 0),
>> /* I2S */
>> - GATE(CLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0, 0),
>> - GATE(CLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0, 0),
>> + GATE(CLK_PCLK_I2S1, "i2s1", "aclk66_peric", GATE_BUS_PERIC, 23, 0,
>> 0),
>> + GATE(CLK_PCLK_I2S2, "i2s2", "aclk66_peric", GATE_BUS_PERIC, 24, 0,
>> 0),
>> /* PCM */
>> - GATE(CLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0, 0),
>> - GATE(CLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0, 0),
>> + GATE(CLK_PCLK_PCM1, "pcm1", "aclk66_peric", GATE_BUS_PERIC, 25, 0,
>> 0),
>> + GATE(CLK_PCLK_PCM2, "pcm2", "aclk66_peric", GATE_BUS_PERIC, 26, 0,
>> 0),
>> /* PWM */
>> - GATE(CLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0, 0),
>> + GATE(CLK_PCLK_PWM, "pwm", "aclk66_peric", GATE_BUS_PERIC, 27, 0,
>> 0),
>> /* SPDIF */
>> - GATE(CLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29, 0,
>> 0),
>> -
>> - GATE(CLK_I2C8, "i2c8", "aclk66_peric", GATE_BUS_PERIC1, 0, 0, 0),
>> - GATE(CLK_I2C9, "i2c9", "aclk66_peric", GATE_BUS_PERIC1, 1, 0, 0),
>> - GATE(CLK_I2C10, "i2c10", "aclk66_peric", GATE_BUS_PERIC1, 2, 0,
>> 0),
>> + GATE(CLK_PCLK_SPDIF, "spdif", "aclk66_peric", GATE_BUS_PERIC, 29,
>> 0, 0),
>>
>> - GATE(CLK_CHIPID, "chipid", "aclk66_psgen",
>> + GATE(CLK_PCLK_CHIPID, "chipid", "aclk66_psgen",
>> GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0),
>> - GATE(CLK_SYSREG, "sysreg", "aclk66_psgen",
>> + GATE(CLK_PCLK_SYSREG, "sysreg", "aclk66_psgen",
>> GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0),
>> - GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0,
>> 0),
>> - GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0,
>> 0),
>> - GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0,
>> 0),
>> - GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0,
>> 0),
>> - GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0,
>> 0),
>> - GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0,
>> 0),
>> - GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0,
>> 0),
>> - GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0,
>> 0),
>> - GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0,
>> 0),
>> - GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0,
>> 0),
>> + GATE(CLK_PCLK_TZPC0, "tzpc0", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 18, 0, 0),
>> + GATE(CLK_PCLK_TZPC1, "tzpc1", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 19, 0, 0),
>> + GATE(CLK_PCLK_TZPC2, "tzpc2", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 20, 0, 0),
>> + GATE(CLK_PCLK_TZPC3, "tzpc3", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 21, 0, 0),
>> + GATE(CLK_PCLK_TZPC4, "tzpc4", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 22, 0, 0),
>> + GATE(CLK_PCLK_TZPC5, "tzpc5", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 23, 0, 0),
>> + GATE(CLK_PCLK_TZPC6, "tzpc6", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 24, 0, 0),
>> + GATE(CLK_PCLK_TZPC7, "tzpc7", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 25, 0, 0),
>> + GATE(CLK_PCLK_TZPC8, "tzpc8", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 26, 0, 0),
>> + GATE(CLK_PCLK_TZPC9, "tzpc9", "aclk66_psgen",
>> + GATE_BUS_PERIS0, 27, 0, 0),
>>
>> GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0,
>> 0,
>> 0),
>> GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0,
>> 0),
>> - GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0),
>> - GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0),
>> - GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0),
>> - GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6,
>> 0, 0),
>> + GATE(CLK_PCLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0,
>> 0),
>> + GATE(CLK_PCLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0,
>> 0),
>> + GATE(CLK_PCLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0,
>> 0),
>> + GATE(CLK_PCLK_TMU_GPU, "tmu_gpu", "aclk66_psgen",
>> + GATE_BUS_PERIS1, 6, 0, 0),
>>
>
> I'm starting to suspect that there is something wrong with this driver. Why
> does it use GATE_BUS_* registers? I believe they provide too fine grained
> control over clocks to suit expectations of our drivers, which usually need
> one "bus clock" gate and optionally one "special clock" gate.
>
> The problem with GATE_BUS_* bits is that they provide control over every
> single clock of over single IP and each IP can have multiple bus clocks
> (e.g. ACLK, PCLK, HCLK, etc.). Gating or ungating one is not enough to
> either properly save power or make the device operable. That's why all
> previous SoCs (Exynos4, Exynos5250) simply used GATE_IP_* registers that
> provide per IP control which matches what our drivers use.
True.
According to the datasheet for Exynos5420, Clock gating of any IP is
described like this
------>
Four types of clock gating control registers to disable/enable clock operation:
[1] Clock gating control register for function block (CLK_GATE_BLOCK_*)
[2] Clock gating control register for IP (CLK_GATE_IP_*)
[3] Clock gating control register for special clocks
(CLK_GATE_SCLK_*, CLK_GATE_TOP_SCLK_*)
[4] Clock gating control register for BUS (CLK_GATE_BUS_*)
Any combination of above four register are ANDed together to generate
a final clock gating enable signal.
As a result, if one of the combined register field is truned off, the
resulting clock stops.
For instance, in order to stop clocks that are provided to MIXER
module, one may set
CLK_MIXER field in CLK_GATE_BUS_IP_DISP1 register to 0 or
CLK_DISP1 field in CLK_GATE_BLOCK register to 0 or
ACLK_MIXER field in CLK_GATE_BUS_DISP1 register to 0
<---------
But if we see the Exynos5250 datasheet, points [3], [4] are not mentioned.
Currently we are using point [4] to gate any IP wherever possible.
And even CLK_GATE_IP_* register also distinguishes between APB and AXI
clock gating.
For example, there are two different bits to gate APB and AXI clocks
separately in CLK_GATE_IP_GSCL0.
Register: CLK_GATE_IP_GSCL0
CLK_GSCALER1 - [15] - Gating APB clock for GSCALER1, 0 = Masks and 1 = Passes
CLK_GSCALER0 - [14] - Gating APB clock for GSCALER0, 0 = Masks and 1 = Passes
CLK_GSCL1 - [1] - Gating AXI clock for SYSMMU_GSCALER1
Gating AXI clock for QE_GSCALER1
Gating AXI clock for GSCALER1
0 = Masks and 1 = Passes
CLK_GSCL0 - [0] - Gating AXI clock for SYSMMU_GSCALER0
Gating AXI clock for QE_GSCALER0
Gating AXI clock for GSCALER0
0 = Masks and 1 = Passes
Rahul may have other requirements for selecting this method [4] for
chrome project.
I hope he will clarify the same here.
For me, If I see no difference b/w using CLK_GATE_BUS_* and
CLK_GATE_IP_* registers,
then I will definitely interested to use the CLK_GATE_IP_* in the next series.
Incase if I see any difficulty in implementation with above method, I
will share with you and
provide a suitable workaround.
Regards,
Shaik Ameer Basha
>
> I need to verify this further in datasheet (as soon as I get access to
> one...), but I suspect this is plain wrong.
>
> Now, one side effect of using GATE_IP_* registers will be no need to add
> *CLK_ prefix to clock IDs as they would be simply gating the IPs, not their
> particular clocks.
>
>
>> - GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0),
>> - GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0),
>> - GATE(CLK_CLK_3AA, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0,
>> 0),
>> + GATE(CLK_ACLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0,
>> 0),
>> + GATE(CLK_ACLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0,
>> 0),
>> + GATE(CLK_ACLK_FIMC_3AA, "clk_3aa", "aclk300_gscl",
>> + GATE_IP_GSCL0, 4, 0, 0),
>>
>> GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1,
>> 2, 0,
>> 0),
>> @@ -731,38 +738,39 @@ static struct samsung_gate_clock
>> exynos5420_gate_clks[] __initdata = {
>> 0),
>> GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1,
>> 7, 0,
>> 0),
>> - GATE(CLK_GSCL_WA, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0,
>> 0),
>> + GATE(CLK_PCLK_GSCL_WA, "gscl_wa", "aclk300_gscl",
>> + GATE_IP_GSCL1, 12, 0, 0),
>> GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0,
>> 0),
>> GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl",
>> GATE_IP_GSCL1, 16, 0, 0),
>> - GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
>> + GATE(CLK_ACLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",
>> GATE_IP_GSCL1, 17, 0, 0),
>>
>> - GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0),
>> - GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0),
>> - GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0),
>> - GATE(CLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
>> - GATE(CLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0, 0),
>> - GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1,
>> 8, 0,
>> - 0),
>> + GATE(CLK_ACLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0,
>> 0, 0),
>> + GATE(CLK_PCLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3,
>> 0, 0),
>> + GATE(CLK_PCLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0,
>> 0),
>> + GATE(CLK_ACLK_MIXER, "mixer", "aclk166", GATE_IP_DISP1, 5, 0, 0),
>> + GATE(CLK_PCLK_HDMI, "hdmi", "aclk200_disp1", GATE_IP_DISP1, 6, 0,
>> 0),
>> + GATE(CLK_SMMU_FIMD1M0, "smmu_fimd1", "aclk300_disp1",
>> + GATE_IP_DISP1, 8, 0, 0),
>>
>> - GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
>> + GATE(CLK_ACLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
>> GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0),
>> GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0),
>>
>> GATE(CLK_G3D, "g3d", "aclkg3d", GATE_IP_G3D, 9, 0, 0),
>>
>> - GATE(CLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
>> - GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
>> - GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0),
>> - GATE(CLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
>> + GATE(CLK_ACLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0,
>> 0),
>> + GATE(CLK_ACLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0),
>> + GATE(CLK_ACLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0,
>> 0),
>> + GATE(CLK_ACLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
>> GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6,
>> 0, 0),
>> GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7,
>> 0, 0),
>> GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0,
>> 0),
>>
>> - GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0),
>> - GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0),
>> - GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0),
>> + GATE(CLK_ACLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0,
>> 0),
>> + GATE(CLK_ACLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0,
>> 0),
>> + GATE(CLK_ACLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0,
>> 0),
>> GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL,
>> 8, 0,
>> 0),
>> GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL,
>> 9, 0,
>> @@ -773,7 +781,7 @@ static struct samsung_gate_clock
>> exynos5420_gate_clks[] __initdata = {
>> 0),
>>
>> /* SSS */
>> - GATE(CLK_SSS, "sss", "aclk266_g2d", GATE_IP_G2D, 2, 0, 0),
>> + GATE(CLK_ACLK_SSS, "aclk_sss", "aclk266_g2d", GATE_IP_G2D, 2, 0,
>> 0),
>> };
>>
>> static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = {
>> diff --git a/include/dt-bindings/clock/exynos5420.h
>> b/include/dt-bindings/clock/exynos5420.h
>> index e921913..598eb48 100644
>> --- a/include/dt-bindings/clock/exynos5420.h
>> +++ b/include/dt-bindings/clock/exynos5420.h
>> @@ -71,120 +71,120 @@
>>
>> /* gate clocks */
>> #define CLK_ACLK66_PERIC 256
>> -#define CLK_UART0 257
>> -#define CLK_UART1 258
>> -#define CLK_UART2 259
>> -#define CLK_UART3 260
>> -#define CLK_I2C0 261
>> -#define CLK_I2C1 262
>> -#define CLK_I2C2 263
>> -#define CLK_I2C3 264
>> +#define CLK_PCLK_UART0 257
>> +#define CLK_PCLK_UART1 258
>> +#define CLK_PCLK_UART2 259
>> +#define CLK_PCLK_UART3 260
>> +#define CLK_PCLK_I2C0 261
>> +#define CLK_PCLK_I2C1 262
>> +#define CLK_PCLK_I2C2 263
>> +#define CLK_PCLK_I2C3 264
>> #define CLK_I2C4 265
>> #define CLK_I2C5 266
>> #define CLK_I2C6 267
>> #define CLK_I2C7 268
>> -#define CLK_I2C_HDMI 269
>> -#define CLK_TSADC 270
>> -#define CLK_SPI0 271
>> -#define CLK_SPI1 272
>> -#define CLK_SPI2 273
>> +#define CLK_PCLK_I2C_HDMI 269
>> +#define CLK_PCLK_TSADC 270
>> +#define CLK_PCLK_SPI0 271
>> +#define CLK_PCLK_SPI1 272
>> +#define CLK_PCLK_SPI2 273
>> #define CLK_KEYIF 274
>> -#define CLK_I2S1 275
>> -#define CLK_I2S2 276
>> -#define CLK_PCM1 277
>> -#define CLK_PCM2 278
>> -#define CLK_PWM 279
>> -#define CLK_SPDIF 280
>> +#define CLK_PCLK_I2S1 275
>> +#define CLK_PCLK_I2S2 276
>> +#define CLK_PCLK_PCM1 277
>> +#define CLK_PCLK_PCM2 278
>> +#define CLK_PCLK_PWM 279
>> +#define CLK_PCLK_SPDIF 280
>> #define CLK_I2C8 281
>> #define CLK_I2C9 282
>> #define CLK_I2C10 283
>> #define CLK_ACLK66_PSGEN 300
>> -#define CLK_CHIPID 301
>> -#define CLK_SYSREG 302
>> -#define CLK_TZPC0 303
>> -#define CLK_TZPC1 304
>> -#define CLK_TZPC2 305
>> -#define CLK_TZPC3 306
>> -#define CLK_TZPC4 307
>> -#define CLK_TZPC5 308
>> -#define CLK_TZPC6 309
>> -#define CLK_TZPC7 310
>> -#define CLK_TZPC8 311
>> -#define CLK_TZPC9 312
>> +#define CLK_PCLK_CHIPID 301
>> +#define CLK_PCLK_SYSREG 302
>> +#define CLK_PCLK_TZPC0 303
>> +#define CLK_PCLK_TZPC1 304
>> +#define CLK_PCLK_TZPC2 305
>> +#define CLK_PCLK_TZPC3 306
>> +#define CLK_PCLK_TZPC4 307
>> +#define CLK_PCLK_TZPC5 308
>> +#define CLK_PCLK_TZPC6 309
>> +#define CLK_PCLK_TZPC7 310
>> +#define CLK_PCLK_TZPC8 311
>> +#define CLK_PCLK_TZPC9 312
>> #define CLK_HDMI_CEC 313
>> #define CLK_SECKEY 314
>> -#define CLK_MCT 315
>> -#define CLK_WDT 316
>> -#define CLK_RTC 317
>> -#define CLK_TMU 318
>> -#define CLK_TMU_GPU 319
>> +#define CLK_PCLK_MCT 315
>> +#define CLK_PCLK_WDT 316
>> +#define CLK_PCLK_RTC 317
>> +#define CLK_PCLK_TMU 318
>> +#define CLK_PCLK_TMU_GPU 319
>> #define CLK_PCLK66_GPIO 330
>> #define CLK_ACLK200_FSYS2 350
>> -#define CLK_MMC0 351
>> -#define CLK_MMC1 352
>> -#define CLK_MMC2 353
>> -#define CLK_SROMC 354
>> +#define CLK_ACLK_MMC0 351
>> +#define CLK_ACLK_MMC1 352
>> +#define CLK_ACLK_MMC2 353
>> +#define CLK_HCLK_SROMC 354
>> #define CLK_UFS 355
>> #define CLK_ACLK200_FSYS 360
>> #define CLK_TSI 361
>> -#define CLK_PDMA0 362
>> -#define CLK_PDMA1 363
>> -#define CLK_RTIC 364
>> -#define CLK_USBH20 365
>> -#define CLK_USBD300 366
>> -#define CLK_USBD301 367
>> +#define CLK_ACLK_PDMA0 362
>> +#define CLK_ACLK_PDMA1 363
>> +#define CLK_ACLK_RTIC 364
>> +#define CLK_HCLK_USBH20 365
>> +#define CLK_HCLK_USBD300 366
>> +#define CLK_HCLK_USBD301 367
>> #define CLK_PCLK200_FSYS 370
>> #define CLK_ACLK400_MSCL 380
>> -#define CLK_MSCL0 381
>> -#define CLK_MSCL1 382
>> -#define CLK_MSCL2 383
>> +#define CLK_ACLK_MSCL0 381
>> +#define CLK_ACLK_MSCL1 382
>> +#define CLK_ACLK_MSCL2 383
>> #define CLK_SMMU_MSCL0 384
>> #define CLK_SMMU_MSCL1 385
>> #define CLK_SMMU_MSCL2 386
>> #define CLK_ACLK333 400
>> -#define CLK_MFC 401
>> +#define CLK_ACLK_MFC 401
>> #define CLK_SMMU_MFCL 402
>> #define CLK_SMMU_MFCR 403
>> #define CLK_ACLK200_DISP1 410
>> -#define CLK_DSIM1 411
>> -#define CLK_DP1 412
>> -#define CLK_HDMI 413
>> +#define CLK_PCLK_DSIM1 411
>> +#define CLK_PCLK_DP1 412
>> +#define CLK_PCLK_HDMI 413
>> #define CLK_ACLK300_DISP1 420
>> -#define CLK_FIMD1 421
>> -#define CLK_SMMU_FIMD1 422
>> +#define CLK_ACLK_FIMD1 421
>> +#define CLK_SMMU_FIMD1M0 422
>> #define CLK_SMMU_FIMD1M1 423
>> #define CLK_ACLK400_DISP1 424
>> #define CLK_ACLK166 430
>> -#define CLK_MIXER 431
>> +#define CLK_ACLK_MIXER 431
>> #define CLK_ACLK266 440
>> -#define CLK_ROTATOR 441
>> -#define CLK_MDMA1 442
>> +#define CLK_ACLK_ROTATOR 441
>> +#define CLK_ACLK_MDMA1 442
>> #define CLK_SMMU_ROTATOR 443
>> #define CLK_SMMU_MDMA1 444
>> #define CLK_ACLK300_JPEG 450
>> -#define CLK_JPEG 451
>> -#define CLK_JPEG2 452
>> +#define CLK_ACLK_JPEG 451
>> +#define CLK_ACLK_JPEG2 452
>> #define CLK_SMMU_JPEG 453
>> #define CLK_ACLK300_GSCL 460
>> #define CLK_SMMU_GSCL0 461
>> #define CLK_SMMU_GSCL1 462
>> -#define CLK_GSCL_WA 463
>> +#define CLK_PCLK_GSCL_WA 463
>> #define CLK_GSCL_WB 464
>> -#define CLK_GSCL0 465
>> -#define CLK_GSCL1 466
>> -#define CLK_CLK_3AA 467
>> +#define CLK_ACLK_GSCL0 465
>> +#define CLK_ACLK_GSCL1 466
>> +#define CLK_ACLK_FIMC_3AA 467
>> #define CLK_ACLK266_G2D 470
>> -#define CLK_SSS 471
>> -#define CLK_SLIM_SSS 472
>> -#define CLK_MDMA0 473
>> +#define CLK_ACLK_SSS 471
>> +#define CLK_ACLK_SLIM_SSS 472
>> +#define CLK_ACLK_MDMA0 473
>> #define CLK_ACLK333_G2D 480
>> -#define CLK_G2D 481
>> +#define CLK_ACLK_G2D 481
>> #define CLK_ACLK333_432_GSCL 490
>> #define CLK_SMMU_3AA 491
>> #define CLK_SMMU_FIMCL0 492
>> #define CLK_SMMU_FIMCL1 493
>> #define CLK_SMMU_FIMCL3 494
>> -#define CLK_FIMC_LITE3 495
>> +#define CLK_ACLK_FIMC_LITE3 495
>> #define CLK_G3D 500
>> #define CLK_SMMU_MIXER 502
>> #define CLK_PCLK_TZPC10 503
>>
>
> As Gerhard already mentioned, this will break bisection of existing users of
> old macros, so this is a bad idea to change them this way.
>
> Anyway, most of those renames are mostly adding *CLK_ prefixes, so I really
> wonder if this is necessary, especially considering the GATE_BUS_* issue I
> mentioned above and that clock names (and parent names in all their
> children) would have to be updated as well. What do you think?
>
> Best regards,
> Tomasz
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2014-04-20 8:32 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-27 11:07 [PATCH v2 0/7] exynos5420: clock file cleanup Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 1/7] clk: exynos5420: Add more clock register offsets Shaik Ameer Basha
2014-04-15 16:45 ` Tomasz Figa
2014-04-20 7:27 ` Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 2/7] clk: exynos5420: Add more clock IDs Shaik Ameer Basha
2014-04-15 16:50 ` Tomasz Figa
2014-04-20 7:30 ` Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 3/7] clk: exynos5420: Rename " Shaik Ameer Basha
2014-03-27 19:49 ` Gerhard Sittig
2014-04-01 4:42 ` Shaik Ameer Basha
2014-04-01 4:44 ` Shaik Ameer Basha
2014-04-15 17:03 ` Tomasz Figa
2014-04-20 8:32 ` Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 4/7] clk: exynos5420: Rename clock names Shaik Ameer Basha
2014-04-15 17:05 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 5/7] clk: exynos5420: Add missing clocks Shaik Ameer Basha
2014-04-15 17:56 ` Tomasz Figa
2014-03-27 11:07 ` [PATCH v2 6/7] clk: exynos5420: Add more registers to restore list Shaik Ameer Basha
2014-03-27 11:07 ` [PATCH v2 7/7] ARM: dts: update macros in clock bindings for exynos5420 Shaik Ameer Basha
[not found] ` <1395918470-16374-8-git-send-email-shaik.ameer-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-04-15 18:01 ` Tomasz Figa
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).