From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lee Jones <lee.jones@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: kernel@stlinux.com, devicetree@vger.kernel.org,
tglx@linutronix.de, wim@iguana.be, a.zummo@towertech.it,
linux-watchdog@vger.kernel.org, rtc-linux@googlegroups.com,
linux@roeck-us.net
Subject: [rtc-linux] Re: [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP
Date: Mon, 11 May 2015 10:42:47 +0200 [thread overview]
Message-ID: <55506B87.3070807@linaro.org> (raw)
In-Reply-To: <1431005924-21777-3-git-send-email-lee.jones@linaro.org>
On 05/07/2015 03:38 PM, Lee Jones wrote:
> This IP is shared with Watchdog and RTC functionality. Only one of
> these IPs can be used at the same time. We use the device-driver
> model combined with a DT 'mode' property to enforce this.
>
> The ST LPC Clocksource IP can be used as the system (tick) timer.
>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
> drivers/clocksource/Kconfig | 8 +++
> drivers/clocksource/Makefile | 1 +
> drivers/clocksource/clksrc_st_lpc.c | 123 +++++++++++++++++++++++++++++=
+++++++
> 3 files changed, 132 insertions(+)
> create mode 100644 drivers/clocksource/clksrc_st_lpc.c
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 68161f7..ac424cf 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -250,4 +250,12 @@ config CLKSRC_PXA
> help
> This enables OST0 support available on PXA and SA-11x0
> platforms.
> +
> +config CLKSRC_ST_LPC
> + bool
> + depends on ARCH_STI
> + select CLKSRC_OF if OF
> + help
> + Enable this option to use the Low Power controller timer
> + as clocksource.
> endmenu
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 752d5c7..e08da4d 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -51,3 +51,4 @@ obj-$(CONFIG_ARCH_INTEGRATOR_AP) +=3D timer-integrator-=
ap.o
> obj-$(CONFIG_CLKSRC_VERSATILE) +=3D versatile.o
> obj-$(CONFIG_CLKSRC_MIPS_GIC) +=3D mips-gic-timer.o
> obj-$(CONFIG_ASM9260_TIMER) +=3D asm9260_timer.o
> +obj-$(CONFIG_CLKSRC_ST_LPC) +=3D clksrc_st_lpc.o
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/cl=
ksrc_st_lpc.c
> new file mode 100644
> index 0000000..18a7dcd0
> --- /dev/null
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -0,0 +1,123 @@
> +/*
> + * Clocksource using the Low Power Timer found in the Low Power Controll=
er (LPC)
> + *
> + * Copyright (C) 2015 STMicroelectronics =E2=80=93 All Rights Reserved
> + *
> + * Author(s): Francesco Virlinzi <francesco.virlinzi@st.com>
> + * Ajit Pal Singh <ajitpal.singh@st.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clocksource.h>
> +#include <linux/init.h>
> +#include <linux/of_address.h>
> +#include <linux/slab.h>
> +
> +#include <dt-bindings/mfd/st-lpc.h>
> +
> +/* Low Power Timer */
> +#define LPC_LPT_LSB_OFF 0x400
> +#define LPC_LPT_MSB_OFF 0x404
> +#define LPC_LPT_START_OFF 0x408
> +
> +static struct st_clksrc_ddata {
> + struct clk *clk;
> + void __iomem *base;
> +} ddata;
> +
> +static void st_clksrc_reset(void)
> +{
> + writel_relaxed(0, ddata.base + LPC_LPT_START_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_MSB_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_LSB_OFF);
> + writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
> +}
> +
> +static int __init st_clksrc_init(void)
> +{
> + unsigned long rate;
> + int ret;
> +
> + st_clksrc_reset();
> +
> + rate =3D clk_get_rate(ddata.clk);
> +
> + ret =3D clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
> + "clksrc-st-lpc", rate, 300, 32,
> + clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("clksrc-st-lpc: Failed to register clocksource\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int st_clksrc_setup_clk(struct device_node *np)
> +{
> + struct clk *clk;
> + int ret;
> +
> + clk =3D of_clk_get(np, 0);
> + if (IS_ERR(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock\n");
> + ret =3D PTR_ERR(clk);
> + return ret;
return PTR_ERR(clk);
so you can get rid of the 'int ret' variable.
> + }
> +
> + if (clk_prepare_enable(clk)) {
> + pr_err("clksrc-st-lpc: Failed to enable LPC clock\n");
> + return -EINVAL;
> + }
> +
> + if (!clk_get_rate(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n");
> + clk_disable_unprepare(clk);
> + return -EINVAL;
> + }
> +
> + ddata.clk =3D clk;
> +
> + return 0;
> +}
> +
> +static void __init st_clksrc_of_register(struct device_node *np)
> +{
> + int ret;
> + uint32_t mode;
> +
> + ret =3D of_property_read_u32(np, "st,lpc-mode", &mode);
> + if (ret) {
> + pr_err("clksrc-st-lpc: An LPC mode must be provided\n");
> + return;
> + }
> +
> + /* LPC can either run as a Clocksource or in RTC or WDT mode */
> + if (mode !=3D ST_LPC_MODE_CLKSRC)
> + return;
I am confused with this patch description + comment and the patch 1's=20
description.
For the former, I understand the LPC could be in RTC or WDT mode and=20
used as a clocksource (clksrc + rtc / clksrc + wdt), for the latter I=20
understand there are three modes clocksource, rtc and watchdog (mutually=20
exclusive). Could you clarify ?
> +
> + ddata.base =3D of_iomap(np, 0);
> + if (!ddata.base) {
> + pr_err("clksrc-st-lpc: Unable to map iomem\n");
> + return;
> + }
> +
> + if (st_clksrc_setup_clk(np)) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + if (st_clksrc_init()) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n",
> + clk_get_rate(ddata.clk));
> +}
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
--=20
<http://www.linaro.org/> Linaro.org =E2=94=82 Open source software for AR=
M SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
--=20
--=20
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---=20
You received this message because you are subscribed to the Google Groups "=
rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lee Jones <lee.jones@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: kernel@stlinux.com, devicetree@vger.kernel.org,
tglx@linutronix.de, wim@iguana.be, a.zummo@towertech.it,
linux-watchdog@vger.kernel.org, rtc-linux@googlegroups.com,
linux@roeck-us.net
Subject: Re: [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP
Date: Mon, 11 May 2015 10:42:47 +0200 [thread overview]
Message-ID: <55506B87.3070807@linaro.org> (raw)
In-Reply-To: <1431005924-21777-3-git-send-email-lee.jones@linaro.org>
On 05/07/2015 03:38 PM, Lee Jones wrote:
> This IP is shared with Watchdog and RTC functionality. Only one of
> these IPs can be used at the same time. We use the device-driver
> model combined with a DT 'mode' property to enforce this.
>
> The ST LPC Clocksource IP can be used as the system (tick) timer.
>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
> drivers/clocksource/Kconfig | 8 +++
> drivers/clocksource/Makefile | 1 +
> drivers/clocksource/clksrc_st_lpc.c | 123 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 132 insertions(+)
> create mode 100644 drivers/clocksource/clksrc_st_lpc.c
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 68161f7..ac424cf 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -250,4 +250,12 @@ config CLKSRC_PXA
> help
> This enables OST0 support available on PXA and SA-11x0
> platforms.
> +
> +config CLKSRC_ST_LPC
> + bool
> + depends on ARCH_STI
> + select CLKSRC_OF if OF
> + help
> + Enable this option to use the Low Power controller timer
> + as clocksource.
> endmenu
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 752d5c7..e08da4d 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -51,3 +51,4 @@ obj-$(CONFIG_ARCH_INTEGRATOR_AP) += timer-integrator-ap.o
> obj-$(CONFIG_CLKSRC_VERSATILE) += versatile.o
> obj-$(CONFIG_CLKSRC_MIPS_GIC) += mips-gic-timer.o
> obj-$(CONFIG_ASM9260_TIMER) += asm9260_timer.o
> +obj-$(CONFIG_CLKSRC_ST_LPC) += clksrc_st_lpc.o
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> new file mode 100644
> index 0000000..18a7dcd0
> --- /dev/null
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -0,0 +1,123 @@
> +/*
> + * Clocksource using the Low Power Timer found in the Low Power Controller (LPC)
> + *
> + * Copyright (C) 2015 STMicroelectronics – All Rights Reserved
> + *
> + * Author(s): Francesco Virlinzi <francesco.virlinzi@st.com>
> + * Ajit Pal Singh <ajitpal.singh@st.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clocksource.h>
> +#include <linux/init.h>
> +#include <linux/of_address.h>
> +#include <linux/slab.h>
> +
> +#include <dt-bindings/mfd/st-lpc.h>
> +
> +/* Low Power Timer */
> +#define LPC_LPT_LSB_OFF 0x400
> +#define LPC_LPT_MSB_OFF 0x404
> +#define LPC_LPT_START_OFF 0x408
> +
> +static struct st_clksrc_ddata {
> + struct clk *clk;
> + void __iomem *base;
> +} ddata;
> +
> +static void st_clksrc_reset(void)
> +{
> + writel_relaxed(0, ddata.base + LPC_LPT_START_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_MSB_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_LSB_OFF);
> + writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
> +}
> +
> +static int __init st_clksrc_init(void)
> +{
> + unsigned long rate;
> + int ret;
> +
> + st_clksrc_reset();
> +
> + rate = clk_get_rate(ddata.clk);
> +
> + ret = clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
> + "clksrc-st-lpc", rate, 300, 32,
> + clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("clksrc-st-lpc: Failed to register clocksource\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int st_clksrc_setup_clk(struct device_node *np)
> +{
> + struct clk *clk;
> + int ret;
> +
> + clk = of_clk_get(np, 0);
> + if (IS_ERR(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock\n");
> + ret = PTR_ERR(clk);
> + return ret;
return PTR_ERR(clk);
so you can get rid of the 'int ret' variable.
> + }
> +
> + if (clk_prepare_enable(clk)) {
> + pr_err("clksrc-st-lpc: Failed to enable LPC clock\n");
> + return -EINVAL;
> + }
> +
> + if (!clk_get_rate(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n");
> + clk_disable_unprepare(clk);
> + return -EINVAL;
> + }
> +
> + ddata.clk = clk;
> +
> + return 0;
> +}
> +
> +static void __init st_clksrc_of_register(struct device_node *np)
> +{
> + int ret;
> + uint32_t mode;
> +
> + ret = of_property_read_u32(np, "st,lpc-mode", &mode);
> + if (ret) {
> + pr_err("clksrc-st-lpc: An LPC mode must be provided\n");
> + return;
> + }
> +
> + /* LPC can either run as a Clocksource or in RTC or WDT mode */
> + if (mode != ST_LPC_MODE_CLKSRC)
> + return;
I am confused with this patch description + comment and the patch 1's
description.
For the former, I understand the LPC could be in RTC or WDT mode and
used as a clocksource (clksrc + rtc / clksrc + wdt), for the latter I
understand there are three modes clocksource, rtc and watchdog (mutually
exclusive). Could you clarify ?
> +
> + ddata.base = of_iomap(np, 0);
> + if (!ddata.base) {
> + pr_err("clksrc-st-lpc: Unable to map iomem\n");
> + return;
> + }
> +
> + if (st_clksrc_setup_clk(np)) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + if (st_clksrc_init()) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n",
> + clk_get_rate(ddata.clk));
> +}
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP
Date: Mon, 11 May 2015 10:42:47 +0200 [thread overview]
Message-ID: <55506B87.3070807@linaro.org> (raw)
In-Reply-To: <1431005924-21777-3-git-send-email-lee.jones@linaro.org>
On 05/07/2015 03:38 PM, Lee Jones wrote:
> This IP is shared with Watchdog and RTC functionality. Only one of
> these IPs can be used at the same time. We use the device-driver
> model combined with a DT 'mode' property to enforce this.
>
> The ST LPC Clocksource IP can be used as the system (tick) timer.
>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
> drivers/clocksource/Kconfig | 8 +++
> drivers/clocksource/Makefile | 1 +
> drivers/clocksource/clksrc_st_lpc.c | 123 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 132 insertions(+)
> create mode 100644 drivers/clocksource/clksrc_st_lpc.c
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 68161f7..ac424cf 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -250,4 +250,12 @@ config CLKSRC_PXA
> help
> This enables OST0 support available on PXA and SA-11x0
> platforms.
> +
> +config CLKSRC_ST_LPC
> + bool
> + depends on ARCH_STI
> + select CLKSRC_OF if OF
> + help
> + Enable this option to use the Low Power controller timer
> + as clocksource.
> endmenu
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 752d5c7..e08da4d 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -51,3 +51,4 @@ obj-$(CONFIG_ARCH_INTEGRATOR_AP) += timer-integrator-ap.o
> obj-$(CONFIG_CLKSRC_VERSATILE) += versatile.o
> obj-$(CONFIG_CLKSRC_MIPS_GIC) += mips-gic-timer.o
> obj-$(CONFIG_ASM9260_TIMER) += asm9260_timer.o
> +obj-$(CONFIG_CLKSRC_ST_LPC) += clksrc_st_lpc.o
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> new file mode 100644
> index 0000000..18a7dcd0
> --- /dev/null
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -0,0 +1,123 @@
> +/*
> + * Clocksource using the Low Power Timer found in the Low Power Controller (LPC)
> + *
> + * Copyright (C) 2015 STMicroelectronics ? All Rights Reserved
> + *
> + * Author(s): Francesco Virlinzi <francesco.virlinzi@st.com>
> + * Ajit Pal Singh <ajitpal.singh@st.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clocksource.h>
> +#include <linux/init.h>
> +#include <linux/of_address.h>
> +#include <linux/slab.h>
> +
> +#include <dt-bindings/mfd/st-lpc.h>
> +
> +/* Low Power Timer */
> +#define LPC_LPT_LSB_OFF 0x400
> +#define LPC_LPT_MSB_OFF 0x404
> +#define LPC_LPT_START_OFF 0x408
> +
> +static struct st_clksrc_ddata {
> + struct clk *clk;
> + void __iomem *base;
> +} ddata;
> +
> +static void st_clksrc_reset(void)
> +{
> + writel_relaxed(0, ddata.base + LPC_LPT_START_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_MSB_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_LSB_OFF);
> + writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
> +}
> +
> +static int __init st_clksrc_init(void)
> +{
> + unsigned long rate;
> + int ret;
> +
> + st_clksrc_reset();
> +
> + rate = clk_get_rate(ddata.clk);
> +
> + ret = clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
> + "clksrc-st-lpc", rate, 300, 32,
> + clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("clksrc-st-lpc: Failed to register clocksource\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int st_clksrc_setup_clk(struct device_node *np)
> +{
> + struct clk *clk;
> + int ret;
> +
> + clk = of_clk_get(np, 0);
> + if (IS_ERR(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock\n");
> + ret = PTR_ERR(clk);
> + return ret;
return PTR_ERR(clk);
so you can get rid of the 'int ret' variable.
> + }
> +
> + if (clk_prepare_enable(clk)) {
> + pr_err("clksrc-st-lpc: Failed to enable LPC clock\n");
> + return -EINVAL;
> + }
> +
> + if (!clk_get_rate(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n");
> + clk_disable_unprepare(clk);
> + return -EINVAL;
> + }
> +
> + ddata.clk = clk;
> +
> + return 0;
> +}
> +
> +static void __init st_clksrc_of_register(struct device_node *np)
> +{
> + int ret;
> + uint32_t mode;
> +
> + ret = of_property_read_u32(np, "st,lpc-mode", &mode);
> + if (ret) {
> + pr_err("clksrc-st-lpc: An LPC mode must be provided\n");
> + return;
> + }
> +
> + /* LPC can either run as a Clocksource or in RTC or WDT mode */
> + if (mode != ST_LPC_MODE_CLKSRC)
> + return;
I am confused with this patch description + comment and the patch 1's
description.
For the former, I understand the LPC could be in RTC or WDT mode and
used as a clocksource (clksrc + rtc / clksrc + wdt), for the latter I
understand there are three modes clocksource, rtc and watchdog (mutually
exclusive). Could you clarify ?
> +
> + ddata.base = of_iomap(np, 0);
> + if (!ddata.base) {
> + pr_err("clksrc-st-lpc: Unable to map iomem\n");
> + return;
> + }
> +
> + if (st_clksrc_setup_clk(np)) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + if (st_clksrc_init()) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n",
> + clk_get_rate(ddata.clk));
> +}
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: kernel-F5mvAk5X5gdBDgjK7y7TUQ@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org,
a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org,
linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org
Subject: Re: [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP
Date: Mon, 11 May 2015 10:42:47 +0200 [thread overview]
Message-ID: <55506B87.3070807@linaro.org> (raw)
In-Reply-To: <1431005924-21777-3-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
On 05/07/2015 03:38 PM, Lee Jones wrote:
> This IP is shared with Watchdog and RTC functionality. Only one of
> these IPs can be used at the same time. We use the device-driver
> model combined with a DT 'mode' property to enforce this.
>
> The ST LPC Clocksource IP can be used as the system (tick) timer.
>
> Signed-off-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> ---
> drivers/clocksource/Kconfig | 8 +++
> drivers/clocksource/Makefile | 1 +
> drivers/clocksource/clksrc_st_lpc.c | 123 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 132 insertions(+)
> create mode 100644 drivers/clocksource/clksrc_st_lpc.c
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 68161f7..ac424cf 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -250,4 +250,12 @@ config CLKSRC_PXA
> help
> This enables OST0 support available on PXA and SA-11x0
> platforms.
> +
> +config CLKSRC_ST_LPC
> + bool
> + depends on ARCH_STI
> + select CLKSRC_OF if OF
> + help
> + Enable this option to use the Low Power controller timer
> + as clocksource.
> endmenu
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 752d5c7..e08da4d 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -51,3 +51,4 @@ obj-$(CONFIG_ARCH_INTEGRATOR_AP) += timer-integrator-ap.o
> obj-$(CONFIG_CLKSRC_VERSATILE) += versatile.o
> obj-$(CONFIG_CLKSRC_MIPS_GIC) += mips-gic-timer.o
> obj-$(CONFIG_ASM9260_TIMER) += asm9260_timer.o
> +obj-$(CONFIG_CLKSRC_ST_LPC) += clksrc_st_lpc.o
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> new file mode 100644
> index 0000000..18a7dcd0
> --- /dev/null
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -0,0 +1,123 @@
> +/*
> + * Clocksource using the Low Power Timer found in the Low Power Controller (LPC)
> + *
> + * Copyright (C) 2015 STMicroelectronics – All Rights Reserved
> + *
> + * Author(s): Francesco Virlinzi <francesco.virlinzi-qxv4g6HH51o@public.gmane.org>
> + * Ajit Pal Singh <ajitpal.singh-qxv4g6HH51o@public.gmane.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clocksource.h>
> +#include <linux/init.h>
> +#include <linux/of_address.h>
> +#include <linux/slab.h>
> +
> +#include <dt-bindings/mfd/st-lpc.h>
> +
> +/* Low Power Timer */
> +#define LPC_LPT_LSB_OFF 0x400
> +#define LPC_LPT_MSB_OFF 0x404
> +#define LPC_LPT_START_OFF 0x408
> +
> +static struct st_clksrc_ddata {
> + struct clk *clk;
> + void __iomem *base;
> +} ddata;
> +
> +static void st_clksrc_reset(void)
> +{
> + writel_relaxed(0, ddata.base + LPC_LPT_START_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_MSB_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_LSB_OFF);
> + writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
> +}
> +
> +static int __init st_clksrc_init(void)
> +{
> + unsigned long rate;
> + int ret;
> +
> + st_clksrc_reset();
> +
> + rate = clk_get_rate(ddata.clk);
> +
> + ret = clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
> + "clksrc-st-lpc", rate, 300, 32,
> + clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("clksrc-st-lpc: Failed to register clocksource\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int st_clksrc_setup_clk(struct device_node *np)
> +{
> + struct clk *clk;
> + int ret;
> +
> + clk = of_clk_get(np, 0);
> + if (IS_ERR(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock\n");
> + ret = PTR_ERR(clk);
> + return ret;
return PTR_ERR(clk);
so you can get rid of the 'int ret' variable.
> + }
> +
> + if (clk_prepare_enable(clk)) {
> + pr_err("clksrc-st-lpc: Failed to enable LPC clock\n");
> + return -EINVAL;
> + }
> +
> + if (!clk_get_rate(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n");
> + clk_disable_unprepare(clk);
> + return -EINVAL;
> + }
> +
> + ddata.clk = clk;
> +
> + return 0;
> +}
> +
> +static void __init st_clksrc_of_register(struct device_node *np)
> +{
> + int ret;
> + uint32_t mode;
> +
> + ret = of_property_read_u32(np, "st,lpc-mode", &mode);
> + if (ret) {
> + pr_err("clksrc-st-lpc: An LPC mode must be provided\n");
> + return;
> + }
> +
> + /* LPC can either run as a Clocksource or in RTC or WDT mode */
> + if (mode != ST_LPC_MODE_CLKSRC)
> + return;
I am confused with this patch description + comment and the patch 1's
description.
For the former, I understand the LPC could be in RTC or WDT mode and
used as a clocksource (clksrc + rtc / clksrc + wdt), for the latter I
understand there are three modes clocksource, rtc and watchdog (mutually
exclusive). Could you clarify ?
> +
> + ddata.base = of_iomap(np, 0);
> + if (!ddata.base) {
> + pr_err("clksrc-st-lpc: Unable to map iomem\n");
> + return;
> + }
> +
> + if (st_clksrc_setup_clk(np)) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + if (st_clksrc_init()) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n",
> + clk_get_rate(ddata.clk));
> +}
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lee Jones <lee.jones@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: kernel@stlinux.com, devicetree@vger.kernel.org,
tglx@linutronix.de, wim@iguana.be, a.zummo@towertech.it,
linux-watchdog@vger.kernel.org, rtc-linux@googlegroups.com,
linux@roeck-us.net
Subject: Re: [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP
Date: Mon, 11 May 2015 10:42:47 +0200 [thread overview]
Message-ID: <55506B87.3070807@linaro.org> (raw)
In-Reply-To: <1431005924-21777-3-git-send-email-lee.jones@linaro.org>
On 05/07/2015 03:38 PM, Lee Jones wrote:
> This IP is shared with Watchdog and RTC functionality. Only one of
> these IPs can be used at the same time. We use the device-driver
> model combined with a DT 'mode' property to enforce this.
>
> The ST LPC Clocksource IP can be used as the system (tick) timer.
>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
> drivers/clocksource/Kconfig | 8 +++
> drivers/clocksource/Makefile | 1 +
> drivers/clocksource/clksrc_st_lpc.c | 123 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 132 insertions(+)
> create mode 100644 drivers/clocksource/clksrc_st_lpc.c
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 68161f7..ac424cf 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -250,4 +250,12 @@ config CLKSRC_PXA
> help
> This enables OST0 support available on PXA and SA-11x0
> platforms.
> +
> +config CLKSRC_ST_LPC
> + bool
> + depends on ARCH_STI
> + select CLKSRC_OF if OF
> + help
> + Enable this option to use the Low Power controller timer
> + as clocksource.
> endmenu
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 752d5c7..e08da4d 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -51,3 +51,4 @@ obj-$(CONFIG_ARCH_INTEGRATOR_AP) += timer-integrator-ap.o
> obj-$(CONFIG_CLKSRC_VERSATILE) += versatile.o
> obj-$(CONFIG_CLKSRC_MIPS_GIC) += mips-gic-timer.o
> obj-$(CONFIG_ASM9260_TIMER) += asm9260_timer.o
> +obj-$(CONFIG_CLKSRC_ST_LPC) += clksrc_st_lpc.o
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> new file mode 100644
> index 0000000..18a7dcd0
> --- /dev/null
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -0,0 +1,123 @@
> +/*
> + * Clocksource using the Low Power Timer found in the Low Power Controller (LPC)
> + *
> + * Copyright (C) 2015 STMicroelectronics – All Rights Reserved
> + *
> + * Author(s): Francesco Virlinzi <francesco.virlinzi@st.com>
> + * Ajit Pal Singh <ajitpal.singh@st.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clocksource.h>
> +#include <linux/init.h>
> +#include <linux/of_address.h>
> +#include <linux/slab.h>
> +
> +#include <dt-bindings/mfd/st-lpc.h>
> +
> +/* Low Power Timer */
> +#define LPC_LPT_LSB_OFF 0x400
> +#define LPC_LPT_MSB_OFF 0x404
> +#define LPC_LPT_START_OFF 0x408
> +
> +static struct st_clksrc_ddata {
> + struct clk *clk;
> + void __iomem *base;
> +} ddata;
> +
> +static void st_clksrc_reset(void)
> +{
> + writel_relaxed(0, ddata.base + LPC_LPT_START_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_MSB_OFF);
> + writel_relaxed(0, ddata.base + LPC_LPT_LSB_OFF);
> + writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
> +}
> +
> +static int __init st_clksrc_init(void)
> +{
> + unsigned long rate;
> + int ret;
> +
> + st_clksrc_reset();
> +
> + rate = clk_get_rate(ddata.clk);
> +
> + ret = clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
> + "clksrc-st-lpc", rate, 300, 32,
> + clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("clksrc-st-lpc: Failed to register clocksource\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int st_clksrc_setup_clk(struct device_node *np)
> +{
> + struct clk *clk;
> + int ret;
> +
> + clk = of_clk_get(np, 0);
> + if (IS_ERR(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock\n");
> + ret = PTR_ERR(clk);
> + return ret;
return PTR_ERR(clk);
so you can get rid of the 'int ret' variable.
> + }
> +
> + if (clk_prepare_enable(clk)) {
> + pr_err("clksrc-st-lpc: Failed to enable LPC clock\n");
> + return -EINVAL;
> + }
> +
> + if (!clk_get_rate(clk)) {
> + pr_err("clksrc-st-lpc: Failed to get LPC clock rate\n");
> + clk_disable_unprepare(clk);
> + return -EINVAL;
> + }
> +
> + ddata.clk = clk;
> +
> + return 0;
> +}
> +
> +static void __init st_clksrc_of_register(struct device_node *np)
> +{
> + int ret;
> + uint32_t mode;
> +
> + ret = of_property_read_u32(np, "st,lpc-mode", &mode);
> + if (ret) {
> + pr_err("clksrc-st-lpc: An LPC mode must be provided\n");
> + return;
> + }
> +
> + /* LPC can either run as a Clocksource or in RTC or WDT mode */
> + if (mode != ST_LPC_MODE_CLKSRC)
> + return;
I am confused with this patch description + comment and the patch 1's
description.
For the former, I understand the LPC could be in RTC or WDT mode and
used as a clocksource (clksrc + rtc / clksrc + wdt), for the latter I
understand there are three modes clocksource, rtc and watchdog (mutually
exclusive). Could you clarify ?
> +
> + ddata.base = of_iomap(np, 0);
> + if (!ddata.base) {
> + pr_err("clksrc-st-lpc: Unable to map iomem\n");
> + return;
> + }
> +
> + if (st_clksrc_setup_clk(np)) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + if (st_clksrc_init()) {
> + iounmap(ddata.base);
> + return;
> + }
> +
> + pr_info("clksrc-st-lpc: clocksource initialised - running @ %luHz\n",
> + clk_get_rate(ddata.clk));
> +}
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2015-05-11 8:42 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-07 13:38 [rtc-linux] [PATCH 00/12] mfd: watchdog: rtc: Add LPC Clocksource driver Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 01/12] mfd: dt-bindings: Provide human readable define for Clocksource mode Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 02/12] clocksource: sti: Provide support for the ST LPC Clocksource IP Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 15:04 ` [rtc-linux] Re: [STLinux Kernel] " Peter Griffin
2015-05-07 15:04 ` Peter Griffin
2015-05-07 15:04 ` Peter Griffin
2015-05-07 15:04 ` Peter Griffin
2015-05-07 19:13 ` [rtc-linux] " Lee Jones
2015-05-07 19:13 ` Lee Jones
2015-05-07 19:13 ` Lee Jones
2015-05-07 19:13 ` Lee Jones
2015-05-07 19:13 ` Lee Jones
2015-05-08 10:09 ` [rtc-linux] " Paul Bolle
2015-05-08 10:09 ` Paul Bolle
2015-05-08 10:09 ` Paul Bolle
2015-05-08 10:09 ` Paul Bolle
2015-05-08 10:28 ` [rtc-linux] " Lee Jones
2015-05-08 10:28 ` Lee Jones
2015-05-08 10:28 ` Lee Jones
2015-05-08 10:28 ` Lee Jones
2015-05-08 11:30 ` [rtc-linux] " Paul Bolle
2015-05-08 11:30 ` Paul Bolle
2015-05-08 11:30 ` Paul Bolle
2015-05-11 8:42 ` Daniel Lezcano [this message]
2015-05-11 8:42 ` Daniel Lezcano
2015-05-11 8:42 ` Daniel Lezcano
2015-05-11 8:42 ` Daniel Lezcano
2015-05-11 8:42 ` Daniel Lezcano
2015-05-11 10:53 ` [rtc-linux] " Lee Jones
2015-05-11 10:53 ` Lee Jones
2015-05-11 10:53 ` Lee Jones
2015-05-11 10:53 ` Lee Jones
2015-05-11 10:53 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 03/12] clocksource: sti: Provide 'use timer as sched clock' capability Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-08 8:44 ` [rtc-linux] " Paul Bolle
2015-05-08 8:44 ` Paul Bolle
2015-05-08 8:44 ` Paul Bolle
2015-05-08 8:44 ` Paul Bolle
2015-05-08 9:36 ` [rtc-linux] " Lee Jones
2015-05-08 9:36 ` Lee Jones
2015-05-08 9:36 ` Lee Jones
2015-05-08 9:36 ` Lee Jones
2015-05-08 9:36 ` Lee Jones
2015-05-08 9:52 ` [rtc-linux] " Paul Bolle
2015-05-08 9:52 ` Paul Bolle
2015-05-08 9:52 ` Paul Bolle
2015-05-08 9:52 ` Paul Bolle
2015-05-08 10:29 ` [rtc-linux] " Lee Jones
2015-05-08 10:29 ` Lee Jones
2015-05-08 10:29 ` Lee Jones
2015-05-08 10:29 ` Lee Jones
2015-05-08 10:29 ` Lee Jones
2015-05-08 11:47 ` [rtc-linux] " Paul Bolle
2015-05-08 11:47 ` Paul Bolle
2015-05-08 11:47 ` Paul Bolle
2015-05-08 11:47 ` Paul Bolle
2015-05-11 8:47 ` [rtc-linux] " Daniel Lezcano
2015-05-11 8:47 ` Daniel Lezcano
2015-05-11 8:47 ` Daniel Lezcano
2015-05-11 8:47 ` Daniel Lezcano
2015-05-11 8:47 ` Daniel Lezcano
2015-05-11 9:22 ` [rtc-linux] " Paul Bolle
2015-05-11 9:22 ` Paul Bolle
2015-05-11 9:22 ` Paul Bolle
2015-05-07 13:38 ` [rtc-linux] [PATCH 04/12] clocksource: bindings: Provide bindings for ST's LPC Clocksource device Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 05/12] watchdog: st_wdt: Update IP layout information to include Clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-08 0:04 ` [rtc-linux] " Guenter Roeck
2015-05-08 0:04 ` Guenter Roeck
2015-05-08 0:04 ` Guenter Roeck
2015-05-08 0:04 ` Guenter Roeck
2015-05-07 13:38 ` [rtc-linux] [PATCH 06/12] watchdog: bindings: Supply knowledge of a third supported device - clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 14:18 ` [rtc-linux] Re: [STLinux Kernel] " Peter Griffin
2015-05-07 14:18 ` Peter Griffin
2015-05-07 14:18 ` Peter Griffin
2015-05-07 14:18 ` Peter Griffin
2015-05-07 19:19 ` [rtc-linux] " Lee Jones
2015-05-07 19:19 ` Lee Jones
2015-05-07 19:19 ` Lee Jones
2015-05-07 19:19 ` Lee Jones
2015-05-07 19:19 ` Lee Jones
2015-05-07 19:55 ` [rtc-linux] " Peter Griffin
2015-05-07 19:55 ` Peter Griffin
2015-05-07 19:55 ` Peter Griffin
2015-05-07 19:55 ` Peter Griffin
2015-05-08 6:49 ` [rtc-linux] " Lee Jones
2015-05-08 6:49 ` Lee Jones
2015-05-08 6:49 ` Lee Jones
2015-05-08 6:49 ` Lee Jones
2015-05-08 6:49 ` Lee Jones
2015-05-08 7:16 ` [rtc-linux] " Peter Griffin
2015-05-08 7:16 ` Peter Griffin
2015-05-08 7:16 ` Peter Griffin
2015-05-08 7:16 ` Peter Griffin
2015-05-08 7:25 ` [rtc-linux] " Lee Jones
2015-05-08 7:25 ` Lee Jones
2015-05-08 7:25 ` Lee Jones
2015-05-08 7:25 ` Lee Jones
2015-05-08 7:25 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 07/12] rtc: st: Update IP layout information to include Clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-09 13:58 ` [rtc-linux] " Alexandre Belloni
2015-05-09 13:58 ` Alexandre Belloni
2015-05-11 10:54 ` Lee Jones
2015-05-11 10:54 ` Lee Jones
2015-05-11 10:54 ` Lee Jones
2015-05-11 10:54 ` Lee Jones
2015-05-11 11:03 ` Alexandre Belloni
2015-05-11 11:03 ` Alexandre Belloni
2015-05-11 11:03 ` Alexandre Belloni
2015-05-11 11:03 ` Alexandre Belloni
2015-05-11 11:52 ` Lee Jones
2015-05-11 11:52 ` Lee Jones
2015-05-11 11:52 ` Lee Jones
2015-05-11 11:52 ` Lee Jones
2015-05-11 11:52 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 08/12] rtc: bindings: Supply knowledge of a third supported device - clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 14:12 ` [rtc-linux] Re: [STLinux Kernel] " Peter Griffin
2015-05-07 14:12 ` Peter Griffin
2015-05-07 14:12 ` Peter Griffin
2015-05-07 19:21 ` [rtc-linux] " Lee Jones
2015-05-07 19:21 ` Lee Jones
2015-05-07 19:21 ` Lee Jones
2015-05-07 19:21 ` Lee Jones
2015-05-07 19:21 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 09/12] MAINTAINERS: Add the LPC Clocksource to STi maintained driver list Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 10/12] ARM: STi: DT: STih407: Switch LPC mode from RTC to Clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 11/12] ARM: STi: Enable LPC Clocksource Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` [rtc-linux] [PATCH 12/12] ARM: STi: Update platform level menuconfig 'help' Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 13:38 ` Lee Jones
2015-05-07 14:15 ` [rtc-linux] Re: [STLinux Kernel] " Peter Griffin
2015-05-07 14:15 ` Peter Griffin
2015-05-07 14:15 ` Peter Griffin
2015-05-07 19:20 ` [rtc-linux] " Lee Jones
2015-05-07 19:20 ` Lee Jones
2015-05-07 19:20 ` Lee Jones
2015-05-07 19:20 ` Lee Jones
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=55506B87.3070807@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=a.zummo@towertech.it \
--cc=devicetree@vger.kernel.org \
--cc=kernel@stlinux.com \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=rtc-linux@googlegroups.com \
--cc=tglx@linutronix.de \
--cc=wim@iguana.be \
/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.