From: david@lechnology.com (David Lechner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/7] ARM: davinci: fix duplicate clocks
Date: Sun, 31 Dec 2017 17:39:44 -0600 [thread overview]
Message-ID: <1514763588-31560-4-git-send-email-david@lechnology.com> (raw)
In-Reply-To: <1514763588-31560-1-git-send-email-david@lechnology.com>
There are a number of clocks that were duplicated because they are used by
more than one device. It is no longer necessary to do this since we are
explicitly calling clk_register_clkdev() for each clock. In da830.c, some
clocks were using the same LPSC, which would cause problems with reference
counting, so these are combinded into one clock each. In da850.c the
duplicate clocks had already been fixed by creating dummy child clocks, so
these clocks are removed.
Signed-off-by: David Lechner <david@lechnology.com>
---
arch/arm/mach-davinci/da830.c | 65 ++++++--------------------------------
arch/arm/mach-davinci/da850.c | 72 ------------------------------------------
arch/arm/mach-davinci/dm365.c | 1 -
arch/arm/mach-davinci/dm644x.c | 3 --
arch/arm/mach-davinci/dm646x.c | 1 -
5 files changed, 9 insertions(+), 133 deletions(-)
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
index 73c48f5..b0e54a1 100644
--- a/arch/arm/mach-davinci/da830.c
+++ b/arch/arm/mach-davinci/da830.c
@@ -213,57 +213,22 @@ static struct clk spi1_clk = {
.gpsc = 1,
};
-static struct clk ecap0_clk = {
- .name = "ecap0",
+static struct clk ecap_clk = {
+ .name = "ecap",
.parent = &pll0_sysclk2,
.lpsc = DA8XX_LPSC1_ECAP,
.gpsc = 1,
};
-static struct clk ecap1_clk = {
- .name = "ecap1",
- .parent = &pll0_sysclk2,
- .lpsc = DA8XX_LPSC1_ECAP,
- .gpsc = 1,
-};
-
-static struct clk ecap2_clk = {
- .name = "ecap2",
- .parent = &pll0_sysclk2,
- .lpsc = DA8XX_LPSC1_ECAP,
- .gpsc = 1,
-};
-
-static struct clk pwm0_clk = {
- .name = "pwm0",
- .parent = &pll0_sysclk2,
- .lpsc = DA8XX_LPSC1_PWM,
- .gpsc = 1,
-};
-
-static struct clk pwm1_clk = {
- .name = "pwm1",
+static struct clk pwm_clk = {
+ .name = "pwm",
.parent = &pll0_sysclk2,
.lpsc = DA8XX_LPSC1_PWM,
.gpsc = 1,
};
-static struct clk pwm2_clk = {
- .name = "pwm2",
- .parent = &pll0_sysclk2,
- .lpsc = DA8XX_LPSC1_PWM,
- .gpsc = 1,
-};
-
-static struct clk eqep0_clk = {
- .name = "eqep0",
- .parent = &pll0_sysclk2,
- .lpsc = DA830_LPSC1_EQEP,
- .gpsc = 1,
-};
-
-static struct clk eqep1_clk = {
- .name = "eqep1",
+static struct clk eqep_clk = {
+ .name = "eqep",
.parent = &pll0_sysclk2,
.lpsc = DA830_LPSC1_EQEP,
.gpsc = 1,
@@ -304,11 +269,6 @@ static struct clk usb20_clk = {
.gpsc = 1,
};
-static struct clk cppi41_clk = {
- .name = "cppi41",
- .parent = &usb20_clk,
-};
-
static struct clk aemif_clk = {
.name = "aemif",
.parent = &pll0_sysclk3,
@@ -434,21 +394,16 @@ static __init void da830_clk_init(void)
clk_register_clkdev(clk, NULL, "spi_davinci.0");
clk = davinci_clk_init(&spi1_clk);
clk_register_clkdev(clk, NULL, "spi_davinci.1");
- clk = davinci_clk_init(&ecap0_clk);
+ clk = davinci_clk_init(&ecap_clk);
clk_register_clkdev(clk, "ecap0", NULL);
- clk = davinci_clk_init(&ecap1_clk);
clk_register_clkdev(clk, "ecap1", NULL);
- clk = davinci_clk_init(&ecap2_clk);
clk_register_clkdev(clk, "ecap2", NULL);
- clk = davinci_clk_init(&pwm0_clk);
+ clk = davinci_clk_init(&pwm_clk);
clk_register_clkdev(clk, "pwm0", NULL);
- clk = davinci_clk_init(&pwm1_clk);
clk_register_clkdev(clk, "pwm1", NULL);
- clk = davinci_clk_init(&pwm2_clk);
clk_register_clkdev(clk, "pwm2", NULL);
- clk = davinci_clk_init(&eqep0_clk);
+ clk = davinci_clk_init(&eqep_clk);
clk_register_clkdev(clk, NULL, "eqep.0");
- clk = davinci_clk_init(&eqep1_clk);
clk_register_clkdev(clk, NULL, "eqep.1");
clk = davinci_clk_init(&lcdc_clk);
clk_register_clkdev(clk, "fck", "da8xx_lcdc.0");
@@ -460,7 +415,6 @@ static __init void da830_clk_init(void)
clk_register_clkdev(clk, NULL, "davinci-mcasp.2");
clk = davinci_clk_init(&usb20_clk);
clk_register_clkdev(clk, "usb20", "musb-da8xx");
- clk = davinci_clk_init(&cppi41_clk);
clk_register_clkdev(clk, NULL, "cppi41-dmaengine");
clk = davinci_clk_init(&aemif_clk);
clk_register_clkdev(clk, "aemif", NULL);
@@ -470,7 +424,6 @@ static __init void da830_clk_init(void)
clk_register_clkdev(clk, "secu_mgr", NULL);
clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, NULL, "davinci_emac.1");
- clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, "fck", "davinci_mdio.0");
clk = davinci_clk_init(&gpio_clk);
clk_register_clkdev(clk, "gpio", NULL);
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index eaa05ac..0975edb 100644
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -319,16 +319,6 @@ static struct clk emac_clk = {
.gpsc = 1,
};
-/*
- * In order to avoid adding the emac_clk to the clock lookup table twice (and
- * screwing up the linked list in the process) create a separate clock for
- * mdio inheriting the rate from emac_clk.
- */
-static struct clk mdio_clk = {
- .name = "mdio",
- .parent = &emac_clk,
-};
-
static struct clk mcasp_clk = {
.name = "mcasp",
.parent = &async3_clk,
@@ -377,16 +367,6 @@ static struct clk aemif_clk = {
.flags = ALWAYS_ENABLED,
};
-/*
- * In order to avoid adding the aemif_clk to the clock lookup table twice (and
- * screwing up the linked list in the process) create a separate clock for
- * nand inheriting the rate from aemif_clk.
- */
-static struct clk aemif_nand_clk = {
- .name = "nand",
- .parent = &aemif_clk,
-};
-
static struct clk usb11_clk = {
.name = "usb11",
.parent = &pll0_sysclk4,
@@ -401,11 +381,6 @@ static struct clk usb20_clk = {
.gpsc = 1,
};
-static struct clk cppi41_clk = {
- .name = "cppi41",
- .parent = &usb20_clk,
-};
-
static struct clk spi0_clk = {
.name = "spi0",
.parent = &pll0_sysclk2,
@@ -449,16 +424,6 @@ static struct clk ehrpwm_clk = {
.gpsc = 1,
};
-static struct clk ehrpwm0_clk = {
- .name = "ehrpwm0",
- .parent = &ehrpwm_clk,
-};
-
-static struct clk ehrpwm1_clk = {
- .name = "ehrpwm1",
- .parent = &ehrpwm_clk,
-};
-
#define DA8XX_EHRPWM_TBCLKSYNC BIT(12)
static void ehrpwm_tblck_enable(struct clk *clk)
@@ -486,15 +451,6 @@ static struct clk ehrpwm_tbclk = {
.clk_disable = ehrpwm_tblck_disable,
};
-static struct clk ehrpwm0_tbclk = {
- .name = "ehrpwm0_tbclk",
- .parent = &ehrpwm_tbclk,
-};
-
-static struct clk ehrpwm1_tbclk = {
- .name = "ehrpwm1_tbclk",
- .parent = &ehrpwm_tbclk,
-};
static struct clk ecap_clk = {
.name = "ecap",
@@ -503,21 +459,6 @@ static struct clk ecap_clk = {
.gpsc = 1,
};
-static struct clk ecap0_clk = {
- .name = "ecap0_clk",
- .parent = &ecap_clk,
-};
-
-static struct clk ecap1_clk = {
- .name = "ecap1_clk",
- .parent = &ecap_clk,
-};
-
-static struct clk ecap2_clk = {
- .name = "ecap2_clk",
- .parent = &ecap_clk,
-};
-
static __init void da850_clk_init(void)
{
struct clk *clk;
@@ -592,7 +533,6 @@ static __init void da850_clk_init(void)
clk_register_clkdev(clk, "rmii", NULL);
clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, NULL, "davinci_emac.1");
- clk = davinci_clk_init(&mdio_clk);
clk_register_clkdev(clk, "fck", "davinci_mdio.0");
clk = davinci_clk_init(&mcasp_clk);
clk_register_clkdev(clk, NULL, "davinci-mcasp.0");
@@ -608,13 +548,11 @@ static __init void da850_clk_init(void)
clk_register_clkdev(clk, NULL, "da830-mmc.1");
clk = davinci_clk_init(&aemif_clk);
clk_register_clkdev(clk, NULL, "ti-aemif");
- clk = davinci_clk_init(&aemif_nand_clk);
clk_register_clkdev(clk, "aemif", "davinci-nand.0");
clk = davinci_clk_init(&usb11_clk);
clk_register_clkdev(clk, "usb11", "ohci-da8xx");
clk = davinci_clk_init(&usb20_clk);
clk_register_clkdev(clk, "usb20", "musb-da8xx");
- clk = davinci_clk_init(&cppi41_clk);
clk_register_clkdev(clk, NULL, "cppi41-dmaengine");
clk = davinci_clk_init(&spi0_clk);
clk_register_clkdev(clk, NULL, "spi_davinci.0");
@@ -627,24 +565,14 @@ static __init void da850_clk_init(void)
clk = davinci_clk_init(&dsp_clk);
clk_register_clkdev(clk, NULL, "davinci-rproc.0");
clk = davinci_clk_init(&ehrpwm_clk);
- clk_register_clkdev(clk, NULL, NULL);
- clk = davinci_clk_init(&ehrpwm0_clk);
clk_register_clkdev(clk, "fck", "ehrpwm.0");
- clk = davinci_clk_init(&ehrpwm1_clk);
clk_register_clkdev(clk, "fck", "ehrpwm.1");
clk = davinci_clk_init(&ehrpwm_tbclk);
- clk_register_clkdev(clk, NULL, NULL);
- clk = davinci_clk_init(&ehrpwm0_tbclk);
clk_register_clkdev(clk, "tbclk", "ehrpwm.0");
- clk = davinci_clk_init(&ehrpwm1_tbclk);
clk_register_clkdev(clk, "tbclk", "ehrpwm.1");
clk = davinci_clk_init(&ecap_clk);
- clk_register_clkdev(clk, NULL, NULL);
- clk = davinci_clk_init(&ecap0_clk);
clk_register_clkdev(clk, "fck", "ecap.0");
- clk = davinci_clk_init(&ecap1_clk);
clk_register_clkdev(clk, "fck", "ecap.1");
- clk = davinci_clk_init(&ecap2_clk);
clk_register_clkdev(clk, "fck", "ecap.2");
}
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
index 0cf4ab4..430fb1e 100644
--- a/arch/arm/mach-davinci/dm365.c
+++ b/arch/arm/mach-davinci/dm365.c
@@ -533,7 +533,6 @@ static __init void dm365_clk_init(void)
clk_register_clkdev(clk, "usb", NULL);
clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, NULL, "davinci_emac.1");
- clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, "fck", "davinci_mdio.0");
clk = davinci_clk_init(&voicecodec_clk);
clk_register_clkdev(clk, NULL, "davinci_voicecodec");
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index 769ce29..58120f4 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -323,8 +323,6 @@ static __init void dm644x_clk_init(void)
clk_register_clkdev(clk, "master", "vpss");
clk = davinci_clk_init(&vpss_slave_clk);
clk_register_clkdev(clk, "slave", "vpss");
- clk = davinci_clk_init(&arm_clk);
- clk_register_clkdev(clk, "arm", NULL);
clk = davinci_clk_init(&uart0_clk);
clk_register_clkdev(clk, NULL, "serial8250.0");
clk = davinci_clk_init(&uart1_clk);
@@ -333,7 +331,6 @@ static __init void dm644x_clk_init(void)
clk_register_clkdev(clk, NULL, "serial8250.2");
clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, NULL, "davinci_emac.1");
- clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, "fck", "davinci_mdio.0");
clk = davinci_clk_init(&i2c_clk);
clk_register_clkdev(clk, NULL, "i2c_davinci.1");
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index d75b4bc09..0cd5d51 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -386,7 +386,6 @@ static __init void dm646x_clk_init(void)
clk_register_clkdev(clk, "aemif", NULL);
clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, NULL, "davinci_emac.1");
- clk = davinci_clk_init(&emac_clk);
clk_register_clkdev(clk, "fck", "davinci_mdio.0");
clk = davinci_clk_init(&pwm0_clk);
clk_register_clkdev(clk, "pwm0", NULL);
--
2.7.4
next prev parent reply other threads:[~2017-12-31 23:39 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-31 23:39 [PATCH v4 0/7] ARM: davinci: convert to common clock framework David Lechner
2017-12-31 23:39 ` [PATCH v4 1/7] ARM: davinci: move davinci_clk_init() to init_time David Lechner
2017-12-31 23:39 ` [PATCH v4 2/7] ARM: davinci: don't use static clk_lookup David Lechner
2018-01-04 11:10 ` Sekhar Nori
2018-01-04 17:43 ` David Lechner
2017-12-31 23:39 ` David Lechner [this message]
2018-01-04 11:12 ` [PATCH v4 3/7] ARM: davinci: fix duplicate clocks Sekhar Nori
2018-01-04 17:44 ` David Lechner
2017-12-31 23:39 ` [PATCH v4 4/7] ARM: davinci: remove davinci_set_refclk_rate() David Lechner
2017-12-31 23:39 ` [PATCH v4 5/7] clk: Introduce davinci clocks David Lechner
2018-01-01 0:23 ` David Lechner
2018-01-02 21:31 ` David Lechner
2018-01-04 12:28 ` Sekhar Nori
2018-01-04 17:46 ` David Lechner
2018-01-04 12:43 ` Sekhar Nori
2018-01-04 17:47 ` David Lechner
2017-12-31 23:39 ` [PATCH v4 7/7] ARM: davinci_all_defconfig: remove CONFIG_DAVINCI_RESET_CLOCKS David Lechner
2018-01-02 15:10 ` [PATCH v4 0/7] ARM: davinci: convert to common clock framework Adam Ford
2018-01-02 17:10 ` David Lechner
2018-01-02 18:31 ` David Lechner
2018-01-03 16:57 ` Sekhar Nori
[not found] ` <1514763588-31560-7-git-send-email-david@lechnology.com>
2018-01-04 12:39 ` [PATCH v4 6/7] ARM: davinci: convert to common clock framework Sekhar Nori
2018-01-04 17:50 ` David Lechner
2018-01-04 19:26 ` Adam Ford
2018-01-04 21:22 ` David Lechner
2018-01-05 2:59 ` David Lechner
2018-01-05 10:42 ` Sekhar Nori
2018-01-06 1:42 ` David Lechner
2018-01-08 5:36 ` Sekhar Nori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1514763588-31560-4-git-send-email-david@lechnology.com \
--to=david@lechnology.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).