* Re: [PATCH 00/43] ep93xx device tree conversion
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-24 12:34 ` [PATCH 13/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Arnd Bergmann @ 2023-04-24 11:31 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
David S . Miller, Jonathan Neuschäfer, Russell King,
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Bartosz Golaszewski,
Brian Norris, Chuanhong Guo, Conor.Dooley, Damien Le Moal,
Daniel Lezcano, Dmitry Torokhov, Emil Renner Berthing,
Eric Dumazet, Florian Fainelli, Guenter Roeck, Hartley Sweeten,
Heiko Stübner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Damien Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, open list:GPIO SUBSYSTEM, linux-ide,
linux-input, linux-kernel, linux-mtd, linux-pm, linux-pwm,
linux-rtc, linux-spi, linux-watchdog, Netdev, soc
On Mon, Apr 24, 2023, at 14:34, Nikita Shubin wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
>
> Thank you Linus and Arnd for your support, review and comments, sorry
> if i missed something -
> these series are quite big for me.
>
> Big thanks to Alexander Sverdlin for his testing, support, review,
> fixes and patches.
Thanks a lot for your continued work. I can't merge any of this at
the moment since the upstream merge window just opened, but I'm
happy to take this all through the soc tree for 6.5, provided we
get the sufficient Acks from the subsystem maintainers. Merging
it through each individual tree would take a lot longer, so I
hope we can avoid that.
Arnd
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 00/43] ep93xx device tree conversion
@ 2023-04-24 12:34 Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Nikita Shubin @ 2023-04-24 12:34 UTC (permalink / raw)
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Florian Fainelli,
Guenter Roeck, Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa,
Jakub Kicinski, Jaroslav Kysela, Jean Delvare, Joel Stanley,
Jonathan Cameron, Krzysztof Kozlowski, Le Moal, Liam Girdwood,
Liang Yang, Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, linux-gpio, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, netdev, soc
This series aims to convert ep93xx from platform to full device tree support.
Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
Thank you Linus and Arnd for your support, review and comments, sorry if i missed something -
these series are quite big for me.
Big thanks to Alexander Sverdlin for his testing, support, review, fixes and patches.
Alexander Sverdlin (4):
ARM: dts: ep93xx: Add ADC node
ARM: dts: ep93xx: Add I2S and AC97 nodes
ARM: dts: ep93xx: Add EDB9302 DT
ASoC: cirrus: edb93xx: Delete driver
Nikita Shubin (39):
gpio: ep93xx: split device in multiple
soc: Add SoC driver for Cirrus ep93xx
dt-bindings: pinctrl: Add DT bindings ep93xx pinctrl
pinctrl: add a Cirrus ep93xx SoC pin controller
dt-bindings: timers: add DT bindings for Cirrus EP93xx
clocksource: ep93xx: Add driver for Cirrus Logic EP93xx
dt-bindings: rtc: add DT bindings for Cirrus EP93xx
rtc: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: watchdog: add DT bindings for Cirrus EP93x
watchdog: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: clock: add DT bindings for Cirrus EP93xx
clk: ep93xx: add DT support for Cirrus EP93xx
power: reset: Add a driver for the ep93xx reset
dt-bindings: pwm: Add DT bindings ep93xx PWM
pwm: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: spi: Add DT bindings ep93xx spi
spi: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: net: Add DT bindings ep93xx eth
net: cirrus: add DT support for Cirrus EP93xx
dt-bindings: dma: Add DT bindings ep93xx dma
dma: cirrus: add DT support for Cirrus EP93xx
dt-bindings: mtd: add DT bindings for ts7250 nand
mtd: ts72xx_nand: add platform helper
dt-bindings: ata: Add DT bindings ep93xx pata
pata: cirrus: add DT support for Cirrus EP93xx
dt-bindings: input: Add DT bindings ep93xx keypad
input: keypad: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: rtc: Add DT binding m48t86 rtc
rtc: m48t86: add DT support for m48t86
dt-bindings: wdt: Add DT binding ts72xx wdt
wdt: ts72xx: add DT support for ts72xx
dt-bindings: gpio: Add DT bindings ep93xx gpio
gpio: ep93xx: add DT support for gpio-ep93xx
ARM: dts: add device tree for ep93xx Soc
ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms
pwm: ep93xx: drop legacy pinctrl
input: keypad: ep93xx: drop legacy pinctrl
ARM: ep93xx: soc: drop defines
ARM: ep93xx: delete all boardfiles
.../devicetree/bindings/arm/ep93xx.yaml | 99 +
.../bindings/ata/cirrus,ep93xx-pata.yaml | 40 +
.../bindings/dma/cirrus,ep93xx-dma-m2m.yaml | 66 +
.../bindings/dma/cirrus,ep93xx-dma-m2p.yaml | 102 +
.../devicetree/bindings/gpio/gpio-ep93xx.yaml | 161 ++
.../bindings/input/cirrus,ep93xx-keypad.yaml | 123 ++
.../bindings/mtd/technologic,nand.yaml | 56 +
.../bindings/net/cirrus,ep93xx_eth.yaml | 51 +
.../pinctrl/cirrus,ep93xx-pinctrl.yaml | 66 +
.../bindings/pwm/cirrus,ep93xx-pwm.yaml | 45 +
.../bindings/rtc/cirrus,ep93xx-rtc.yaml | 32 +
.../bindings/rtc/dallas,rtc-m48t86.yaml | 33 +
.../devicetree/bindings/spi/spi-ep93xx.yaml | 68 +
.../bindings/timer/cirrus,ep93xx-timer.yaml | 41 +
.../bindings/watchdog/cirrus,ep93xx-wdt.yaml | 38 +
.../watchdog/technologic,ts72xx-wdt.yaml | 39 +
arch/arm/Makefile | 1 -
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/ep93xx-bk3.dts | 96 +
arch/arm/boot/dts/ep93xx-edb9302.dts | 150 ++
arch/arm/boot/dts/ep93xx-ts7250.dts | 113 ++
arch/arm/boot/dts/ep93xx.dtsi | 466 +++++
arch/arm/mach-ep93xx/Kconfig | 20 +-
arch/arm/mach-ep93xx/Makefile | 11 -
arch/arm/mach-ep93xx/core.c | 1017 ----------
arch/arm/mach-ep93xx/dma.c | 114 --
arch/arm/mach-ep93xx/edb93xx.c | 344 ----
arch/arm/mach-ep93xx/ep93xx-regs.h | 38 -
arch/arm/mach-ep93xx/gpio-ep93xx.h | 111 --
arch/arm/mach-ep93xx/hardware.h | 25 -
arch/arm/mach-ep93xx/irqs.h | 76 -
arch/arm/mach-ep93xx/platform.h | 42 -
arch/arm/mach-ep93xx/soc.h | 212 --
arch/arm/mach-ep93xx/ts72xx.c | 422 ----
arch/arm/mach-ep93xx/ts72xx.h | 94 -
arch/arm/mach-ep93xx/vision_ep9307.c | 311 ---
drivers/ata/pata_ep93xx.c | 9 +
drivers/clk/Kconfig | 8 +
drivers/clk/Makefile | 1 +
.../clock.c => drivers/clk/clk-ep93xx.c | 491 +++--
drivers/clocksource/Kconfig | 11 +
drivers/clocksource/Makefile | 1 +
.../clocksource}/timer-ep93xx.c | 143 +-
drivers/dma/ep93xx_dma.c | 119 +-
drivers/gpio/gpio-ep93xx.c | 329 ++--
drivers/input/keyboard/ep93xx_keypad.c | 25 +-
drivers/mtd/nand/raw/Kconfig | 8 +
drivers/mtd/nand/raw/Makefile | 1 +
drivers/mtd/nand/raw/ts72xx_nand.c | 94 +
drivers/net/ethernet/cirrus/ep93xx_eth.c | 49 +-
drivers/pinctrl/Kconfig | 7 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-ep93xx.c | 1698 +++++++++++++++++
drivers/power/reset/Kconfig | 10 +
drivers/power/reset/Makefile | 1 +
drivers/power/reset/ep93xx-restart.c | 65 +
drivers/pwm/pwm-ep93xx.c | 24 +-
drivers/rtc/rtc-ep93xx.c | 8 +
drivers/rtc/rtc-m48t86.c | 10 +
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/cirrus/Kconfig | 11 +
drivers/soc/cirrus/Makefile | 2 +
drivers/soc/cirrus/soc-ep93xx.c | 134 ++
drivers/spi/spi-ep93xx.c | 31 +-
drivers/watchdog/ep93xx_wdt.c | 8 +
drivers/watchdog/ts72xx_wdt.c | 8 +
.../dt-bindings/clock/cirrus,ep93xx-clock.h | 53 +
include/linux/platform_data/dma-ep93xx.h | 3 +
include/linux/soc/cirrus/ep93xx.h | 28 +-
sound/soc/cirrus/Kconfig | 9 -
sound/soc/cirrus/Makefile | 4 -
sound/soc/cirrus/edb93xx.c | 119 --
73 files changed, 4796 insertions(+), 3453 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/ep93xx.yaml
create mode 100644 Documentation/devicetree/bindings/ata/cirrus,ep93xx-pata.yaml
create mode 100644 Documentation/devicetree/bindings/dma/cirrus,ep93xx-dma-m2m.yaml
create mode 100644 Documentation/devicetree/bindings/dma/cirrus,ep93xx-dma-m2p.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-ep93xx.yaml
create mode 100644 Documentation/devicetree/bindings/input/cirrus,ep93xx-keypad.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/technologic,nand.yaml
create mode 100644 Documentation/devicetree/bindings/net/cirrus,ep93xx_eth.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/cirrus,ep93xx-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/cirrus,ep93xx-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/cirrus,ep93xx-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/dallas,rtc-m48t86.yaml
create mode 100644 Documentation/devicetree/bindings/spi/spi-ep93xx.yaml
create mode 100644 Documentation/devicetree/bindings/timer/cirrus,ep93xx-timer.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/cirrus,ep93xx-wdt.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/technologic,ts72xx-wdt.yaml
create mode 100644 arch/arm/boot/dts/ep93xx-bk3.dts
create mode 100644 arch/arm/boot/dts/ep93xx-edb9302.dts
create mode 100644 arch/arm/boot/dts/ep93xx-ts7250.dts
create mode 100644 arch/arm/boot/dts/ep93xx.dtsi
delete mode 100644 arch/arm/mach-ep93xx/Makefile
delete mode 100644 arch/arm/mach-ep93xx/core.c
delete mode 100644 arch/arm/mach-ep93xx/dma.c
delete mode 100644 arch/arm/mach-ep93xx/edb93xx.c
delete mode 100644 arch/arm/mach-ep93xx/ep93xx-regs.h
delete mode 100644 arch/arm/mach-ep93xx/gpio-ep93xx.h
delete mode 100644 arch/arm/mach-ep93xx/hardware.h
delete mode 100644 arch/arm/mach-ep93xx/irqs.h
delete mode 100644 arch/arm/mach-ep93xx/platform.h
delete mode 100644 arch/arm/mach-ep93xx/soc.h
delete mode 100644 arch/arm/mach-ep93xx/ts72xx.c
delete mode 100644 arch/arm/mach-ep93xx/ts72xx.h
delete mode 100644 arch/arm/mach-ep93xx/vision_ep9307.c
rename arch/arm/mach-ep93xx/clock.c => drivers/clk/clk-ep93xx.c (60%)
rename {arch/arm/mach-ep93xx => drivers/clocksource}/timer-ep93xx.c (51%)
create mode 100644 drivers/mtd/nand/raw/ts72xx_nand.c
create mode 100644 drivers/pinctrl/pinctrl-ep93xx.c
create mode 100644 drivers/power/reset/ep93xx-restart.c
create mode 100644 drivers/soc/cirrus/Kconfig
create mode 100644 drivers/soc/cirrus/Makefile
create mode 100644 drivers/soc/cirrus/soc-ep93xx.c
create mode 100644 include/dt-bindings/clock/cirrus,ep93xx-clock.h
delete mode 100644 sound/soc/cirrus/edb93xx.c
--
2.39.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 13/43] power: reset: Add a driver for the ep93xx reset
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
@ 2023-04-24 12:34 ` Nikita Shubin
2023-04-29 20:06 ` Sebastian Reichel
2023-04-26 20:56 ` [PATCH 00/43] ep93xx device tree conversion Linus Walleij
` (2 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Nikita Shubin @ 2023-04-24 12:34 UTC (permalink / raw)
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
Sebastian Reichel, linux-kernel, linux-pm
Implement the reset behaviour of the various EP93xx SoCS in drivers/power/reset.
It used to be located in arch/arm/mach-ep93xx.
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
drivers/power/reset/Kconfig | 10 +++++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/ep93xx-restart.c | 65 ++++++++++++++++++++++++++++
3 files changed, 76 insertions(+)
create mode 100644 drivers/power/reset/ep93xx-restart.c
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 8c87eeda0fec..2a61afbb047b 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -75,6 +75,16 @@ config POWER_RESET_BRCMSTB
Say Y here if you have a Broadcom STB board and you wish
to have restart support.
+config POWER_RESET_EP93XX
+ bool "Cirrus EP93XX reset driver" if COMPILE_TEST
+ depends on MFD_SYSCON
+ default ARCH_EP93XX
+ help
+ This driver provides restart support for Cirrus EP93XX SoC.
+
+ Say Y here if you have a Cirrus EP93XX SoC and you wish
+ to have restart support.
+
config POWER_RESET_GEMINI_POWEROFF
bool "Cortina Gemini power-off driver"
depends on ARCH_GEMINI || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index d763e6735ee3..61f4e11619b2 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -7,6 +7,7 @@ obj-$(CONFIG_POWER_RESET_ATC260X) += atc260x-poweroff.o
obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o
obj-$(CONFIG_POWER_RESET_BRCMKONA) += brcm-kona-reset.o
obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o
+obj-$(CONFIG_POWER_RESET_EP93XX) += ep93xx-restart.o
obj-$(CONFIG_POWER_RESET_GEMINI_POWEROFF) += gemini-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
diff --git a/drivers/power/reset/ep93xx-restart.c b/drivers/power/reset/ep93xx-restart.c
new file mode 100644
index 000000000000..0dab09d4fd3c
--- /dev/null
+++ b/drivers/power/reset/ep93xx-restart.c
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: (GPL-2.0)
+/*
+ * Cirrus EP93xx SoC reset driver
+ *
+ * Copyright (C) 2021 Nikita Shubin <nikita.shubin@maquefel.me>
+ */
+
+#include <linux/delay.h>
+#include <linux/notifier.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/reboot.h>
+
+#include <linux/soc/cirrus/ep93xx.h>
+
+#define EP93XX_SYSCON_DEVCFG_SWRST BIT(31)
+
+static int ep93xx_restart_handle(struct notifier_block *this,
+ unsigned long mode, void *cmd)
+{
+ /* Issue the reboot */
+ ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_SWRST, 0x00);
+ ep93xx_devcfg_set_clear(0x00, EP93XX_SYSCON_DEVCFG_SWRST);
+
+ mdelay(1000);
+
+ pr_emerg("Unable to restart system\n");
+ return NOTIFY_DONE;
+}
+
+static int ep93xx_reboot_probe(struct platform_device *pdev)
+{
+ struct notifier_block *res_han;
+ struct device *dev = &pdev->dev;
+ int err;
+
+ res_han = devm_kzalloc(&pdev->dev, sizeof(*res_han), GFP_KERNEL);
+ if (!res_han)
+ return -ENOMEM;
+
+ res_han->notifier_call = ep93xx_restart_handle;
+ res_han->priority = 128;
+
+ err = register_restart_handler(res_han);
+ if (err)
+ dev_err(dev, "can't register restart notifier (err=%d)\n", err);
+
+ return err;
+}
+
+static const struct of_device_id ep93xx_reboot_of_match[] = {
+ {
+ .compatible = "cirrus,ep9301-reboot",
+ },
+ {}
+};
+
+static struct platform_driver ep93xx_reboot_driver = {
+ .probe = ep93xx_reboot_probe,
+ .driver = {
+ .name = "ep9301-reboot",
+ .of_match_table = ep93xx_reboot_of_match,
+ },
+};
+builtin_platform_driver(ep93xx_reboot_driver);
--
2.39.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
[not found] ` <20230424152933.48b2ede1@kernel.org>
@ 2023-04-25 9:20 ` Krzysztof Kozlowski
2023-04-25 13:27 ` Arnd Bergmann
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2023-04-25 9:20 UTC (permalink / raw)
To: Jakub Kicinski, Arnd Bergmann
Cc: Nikita Shubin, Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
David S . Miller, Jonathan Neuschäfer, Russell King,
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Bartosz Golaszewski,
Brian Norris, Chuanhong Guo, Conor.Dooley, Damien Le Moal,
Daniel Lezcano, Dmitry Torokhov, Emil Renner Berthing,
Eric Dumazet, Florian Fainelli, Guenter Roeck, Hartley Sweeten,
Heiko Stübner, Hitomi Hasegawa, Jaroslav Kysela,
Jean Delvare, Joel Stanley, Jonathan Cameron, Krzysztof Kozlowski,
Damien Le Moal, Liam Girdwood, Liang Yang, Linus Walleij,
Lukasz Majewski, Lv Ruyi, Mark Brown, Masahiro Yamada,
Michael Turquette, Miquel Raynal, Nathan Chancellor,
Nick Desaulniers, Nicolas Saenz Julienne, Olof Johansson,
Paolo Abeni, Qin Jian, Richard Weinberger, Rob Herring,
Robert Jarzmik, Russell King, Sebastian Reichel, Sergey Shtylyov,
Stephen Boyd, Sumanth Korikkar, Sven Peter, Takashi Iwai,
Thierry Reding, Thomas Gleixner, Ulf Hansson, Vasily Gorbik,
Vignesh Raghavendra, Vinod Koul, Walker Chen, Wim Van Sebroeck,
Yinbo Zhu, alsa-devel, devicetree, dmaengine, linux-arm-kernel,
linux-clk, open list:GPIO SUBSYSTEM, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, Netdev, soc
On 25/04/2023 00:29, Jakub Kicinski wrote:
> On Mon, 24 Apr 2023 13:31:25 +0200 Arnd Bergmann wrote:
>> Thanks a lot for your continued work. I can't merge any of this at
>> the moment since the upstream merge window just opened, but I'm
>> happy to take this all through the soc tree for 6.5, provided we
>> get the sufficient Acks from the subsystem maintainers. Merging
>> it through each individual tree would take a lot longer, so I
>> hope we can avoid that.
>
> Is there a dependency between the patches?
I didn't get entire patchset and cover letter does not mention
dependencies, but usually there shouldn't be such. Maybe for the next
versions this should be split per subsystem?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-25 9:20 ` Krzysztof Kozlowski
@ 2023-04-25 13:27 ` Arnd Bergmann
0 siblings, 0 replies; 12+ messages in thread
From: Arnd Bergmann @ 2023-04-25 13:27 UTC (permalink / raw)
To: Krzysztof Kozlowski, Jakub Kicinski
Cc: Nikita Shubin, Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
David S . Miller, Jonathan Neuschäfer, Russell King,
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Bartosz Golaszewski,
Brian Norris, Chuanhong Guo, Conor.Dooley, Damien Le Moal,
Daniel Lezcano, Dmitry Torokhov, Emil Renner Berthing,
Eric Dumazet, Florian Fainelli, Guenter Roeck, Hartley Sweeten,
Heiko Stübner, Hitomi Hasegawa, Jaroslav Kysela,
Jean Delvare, Joel Stanley, Jonathan Cameron, Krzysztof Kozlowski,
Damien Le Moal, Liam Girdwood, Liang Yang, Linus Walleij,
Lukasz Majewski, Lv Ruyi, Mark Brown, Masahiro Yamada,
Michael Turquette, Miquel Raynal, Nathan Chancellor,
Nick Desaulniers, Nicolas Saenz Julienne, Olof Johansson,
Paolo Abeni, Qin Jian, Richard Weinberger, Rob Herring,
Robert Jarzmik, Russell King, Sebastian Reichel, Sergey Shtylyov,
Stephen Boyd, Sumanth Korikkar, Sven Peter, Takashi Iwai,
Thierry Reding, Thomas Gleixner, Ulf Hansson, Vasily Gorbik,
Vignesh Raghavendra, Vinod Koul, Walker Chen, Wim Van Sebroeck,
Yinbo Zhu, alsa-devel, devicetree, dmaengine, linux-arm-kernel,
linux-clk, open list:GPIO SUBSYSTEM, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, Netdev, soc
On Tue, Apr 25, 2023, at 10:20, Krzysztof Kozlowski wrote:
> On 25/04/2023 00:29, Jakub Kicinski wrote:
>> On Mon, 24 Apr 2023 13:31:25 +0200 Arnd Bergmann wrote:
>>> Thanks a lot for your continued work. I can't merge any of this at
>>> the moment since the upstream merge window just opened, but I'm
>>> happy to take this all through the soc tree for 6.5, provided we
>>> get the sufficient Acks from the subsystem maintainers. Merging
>>> it through each individual tree would take a lot longer, so I
>>> hope we can avoid that.
>>
>> Is there a dependency between the patches?
>
> I didn't get entire patchset and cover letter does not mention
> dependencies, but usually there shouldn't be such. Maybe for the next
> versions this should be split per subsystem?
Clearly the last patch that removes the board files depends on
all the previous patches, but I assume that the other ones
are all independent.
We don't do complete conversions from boardfiles to DT that often
any more, but in the past we tended to do this through a cross-
subsystem branch in the soc tree, which helps do it more quickly
and is less work for Nikita. In this case, I would make it a
separate top-level branch in the soc tree.
If anyone strongly feels that the patches should go through
the subsystem trees here, we'll take the longer path and
do the changes separately, with the boardfile removal
coming a release later.
Arnd
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
2023-04-24 11:31 ` Arnd Bergmann
2023-04-24 12:34 ` [PATCH 13/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
@ 2023-04-26 20:56 ` Linus Walleij
[not found] ` <b5396ef5-3fed-4e98-8f37-a9cd4473bddc@sirena.org.uk>
2023-05-16 3:47 ` Florian Fainelli
2023-06-01 5:34 ` [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
4 siblings, 1 reply; 12+ messages in thread
From: Linus Walleij @ 2023-04-26 20:56 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Florian Fainelli,
Guenter Roeck, Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa,
Jakub Kicinski, Jaroslav Kysela, Jean Delvare, Joel Stanley,
Jonathan Cameron, Krzysztof Kozlowski, Le Moal, Liam Girdwood,
Liang Yang, Lukasz Majewski, Lv Ruyi, Mark Brown, Masahiro Yamada,
Michael Turquette, Miquel Raynal, Nathan Chancellor,
Nick Desaulniers, Nicolas Saenz Julienne, Olof Johansson,
Paolo Abeni, Qin Jian, Richard Weinberger, Rob Herring,
Robert Jarzmik, Russell King, Sebastian Reichel, Sergey Shtylyov,
Stephen Boyd, Sumanth Korikkar, Sven Peter, Takashi Iwai,
Thierry Reding, Thomas Gleixner, Ulf Hansson, Vasily Gorbik,
Vignesh Raghavendra, Vinod Koul, Walker Chen, Wim Van Sebroeck,
Yinbo Zhu, alsa-devel, devicetree, dmaengine, linux-arm-kernel,
linux-clk, linux-gpio, linux-ide, linux-input, linux-kernel,
linux-mtd, linux-pm, linux-pwm, linux-rtc, linux-spi,
linux-watchdog, netdev, soc
On Mon, Apr 24, 2023 at 11:35 AM Nikita Shubin
<nikita.shubin@maquefel.me> wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
Neat, I'd say let's merge this for 6.5 once the final rough edges are
off. The DT bindings should be easy to fix.
This is a big patch set and the improvement to the ARM kernel it
brings is great, so I am a bit worried about over-review stalling the
merged. If there start to be nitpicky comments I would prefer that
we merge it and let minor comments and "nice-to-haves" be
addressed in-tree during the development cycle.
I encourage you to use b4 to manage the patch series if you
have time to learn it, it could help you:
https://people.kernel.org/monsieuricon/sending-a-kernel-patch-with-b4-part-1
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
[not found] ` <b5396ef5-3fed-4e98-8f37-a9cd4473bddc@sirena.org.uk>
@ 2023-04-26 21:06 ` Linus Walleij
0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2023-04-26 21:06 UTC (permalink / raw)
To: Mark Brown
Cc: Nikita Shubin, Arnd Bergmann, Linus Walleij, Alexander Sverdlin,
David S. Miller, Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Florian Fainelli,
Guenter Roeck, Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa,
Jakub Kicinski, Jaroslav Kysela, Jean Delvare, Joel Stanley,
Jonathan Cameron, Krzysztof Kozlowski, Le Moal, Liam Girdwood,
Liang Yang, Lukasz Majewski, Lv Ruyi, Masahiro Yamada,
Michael Turquette, Miquel Raynal, Nathan Chancellor,
Nick Desaulniers, Nicolas Saenz Julienne, Olof Johansson,
Paolo Abeni, Qin Jian, Richard Weinberger, Rob Herring,
Robert Jarzmik, Russell King, Sebastian Reichel, Sergey Shtylyov,
Stephen Boyd, Sumanth Korikkar, Sven Peter, Takashi Iwai,
Thierry Reding, Thomas Gleixner, Ulf Hansson, Vasily Gorbik,
Vignesh Raghavendra, Vinod Koul, Walker Chen, Wim Van Sebroeck,
Yinbo Zhu, alsa-devel, devicetree, dmaengine, linux-arm-kernel,
linux-clk, linux-gpio, linux-ide, linux-input, linux-kernel,
linux-mtd, linux-pm, linux-pwm, linux-rtc, linux-spi,
linux-watchdog, netdev, soc
On Wed, Apr 26, 2023 at 11:02 PM Mark Brown <broonie@kernel.org> wrote:
> On Wed, Apr 26, 2023 at 10:56:53PM +0200, Linus Walleij wrote:
>
> > This is a big patch set and the improvement to the ARM kernel it
> > brings is great, so I am a bit worried about over-review stalling the
> > merged. If there start to be nitpicky comments I would prefer that
> > we merge it and let minor comments and "nice-to-haves" be
> > addressed in-tree during the development cycle.
>
> I'm really not enthusiastic about the SPI bindings being merged as-is.
Agree, the bindings are more important than the code IMO,
they tend to get written in stone.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 13/43] power: reset: Add a driver for the ep93xx reset
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
0 siblings, 0 replies; 12+ messages in thread
From: Sebastian Reichel @ 2023-04-29 20:06 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, linux-kernel,
linux-pm
[-- Attachment #1: Type: text/plain, Size: 4100 bytes --]
Hi,
On Mon, Apr 24, 2023 at 03:34:29PM +0300, Nikita Shubin wrote:
> Implement the reset behaviour of the various EP93xx SoCS in drivers/power/reset.
>
> It used to be located in arch/arm/mach-ep93xx.
>
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
> ---
Acked-by: Sebastian Reichel <sre@kernel.org>
-- Sebastian
> drivers/power/reset/Kconfig | 10 +++++
> drivers/power/reset/Makefile | 1 +
> drivers/power/reset/ep93xx-restart.c | 65 ++++++++++++++++++++++++++++
> 3 files changed, 76 insertions(+)
> create mode 100644 drivers/power/reset/ep93xx-restart.c
>
> diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
> index 8c87eeda0fec..2a61afbb047b 100644
> --- a/drivers/power/reset/Kconfig
> +++ b/drivers/power/reset/Kconfig
> @@ -75,6 +75,16 @@ config POWER_RESET_BRCMSTB
> Say Y here if you have a Broadcom STB board and you wish
> to have restart support.
>
> +config POWER_RESET_EP93XX
> + bool "Cirrus EP93XX reset driver" if COMPILE_TEST
> + depends on MFD_SYSCON
> + default ARCH_EP93XX
> + help
> + This driver provides restart support for Cirrus EP93XX SoC.
> +
> + Say Y here if you have a Cirrus EP93XX SoC and you wish
> + to have restart support.
> +
> config POWER_RESET_GEMINI_POWEROFF
> bool "Cortina Gemini power-off driver"
> depends on ARCH_GEMINI || COMPILE_TEST
> diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
> index d763e6735ee3..61f4e11619b2 100644
> --- a/drivers/power/reset/Makefile
> +++ b/drivers/power/reset/Makefile
> @@ -7,6 +7,7 @@ obj-$(CONFIG_POWER_RESET_ATC260X) += atc260x-poweroff.o
> obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o
> obj-$(CONFIG_POWER_RESET_BRCMKONA) += brcm-kona-reset.o
> obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o
> +obj-$(CONFIG_POWER_RESET_EP93XX) += ep93xx-restart.o
> obj-$(CONFIG_POWER_RESET_GEMINI_POWEROFF) += gemini-poweroff.o
> obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
> obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
> diff --git a/drivers/power/reset/ep93xx-restart.c b/drivers/power/reset/ep93xx-restart.c
> new file mode 100644
> index 000000000000..0dab09d4fd3c
> --- /dev/null
> +++ b/drivers/power/reset/ep93xx-restart.c
> @@ -0,0 +1,65 @@
> +// SPDX-License-Identifier: (GPL-2.0)
> +/*
> + * Cirrus EP93xx SoC reset driver
> + *
> + * Copyright (C) 2021 Nikita Shubin <nikita.shubin@maquefel.me>
> + */
> +
> +#include <linux/delay.h>
> +#include <linux/notifier.h>
> +#include <linux/of_device.h>
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +
> +#include <linux/soc/cirrus/ep93xx.h>
> +
> +#define EP93XX_SYSCON_DEVCFG_SWRST BIT(31)
> +
> +static int ep93xx_restart_handle(struct notifier_block *this,
> + unsigned long mode, void *cmd)
> +{
> + /* Issue the reboot */
> + ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_SWRST, 0x00);
> + ep93xx_devcfg_set_clear(0x00, EP93XX_SYSCON_DEVCFG_SWRST);
> +
> + mdelay(1000);
> +
> + pr_emerg("Unable to restart system\n");
> + return NOTIFY_DONE;
> +}
> +
> +static int ep93xx_reboot_probe(struct platform_device *pdev)
> +{
> + struct notifier_block *res_han;
> + struct device *dev = &pdev->dev;
> + int err;
> +
> + res_han = devm_kzalloc(&pdev->dev, sizeof(*res_han), GFP_KERNEL);
> + if (!res_han)
> + return -ENOMEM;
> +
> + res_han->notifier_call = ep93xx_restart_handle;
> + res_han->priority = 128;
> +
> + err = register_restart_handler(res_han);
> + if (err)
> + dev_err(dev, "can't register restart notifier (err=%d)\n", err);
> +
> + return err;
> +}
> +
> +static const struct of_device_id ep93xx_reboot_of_match[] = {
> + {
> + .compatible = "cirrus,ep9301-reboot",
> + },
> + {}
> +};
> +
> +static struct platform_driver ep93xx_reboot_driver = {
> + .probe = ep93xx_reboot_probe,
> + .driver = {
> + .name = "ep9301-reboot",
> + .of_match_table = ep93xx_reboot_of_match,
> + },
> +};
> +builtin_platform_driver(ep93xx_reboot_driver);
> --
> 2.39.2
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (2 preceding siblings ...)
2023-04-26 20:56 ` [PATCH 00/43] ep93xx device tree conversion Linus Walleij
@ 2023-05-16 3:47 ` Florian Fainelli
2023-05-16 10:37 ` Nikita Shubin
2023-06-01 5:34 ` [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
4 siblings, 1 reply; 12+ messages in thread
From: Florian Fainelli @ 2023-05-16 3:47 UTC (permalink / raw)
To: Nikita Shubin
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Guenter Roeck,
Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, linux-gpio, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, netdev, soc
On 4/24/2023 5:34 AM, Nikita Shubin wrote:
> This series aims to convert ep93xx from platform to full device tree support.
>
> Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
>
> Thank you Linus and Arnd for your support, review and comments, sorry if i missed something -
> these series are quite big for me.
>
> Big thanks to Alexander Sverdlin for his testing, support, review, fixes and patches.
If anyone is interested I still have a TS-7300 board [1] that is fully
functional and could be sent out to a new home.
https://www.embeddedts.com/products/TS-7300
--
Florian
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 00/43] ep93xx device tree conversion
2023-05-16 3:47 ` Florian Fainelli
@ 2023-05-16 10:37 ` Nikita Shubin
0 siblings, 0 replies; 12+ messages in thread
From: Nikita Shubin @ 2023-05-16 10:37 UTC (permalink / raw)
To: Florian Fainelli
Cc: Arnd Bergmann, Linus Walleij, Alexander Sverdlin, David S. Miller,
Jonathan Neuschäfer, Russell King (Oracle),
Uwe Kleine-König, Alessandro Zummo, Alexander Gordeev,
Alexandre Belloni, Andy Shevchenko, Arnd Bergmann,
Bartosz Golaszewski, Brian Norris, Chuanhong Guo, Conor Dooley,
Damien Le Moal, Daniel Lezcano, Dmitry Torokhov,
Emil Renner Berthing, Eric Dumazet, Guenter Roeck,
Hartley Sweeten, Heiko Stuebner, Hitomi Hasegawa, Jakub Kicinski,
Jaroslav Kysela, Jean Delvare, Joel Stanley, Jonathan Cameron,
Krzysztof Kozlowski, Le Moal, Liam Girdwood, Liang Yang,
Linus Walleij, Lukasz Majewski, Lv Ruyi, Mark Brown,
Masahiro Yamada, Michael Turquette, Miquel Raynal,
Nathan Chancellor, Nick Desaulniers, Nicolas Saenz Julienne,
Olof Johansson, Paolo Abeni, Qin Jian, Richard Weinberger,
Rob Herring, Robert Jarzmik, Russell King, Sebastian Reichel,
Sergey Shtylyov, Stephen Boyd, Sumanth Korikkar, Sven Peter,
Takashi Iwai, Thierry Reding, Thomas Gleixner, Ulf Hansson,
Vasily Gorbik, Vignesh Raghavendra, Vinod Koul, Walker Chen,
Wim Van Sebroeck, Yinbo Zhu, alsa-devel, devicetree, dmaengine,
linux-arm-kernel, linux-clk, linux-gpio, linux-ide, linux-input,
linux-kernel, linux-mtd, linux-pm, linux-pwm, linux-rtc,
linux-spi, linux-watchdog, netdev, soc
Hello Florian!
On Mon, 2023-05-15 at 20:47 -0700, Florian Fainelli wrote:
>
>
> On 4/24/2023 5:34 AM, Nikita Shubin wrote:
> > This series aims to convert ep93xx from platform to full device
> > tree support.
> >
> > Tested on ts7250 64 RAM/128 MiB Nand flash, edb9302.
> >
> > Thank you Linus and Arnd for your support, review and comments,
> > sorry if i missed something -
> > these series are quite big for me.
> >
> > Big thanks to Alexander Sverdlin for his testing, support, review,
> > fixes and patches.
>
> If anyone is interested I still have a TS-7300 board [1] that is
> fully
> functional and could be sent out to a new home.
Thank you kindly, i'll keep this in mind !
>
> https://www.embeddedts.com/products/TS-7300
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset
2023-04-24 12:34 [PATCH 00/43] ep93xx device tree conversion Nikita Shubin
` (3 preceding siblings ...)
2023-05-16 3:47 ` Florian Fainelli
@ 2023-06-01 5:34 ` Nikita Shubin
2023-06-03 20:24 ` andy.shevchenko
4 siblings, 1 reply; 12+ messages in thread
From: Nikita Shubin @ 2023-06-01 5:34 UTC (permalink / raw)
To: Alexander Sverdlin, Arnd Bergmann, Linus Walleij,
Sebastian Reichel
Cc: Nikita Shubin, Michael Peters, Kris Bahnsen, linux-kernel,
linux-pm
Implement the reset behaviour of the various EP93xx SoCS in drivers/power/reset.
It used to be located in arch/arm/mach-ep93xx.
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Acked-by: Sebastian Reichel <sre@kernel.org>
---
drivers/power/reset/Kconfig | 10 +++++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/ep93xx-restart.c | 65 ++++++++++++++++++++++++++++
3 files changed, 76 insertions(+)
create mode 100644 drivers/power/reset/ep93xx-restart.c
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 8c87eeda0fec..2a61afbb047b 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -75,6 +75,16 @@ config POWER_RESET_BRCMSTB
Say Y here if you have a Broadcom STB board and you wish
to have restart support.
+config POWER_RESET_EP93XX
+ bool "Cirrus EP93XX reset driver" if COMPILE_TEST
+ depends on MFD_SYSCON
+ default ARCH_EP93XX
+ help
+ This driver provides restart support for Cirrus EP93XX SoC.
+
+ Say Y here if you have a Cirrus EP93XX SoC and you wish
+ to have restart support.
+
config POWER_RESET_GEMINI_POWEROFF
bool "Cortina Gemini power-off driver"
depends on ARCH_GEMINI || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index d763e6735ee3..61f4e11619b2 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -7,6 +7,7 @@ obj-$(CONFIG_POWER_RESET_ATC260X) += atc260x-poweroff.o
obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o
obj-$(CONFIG_POWER_RESET_BRCMKONA) += brcm-kona-reset.o
obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o
+obj-$(CONFIG_POWER_RESET_EP93XX) += ep93xx-restart.o
obj-$(CONFIG_POWER_RESET_GEMINI_POWEROFF) += gemini-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
diff --git a/drivers/power/reset/ep93xx-restart.c b/drivers/power/reset/ep93xx-restart.c
new file mode 100644
index 000000000000..0dab09d4fd3c
--- /dev/null
+++ b/drivers/power/reset/ep93xx-restart.c
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: (GPL-2.0)
+/*
+ * Cirrus EP93xx SoC reset driver
+ *
+ * Copyright (C) 2021 Nikita Shubin <nikita.shubin@maquefel.me>
+ */
+
+#include <linux/delay.h>
+#include <linux/notifier.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/reboot.h>
+
+#include <linux/soc/cirrus/ep93xx.h>
+
+#define EP93XX_SYSCON_DEVCFG_SWRST BIT(31)
+
+static int ep93xx_restart_handle(struct notifier_block *this,
+ unsigned long mode, void *cmd)
+{
+ /* Issue the reboot */
+ ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_SWRST, 0x00);
+ ep93xx_devcfg_set_clear(0x00, EP93XX_SYSCON_DEVCFG_SWRST);
+
+ mdelay(1000);
+
+ pr_emerg("Unable to restart system\n");
+ return NOTIFY_DONE;
+}
+
+static int ep93xx_reboot_probe(struct platform_device *pdev)
+{
+ struct notifier_block *res_han;
+ struct device *dev = &pdev->dev;
+ int err;
+
+ res_han = devm_kzalloc(&pdev->dev, sizeof(*res_han), GFP_KERNEL);
+ if (!res_han)
+ return -ENOMEM;
+
+ res_han->notifier_call = ep93xx_restart_handle;
+ res_han->priority = 128;
+
+ err = register_restart_handler(res_han);
+ if (err)
+ dev_err(dev, "can't register restart notifier (err=%d)\n", err);
+
+ return err;
+}
+
+static const struct of_device_id ep93xx_reboot_of_match[] = {
+ {
+ .compatible = "cirrus,ep9301-reboot",
+ },
+ {}
+};
+
+static struct platform_driver ep93xx_reboot_driver = {
+ .probe = ep93xx_reboot_probe,
+ .driver = {
+ .name = "ep9301-reboot",
+ .of_match_table = ep93xx_reboot_of_match,
+ },
+};
+builtin_platform_driver(ep93xx_reboot_driver);
--
2.37.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset
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
0 siblings, 0 replies; 12+ messages in thread
From: andy.shevchenko @ 2023-06-03 20:24 UTC (permalink / raw)
To: Nikita Shubin
Cc: Alexander Sverdlin, Arnd Bergmann, Linus Walleij,
Sebastian Reichel, Michael Peters, Kris Bahnsen, linux-kernel,
linux-pm
Thu, Jun 01, 2023 at 08:34:05AM +0300, Nikita Shubin kirjoitti:
> Implement the reset behaviour of the various EP93xx SoCS in drivers/power/reset.
>
> It used to be located in arch/arm/mach-ep93xx.
...
> +config POWER_RESET_EP93XX
> + bool "Cirrus EP93XX reset driver" if COMPILE_TEST
Can you elaborate this construction, please?
> + depends on MFD_SYSCON
> + default ARCH_EP93XX
> + help
> + This driver provides restart support for Cirrus EP93XX SoC.
> +
> + Say Y here if you have a Cirrus EP93XX SoC and you wish
> + to have restart support.
...
Missing bits.h
> +#include <linux/delay.h>
> +#include <linux/notifier.h>
> +#include <linux/of_device.h>
Wrong header. One is mod_devicetable.h, dunno what other implicit dependencies
you have in mind when added this.
> +#include <linux/platform_device.h>
> +#include <linux/reboot.h>
> +#include <linux/soc/cirrus/ep93xx.h>
...
> + struct notifier_block *res_han;
> + struct device *dev = &pdev->dev;
Longer lines first?
> + int err;
> +
> + res_han = devm_kzalloc(&pdev->dev, sizeof(*res_han), GFP_KERNEL);
You have dev, use it.
> + if (!res_han)
> + return -ENOMEM;
...
> + err = register_restart_handler(res_han);
> + if (err)
> + dev_err(dev, "can't register restart notifier (err=%d)\n", err);
return dev_err_probe(...);
> + return err;
> +}
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-06-03 20:24 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 13/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
2023-04-29 20:06 ` Sebastian Reichel
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:34 ` [PATCH v1 14/43] power: reset: Add a driver for the ep93xx reset Nikita Shubin
2023-06-03 20:24 ` andy.shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox