From: Rob Herring <robh+dt@kernel.org> To: Paul Cercueil <paul@crapouillou.net> Cc: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@codeaurora.org>, Mark Rutland <mark.rutland@arm.com>, Thomas Gleixner <tglx@linutronix.de>, Jason Cooper <jason@lakedaemon.net>, Marc Zyngier <marc.zyngier@arm.com>, Daniel Lezcano <daniel.lezcano@linaro.org>, Lee Jones <lee.jones@linaro.org>, linux-clk <linux-clk@vger.kernel.org>, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v3 8/9] clocksource: Add a new timer-ingenic driver Date: Thu, 11 Jan 2018 08:53:22 -0600 [thread overview] Message-ID: <CAL_Jsq+StZS1+qTd9CG1X2_3ay5onMgEmYG9MRUVWs-4K4-EZA@mail.gmail.com> (raw) In-Reply-To: <20180110224838.16711-8-paul@crapouillou.net> On Wed, Jan 10, 2018 at 4:48 PM, Paul Cercueil <paul@crapouillou.net> wrote: > This driver will use the TCU (Timer Counter Unit) present on the Ingenic > JZ47xx SoCs to provide the kernel with a clocksource and timers. > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> > --- > drivers/clocksource/Kconfig | 8 ++ > drivers/clocksource/Makefile | 1 + > drivers/clocksource/timer-ingenic.c | 258 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 267 insertions(+) > create mode 100644 drivers/clocksource/timer-ingenic.c > > v2: Use SPDX identifier for the license > v3: - Move documentation to its own patch > - Search the devicetree for PWM clients, and use all the TCU > channels that won't be used for PWM [...] > +static int __init ingenic_tcu_init(struct device_node *np) > +{ > + unsigned long available_channels = GENMASK(NUM_CHANNELS - 1, 0); > + struct device_node *node; > + struct ingenic_tcu *tcu; > + unsigned int i, channel; > + int err; > + u32 val; > + > + for_each_node_with_property(node, "pwms") { > + err = of_property_read_u32_index(node, "pwms", 1, &val); This is the right idea, but a bit fragile. Perhaps its good enough for your platform, but it would fail if you have another PWM provider like the gpio-pwm binding or the cell size is not 1 (BTW, I thought the PWM binding defined 3 cells typically). Rob
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> To: Paul Cercueil <paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org> Cc: Michael Turquette <mturquette-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>, Stephen Boyd <sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>, Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>, Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>, Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>, Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>, Daniel Lezcano <daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, linux-clk <linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> Subject: Re: [PATCH v3 8/9] clocksource: Add a new timer-ingenic driver Date: Thu, 11 Jan 2018 08:53:22 -0600 [thread overview] Message-ID: <CAL_Jsq+StZS1+qTd9CG1X2_3ay5onMgEmYG9MRUVWs-4K4-EZA@mail.gmail.com> (raw) In-Reply-To: <20180110224838.16711-8-paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org> On Wed, Jan 10, 2018 at 4:48 PM, Paul Cercueil <paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org> wrote: > This driver will use the TCU (Timer Counter Unit) present on the Ingenic > JZ47xx SoCs to provide the kernel with a clocksource and timers. > > Signed-off-by: Paul Cercueil <paul-icTtO2rgO2OTuSrc4Mpeew@public.gmane.org> > --- > drivers/clocksource/Kconfig | 8 ++ > drivers/clocksource/Makefile | 1 + > drivers/clocksource/timer-ingenic.c | 258 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 267 insertions(+) > create mode 100644 drivers/clocksource/timer-ingenic.c > > v2: Use SPDX identifier for the license > v3: - Move documentation to its own patch > - Search the devicetree for PWM clients, and use all the TCU > channels that won't be used for PWM [...] > +static int __init ingenic_tcu_init(struct device_node *np) > +{ > + unsigned long available_channels = GENMASK(NUM_CHANNELS - 1, 0); > + struct device_node *node; > + struct ingenic_tcu *tcu; > + unsigned int i, channel; > + int err; > + u32 val; > + > + for_each_node_with_property(node, "pwms") { > + err = of_property_read_u32_index(node, "pwms", 1, &val); This is the right idea, but a bit fragile. Perhaps its good enough for your platform, but it would fail if you have another PWM provider like the gpio-pwm binding or the cell size is not 1 (BTW, I thought the PWM binding defined 3 cells typically). Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-01-11 14:53 UTC|newest] Thread overview: 144+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-12-29 12:59 [PATCH 0/6] Ingenic JZ47xx TCU drivers Paul Cercueil 2017-12-29 12:59 ` Paul Cercueil 2017-12-29 12:59 ` [PATCH 1/6] mfd: syscon: Add ingenic-tcu.h header Paul Cercueil 2018-01-01 14:33 ` [PATCH v2 " Paul Cercueil 2018-01-01 14:33 ` [PATCH v2 2/6] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil 2018-01-03 20:49 ` Rob Herring 2018-01-01 14:33 ` [PATCH v2 3/6] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil 2018-01-03 20:58 ` Rob Herring 2018-01-03 20:58 ` Rob Herring 2018-01-03 21:50 ` Paul Cercueil 2018-01-03 21:50 ` Paul Cercueil 2018-01-01 14:33 ` [PATCH v2 4/6] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil 2018-01-02 19:13 ` Stephen Boyd 2018-01-02 20:08 ` Paul Cercueil 2018-01-02 22:59 ` Stephen Boyd 2018-01-01 14:33 ` [PATCH v2 5/6] clocksource: Add a new timer-ingenic driver Paul Cercueil 2018-01-03 21:08 ` Rob Herring 2018-01-03 21:56 ` Paul Cercueil 2018-01-03 21:56 ` Paul Cercueil 2018-01-03 21:56 ` Paul Cercueil 2018-01-05 23:27 ` Rob Herring 2018-01-05 23:27 ` Rob Herring 2018-01-05 23:27 ` Rob Herring 2018-01-05 23:48 ` Paul Cercueil 2018-01-05 23:48 ` Paul Cercueil 2018-01-05 23:48 ` Paul Cercueil 2018-01-09 1:09 ` Rob Herring 2018-01-09 1:09 ` Rob Herring 2018-01-09 1:09 ` Rob Herring 2018-01-01 14:33 ` [PATCH v2 6/6] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil 2018-01-02 15:51 ` [PATCH v2 1/6] mfd: syscon: Add ingenic-tcu.h header Lee Jones 2018-01-10 22:48 ` [PATCH v3 1/9] " Paul Cercueil 2018-01-10 22:48 ` [PATCH v3 2/9] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil 2018-01-10 22:48 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 1/8] mfd: syscon: Add ingenic-tcu.h header Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-19 21:27 ` Stephen Boyd 2018-03-19 21:27 ` Stephen Boyd 2018-03-19 21:27 ` Stephen Boyd 2018-03-19 21:27 ` Stephen Boyd 2018-03-20 7:15 ` Mathieu Malaterre 2018-03-20 7:15 ` Mathieu Malaterre 2018-03-20 7:15 ` Mathieu Malaterre 2018-03-28 15:04 ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks, Paul Cercueil 2018-03-28 15:04 ` Paul Cercueil 2018-03-28 15:04 ` Paul Cercueil 2018-03-28 18:35 ` [PATCH v4 2/8] dt-bindings: ingenic: Add DT bindings for TCU clocks Mathieu Malaterre 2018-03-28 18:35 ` Mathieu Malaterre 2018-03-28 18:35 ` Mathieu Malaterre 2018-03-28 18:35 ` Mathieu Malaterre 2018-03-17 23:28 ` [PATCH v4 3/8] doc: Add doc for the Ingenic TCU hardware Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-17 23:52 ` Randy Dunlap 2018-03-17 23:52 ` Randy Dunlap 2018-03-28 14:59 ` [PATCH v4 3/8] doc: Add doc for the Ingenic TCU hardware, Paul Cercueil 2018-03-28 14:59 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-20 8:52 ` Marc Zyngier 2018-03-20 8:52 ` Marc Zyngier 2018-03-28 15:09 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers, Paul Cercueil 2018-03-28 15:09 ` Paul Cercueil 2018-03-27 14:46 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Rob Herring 2018-03-27 14:46 ` Rob Herring 2018-03-28 15:33 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers, Paul Cercueil 2018-03-28 15:33 ` Paul Cercueil 2018-03-28 16:28 ` [PATCH v4 4/8] dt-bindings: Add doc for the Ingenic TCU drivers Rob Herring 2018-03-28 16:28 ` Rob Herring 2018-03-29 15:59 ` Paul Cercueil 2018-03-29 15:59 ` Paul Cercueil 2018-03-29 15:59 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 5/8] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-17 23:28 ` [PATCH v4 6/8] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil 2018-03-17 23:28 ` Paul Cercueil 2018-03-17 23:29 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Paul Cercueil 2018-03-17 23:29 ` Paul Cercueil 2018-03-24 6:26 ` Daniel Lezcano 2018-03-24 6:26 ` Daniel Lezcano 2018-03-28 15:15 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver, Paul Cercueil 2018-03-28 15:15 ` Paul Cercueil 2018-03-28 16:25 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Daniel Lezcano 2018-03-28 16:25 ` Daniel Lezcano 2018-03-29 14:52 ` Paul Cercueil 2018-03-29 14:52 ` Paul Cercueil 2018-03-29 14:52 ` Paul Cercueil 2018-03-31 8:10 ` Daniel Lezcano 2018-03-31 8:10 ` Daniel Lezcano 2018-03-31 17:46 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver, Paul Cercueil 2018-03-31 17:46 ` Paul Cercueil 2018-04-03 9:59 ` [PATCH v4 7/8] clocksource: Add a new timer-ingenic driver Daniel Lezcano 2018-04-03 9:59 ` Daniel Lezcano 2018-04-03 9:59 ` Daniel Lezcano 2018-04-03 9:59 ` Daniel Lezcano 2018-03-17 23:29 ` [PATCH v4 8/8] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil 2018-03-17 23:29 ` Paul Cercueil 2018-03-18 22:13 ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Daniel Lezcano 2018-03-18 22:13 ` Daniel Lezcano 2018-03-28 15:01 ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers, Paul Cercueil 2018-03-28 15:01 ` Paul Cercueil 2018-03-28 15:10 ` [PATCH v4 0/8] Ingenic JZ47xx Timer/Counter Unit drivers Daniel Lezcano 2018-03-28 15:10 ` Daniel Lezcano 2018-01-10 22:48 ` [PATCH v3 3/9] doc: dt-bindings: Add doc for Ingenic TCU IRQ driver Paul Cercueil 2018-01-19 21:05 ` Rob Herring 2018-01-19 21:05 ` Rob Herring 2018-01-10 22:48 ` [PATCH v3 4/9] doc: dt-bindings: Add doc for the Ingenic TCU clocks driver Paul Cercueil 2018-01-19 21:11 ` Rob Herring 2018-01-19 21:11 ` Rob Herring 2018-01-10 22:48 ` [PATCH v3 5/9] doc: dt-bindings: Add doc for the Ingenic TCU timers driver Paul Cercueil 2018-01-19 21:12 ` Rob Herring 2018-01-10 22:48 ` [PATCH v3 6/9] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil 2018-01-11 15:38 ` Marc Zyngier 2018-01-11 15:38 ` Marc Zyngier 2018-01-11 16:25 ` Paul Cercueil 2018-01-20 13:06 ` Marc Zyngier 2018-01-22 9:26 ` Lee Jones 2018-01-22 9:55 ` Marc Zyngier 2018-01-22 11:46 ` Lee Jones 2018-01-22 11:46 ` Lee Jones 2018-01-10 22:48 ` [PATCH v3 7/9] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil 2018-01-27 0:37 ` Stephen Boyd 2018-01-27 0:37 ` Stephen Boyd 2018-01-10 22:48 ` [PATCH v3 8/9] clocksource: Add a new timer-ingenic driver Paul Cercueil 2018-01-11 14:53 ` Rob Herring [this message] 2018-01-11 14:53 ` Rob Herring 2018-01-11 14:53 ` Rob Herring 2018-01-11 16:16 ` Paul Cercueil 2018-01-11 16:16 ` Paul Cercueil 2018-01-11 16:16 ` Paul Cercueil 2018-01-10 22:48 ` [PATCH v3 9/9] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil 2018-01-23 9:52 ` [PATCH v3 1/9] mfd: syscon: Add ingenic-tcu.h header Lee Jones 2018-01-23 9:52 ` Lee Jones 2017-12-29 12:59 ` [PATCH 2/6] dt-bindings: ingenic: Add DT bindings for TCU clocks Paul Cercueil 2017-12-29 12:59 ` [PATCH 3/6] irqchip: Add the ingenic-tcu-intc driver Paul Cercueil 2017-12-29 12:59 ` [PATCH 4/6] clk: ingenic: Add JZ47xx TCU clocks driver Paul Cercueil 2017-12-29 14:02 ` Paul Cercueil 2018-01-01 12:47 ` kbuild test robot 2018-01-01 12:47 ` kbuild test robot 2017-12-29 12:59 ` [PATCH 5/6] clocksource: Add a new timer-ingenic driver Paul Cercueil 2017-12-29 12:59 ` [PATCH 6/6] MAINTAINERS: Add myself as maintainer for Ingenic TCU drivers Paul Cercueil
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=CAL_Jsq+StZS1+qTd9CG1X2_3ay5onMgEmYG9MRUVWs-4K4-EZA@mail.gmail.com \ --to=robh+dt@kernel.org \ --cc=daniel.lezcano@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=jason@lakedaemon.net \ --cc=lee.jones@linaro.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=mark.rutland@arm.com \ --cc=mturquette@baylibre.com \ --cc=paul@crapouillou.net \ --cc=sboyd@codeaurora.org \ --cc=tglx@linutronix.de \ /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 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.