From: "Andreas Färber" <afaerber@suse.de> To: arm@kernel.org Cc: linux-arm-kernel@lists.infradead.org, mp-cs@actions-semi.com, 96boards@ucrobotics.com, support@lemaker.org, linux-kernel@vger.kernel.org, "Andreas Färber" <afaerber@suse.de>, "Daniel Lezcano" <daniel.lezcano@linaro.org>, "Thomas Gleixner" <tglx@linutronix.de> Subject: [PATCH v3 05/25] clocksource: owl: Add S900 support Date: Tue, 28 Feb 2017 07:35:15 +0100 [thread overview] Message-ID: <20170228063535.32069-6-afaerber@suse.de> (raw) In-Reply-To: <20170228063535.32069-1-afaerber@suse.de> The Actions Semi S900 SoC provides four 32-bit timers, TIMER0/1/2/3, but no 2Hz timers. Deal with the S500 having less timers. An S900 datasheet can be found in 96Boards documentation: https://github.com/96boards/documentation/blob/master/ConsumerEdition/Bubblegum-96/HardwareDocs/SoC_bubblegum96.pdf Signed-off-by: Andreas Färber <afaerber@suse.de> --- v3: new drivers/clocksource/owl-timer.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/owl-timer.c b/drivers/clocksource/owl-timer.c index 1b1e26d..babbfd5 100644 --- a/drivers/clocksource/owl-timer.c +++ b/drivers/clocksource/owl-timer.c @@ -31,7 +31,7 @@ #define OWL_Tx_CTL_INTEN BIT(1) #define OWL_Tx_CTL_EN BIT(2) -#define OWL_MAX_Tx 2 +#define OWL_MAX_Tx 4 struct owl_timer_info { int timer_offset[OWL_MAX_Tx]; @@ -43,7 +43,8 @@ static void __iomem *owl_timer_base; static inline void __iomem *owl_timer_get_base(unsigned timer_nr) { - if (timer_nr >= OWL_MAX_Tx) + if (timer_nr >= OWL_MAX_Tx || + owl_timer_info->timer_offset[timer_nr] == -1) return NULL; return owl_timer_base + owl_timer_info->timer_offset[timer_nr]; @@ -126,10 +127,20 @@ static irqreturn_t owl_timer1_interrupt(int irq, void *dev_id) static const struct owl_timer_info s500_timer_info = { .timer_offset[0] = 0x08, .timer_offset[1] = 0x14, + .timer_offset[2] = -1, + .timer_offset[3] = -1, +}; + +static const struct owl_timer_info s900_timer_info = { + .timer_offset[0] = 0x08, + .timer_offset[1] = 0x14, + .timer_offset[2] = 0x30, + .timer_offset[3] = 0x3c, }; static const struct of_device_id owl_timer_of_matches[] = { { .compatible = "actions,s500-timer", .data = &s500_timer_info }, + { .compatible = "actions,s900-timer", .data = &s900_timer_info }, { } }; @@ -191,3 +202,4 @@ static int __init owl_timer_init(struct device_node *node) return 0; } CLOCKSOURCE_OF_DECLARE(owl_s500, "actions,s500-timer", owl_timer_init); +CLOCKSOURCE_OF_DECLARE(owl_s900, "actions,s900-timer", owl_timer_init); -- 2.10.2
WARNING: multiple messages have this Message-ID (diff)
From: afaerber@suse.de (Andreas Färber) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 05/25] clocksource: owl: Add S900 support Date: Tue, 28 Feb 2017 07:35:15 +0100 [thread overview] Message-ID: <20170228063535.32069-6-afaerber@suse.de> (raw) In-Reply-To: <20170228063535.32069-1-afaerber@suse.de> The Actions Semi S900 SoC provides four 32-bit timers, TIMER0/1/2/3, but no 2Hz timers. Deal with the S500 having less timers. An S900 datasheet can be found in 96Boards documentation: https://github.com/96boards/documentation/blob/master/ConsumerEdition/Bubblegum-96/HardwareDocs/SoC_bubblegum96.pdf Signed-off-by: Andreas F?rber <afaerber@suse.de> --- v3: new drivers/clocksource/owl-timer.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/owl-timer.c b/drivers/clocksource/owl-timer.c index 1b1e26d..babbfd5 100644 --- a/drivers/clocksource/owl-timer.c +++ b/drivers/clocksource/owl-timer.c @@ -31,7 +31,7 @@ #define OWL_Tx_CTL_INTEN BIT(1) #define OWL_Tx_CTL_EN BIT(2) -#define OWL_MAX_Tx 2 +#define OWL_MAX_Tx 4 struct owl_timer_info { int timer_offset[OWL_MAX_Tx]; @@ -43,7 +43,8 @@ static void __iomem *owl_timer_base; static inline void __iomem *owl_timer_get_base(unsigned timer_nr) { - if (timer_nr >= OWL_MAX_Tx) + if (timer_nr >= OWL_MAX_Tx || + owl_timer_info->timer_offset[timer_nr] == -1) return NULL; return owl_timer_base + owl_timer_info->timer_offset[timer_nr]; @@ -126,10 +127,20 @@ static irqreturn_t owl_timer1_interrupt(int irq, void *dev_id) static const struct owl_timer_info s500_timer_info = { .timer_offset[0] = 0x08, .timer_offset[1] = 0x14, + .timer_offset[2] = -1, + .timer_offset[3] = -1, +}; + +static const struct owl_timer_info s900_timer_info = { + .timer_offset[0] = 0x08, + .timer_offset[1] = 0x14, + .timer_offset[2] = 0x30, + .timer_offset[3] = 0x3c, }; static const struct of_device_id owl_timer_of_matches[] = { { .compatible = "actions,s500-timer", .data = &s500_timer_info }, + { .compatible = "actions,s900-timer", .data = &s900_timer_info }, { } }; @@ -191,3 +202,4 @@ static int __init owl_timer_init(struct device_node *node) return 0; } CLOCKSOURCE_OF_DECLARE(owl_s500, "actions,s500-timer", owl_timer_init); +CLOCKSOURCE_OF_DECLARE(owl_s900, "actions,s900-timer", owl_timer_init); -- 2.10.2
next prev parent reply other threads:[~2017-02-28 6:58 UTC|newest] Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-28 6:35 [PATCH v3 00/25] ARM: Initial Actions Semi S500 and S900 enablement Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 01/25] dt-bindings: Add vendor prefix for Actions Semi Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 02/25] dt-bindings: arm: Document Actions Semi S500 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 03/25] dt-bindings: timer: Document Owl timer Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 12:39 ` Mark Rutland 2017-02-28 12:39 ` Mark Rutland 2017-02-28 12:39 ` Mark Rutland 2017-03-03 6:20 ` Rob Herring 2017-03-03 6:20 ` Rob Herring 2017-03-03 6:20 ` Rob Herring 2017-03-03 21:36 ` Andreas Färber 2017-03-03 21:36 ` Andreas Färber 2017-03-03 21:36 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 04/25] clocksource: Add " Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 16:47 ` Daniel Lezcano 2017-02-28 16:47 ` Daniel Lezcano 2017-02-28 17:08 ` Andreas Färber 2017-02-28 17:08 ` Andreas Färber 2017-02-28 17:39 ` Daniel Lezcano 2017-02-28 17:39 ` Daniel Lezcano 2017-02-28 18:01 ` Andreas Färber 2017-02-28 18:01 ` Andreas Färber 2017-02-28 18:56 ` Thomas Gleixner 2017-02-28 18:56 ` Thomas Gleixner 2017-02-28 18:53 ` Thomas Gleixner 2017-02-28 18:53 ` Thomas Gleixner 2017-02-28 6:35 ` Andreas Färber [this message] 2017-02-28 6:35 ` [PATCH v3 05/25] clocksource: owl: Add S900 support Andreas Färber 2017-02-28 17:16 ` Andreas Färber 2017-02-28 17:16 ` Andreas Färber 2017-02-28 17:42 ` Daniel Lezcano 2017-02-28 17:42 ` Daniel Lezcano 2017-02-28 6:35 ` [PATCH v3 06/25] ARM: Prepare Actions Semi S500 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 07/25] ARM64: Prepare Actions Semi S900 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 08/25] dt-bindings: serial: Document Actions Semi Owl UARTs Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 09/25] tty: serial: Add Actions Semi Owl UART earlycon Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 10/25] Documentation: kernel-parameters: Document owl earlycon Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 11/25] ARM: dts: Add Actions Semi S500 and LeMaker Guitar Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 12:32 ` Mark Rutland 2017-02-28 12:32 ` Mark Rutland 2017-02-28 12:32 ` Mark Rutland 2017-02-28 15:13 ` Andreas Färber 2017-02-28 15:13 ` Andreas Färber 2017-02-28 15:13 ` Andreas Färber 2017-03-01 18:43 ` Mark Rutland 2017-03-01 18:43 ` Mark Rutland 2017-03-01 18:43 ` Mark Rutland 2017-02-28 6:35 ` [PATCH v3 12/25] dt-bindings: Add vendor prefix for uCRobotics Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 13/25] dt-bindings: arm: Document Actions Semi S900 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 14/25] ARM64: dts: Add Actions Semi S900 and Bubblegum-96 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 15/25] MAINTAINERS: Add Actions Semi Owl section Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 16/25] tty: serial: owl: Implement console driver Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 17/25] ARM64: dts: actions: s900-bubblegum-96: Add fake uart5 clock Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 18/25] ARM: dts: s500-guitar-bb-rev-b: Add fake uart3 clock Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 19/25] dt-bindings: arm: cpus: Add S500 enable-method Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-03-03 6:21 ` Rob Herring 2017-03-03 6:21 ` Rob Herring 2017-03-03 6:21 ` Rob Herring 2017-02-28 6:35 ` [PATCH v3 20/25] ARM: owl: Implement CPU enable-method for S500 Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-03-01 7:19 ` kbuild test robot 2017-03-01 7:19 ` kbuild test robot 2017-03-01 10:40 ` Andreas Färber 2017-03-01 10:40 ` Andreas Färber 2017-03-03 23:00 ` Andreas Färber 2017-03-03 23:00 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 21/25] ARM: dts: s500: Set CPU enable-method Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 22/25] dt-bindings: power: Add Owl SPS power domains Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-03-03 6:21 ` Rob Herring 2017-03-03 6:21 ` Rob Herring 2017-03-03 6:21 ` Rob Herring 2017-02-28 6:35 ` [PATCH v3 23/25] soc: actions: Add Owl SPS Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 24/25] ARM: dts: s500: Add SPS node Andreas Färber 2017-02-28 6:35 ` Andreas Färber 2017-02-28 6:35 ` [PATCH v3 25/25] ARM: owl: smp: Reimplement SPS power-gating for CPU2 and CPU3 Andreas Färber 2017-02-28 6:35 ` Andreas Färber
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=20170228063535.32069-6-afaerber@suse.de \ --to=afaerber@suse.de \ --cc=96boards@ucrobotics.com \ --cc=arm@kernel.org \ --cc=daniel.lezcano@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mp-cs@actions-semi.com \ --cc=support@lemaker.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.