All of lore.kernel.org
 help / color / mirror / Atom feed
From: mturquette@linaro.org (Mike Turquette)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] clk: new driver for efm32 SoC
Date: Mon, 07 Oct 2013 14:23:54 -0700	[thread overview]
Message-ID: <20131007212354.7445.84276@quantum> (raw)
In-Reply-To: <1376510693-12491-1-git-send-email-u.kleine-koenig@pengutronix.de>

Quoting Uwe Kleine-K?nig (2013-08-14 13:04:53)
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
> Hello,
> 
> I'm not sure if there is a naming convention for #defines in headers below
> dt-bindings. I named my clocks clk_$namefromreferencemanual to have some
> namespacing.
> 
> The clock stuff on the different variants of efm32 are similar, but
> different enough to not be able to use the same driver, so this is only
> for the Giant Gecko (efm32gg) variant, still I used "efm32" in some
> places because the other variants would fit there, too. (For
> include/dt-bindings/clock/efm32-cmu.h I would need some #ifdefs, is that
> OK or should the name of the defines include efm32gg? (That would make
> the names still longer and so more ugly.))

The DT experts should weigh in on having #ifdef's in the header, but I
think we should avoid that. Better to explicitly list the clocks for the
variant used. You can add "gg" to this or not, I don't care, but the
future variants will need some suffix, or maybe their own header.

I'm happy with this patch and can take it for 3.13. Care to add a
changelog?

Regards,
Mike

> 
> Best regards
> Uwe
> 
>  .../devicetree/bindings/clock/efm32-clock.txt      | 11 +++
>  drivers/clk/Makefile                               |  1 +
>  drivers/clk/clk-efm32gg.c                          | 79 ++++++++++++++++++++++
>  include/dt-bindings/clock/efm32-cmu.h              | 42 ++++++++++++
>  include/linux/clk/efm32.h                          |  6 ++
>  5 files changed, 139 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/efm32-clock.txt
>  create mode 100644 drivers/clk/clk-efm32gg.c
>  create mode 100644 include/dt-bindings/clock/efm32-cmu.h
>  create mode 100644 include/linux/clk/efm32.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/efm32-clock.txt b/Documentation/devicetree/bindings/clock/efm32-clock.txt
> new file mode 100644
> index 0000000..263d293
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/efm32-clock.txt
> @@ -0,0 +1,11 @@
> +* Clock bindings for Energy Micro efm32 Giant Gecko's Clock Management Unit
> +
> +Required properties:
> +- compatible: Should be "efm32gg,cmu"
> +- reg: Base address and length of the register set
> +- interrupts: Interrupt used by the CMU
> +- #clock-cells: Should be <1>
> +
> +The clock consumer should specify the desired clock by having the clock ID in
> +its "clocks" phandle cell. The header efm32-clk.h contains a list of available
> +IDs.
> diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
> index 4038c2b..99d9ad0 100644
> --- a/drivers/clk/Makefile
> +++ b/drivers/clk/Makefile
> @@ -11,6 +11,7 @@ obj-$(CONFIG_COMMON_CLK)      += clk-composite.o
>  
>  # SoCs specific
>  obj-$(CONFIG_ARCH_BCM2835)     += clk-bcm2835.o
> +obj-$(CONFIG_ARCH_EFM32)       += clk-efm32gg.o
>  obj-$(CONFIG_ARCH_NOMADIK)     += clk-nomadik.o
>  obj-$(CONFIG_ARCH_HIGHBANK)    += clk-highbank.o
>  obj-$(CONFIG_ARCH_NSPIRE)      += clk-nspire.o
> diff --git a/drivers/clk/clk-efm32gg.c b/drivers/clk/clk-efm32gg.c
> new file mode 100644
> index 0000000..2e63584
> --- /dev/null
> +++ b/drivers/clk/clk-efm32gg.c
> @@ -0,0 +1,79 @@
> +#include <linux/clk.h>
> +#include <linux/io.h>
> +#include <linux/clk-provider.h>
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +
> +#include <dt-bindings/clock/efm32-cmu.h>
> +
> +#define CMU_HFPERCLKEN0                0x44
> +
> +static struct clk *clk[37];
> +static struct clk_onecell_data clk_data = {
> +       .clks = clk,
> +       .clk_num = ARRAY_SIZE(clk),
> +};
> +
> +int __init efm32gg_clk_init(void)
> +{
> +       int i;
> +       struct device_node *np;
> +       void __iomem *base;
> +
> +       for (i = 0; i < ARRAY_SIZE(clk); ++i)
> +               clk[i] = ERR_PTR(-ENOENT);
> +
> +       np = of_find_compatible_node(NULL, NULL, "efm32gg,cmu");
> +       if (!np) {
> +               pr_warn("No efm32gg,cmu node found in device tree\n");
> +               return -ENOENT;
> +       }
> +
> +       base = of_iomap(np, 0);
> +       if (!base) {
> +               pr_warn("Failed to map address range for efm32gg,cmu node\n");
> +               return -EADDRNOTAVAIL;
> +       }
> +
> +       clk[clk_HFXO] = clk_register_fixed_rate(NULL, "HFXO", NULL,
> +                       CLK_IS_ROOT, 48000000);
> +
> +       clk[clk_HFPERCLKUSART0] = clk_register_gate(NULL, "HFPERCLK.USART0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 0, 0, NULL);
> +       clk[clk_HFPERCLKUSART1] = clk_register_gate(NULL, "HFPERCLK.USART1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 1, 0, NULL);
> +       clk[clk_HFPERCLKUSART2] = clk_register_gate(NULL, "HFPERCLK.USART2",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 2, 0, NULL);
> +       clk[clk_HFPERCLKUART0] = clk_register_gate(NULL, "HFPERCLK.UART0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 3, 0, NULL);
> +       clk[clk_HFPERCLKUART1] = clk_register_gate(NULL, "HFPERCLK.UART1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 4, 0, NULL);
> +       clk[clk_HFPERCLKTIMER0] = clk_register_gate(NULL, "HFPERCLK.TIMER0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 5, 0, NULL);
> +       clk[clk_HFPERCLKTIMER1] = clk_register_gate(NULL, "HFPERCLK.TIMER1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 6, 0, NULL);
> +       clk[clk_HFPERCLKTIMER2] = clk_register_gate(NULL, "HFPERCLK.TIMER2",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 7, 0, NULL);
> +       clk[clk_HFPERCLKTIMER3] = clk_register_gate(NULL, "HFPERCLK.TIMER3",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 8, 0, NULL);
> +       clk[clk_HFPERCLKACMP0] = clk_register_gate(NULL, "HFPERCLK.ACMP0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 9, 0, NULL);
> +       clk[clk_HFPERCLKACMP1] = clk_register_gate(NULL, "HFPERCLK.ACMP1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 10, 0, NULL);
> +       clk[clk_HFPERCLKI2C0] = clk_register_gate(NULL, "HFPERCLK.I2C0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 11, 0, NULL);
> +       clk[clk_HFPERCLKI2C1] = clk_register_gate(NULL, "HFPERCLK.I2C1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 12, 0, NULL);
> +       clk[clk_HFPERCLKGPIO] = clk_register_gate(NULL, "HFPERCLK.GPIO",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 13, 0, NULL);
> +       clk[clk_HFPERCLKVCMP] = clk_register_gate(NULL, "HFPERCLK.VCMP",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 14, 0, NULL);
> +       clk[clk_HFPERCLKPRS] = clk_register_gate(NULL, "HFPERCLK.PRS",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 15, 0, NULL);
> +       clk[clk_HFPERCLKADC0] = clk_register_gate(NULL, "HFPERCLK.ADC0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 16, 0, NULL);
> +       clk[clk_HFPERCLKDAC0] = clk_register_gate(NULL, "HFPERCLK.DAC0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 17, 0, NULL);
> +
> +       return of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
> +}
> diff --git a/include/dt-bindings/clock/efm32-cmu.h b/include/dt-bindings/clock/efm32-cmu.h
> new file mode 100644
> index 0000000..b21b91e
> --- /dev/null
> +++ b/include/dt-bindings/clock/efm32-cmu.h
> @@ -0,0 +1,42 @@
> +#ifndef __DT_BINDINGS_CLOCK_EFM32_CMU_H
> +#define __DT_BINDINGS_CLOCK_EFM32_CMU_H
> +
> +#define clk_HFXO               0
> +#define clk_HFRCO              1
> +#define clk_LFXO               2
> +#define clk_LFRCO              3
> +#define clk_ULFRCO             4
> +#define clk_AUXHFRCO           5
> +#define clk_HFCLKNODIV         6
> +#define clk_HFCLK              7
> +#define clk_HFPERCLK           8
> +#define clk_HFCORECLK          9
> +#define clk_LFACLK             10
> +#define clk_LFBCLK             11
> +#define clk_WDOGCLK            12
> +#define clk_HFCORECLKDMA       13
> +#define clk_HFCORECLKAES       14
> +#define clk_HFCORECLKUSBC      15
> +#define clk_HFCORECLKUSB       16
> +#define clk_HFCORECLKLE                17
> +#define clk_HFCORECLKEBI       18
> +#define clk_HFPERCLKUSART0     19
> +#define clk_HFPERCLKUSART1     20
> +#define clk_HFPERCLKUSART2     21
> +#define clk_HFPERCLKUART0      22
> +#define clk_HFPERCLKUART1      23
> +#define clk_HFPERCLKTIMER0     24
> +#define clk_HFPERCLKTIMER1     25
> +#define clk_HFPERCLKTIMER2     26
> +#define clk_HFPERCLKTIMER3     27
> +#define clk_HFPERCLKACMP0      28
> +#define clk_HFPERCLKACMP1      29
> +#define clk_HFPERCLKI2C0       30
> +#define clk_HFPERCLKI2C1       31
> +#define clk_HFPERCLKGPIO       32
> +#define clk_HFPERCLKVCMP       33
> +#define clk_HFPERCLKPRS                34
> +#define clk_HFPERCLKADC0       35
> +#define clk_HFPERCLKDAC0       36
> +
> +#endif /* __DT_BINDINGS_CLOCK_EFM32_CMU_H */
> diff --git a/include/linux/clk/efm32.h b/include/linux/clk/efm32.h
> new file mode 100644
> index 0000000..4032dc0
> --- /dev/null
> +++ b/include/linux/clk/efm32.h
> @@ -0,0 +1,6 @@
> +#ifndef __LINUX_CLK_EFM32_H__
> +#define __LINUX_CLK_EFM32_H__
> +
> +int efm32gg_clk_init(void);
> +
> +#endif /* __LINUX_CLK_EFM32_H__ */
> -- 
> 1.8.4.rc0

WARNING: multiple messages have this Message-ID (diff)
From: Mike Turquette <mturquette@linaro.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: devicetree@vger.kernel.org, kernel@pengutronix.de,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] clk: new driver for efm32 SoC
Date: Mon, 07 Oct 2013 14:23:54 -0700	[thread overview]
Message-ID: <20131007212354.7445.84276@quantum> (raw)
In-Reply-To: <1376510693-12491-1-git-send-email-u.kleine-koenig@pengutronix.de>

Quoting Uwe Kleine-König (2013-08-14 13:04:53)
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> Hello,
> 
> I'm not sure if there is a naming convention for #defines in headers below
> dt-bindings. I named my clocks clk_$namefromreferencemanual to have some
> namespacing.
> 
> The clock stuff on the different variants of efm32 are similar, but
> different enough to not be able to use the same driver, so this is only
> for the Giant Gecko (efm32gg) variant, still I used "efm32" in some
> places because the other variants would fit there, too. (For
> include/dt-bindings/clock/efm32-cmu.h I would need some #ifdefs, is that
> OK or should the name of the defines include efm32gg? (That would make
> the names still longer and so more ugly.))

The DT experts should weigh in on having #ifdef's in the header, but I
think we should avoid that. Better to explicitly list the clocks for the
variant used. You can add "gg" to this or not, I don't care, but the
future variants will need some suffix, or maybe their own header.

I'm happy with this patch and can take it for 3.13. Care to add a
changelog?

Regards,
Mike

> 
> Best regards
> Uwe
> 
>  .../devicetree/bindings/clock/efm32-clock.txt      | 11 +++
>  drivers/clk/Makefile                               |  1 +
>  drivers/clk/clk-efm32gg.c                          | 79 ++++++++++++++++++++++
>  include/dt-bindings/clock/efm32-cmu.h              | 42 ++++++++++++
>  include/linux/clk/efm32.h                          |  6 ++
>  5 files changed, 139 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/efm32-clock.txt
>  create mode 100644 drivers/clk/clk-efm32gg.c
>  create mode 100644 include/dt-bindings/clock/efm32-cmu.h
>  create mode 100644 include/linux/clk/efm32.h
> 
> diff --git a/Documentation/devicetree/bindings/clock/efm32-clock.txt b/Documentation/devicetree/bindings/clock/efm32-clock.txt
> new file mode 100644
> index 0000000..263d293
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/efm32-clock.txt
> @@ -0,0 +1,11 @@
> +* Clock bindings for Energy Micro efm32 Giant Gecko's Clock Management Unit
> +
> +Required properties:
> +- compatible: Should be "efm32gg,cmu"
> +- reg: Base address and length of the register set
> +- interrupts: Interrupt used by the CMU
> +- #clock-cells: Should be <1>
> +
> +The clock consumer should specify the desired clock by having the clock ID in
> +its "clocks" phandle cell. The header efm32-clk.h contains a list of available
> +IDs.
> diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
> index 4038c2b..99d9ad0 100644
> --- a/drivers/clk/Makefile
> +++ b/drivers/clk/Makefile
> @@ -11,6 +11,7 @@ obj-$(CONFIG_COMMON_CLK)      += clk-composite.o
>  
>  # SoCs specific
>  obj-$(CONFIG_ARCH_BCM2835)     += clk-bcm2835.o
> +obj-$(CONFIG_ARCH_EFM32)       += clk-efm32gg.o
>  obj-$(CONFIG_ARCH_NOMADIK)     += clk-nomadik.o
>  obj-$(CONFIG_ARCH_HIGHBANK)    += clk-highbank.o
>  obj-$(CONFIG_ARCH_NSPIRE)      += clk-nspire.o
> diff --git a/drivers/clk/clk-efm32gg.c b/drivers/clk/clk-efm32gg.c
> new file mode 100644
> index 0000000..2e63584
> --- /dev/null
> +++ b/drivers/clk/clk-efm32gg.c
> @@ -0,0 +1,79 @@
> +#include <linux/clk.h>
> +#include <linux/io.h>
> +#include <linux/clk-provider.h>
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +
> +#include <dt-bindings/clock/efm32-cmu.h>
> +
> +#define CMU_HFPERCLKEN0                0x44
> +
> +static struct clk *clk[37];
> +static struct clk_onecell_data clk_data = {
> +       .clks = clk,
> +       .clk_num = ARRAY_SIZE(clk),
> +};
> +
> +int __init efm32gg_clk_init(void)
> +{
> +       int i;
> +       struct device_node *np;
> +       void __iomem *base;
> +
> +       for (i = 0; i < ARRAY_SIZE(clk); ++i)
> +               clk[i] = ERR_PTR(-ENOENT);
> +
> +       np = of_find_compatible_node(NULL, NULL, "efm32gg,cmu");
> +       if (!np) {
> +               pr_warn("No efm32gg,cmu node found in device tree\n");
> +               return -ENOENT;
> +       }
> +
> +       base = of_iomap(np, 0);
> +       if (!base) {
> +               pr_warn("Failed to map address range for efm32gg,cmu node\n");
> +               return -EADDRNOTAVAIL;
> +       }
> +
> +       clk[clk_HFXO] = clk_register_fixed_rate(NULL, "HFXO", NULL,
> +                       CLK_IS_ROOT, 48000000);
> +
> +       clk[clk_HFPERCLKUSART0] = clk_register_gate(NULL, "HFPERCLK.USART0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 0, 0, NULL);
> +       clk[clk_HFPERCLKUSART1] = clk_register_gate(NULL, "HFPERCLK.USART1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 1, 0, NULL);
> +       clk[clk_HFPERCLKUSART2] = clk_register_gate(NULL, "HFPERCLK.USART2",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 2, 0, NULL);
> +       clk[clk_HFPERCLKUART0] = clk_register_gate(NULL, "HFPERCLK.UART0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 3, 0, NULL);
> +       clk[clk_HFPERCLKUART1] = clk_register_gate(NULL, "HFPERCLK.UART1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 4, 0, NULL);
> +       clk[clk_HFPERCLKTIMER0] = clk_register_gate(NULL, "HFPERCLK.TIMER0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 5, 0, NULL);
> +       clk[clk_HFPERCLKTIMER1] = clk_register_gate(NULL, "HFPERCLK.TIMER1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 6, 0, NULL);
> +       clk[clk_HFPERCLKTIMER2] = clk_register_gate(NULL, "HFPERCLK.TIMER2",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 7, 0, NULL);
> +       clk[clk_HFPERCLKTIMER3] = clk_register_gate(NULL, "HFPERCLK.TIMER3",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 8, 0, NULL);
> +       clk[clk_HFPERCLKACMP0] = clk_register_gate(NULL, "HFPERCLK.ACMP0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 9, 0, NULL);
> +       clk[clk_HFPERCLKACMP1] = clk_register_gate(NULL, "HFPERCLK.ACMP1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 10, 0, NULL);
> +       clk[clk_HFPERCLKI2C0] = clk_register_gate(NULL, "HFPERCLK.I2C0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 11, 0, NULL);
> +       clk[clk_HFPERCLKI2C1] = clk_register_gate(NULL, "HFPERCLK.I2C1",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 12, 0, NULL);
> +       clk[clk_HFPERCLKGPIO] = clk_register_gate(NULL, "HFPERCLK.GPIO",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 13, 0, NULL);
> +       clk[clk_HFPERCLKVCMP] = clk_register_gate(NULL, "HFPERCLK.VCMP",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 14, 0, NULL);
> +       clk[clk_HFPERCLKPRS] = clk_register_gate(NULL, "HFPERCLK.PRS",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 15, 0, NULL);
> +       clk[clk_HFPERCLKADC0] = clk_register_gate(NULL, "HFPERCLK.ADC0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 16, 0, NULL);
> +       clk[clk_HFPERCLKDAC0] = clk_register_gate(NULL, "HFPERCLK.DAC0",
> +                       "HFXO", 0, base + CMU_HFPERCLKEN0, 17, 0, NULL);
> +
> +       return of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
> +}
> diff --git a/include/dt-bindings/clock/efm32-cmu.h b/include/dt-bindings/clock/efm32-cmu.h
> new file mode 100644
> index 0000000..b21b91e
> --- /dev/null
> +++ b/include/dt-bindings/clock/efm32-cmu.h
> @@ -0,0 +1,42 @@
> +#ifndef __DT_BINDINGS_CLOCK_EFM32_CMU_H
> +#define __DT_BINDINGS_CLOCK_EFM32_CMU_H
> +
> +#define clk_HFXO               0
> +#define clk_HFRCO              1
> +#define clk_LFXO               2
> +#define clk_LFRCO              3
> +#define clk_ULFRCO             4
> +#define clk_AUXHFRCO           5
> +#define clk_HFCLKNODIV         6
> +#define clk_HFCLK              7
> +#define clk_HFPERCLK           8
> +#define clk_HFCORECLK          9
> +#define clk_LFACLK             10
> +#define clk_LFBCLK             11
> +#define clk_WDOGCLK            12
> +#define clk_HFCORECLKDMA       13
> +#define clk_HFCORECLKAES       14
> +#define clk_HFCORECLKUSBC      15
> +#define clk_HFCORECLKUSB       16
> +#define clk_HFCORECLKLE                17
> +#define clk_HFCORECLKEBI       18
> +#define clk_HFPERCLKUSART0     19
> +#define clk_HFPERCLKUSART1     20
> +#define clk_HFPERCLKUSART2     21
> +#define clk_HFPERCLKUART0      22
> +#define clk_HFPERCLKUART1      23
> +#define clk_HFPERCLKTIMER0     24
> +#define clk_HFPERCLKTIMER1     25
> +#define clk_HFPERCLKTIMER2     26
> +#define clk_HFPERCLKTIMER3     27
> +#define clk_HFPERCLKACMP0      28
> +#define clk_HFPERCLKACMP1      29
> +#define clk_HFPERCLKI2C0       30
> +#define clk_HFPERCLKI2C1       31
> +#define clk_HFPERCLKGPIO       32
> +#define clk_HFPERCLKVCMP       33
> +#define clk_HFPERCLKPRS                34
> +#define clk_HFPERCLKADC0       35
> +#define clk_HFPERCLKDAC0       36
> +
> +#endif /* __DT_BINDINGS_CLOCK_EFM32_CMU_H */
> diff --git a/include/linux/clk/efm32.h b/include/linux/clk/efm32.h
> new file mode 100644
> index 0000000..4032dc0
> --- /dev/null
> +++ b/include/linux/clk/efm32.h
> @@ -0,0 +1,6 @@
> +#ifndef __LINUX_CLK_EFM32_H__
> +#define __LINUX_CLK_EFM32_H__
> +
> +int efm32gg_clk_init(void);
> +
> +#endif /* __LINUX_CLK_EFM32_H__ */
> -- 
> 1.8.4.rc0

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2013-10-07 21:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-14 20:04 [PATCH] clk: new driver for efm32 SoC Uwe Kleine-König
2013-10-07 21:23 ` Mike Turquette [this message]
2013-10-07 21:23   ` Mike Turquette
2013-10-08  7:40   ` Uwe Kleine-König
2013-10-08  7:40     ` Uwe Kleine-König
2013-10-08  7:57     ` [PATCH v2] " Uwe Kleine-König
2013-10-08  7:57       ` Uwe Kleine-König

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=20131007212354.7445.84276@quantum \
    --to=mturquette@linaro.org \
    --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 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.