linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nikita Shubin <nikita.shubin@maquefel.me>
To: Alexander Sverdlin <alexander.sverdlin@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>
Cc: Nikita Shubin <nikita.shubin@maquefel.me>,
	Michael Peters <mpeters@embeddedTS.com>,
	Kris Bahnsen <kris@embeddedTS.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH v1 09/43] clocksource: ep93xx: Add driver for Cirrus Logic EP93xx
Date: Thu,  1 Jun 2023 08:34:00 +0300	[thread overview]
Message-ID: <20230601053546.9574-10-nikita.shubin@maquefel.me> (raw)
In-Reply-To: <20230424123522.18302-1-nikita.shubin@maquefel.me>

This us a rewrite of EP93xx timer driver in
arch/arm/mach-ep93xx/timer-ep93xx.c trying to do everything
the device tree way:

- Make every IO-access relative to a base address and dynamic
  so we can do a dynamic ioremap and get going.
- Find register range and interrupt from the device tree.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---

Notes:
    v0 -> v1:
    
    - fixed headers

 drivers/clocksource/Kconfig        |  11 ++
 drivers/clocksource/Makefile       |   1 +
 drivers/clocksource/timer-ep93xx.c | 189 +++++++++++++++++++++++++++++
 3 files changed, 201 insertions(+)
 create mode 100644 drivers/clocksource/timer-ep93xx.c

diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index 5fc8f0e7fb38..40bfc7c86756 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -721,4 +721,15 @@ config GOLDFISH_TIMER
 	help
 	  Support for the timer/counter of goldfish-rtc
 
+config EP93XX_TIMER
+	bool "Cirrus Logic ep93xx timer driver" if COMPILE_TEST
+	depends on ARCH_EP93XX
+	depends on GENERIC_CLOCKEVENTS
+	depends on HAS_IOMEM
+	select CLKSRC_MMIO
+	select TIMER_OF
+	help
+	  Enables support for the Cirrus Logic timer block
+	  EP93XX.
+
 endmenu
diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
index 64ab547de97b..09c2d4e5d809 100644
--- a/drivers/clocksource/Makefile
+++ b/drivers/clocksource/Makefile
@@ -88,3 +88,4 @@ obj-$(CONFIG_MICROCHIP_PIT64B)		+= timer-microchip-pit64b.o
 obj-$(CONFIG_MSC313E_TIMER)		+= timer-msc313e.o
 obj-$(CONFIG_GOLDFISH_TIMER)		+= timer-goldfish.o
 obj-$(CONFIG_GXP_TIMER)			+= timer-gxp.o
+obj-$(CONFIG_EP93XX_TIMER)		+= timer-ep93xx.o
diff --git a/drivers/clocksource/timer-ep93xx.c b/drivers/clocksource/timer-ep93xx.c
new file mode 100644
index 000000000000..966502169aa0
--- /dev/null
+++ b/drivers/clocksource/timer-ep93xx.c
@@ -0,0 +1,189 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Cirrus Logic EP93xx timer driver.
+ * Copyright (C) 2021 Nikita Shubin <nikita.shubin@maquefel.me>
+ *
+ * Based on a rewrite of arch/arm/mach-ep93xx/timer.c:
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/clocksource.h>
+#include <linux/clockchips.h>
+#include <linux/sched_clock.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/of_irq.h>
+#include <linux/of_address.h>
+#include <linux/io.h>
+#include <asm/mach/time.h>
+
+/*************************************************************************
+ * Timer handling for EP93xx
+ *************************************************************************
+ * The ep93xx has four internal timers.  Timers 1, 2 (both 16 bit) and
+ * 3 (32 bit) count down at 508 kHz, are self-reloading, and can generate
+ * an interrupt on underflow.  Timer 4 (40 bit) counts down at 983.04 kHz,
+ * is free-running, and can't generate interrupts.
+ *
+ * The 508 kHz timers are ideal for use for the timer interrupt, as the
+ * most common values of HZ divide 508 kHz nicely.  We pick the 32 bit
+ * timer (timer 3) to get as long sleep intervals as possible when using
+ * CONFIG_NO_HZ.
+ *
+ * The higher clock rate of timer 4 makes it a better choice than the
+ * other timers for use as clock source and for sched_clock(), providing
+ * a stable 40 bit time base.
+ *************************************************************************
+ */
+
+#define EP93XX_TIMER1_LOAD		0x00
+#define EP93XX_TIMER1_VALUE		0x04
+#define EP93XX_TIMER1_CONTROL		0x08
+#define EP93XX_TIMER123_CONTROL_ENABLE	BIT(7)
+#define EP93XX_TIMER123_CONTROL_MODE	BIT(6)
+#define EP93XX_TIMER123_CONTROL_CLKSEL	BIT(3)
+#define EP93XX_TIMER1_CLEAR		0x0c
+#define EP93XX_TIMER2_LOAD		0x20
+#define EP93XX_TIMER2_VALUE		0x24
+#define EP93XX_TIMER2_CONTROL		0x28
+#define EP93XX_TIMER2_CLEAR		0x2c
+/* This read-only register contains the low word of the time stamp debug timer
+ * ( Timer4). When this register is read, the high byte of the Timer4 counter is
+ * saved in the Timer4ValueHigh register.
+ */
+#define EP93XX_TIMER4_VALUE_LOW		0x60
+#define EP93XX_TIMER4_VALUE_HIGH	0x64
+#define EP93XX_TIMER4_VALUE_HIGH_ENABLE	BIT(8)
+#define EP93XX_TIMER3_LOAD		0x80
+#define EP93XX_TIMER3_VALUE		0x84
+#define EP93XX_TIMER3_CONTROL		0x88
+#define EP93XX_TIMER3_CLEAR		0x8c
+
+#define EP93XX_TIMER123_RATE		508469
+#define EP93XX_TIMER4_RATE		983040
+
+struct ep93xx_tcu {
+	void __iomem *base;
+};
+
+static struct ep93xx_tcu *ep93xx_tcu;
+
+static u64 ep93xx_clocksource_read(struct clocksource *c)
+{
+	struct ep93xx_tcu *tcu = ep93xx_tcu;
+	u64 ret;
+
+	ret = readl(tcu->base + EP93XX_TIMER4_VALUE_LOW);
+	ret |= ((u64) (readl(tcu->base + EP93XX_TIMER4_VALUE_HIGH) & 0xff) << 32);
+	return (u64) ret;
+}
+
+static u64 notrace ep93xx_read_sched_clock(void)
+{
+	return ep93xx_clocksource_read(NULL);
+}
+
+static int ep93xx_clkevt_set_next_event(unsigned long next,
+					struct clock_event_device *evt)
+{
+	struct ep93xx_tcu *tcu = ep93xx_tcu;
+	/* Default mode: periodic, off, 508 kHz */
+	u32 tmode = EP93XX_TIMER123_CONTROL_MODE |
+	EP93XX_TIMER123_CONTROL_CLKSEL;
+
+	/* Clear timer */
+	writel(tmode, tcu->base + EP93XX_TIMER3_CONTROL);
+
+	/* Set next event */
+	writel(next, tcu->base + EP93XX_TIMER3_LOAD);
+	writel(tmode | EP93XX_TIMER123_CONTROL_ENABLE,
+	       tcu->base + EP93XX_TIMER3_CONTROL);
+	return 0;
+}
+
+static int ep93xx_clkevt_shutdown(struct clock_event_device *evt)
+{
+	struct ep93xx_tcu *tcu = ep93xx_tcu;
+	/* Disable timer */
+	writel(0, tcu->base + EP93XX_TIMER3_CONTROL);
+
+	return 0;
+}
+
+static struct clock_event_device ep93xx_clockevent = {
+	.name			= "timer1",
+	.features		= CLOCK_EVT_FEAT_ONESHOT,
+	.set_state_shutdown	= ep93xx_clkevt_shutdown,
+	.set_state_oneshot	= ep93xx_clkevt_shutdown,
+	.tick_resume		= ep93xx_clkevt_shutdown,
+	.set_next_event		= ep93xx_clkevt_set_next_event,
+	.rating			= 300,
+};
+
+static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id)
+{
+	struct ep93xx_tcu *tcu = ep93xx_tcu;
+	struct clock_event_device *evt = dev_id;
+
+	/* Writing any value clears the timer interrupt */
+	writel(1, tcu->base + EP93XX_TIMER3_CLEAR);
+
+	evt->event_handler(evt);
+
+	return IRQ_HANDLED;
+}
+
+static int __init ep93xx_timer_of_init(struct device_node *np)
+{
+	int irq;
+	unsigned long flags = IRQF_TIMER | IRQF_IRQPOLL;
+	struct ep93xx_tcu *tcu;
+	int ret;
+
+	tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
+	if (!tcu)
+		return -ENOMEM;
+
+	tcu->base = of_iomap(np, 0);
+	if (!tcu->base) {
+		pr_err("Can't remap registers\n");
+		ret = -ENXIO;
+		goto out_free;
+	}
+
+	ep93xx_tcu = tcu;
+
+	irq = irq_of_parse_and_map(np, 0);
+	if (irq <= 0) {
+		pr_err("ERROR: invalid interrupt number\n");
+		ret = -EINVAL;
+		goto out_free;
+	}
+
+	/* Enable and register clocksource and sched_clock on timer 4 */
+	writel(EP93XX_TIMER4_VALUE_HIGH_ENABLE,
+	       tcu->base + EP93XX_TIMER4_VALUE_HIGH);
+	clocksource_mmio_init(NULL, "timer4",
+				EP93XX_TIMER4_RATE, 200, 40,
+				ep93xx_clocksource_read);
+	sched_clock_register(ep93xx_read_sched_clock, 40,
+			     EP93XX_TIMER4_RATE);
+
+	/* Set up clockevent on timer 3 */
+	if (request_irq(irq, ep93xx_timer_interrupt, flags, "ep93xx timer",
+		&ep93xx_clockevent))
+		pr_err("Failed to request irq %d (ep93xx timer)\n", irq);
+	clockevents_config_and_register(&ep93xx_clockevent,
+				EP93XX_TIMER123_RATE,
+				1,
+				0xffffffffU);
+
+	return 0;
+
+out_free:
+	kfree(tcu);
+	return ret;
+}
+
+TIMER_OF_DECLARE(ep93xx_timer, "cirrus,ep9301-timer", ep93xx_timer_of_init);
-- 
2.37.4


  parent reply	other threads:[~2023-06-01  5:38 UTC|newest]

Thread overview: 243+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
     [not found]   ` <20230424152933.48b2ede1@kernel.org>
2023-04-25  9:20     ` Krzysztof Kozlowski
2023-04-25 13:27       ` Arnd Bergmann
2023-04-24 12:34 ` [PATCH 01/43] gpio: ep93xx: split device in multiple Nikita Shubin
2023-04-24 12:34 ` [PATCH 02/43] soc: Add SoC driver for Cirrus ep93xx Nikita Shubin
2023-04-24 11:34   ` Alexander Sverdlin
2023-04-24 12:34 ` [PATCH 03/43] dt-bindings: pinctrl: Add DT bindings ep93xx pinctrl Nikita Shubin
2023-04-24 13:28   ` Rob Herring
2023-04-25  9:24   ` Krzysztof Kozlowski
2023-04-24 12:34 ` [PATCH 04/43] pinctrl: add a Cirrus ep93xx SoC pin controller Nikita Shubin
2023-04-24 12:34 ` [PATCH 05/43] dt-bindings: timers: add DT bindings for Cirrus EP93xx Nikita Shubin
2023-04-25  9:26   ` Krzysztof Kozlowski
2023-04-25  9:29   ` Krzysztof Kozlowski
2023-04-28 14:34     ` Nikita Shubin
2023-04-28 12:18       ` Krzysztof Kozlowski
2023-04-24 12:34 ` [PATCH 06/43] clocksource: ep93xx: Add driver for Cirrus Logic EP93xx Nikita Shubin
2023-04-24 11:34   ` Alexander Sverdlin
2023-04-24 11:58   ` Christophe JAILLET
2023-04-26 20:40   ` Linus Walleij
2023-04-24 12:34 ` [PATCH 07/43] dt-bindings: rtc: add DT bindings for Cirrus EP93xx Nikita Shubin
2023-04-24 10:08   ` Alexandre Belloni
2023-04-25  9:28   ` Krzysztof Kozlowski
2023-04-28 14:35     ` Nikita Shubin
2023-04-28 12:21       ` Krzysztof Kozlowski
2023-04-24 12:34 ` [PATCH 08/43] rtc: ep93xx: add DT support " Nikita Shubin
2023-04-24 15:56   ` Rob Herring
2023-04-24 12:34 ` [PATCH 09/43] dt-bindings: watchdog: add DT bindings for Cirrus EP93x Nikita Shubin
2023-04-24 14:16   ` Guenter Roeck
2023-04-24 14:18     ` Guenter Roeck
2023-04-24 15:59       ` Rob Herring
2023-04-25  9:31   ` Krzysztof Kozlowski
2023-04-28 14:33     ` Nikita Shubin
2023-04-28 12:20       ` Krzysztof Kozlowski
2023-04-28 17:42         ` Nikita Shubin
2023-04-30 11:30           ` Krzysztof Kozlowski
2023-04-24 12:34 ` [PATCH 10/43] watchdog: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 11/43] dt-bindings: clock: add DT bindings " Nikita Shubin
2023-04-24 13:28   ` Rob Herring
2023-04-28 23:15   ` Stephen Boyd
2023-04-24 12:34 ` [PATCH 12/43] clk: ep93xx: add DT support " Nikita Shubin
2023-04-24 12:01   ` Christophe JAILLET
2023-04-24 17:17   ` kernel test robot
2023-04-29  0:58   ` Stephen Boyd
2023-05-15 13:31     ` Nikita Shubin
2023-06-13 20:44       ` Stephen Boyd
2023-04-24 12:34 ` [PATCH 13/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
2023-04-29 20:06   ` Sebastian Reichel
2023-04-24 12:34 ` [PATCH 14/43] dt-bindings: pwm: Add DT bindings ep93xx PWM Nikita Shubin
2023-04-24 16:02   ` Rob Herring
2023-04-24 12:34 ` [PATCH 15/43] pwm: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 16/43] dt-bindings: spi: Add DT bindings ep93xx spi Nikita Shubin
2023-04-24 15:54   ` Mark Brown
2023-04-24 16:08   ` Rob Herring
2023-04-24 12:34 ` [PATCH 17/43] spi: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 11:34   ` Alexander Sverdlin
2023-04-26 20:42   ` Linus Walleij
2023-04-24 12:34 ` [PATCH 18/43] dt-bindings: net: Add DT bindings ep93xx eth Nikita Shubin
2023-04-24 16:11   ` Rob Herring
     [not found]   ` <7f05ecdc-cbbd-40b0-9a40-229e18aec721@lunn.ch>
2023-05-15 13:42     ` Nikita Shubin
2023-04-24 12:34 ` [PATCH 19/43] net: cirrus: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 20/43] dt-bindings: dma: Add DT bindings ep93xx dma Nikita Shubin
2023-04-24 16:15   ` Rob Herring
2023-04-24 12:34 ` [PATCH 21/43] dma: cirrus: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 22/43] dt-bindings: mtd: add DT bindings for ts7250 nand Nikita Shubin
2023-04-24 16:17   ` Rob Herring
2023-05-02  9:48   ` Miquel Raynal
2023-05-15 15:48     ` Nikita Shubin
2023-05-22 14:18       ` Miquel Raynal
2023-04-24 12:34 ` [PATCH 23/43] mtd: ts72xx_nand: add platform helper Nikita Shubin
2023-04-24 12:34 ` [PATCH 24/43] dt-bindings: ata: Add DT bindings ep93xx pata Nikita Shubin
2023-04-24 13:16   ` Damien Le Moal
2023-04-24 12:34 ` [PATCH 25/43] pata: cirrus: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 26/43] dt-bindings: input: Add DT bindings ep93xx keypad Nikita Shubin
2023-04-24 16:21   ` Rob Herring
2023-04-24 12:34 ` [PATCH 27/43] input: keypad: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-04-24 14:45   ` Andy Shevchenko
2023-04-24 12:34 ` [PATCH 28/43] dt-bindings: rtc: Add DT binding m48t86 rtc Nikita Shubin
2023-04-24 16:25   ` Rob Herring
2023-04-24 16:40     ` Alexandre Belloni
2023-04-24 12:34 ` [PATCH 29/43] rtc: m48t86: add DT support for m48t86 Nikita Shubin
2023-04-24  9:47   ` Arnd Bergmann
     [not found]   ` <ZEkozMAM674O2r7e@surfacebook>
2023-04-28 14:31     ` Nikita Shubin
2023-04-24 12:34 ` [PATCH 30/43] dt-bindings: wdt: Add DT binding ts72xx wdt Nikita Shubin
2023-04-24 16:26   ` Rob Herring
2023-04-24 12:34 ` [PATCH 31/43] wdt: ts72xx: add DT support for ts72xx Nikita Shubin
2023-04-24 12:34 ` [PATCH 32/43] dt-bindings: gpio: Add DT bindings ep93xx gpio Nikita Shubin
2023-04-24 16:32   ` Rob Herring
2023-04-26 20:48     ` Linus Walleij
2023-04-28 14:44       ` Nikita Shubin
2023-04-24 12:34 ` [PATCH 33/43] gpio: ep93xx: add DT support for gpio-ep93xx Nikita Shubin
2023-06-16  9:18   ` Bartosz Golaszewski
2023-06-16 12:37     ` Nikita Shubin
2023-04-24 12:34 ` [PATCH 34/43] ARM: dts: add device tree for ep93xx Soc Nikita Shubin
2023-04-24 11:28   ` Arnd Bergmann
2023-04-28 15:13     ` Nikita Shubin
2023-04-28 21:56     ` Kris Bahnsen
2023-04-24 12:34 ` [PATCH 35/43] ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms Nikita Shubin
2023-04-24 12:34 ` [PATCH 36/43] pwm: ep93xx: drop legacy pinctrl Nikita Shubin
2023-05-15 14:32   ` Uwe Kleine-König
2023-05-16 10:43     ` Nikita Shubin
2023-05-17  6:13       ` Uwe Kleine-König
2023-05-17  9:29         ` Nikita Shubin
2023-04-24 12:34 ` [PATCH 37/43] input: keypad: " Nikita Shubin
2023-04-24 12:34 ` [PATCH 38/43] ARM: ep93xx: soc: drop defines Nikita Shubin
2023-04-24 12:34 ` [PATCH 39/43] ARM: ep93xx: delete all boardfiles Nikita Shubin
2023-04-24 12:34 ` [PATCH 40/43] ARM: dts: ep93xx: Add ADC node Nikita Shubin
2023-04-24 12:34 ` [PATCH 41/43] ARM: dts: ep93xx: Add I2S and AC97 nodes Nikita Shubin
2023-04-24 12:34 ` [PATCH 42/43] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin
2023-04-24 12:34 ` [PATCH 43/43] ASoC: cirrus: edb93xx: Delete driver Nikita Shubin
2023-04-26 20:56 ` [PATCH 00/43] ep93xx device tree conversion Linus Walleij
     [not found]   ` <b5396ef5-3fed-4e98-8f37-a9cd4473bddc@sirena.org.uk>
2023-04-26 21:06     ` Linus Walleij
2023-05-16  3:47 ` Florian Fainelli
2023-05-16 10:37   ` Nikita Shubin
2023-06-01  5:33 ` [PATCH v1 01/43] gpio: ep93xx: split device in multiple Nikita Shubin
2023-06-02  1:50   ` andy.shevchenko
2023-06-15 16:56     ` Nikita Shubin
2023-06-01  5:33 ` [PATCH v1 02/43] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin
2023-06-01  6:37   ` Krzysztof Kozlowski
2023-06-01  7:04     ` Nikita Shubin
2023-06-01  5:33 ` [PATCH v1 03/43] soc: Add SoC driver for Cirrus ep93xx Nikita Shubin
2023-06-01  5:53   ` Paul Menzel
2023-06-01  6:23     ` Nikita Shubin
2023-06-03 18:35   ` andy.shevchenko
2023-06-01  5:33 ` [PATCH v1 04/43] dt-bindings: clock: Add Cirrus EP93xx Nikita Shubin
2023-06-01  6:39   ` Krzysztof Kozlowski
2023-06-01  6:40   ` Krzysztof Kozlowski
2023-06-01  5:33 ` [PATCH v1 05/43] clk: ep93xx: add DT support for " Nikita Shubin
2023-06-03 18:58   ` andy.shevchenko
2023-06-20 12:37     ` Nikita Shubin
2023-06-01  5:33 ` [PATCH v1 06/43] dt-bindings: pinctrl: Add " Nikita Shubin
2023-06-01  6:42   ` Krzysztof Kozlowski
2023-06-01  5:33 ` [PATCH v1 07/43] pinctrl: add a Cirrus ep93xx SoC pin controller Nikita Shubin
2023-06-03 19:58   ` andy.shevchenko
2023-06-01  5:33 ` [PATCH v1 08/43] dt-bindings: timers: Add Cirrus EP93xx Nikita Shubin
2023-06-01  6:43   ` Krzysztof Kozlowski
2023-06-01  6:44   ` Krzysztof Kozlowski
2023-06-01  5:34 ` Nikita Shubin [this message]
2023-06-03 20:06   ` [PATCH v1 09/43] clocksource: ep93xx: Add driver for Cirrus Logic EP93xx andy.shevchenko
2023-06-04 17:19     ` Arnd Bergmann
2023-06-04 19:24       ` Andy Shevchenko
2023-06-04 19:33         ` Arnd Bergmann
2023-06-05 13:45           ` Andy Shevchenko
2023-06-21 11:22     ` Nikita Shubin
2023-06-21  8:28       ` Andy Shevchenko
2023-06-29 16:10         ` Nikita Shubin
2023-06-29 13:39           ` Andy Shevchenko
2023-06-29 17:16             ` Nikita Shubin
2023-06-29 19:21               ` Andy Shevchenko
2023-06-04 15:49   ` Alexander Sverdlin
2023-06-01  5:34 ` [PATCH v1 10/43] dt-bindings: rtc: Add Cirrus EP93xx Nikita Shubin
2023-06-01  5:34 ` [PATCH v1 11/43] rtc: ep93xx: add DT support for " Nikita Shubin
2023-06-03 20:13   ` andy.shevchenko
2023-06-01  5:34 ` [PATCH v1 12/43] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin
2023-06-01  5:34 ` [PATCH v1 13/43] watchdog: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-06-03 20:14   ` andy.shevchenko
2023-06-01  5:34 ` [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
2023-06-03 20:24   ` andy.shevchenko
2023-06-01  5:34 ` [PATCH v1 15/43] dt-bindings: pwm: Add Cirrus EP93xx Nikita Shubin
2023-06-01  5:34 ` [PATCH v1 16/43] pwm: ep93xx: add DT support for " Nikita Shubin
2023-06-01  7:01   ` Uwe Kleine-König
2023-06-01 10:12     ` Nikita Shubin
2023-06-03 20:12   ` andy.shevchenko
2023-06-01  5:34 ` [PATCH v1 17/43] dt-bindings: spi: Add " Nikita Shubin
2023-06-01  8:16   ` Krzysztof Kozlowski
2023-06-01 11:17   ` Mark Brown
2023-06-01 12:41     ` Nikita Shubin
2023-06-01 12:55       ` Mark Brown
2023-06-01 13:15         ` Nikita Shubin
2023-06-01  5:34 ` [PATCH v1 18/43] spi: ep93xx: add DT support for " Nikita Shubin
2023-06-03 20:27   ` andy.shevchenko
2023-06-01  5:45 ` [PATCH v1 19/43] dt-bindings: net: Add " Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 20/43] net: cirrus: add DT support for " Nikita Shubin
2023-06-02  7:27   ` Linus Walleij
2023-06-02 12:09   ` Andrew Lunn
2023-06-03 20:30   ` andy.shevchenko
2023-06-04 15:51   ` Alexander Sverdlin
2023-06-01  5:45 ` [PATCH v1 21/43] dt-bindings: dma: Add " Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 22/43] dma: cirrus: add DT support for " Nikita Shubin
2023-06-03 20:39   ` andy.shevchenko
2023-06-01  5:45 ` [PATCH v1 23/43] dt-bindings: mtd: Add ts7250 nand-controller Nikita Shubin
2023-06-01  7:45   ` Miquel Raynal
2023-06-01  8:11   ` Krzysztof Kozlowski
2023-06-01  5:45 ` [PATCH v1 24/43] mtd: nand: add support for ts72xx Nikita Shubin
2023-06-01  7:49   ` Miquel Raynal
2023-06-03 20:20   ` andy.shevchenko
2023-06-05  8:22     ` Miquel Raynal
2023-06-01  5:45 ` [PATCH v1 25/43] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin
2023-06-01 23:57   ` Damien Le Moal
2023-06-04 19:24     ` Nikita Shubin
2023-06-14 19:00     ` Rob Herring
2023-06-15  0:49       ` Damien Le Moal
2023-06-01  5:45 ` [PATCH v1 26/43] pata: cirrus: add DT support for " Nikita Shubin
2023-06-01 23:47   ` Damien Le Moal
2023-06-02  1:54   ` andy.shevchenko
2023-06-02 20:03   ` Sergey Shtylyov
2023-06-04 19:29     ` Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 27/43] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin
2023-06-01  8:24   ` Rob Herring
2023-06-08 15:01   ` Rob Herring
2023-06-01  5:45 ` [PATCH v1 28/43] input: keypad: ep93xx: add DT support for Cirrus EP93xx Nikita Shubin
2023-06-01 15:20   ` kernel test robot
2023-06-01 15:31   ` kernel test robot
2023-06-01 16:54   ` Andy Shevchenko
2023-06-04 19:14     ` Nikita Shubin
2023-06-05 11:26       ` Andy Shevchenko
2023-06-06 18:57   ` Dmitry Torokhov
2023-06-01  5:45 ` [PATCH v1 29/43] dt-bindings: rtc: Add ST M48T86 Nikita Shubin
2023-06-01  8:18   ` Krzysztof Kozlowski
2023-06-20  7:30     ` Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 30/43] rtc: m48t86: add DT support for m48t86 Nikita Shubin
2023-06-02  7:28   ` Linus Walleij
2023-06-03 20:10   ` andy.shevchenko
2023-06-01  5:45 ` [PATCH v1 31/43] dt-bindings: wdt: Add ts72xx Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 32/43] wdt: ts72xx: add DT support for ts72xx Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 33/43] dt-bindings: gpio: Add Cirrus EP93xx Nikita Shubin
2023-06-01  8:20   ` Krzysztof Kozlowski
2023-06-02  7:40     ` Linus Walleij
2023-06-13 14:55       ` Bartosz Golaszewski
2023-06-13 18:09         ` Linus Walleij
2023-06-16  9:15   ` Bartosz Golaszewski
2023-06-01  5:45 ` [PATCH v1 34/43] gpio: ep93xx: add DT support for gpio-ep93xx Nikita Shubin
2023-06-02  7:30   ` Linus Walleij
2023-06-03 20:07   ` andy.shevchenko
2023-06-01  5:45 ` [PATCH v1 35/43] ARM: dts: add device tree for ep93xx Soc Nikita Shubin
2023-06-01  8:30   ` Krzysztof Kozlowski
2023-07-05 16:06     ` Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 36/43] ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 37/43] pwm: ep93xx: drop legacy pinctrl Nikita Shubin
2023-06-07  8:05   ` Uwe Kleine-König
2023-06-01  5:45 ` [PATCH v1 38/43] pata: cirrus: " Nikita Shubin
2023-06-01 23:50   ` Damien Le Moal
2023-06-02  1:52   ` andy.shevchenko
2023-06-02  5:04     ` Damien Le Moal
2023-06-02 20:40   ` Sergey Shtylyov
2023-06-01  5:45 ` [PATCH v1 39/43] ARM: ep93xx: delete all boardfiles Nikita Shubin
2023-06-01  5:45 ` [PATCH v1 40/43] ARM: ep93xx: soc: drop defines Nikita Shubin
2023-06-01 14:18   ` kernel test robot
2023-06-01  5:45 ` [PATCH v1 41/43] ARM: dts: ep93xx: Add I2S and AC97 nodes Nikita Shubin
2023-06-01  8:31   ` Krzysztof Kozlowski
2023-06-01  5:45 ` [PATCH v1 42/43] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin
2023-06-01  8:33   ` Krzysztof Kozlowski
2023-06-01  5:45 ` [PATCH v1 43/43] ASoC: cirrus: edb93xx: Delete driver Nikita Shubin

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=20230601053546.9574-10-nikita.shubin@maquefel.me \
    --to=nikita.shubin@maquefel.me \
    --cc=alexander.sverdlin@gmail.com \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=kris@embeddedTS.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpeters@embeddedTS.com \
    --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: link
Be 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).