LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: David Lechner <david@lechnology.com> To: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@codeaurora.org>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Sekhar Nori <nsekhar@ti.com>, Kevin Hilman <khilman@kernel.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com>, Adam Ford <aford173@gmail.com>, linux-kernel@vger.kernel.org, David Lechner <david@lechnology.com> Subject: [PATCH v8 25/42] ARM: davinci: dm644x: add new clock init using common clock framework Date: Thu, 15 Mar 2018 21:52:41 -0500 [thread overview] Message-ID: <1521168778-27236-26-git-send-email-david@lechnology.com> (raw) In-Reply-To: <1521168778-27236-1-git-send-email-david@lechnology.com> This adds the new board-specific clock init in mach-davinci/dm644x.c using the new common clock framework drivers. The #ifdefs are needed to prevent compile errors until the entire ARCH_DAVINCI is converted. Also clean up the #includes since we are adding some here. Signed-off-by: David Lechner <david@lechnology.com> --- v8 changes: - none v7 changes: - add clock platform device declarations - register platform devices instead of registering clocks directly - add davinci prefix to commit description v6 changes: - add blank lines between function calls arch/arm/mach-davinci/board-dm644x-evm.c | 2 + arch/arm/mach-davinci/board-neuros-osd2.c | 2 + arch/arm/mach-davinci/board-sffsdr.c | 2 + arch/arm/mach-davinci/davinci.h | 1 + arch/arm/mach-davinci/dm644x.c | 83 +++++++++++++++++++++++++++---- 5 files changed, 81 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 95b55aa..91c7525 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c @@ -768,6 +768,8 @@ static __init void davinci_evm_init(void) struct clk *aemif_clk; struct davinci_soc_info *soc_info = &davinci_soc_info; + dm644x_register_clocks(); + ret = dm644x_gpio_register(); if (ret) pr_warn("%s: GPIO init failed: %d\n", __func__, ret); diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index f287577..ae17d3e 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c @@ -174,6 +174,8 @@ static __init void davinci_ntosd2_init(void) struct clk *aemif_clk; struct davinci_soc_info *soc_info = &davinci_soc_info; + dm644x_register_clocks(); + ret = dm644x_gpio_register(); if (ret) pr_warn("%s: GPIO init failed: %d\n", __func__, ret); diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index 2922da9..933cc08 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c @@ -134,6 +134,8 @@ static __init void davinci_sffsdr_init(void) { struct davinci_soc_info *soc_info = &davinci_soc_info; + dm644x_register_clocks(); + platform_add_devices(davinci_sffsdr_devices, ARRAY_SIZE(davinci_sffsdr_devices)); sffsdr_init_i2c(); diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index c865226..2861a6f 100644 --- a/arch/arm/mach-davinci/davinci.h +++ b/arch/arm/mach-davinci/davinci.h @@ -107,6 +107,7 @@ int dm365_gpio_register(void); /* DM644x function declarations */ void dm644x_init(void); void dm644x_init_time(void); +void dm644x_register_clocks(void); void dm644x_init_asp(void); int dm644x_init_video(struct vpfe_config *, struct vpbe_config *); int dm644x_gpio_register(void); diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 71a16fc..64f5193 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c @@ -8,28 +8,31 @@ * is licensed "as is" without any warranty of any kind, whether express * or implied. */ -#include <linux/init.h> -#include <linux/clk.h> -#include <linux/serial_8250.h> +#include <linux/clk-provider.h> #include <linux/dmaengine.h> -#include <linux/platform_device.h> +#include <linux/init.h> #include <linux/platform_data/edma.h> #include <linux/platform_data/gpio-davinci.h> +#include <linux/platform_device.h> +#include <linux/serial_8250.h> #include <asm/mach/map.h> +#include <mach/common.h> #include <mach/cputype.h> #include <mach/irqs.h> -#include "psc.h" #include <mach/mux.h> -#include <mach/time.h> #include <mach/serial.h> -#include <mach/common.h> +#include <mach/time.h> +#include "asp.h" #include "davinci.h" -#include "clock.h" #include "mux.h" -#include "asp.h" + +#ifndef CONFIG_COMMON_CLK +#include "clock.h" +#include "psc.h" +#endif /* * Device specific clocks @@ -43,6 +46,7 @@ #define DM644X_EMAC_CNTRL_RAM_OFFSET 0x2000 #define DM644X_EMAC_CNTRL_RAM_SIZE 0x2000 +#ifndef CONFIG_COMMON_CLK static struct pll_data pll1_data = { .num = 1, .phys_base = DAVINCI_PLL1_BASE, @@ -326,6 +330,7 @@ static struct clk_lookup dm644x_clks[] = { CLK("davinci-wdt", NULL, &timer2_clk), CLK(NULL, NULL, NULL), }; +#endif static struct emac_platform_data dm644x_emac_pdata = { .ctrl_reg_offset = DM644X_EMAC_CNTRL_OFFSET, @@ -934,8 +939,68 @@ void __init dm644x_init(void) void __init dm644x_init_time(void) { +#ifdef CONFIG_COMMON_CLK + struct clk *clk; + + clk = clk_register_fixed_rate(NULL, "ref_clk", NULL, 0, DM644X_REF_FREQ); + + davinci_timer_init(clk); +#else davinci_clk_init(dm644x_clks); davinci_timer_init(&timer0_clk); +#endif +} + +static struct resource dm644x_pll1_resources[] = { + { + .start = DAVINCI_PLL1_BASE, + .end = DAVINCI_PLL1_BASE + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device dm644x_pll1_device = { + .name = "dm644x-pll1", + .id = -1, + .resource = dm644x_pll1_resources, + .num_resources = ARRAY_SIZE(dm644x_pll1_resources), +}; + +static struct resource dm644x_pll2_resources[] = { + { + .start = DAVINCI_PLL2_BASE, + .end = DAVINCI_PLL2_BASE + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device dm644x_pll2_device = { + .name = "dm644x-pll2", + .id = -1, + .resource = dm644x_pll2_resources, + .num_resources = ARRAY_SIZE(dm644x_pll2_resources), +}; + +static struct resource dm644x_psc_resources[] = { + { + .start = DAVINCI_PWR_SLEEP_CNTRL_BASE, + .end = DAVINCI_PWR_SLEEP_CNTRL_BASE + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device dm644x_psc_device = { + .name = "dm644x-psc", + .id = -1, + .resource = dm644x_psc_resources, + .num_resources = ARRAY_SIZE(dm644x_psc_resources), +}; + +void __init dm644x_register_clocks(void) +{ + platform_device_register(&dm644x_pll1_device); + platform_device_register(&dm644x_pll2_device); + platform_device_register(&dm644x_psc_device); } int __init dm644x_init_video(struct vpfe_config *vpfe_cfg, -- 2.7.4
next prev parent reply other threads:[~2018-03-16 2:55 UTC|newest] Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-16 2:52 [PATCH v8 00/42] ARM: davinci: convert to common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 01/42] dt-bindings: clock: Add new bindings for TI Davinci PLL clocks David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 02/42] clk: davinci: New driver for davinci " David Lechner 2018-03-20 16:56 ` Stephen Boyd 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 03/42] clk: davinci: Add platform information for TI DA830 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 04/42] clk: davinci: Add platform information for TI DA850 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 05/42] clk: davinci: Add platform information for TI DM355 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 06/42] clk: davinci: Add platform information for TI DM365 PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 07/42] clk: davinci: Add platform information for TI DM644x PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 08/42] clk: davinci: Add platform information for TI DM646x PLL David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 09/42] dt-bindings: clock: New bindings for TI Davinci PSC David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 10/42] clk: davinci: New driver for davinci PSC clocks David Lechner 2018-03-20 17:03 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 11/42] clk: davinci: Add platform information for TI DA830 PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 12/42] clk: davinci: Add platform information for TI DA850 PSC David Lechner 2018-03-16 3:11 ` David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 13/42] clk: davinci: Add platform information for TI DM355 PSC David Lechner 2018-03-20 16:58 ` Stephen Boyd 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 14/42] clk: davinci: Add platform information for TI DM365 PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 15/42] clk: davinci: Add platform information for TI DM644x PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 16/42] clk: davinci: Add platform information for TI DM646x PSC David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 17/42] dt-bindings: clock: Add bindings for DA8XX CFGCHIP clocks David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 18/42] clk: davinci: New driver for TI " David Lechner 2018-03-20 16:54 ` Stephen Boyd 2018-03-20 16:57 ` David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 19/42] clk: davinci: cfgchip: Add TI DA8XX USB PHY clocks David Lechner 2018-03-20 17:04 ` Stephen Boyd 2018-03-16 2:52 ` [PATCH v8 20/42] ARM: davinci: pass clock as parameter to davinci_timer_init() David Lechner 2018-04-05 12:12 ` Sekhar Nori 2018-03-16 2:52 ` [PATCH v8 21/42] ARM: davinci: da830: add new clock init using common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 22/42] ARM: davinci: da850: " David Lechner 2018-03-16 2:52 ` [PATCH v8 23/42] ARM: davinci: dm355: " David Lechner 2018-03-16 2:52 ` [PATCH v8 24/42] ARM: davinci: dm365: " David Lechner 2018-03-16 2:52 ` David Lechner [this message] 2018-04-03 10:26 ` [PATCH v8 25/42] ARM: davinci: dm644x: " Sekhar Nori 2018-04-03 16:30 ` David Lechner 2018-04-04 6:47 ` Sekhar Nori 2018-04-04 12:44 ` Sekhar Nori 2018-04-04 16:21 ` David Lechner 2018-03-16 2:52 ` [PATCH v8 26/42] ARM: davinci: dm646x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 27/42] ARM: davinci: da8xx: add new USB PHY " David Lechner 2018-03-16 2:52 ` [PATCH v8 28/42] ARM: davinci: da8xx: add new sata_refclk " David Lechner 2018-03-16 2:52 ` [PATCH v8 29/42] ARM: davinci: remove CONFIG_DAVINCI_RESET_CLOCKS David Lechner 2018-03-16 2:52 ` [PATCH v8 30/42] ARM: davinci_all_defconfig: " David Lechner 2018-03-16 2:52 ` [PATCH v8 31/42] ARM: davinci: switch to common clock framework David Lechner 2018-03-16 2:52 ` [PATCH v8 32/42] ARM: davinci: da830: Remove legacy clock init David Lechner 2018-03-16 2:52 ` [PATCH v8 33/42] ARM: davinci: da850: " David Lechner 2018-03-16 2:52 ` [PATCH v8 34/42] ARM: davinci: dm355: " David Lechner 2018-03-16 2:52 ` [PATCH v8 35/42] ARM: davinci: dm365: " David Lechner 2018-03-16 2:52 ` [PATCH v8 36/42] ARM: davinci: dm644x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 37/42] ARM: davinci: dm646x: " David Lechner 2018-03-16 2:52 ` [PATCH v8 38/42] ARM: davinci: da8xx: Remove legacy USB and SATA " David Lechner 2018-03-16 2:52 ` [PATCH v8 39/42] ARM: davinci: remove legacy clocks David Lechner 2018-03-16 2:52 ` [PATCH v8 40/42] ARM: davinci: add device tree support to timer David Lechner 2018-04-05 11:30 ` Sekhar Nori 2018-03-16 2:52 ` [PATCH v8 41/42] ARM: davinci: da8xx-dt: switch to device tree clocks David Lechner 2018-03-16 2:52 ` [PATCH v8 42/42] ARM: dts: da850: Add clocks David Lechner 2018-03-16 17:20 ` David Lechner 2018-04-02 11:12 ` Sekhar Nori 2018-04-02 16:15 ` David Lechner 2018-04-03 5:43 ` Sekhar Nori 2018-03-16 2:59 ` [PATCH v8 00/42] ARM: davinci: convert to common clock framework David Lechner 2018-03-19 13:17 ` Bartosz Golaszewski 2018-03-19 15:59 ` David Lechner 2018-03-19 16:11 ` Adam Ford 2018-03-19 16:14 ` Bartosz Golaszewski 2018-03-19 16:15 ` Bartosz Golaszewski 2018-03-19 17:52 ` Adam Ford 2018-03-19 22:54 ` David Lechner 2018-03-19 22:14 ` David Lechner 2018-03-20 0:53 ` Stephen Boyd 2018-03-20 13:52 ` 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=1521168778-27236-26-git-send-email-david@lechnology.com \ --to=david@lechnology.com \ --cc=aford173@gmail.com \ --cc=bgolaszewski@baylibre.com \ --cc=devicetree@vger.kernel.org \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mturquette@baylibre.com \ --cc=nsekhar@ti.com \ --cc=robh+dt@kernel.org \ --cc=sboyd@codeaurora.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: linkBe 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).