From: Tomasz Figa <tomasz.figa@gmail.com>
To: Humberto Silva Naves <hsnaves@gmail.com>,
linux-samsung-soc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
devicetree@vger.kernel.org, Kukjin Kim <kgene.kim@samsung.com>,
Tomasz Figa <t.figa@samsung.com>,
Thomas Abraham <ta.omasab@gmail.com>,
Andreas Farber <afaerber@suse.de>,
Randy Dunlap <rdunlap@infradead.org>,
Ian Campbell <ijc+devicetree@hellion.org.uk>
Subject: Re: [PATCHv2 5/5] clk: samsung: exynos5410: Added clocks DPLL, EPLL, IPLL, and VPLL
Date: Thu, 31 Jul 2014 15:07:18 +0200 [thread overview]
Message-ID: <53DA3F86.3020506@gmail.com> (raw)
In-Reply-To: <1406805732-17372-6-git-send-email-hsnaves@gmail.com>
Hi Humberto,
You can find my comments inline.
On 31.07.2014 13:22, Humberto Silva Naves wrote:
> Added the remaining PLL clocks, and also added the configuration
> tables with the PLL coefficients for the supported frequencies.
> These frequency tables are only installed when a 24MHz clock is
> supplied as the input clock source. To reflect these changes, new
> constants were added to the dt-bindings file.
[snip]
> +static struct samsung_pll_rate_table apll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(2100000000, 175, 2, 0),
> + PLL_35XX_RATE(2000000000, 250, 3, 0),
> + PLL_35XX_RATE(1900000000, 475, 6, 0),
> + PLL_35XX_RATE(1800000000, 225, 3, 0),
> + PLL_35XX_RATE(1700000000, 425, 6, 0),
> + PLL_35XX_RATE(1600000000, 200, 3, 0),
> + PLL_35XX_RATE(1500000000, 250, 4, 0),
> + PLL_35XX_RATE(1400000000, 175, 3, 0),
> + PLL_35XX_RATE(1300000000, 325, 6, 0),
> + PLL_35XX_RATE(1200000000, 100, 2, 0),
> + PLL_35XX_RATE(1100000000, 275, 3, 1),
> + PLL_35XX_RATE(1000000000, 250, 3, 1),
> + PLL_35XX_RATE(900000000, 150, 2, 1),
> + PLL_35XX_RATE(800000000, 200, 3, 1),
> + PLL_35XX_RATE(700000000, 175, 3, 1),
> + PLL_35XX_RATE(600000000, 100, 2, 1),
> + PLL_35XX_RATE(500000000, 250, 3, 2),
> + PLL_35XX_RATE(400000000, 200, 3, 2),
> + PLL_35XX_RATE(300000000, 100, 2, 2),
> + PLL_35XX_RATE(200000000, 200, 3, 3),
nit: The numbers could be aligned to the right using spaces (see exynos4.c).
> + { },
> +};
> +
> +static struct samsung_pll_rate_table cpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(666000000, 222, 4, 1),
> + PLL_35XX_RATE(640000000, 160, 3, 1),
> + PLL_35XX_RATE(320000000, 160, 3, 2),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table dpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(600000000, 200, 4, 1),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table epll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_36XX_RATE(rate, m, p, s, k) */
> + PLL_36XX_RATE(600000000, 100, 2, 1, 0),
> + PLL_36XX_RATE(400000000, 200, 3, 2, 0),
> + PLL_36XX_RATE(200000000, 200, 3, 3, 0),
> + PLL_36XX_RATE(180633600, 301, 5, 3, -3670),
> + PLL_36XX_RATE( 67737600, 452, 5, 5, -27263),
> + PLL_36XX_RATE( 49152000, 197, 3, 5, -25690),
> + PLL_36XX_RATE( 45158401, 181, 3, 5, -24012),
Have you ensured that the rates specified match the rates calculated
using PLL equation? You can find how it is calculated in recalc_rate
callback of this particular PLL type in clk-pll.c.
As a side note, the PLL registration code should be made a bit more
robust and just calculate the rates itself and printing warnings if they
don't match the entered ones. I definitely need more hours in a day, so
much to do. ;)
> + { },
> +};
> +
> +static struct samsung_pll_rate_table ipll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s, k) */
> + PLL_35XX_RATE(864000000, 288, 4, 1),
> + PLL_35XX_RATE(666000000, 222, 4, 1),
> + PLL_35XX_RATE(432000000, 288, 4, 2),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table kpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(1500000000, 250, 4, 0),
> + PLL_35XX_RATE(1400000000, 175, 3, 0),
> + PLL_35XX_RATE(1300000000, 325, 6, 0),
> + PLL_35XX_RATE(1200000000, 100, 2, 0),
> + PLL_35XX_RATE(1100000000, 275, 3, 1),
> + PLL_35XX_RATE(1000000000, 250, 3, 1),
> + PLL_35XX_RATE(900000000, 150, 2, 1),
> + PLL_35XX_RATE(800000000, 200, 3, 1),
> + PLL_35XX_RATE(700000000, 175, 3, 1),
> + PLL_35XX_RATE(600000000, 100, 2, 1),
> + PLL_35XX_RATE(500000000, 250, 3, 2),
> + PLL_35XX_RATE(400000000, 200, 3, 2),
> + PLL_35XX_RATE(300000000, 100, 2, 2),
> + PLL_35XX_RATE(200000000, 200, 3, 3),
nit: Alignment.
Otherwise looks good, thanks.
Best regards,
Tomasz
WARNING: multiple messages have this Message-ID (diff)
From: tomasz.figa@gmail.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv2 5/5] clk: samsung: exynos5410: Added clocks DPLL, EPLL, IPLL, and VPLL
Date: Thu, 31 Jul 2014 15:07:18 +0200 [thread overview]
Message-ID: <53DA3F86.3020506@gmail.com> (raw)
In-Reply-To: <1406805732-17372-6-git-send-email-hsnaves@gmail.com>
Hi Humberto,
You can find my comments inline.
On 31.07.2014 13:22, Humberto Silva Naves wrote:
> Added the remaining PLL clocks, and also added the configuration
> tables with the PLL coefficients for the supported frequencies.
> These frequency tables are only installed when a 24MHz clock is
> supplied as the input clock source. To reflect these changes, new
> constants were added to the dt-bindings file.
[snip]
> +static struct samsung_pll_rate_table apll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(2100000000, 175, 2, 0),
> + PLL_35XX_RATE(2000000000, 250, 3, 0),
> + PLL_35XX_RATE(1900000000, 475, 6, 0),
> + PLL_35XX_RATE(1800000000, 225, 3, 0),
> + PLL_35XX_RATE(1700000000, 425, 6, 0),
> + PLL_35XX_RATE(1600000000, 200, 3, 0),
> + PLL_35XX_RATE(1500000000, 250, 4, 0),
> + PLL_35XX_RATE(1400000000, 175, 3, 0),
> + PLL_35XX_RATE(1300000000, 325, 6, 0),
> + PLL_35XX_RATE(1200000000, 100, 2, 0),
> + PLL_35XX_RATE(1100000000, 275, 3, 1),
> + PLL_35XX_RATE(1000000000, 250, 3, 1),
> + PLL_35XX_RATE(900000000, 150, 2, 1),
> + PLL_35XX_RATE(800000000, 200, 3, 1),
> + PLL_35XX_RATE(700000000, 175, 3, 1),
> + PLL_35XX_RATE(600000000, 100, 2, 1),
> + PLL_35XX_RATE(500000000, 250, 3, 2),
> + PLL_35XX_RATE(400000000, 200, 3, 2),
> + PLL_35XX_RATE(300000000, 100, 2, 2),
> + PLL_35XX_RATE(200000000, 200, 3, 3),
nit: The numbers could be aligned to the right using spaces (see exynos4.c).
> + { },
> +};
> +
> +static struct samsung_pll_rate_table cpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(666000000, 222, 4, 1),
> + PLL_35XX_RATE(640000000, 160, 3, 1),
> + PLL_35XX_RATE(320000000, 160, 3, 2),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table dpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(600000000, 200, 4, 1),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table epll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_36XX_RATE(rate, m, p, s, k) */
> + PLL_36XX_RATE(600000000, 100, 2, 1, 0),
> + PLL_36XX_RATE(400000000, 200, 3, 2, 0),
> + PLL_36XX_RATE(200000000, 200, 3, 3, 0),
> + PLL_36XX_RATE(180633600, 301, 5, 3, -3670),
> + PLL_36XX_RATE( 67737600, 452, 5, 5, -27263),
> + PLL_36XX_RATE( 49152000, 197, 3, 5, -25690),
> + PLL_36XX_RATE( 45158401, 181, 3, 5, -24012),
Have you ensured that the rates specified match the rates calculated
using PLL equation? You can find how it is calculated in recalc_rate
callback of this particular PLL type in clk-pll.c.
As a side note, the PLL registration code should be made a bit more
robust and just calculate the rates itself and printing warnings if they
don't match the entered ones. I definitely need more hours in a day, so
much to do. ;)
> + { },
> +};
> +
> +static struct samsung_pll_rate_table ipll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s, k) */
> + PLL_35XX_RATE(864000000, 288, 4, 1),
> + PLL_35XX_RATE(666000000, 222, 4, 1),
> + PLL_35XX_RATE(432000000, 288, 4, 2),
> + { },
> +};
> +
> +static struct samsung_pll_rate_table kpll_24mhz_tbl[] __initdata = {
> + /* sorted in descending order */
> + /* PLL_35XX_RATE(rate, m, p, s) */
> + PLL_35XX_RATE(1500000000, 250, 4, 0),
> + PLL_35XX_RATE(1400000000, 175, 3, 0),
> + PLL_35XX_RATE(1300000000, 325, 6, 0),
> + PLL_35XX_RATE(1200000000, 100, 2, 0),
> + PLL_35XX_RATE(1100000000, 275, 3, 1),
> + PLL_35XX_RATE(1000000000, 250, 3, 1),
> + PLL_35XX_RATE(900000000, 150, 2, 1),
> + PLL_35XX_RATE(800000000, 200, 3, 1),
> + PLL_35XX_RATE(700000000, 175, 3, 1),
> + PLL_35XX_RATE(600000000, 100, 2, 1),
> + PLL_35XX_RATE(500000000, 250, 3, 2),
> + PLL_35XX_RATE(400000000, 200, 3, 2),
> + PLL_35XX_RATE(300000000, 100, 2, 2),
> + PLL_35XX_RATE(200000000, 200, 3, 3),
nit: Alignment.
Otherwise looks good, thanks.
Best regards,
Tomasz
next prev parent reply other threads:[~2014-07-31 13:07 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-31 11:22 [PATCHv2 0/5] clk: samsung: exynos5410: Implementation of the PLL clocks Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 11:22 ` [PATCHv2 1/5] clk: samsung: exynos5410: Add NULL pointer checks in clock init Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 12:34 ` Tomasz Figa
2014-07-31 12:34 ` Tomasz Figa
2014-07-31 13:13 ` Humberto Naves
2014-07-31 13:13 ` Humberto Naves
2014-07-31 13:13 ` Humberto Naves
2014-07-31 13:20 ` Tomasz Figa
2014-07-31 13:20 ` Tomasz Figa
2014-07-31 11:22 ` [PATCHv2 2/5] clk: samsung: exynos5410: Organize register offset constants Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 12:49 ` Tomasz Figa
2014-07-31 12:49 ` Tomasz Figa
2014-07-31 11:22 ` [PATCHv2 3/5] clk: samsung: exynos5410: Add suspend/resume handling Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 13:09 ` Tomasz Figa
2014-07-31 13:09 ` Tomasz Figa
2014-07-31 11:22 ` [PATCHv2 4/5] clk: samsung: exynos5410: Add fixed rate clocks Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
[not found] ` <1406805732-17372-5-git-send-email-hsnaves-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-07-31 11:45 ` Sylwester Nawrocki
2014-07-31 11:45 ` Sylwester Nawrocki
2014-07-31 11:45 ` Sylwester Nawrocki
2014-07-31 21:01 ` Humberto Naves
2014-07-31 21:01 ` Humberto Naves
2014-07-31 21:08 ` Tomasz Figa
2014-07-31 21:08 ` Tomasz Figa
2014-07-31 12:53 ` Tomasz Figa
2014-07-31 12:53 ` Tomasz Figa
2014-07-31 13:23 ` Humberto Naves
2014-07-31 13:23 ` Humberto Naves
2014-07-31 13:37 ` Tomasz Figa
2014-07-31 13:37 ` Tomasz Figa
2014-07-31 11:22 ` [PATCHv2 5/5] clk: samsung: exynos5410: Added clocks DPLL, EPLL, IPLL, and VPLL Humberto Silva Naves
2014-07-31 11:22 ` Humberto Silva Naves
2014-07-31 13:07 ` Tomasz Figa [this message]
2014-07-31 13:07 ` Tomasz Figa
2014-07-31 13:37 ` Humberto Naves
2014-07-31 13:37 ` Humberto Naves
2014-07-31 15:19 ` Tomasz Figa
2014-07-31 15:19 ` Tomasz Figa
2014-07-31 21:19 ` Humberto Naves
2014-07-31 21:19 ` Humberto Naves
2014-07-31 22:17 ` Tomasz Figa
2014-07-31 22:17 ` Tomasz Figa
2014-07-31 22:51 ` Mike Turquette
2014-07-31 22:51 ` Mike Turquette
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=53DA3F86.3020506@gmail.com \
--to=tomasz.figa@gmail.com \
--cc=afaerber@suse.de \
--cc=devicetree@vger.kernel.org \
--cc=hsnaves@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=rdunlap@infradead.org \
--cc=t.figa@samsung.com \
--cc=ta.omasab@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.