[PATCH v1 00/43] ep93xx device tree conversion

From: Nikita Shubin
Date: Thu Jun 01 2023 - 01:36:45 EST


This series aims to convert ep93xx from platform to full device tree support.

Alexander, Kris - there are some significant changes in clk and pinctrl so can i ask you to tests all once again.

So i am not applying:

Tested-by: Michael Peters <mpeters@xxxxxxxxxxxxxx>
Reviewed-by: Kris Bahnsen <kris@xxxxxxxxxxxxxx>

Tags yet.

Major changes from v0 to v1:

- I totally forgot to include dts bindings for USB, they are working, including in this version
- retinkered ep93xx keypad, the stange thing about it that it always used zeroed
platform data from the very beginning - my first impulse was to remove it entirely, espesially
it's ep9307+ variant, which Alexander and me doesn't have
- major YAML bindings overhaul according to Krzysztof comments
- nand helper converted to LEGACY nand controller
- cleanup clk
- cleanup pinctrl

Sorry if i missed something, first time handling such a big (at least for me) chunk of patches.

Next version should be much faster spin.

Alexandre Belloni:
st,m48t86 is totally trivial, but it has 2 regs instead of one, so dt_binding_check doesn't allow it in trivial.yaml,
regs should be increased to "maxItems: 2"

Miquel Raynal:
Currently made it LEGACY as a more easier way for now, as this series will merge - it will be much
easier to cleanup the rest one by one, i hope it's ok.

Stephen Boyd:
Majory of issues fixed, but:
- removing dma from init section requires converting it from half dt/platform monstrosity
into fully dt compatible
- i would like to have ep93xx_clk_data and ep93xx_map global for now - they can be removed
once dma subsys_initcall removed

Andrew Lunn:
I've tinkered with the preferred way, however this involves turning on
- CONFIG_PHYLIB
- CONFIG_MDIO_DEVICE

And maybe CONFIG_MICREL_PHY (at least for me, unless i can use some
common phy driver) which implies a kernel size increase - which is
undesirable for us.

Can we slip by getting phyid directly from device tree in ep93xx_eth ?

Link: https://lore.kernel.org/all/20230424123522.18302-1-nikita.shubin@xxxxxxxxxxx/

Cc: kris@xxxxxxxxxxxxxx

Alexander Sverdlin (3):
ARM: dts: ep93xx: Add I2S and AC97 nodes
ARM: dts: ep93xx: Add EDB9302 DT
ASoC: cirrus: edb93xx: Delete driver

Nikita Shubin (40):
gpio: ep93xx: split device in multiple
dt-bindings: soc: Add Cirrus EP93xx
soc: Add SoC driver for Cirrus ep93xx
dt-bindings: clock: Add Cirrus EP93xx
clk: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: pinctrl: Add Cirrus EP93xx
pinctrl: add a Cirrus ep93xx SoC pin controller
dt-bindings: timers: Add Cirrus EP93xx
clocksource: ep93xx: Add driver for Cirrus Logic EP93xx
dt-bindings: rtc: Add Cirrus EP93xx
rtc: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: watchdog: Add Cirrus EP93x
watchdog: ep93xx: add DT support for Cirrus EP93xx
power: reset: Add a driver for the ep93xx reset
dt-bindings: pwm: Add Cirrus EP93xx
pwm: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: spi: Add Cirrus EP93xx
spi: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: net: Add Cirrus EP93xx
net: cirrus: add DT support for Cirrus EP93xx
dt-bindings: dma: Add Cirrus EP93xx
dma: cirrus: add DT support for Cirrus EP93xx
dt-bindings: mtd: Add ts7250 nand-controller
mtd: nand: add support for ts72xx
dt-bindings: ata: Add Cirrus EP93xx
pata: cirrus: add DT support for Cirrus EP93xx
dt-bindings: input: Add Cirrus EP93xx keypad
input: keypad: ep93xx: add DT support for Cirrus EP93xx
dt-bindings: rtc: Add ST M48T86
rtc: m48t86: add DT support for m48t86
dt-bindings: wdt: Add ts72xx
wdt: ts72xx: add DT support for ts72xx
dt-bindings: gpio: Add Cirrus EP93xx
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
pata: cirrus: drop legacy pinctrl
ARM: ep93xx: delete all boardfiles
ARM: ep93xx: soc: drop defines

.../devicetree/bindings/arm/ep93xx.yaml | 107 ++
.../bindings/ata/cirrus,ep9312-pata.yaml | 44 +
.../bindings/clock/cirrus,ep9301.yaml | 64 +
.../bindings/dma/cirrus,ep9301-dma-m2m.yaml | 72 +
.../bindings/dma/cirrus,ep9301-dma-m2p.yaml | 124 ++
.../devicetree/bindings/gpio/gpio-ep9301.yaml | 154 ++
.../bindings/input/cirrus,ep9307-keypad.yaml | 86 +
.../bindings/mtd/technologic,nand.yaml | 47 +
.../bindings/net/cirrus,ep9301-eth.yaml | 61 +
.../pinctrl/cirrus,ep9301-pinctrl.yaml | 66 +
.../bindings/pwm/cirrus,ep9301-pwm.yaml | 48 +
.../bindings/rtc/cirrus,ep9301-rtc.yaml | 40 +
.../bindings/rtc/st,m48t86-rtc.yaml | 38 +
.../devicetree/bindings/spi/spi-ep9301.yaml | 69 +
.../bindings/timer/cirrus,ep9301-timer.yaml | 49 +
.../bindings/watchdog/cirrus,ep9301-wdt.yaml | 46 +
.../watchdog/technologic,ts7200-wdt.yaml | 46 +
arch/arm/Makefile | 1 -
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/ep93xx-bk3.dts | 119 ++
arch/arm/boot/dts/ep93xx-edb9302.dts | 160 ++
arch/arm/boot/dts/ep93xx-ts7250.dts | 132 ++
arch/arm/boot/dts/ep93xx.dtsi | 477 +++++
arch/arm/mach-ep93xx/Kconfig | 20 +-
arch/arm/mach-ep93xx/Makefile | 11 -
arch/arm/mach-ep93xx/clock.c | 733 --------
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 | 33 +-
drivers/clk/Kconfig | 8 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-ep93xx.c | 850 +++++++++
drivers/clocksource/Kconfig | 11 +
drivers/clocksource/Makefile | 1 +
.../clocksource}/timer-ep93xx.c | 141 +-
drivers/dma/ep93xx_dma.c | 136 +-
drivers/gpio/gpio-ep93xx.c | 329 ++--
drivers/input/keyboard/ep93xx_keypad.c | 78 +-
drivers/mtd/nand/raw/Kconfig | 7 +
drivers/mtd/nand/raw/Makefile | 1 +
.../nand/raw/technologic-nand-controller.c | 151 ++
drivers/net/ethernet/cirrus/ep93xx_eth.c | 67 +-
drivers/pinctrl/Kconfig | 7 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-ep93xx.c | 1672 +++++++++++++++++
drivers/power/reset/Kconfig | 10 +
drivers/power/reset/Makefile | 1 +
drivers/power/reset/ep93xx-restart.c | 65 +
drivers/pwm/pwm-ep93xx.c | 26 +-
drivers/rtc/rtc-ep93xx.c | 8 +
drivers/rtc/rtc-m48t86.c | 8 +
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/platform_data/eth-ep93xx.h | 10 -
include/linux/platform_data/keypad-ep93xx.h | 32 -
include/linux/soc/cirrus/ep93xx.h | 40 +-
sound/soc/cirrus/Kconfig | 9 -
sound/soc/cirrus/Makefile | 4 -
sound/soc/cirrus/edb93xx.c | 117 --
77 files changed, 5575 insertions(+), 4122 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/ep93xx.yaml
create mode 100644 Documentation/devicetree/bindings/ata/cirrus,ep9312-pata.yaml
create mode 100644 Documentation/devicetree/bindings/clock/cirrus,ep9301.yaml
create mode 100644 Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2m.yaml
create mode 100644 Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2p.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-ep9301.yaml
create mode 100644 Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/technologic,nand.yaml
create mode 100644 Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/cirrus,ep9301-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/cirrus,ep9301-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/st,m48t86-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/spi/spi-ep9301.yaml
create mode 100644 Documentation/devicetree/bindings/timer/cirrus,ep9301-timer.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/cirrus,ep9301-wdt.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/technologic,ts7200-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/clock.c
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
create mode 100644 drivers/clk/clk-ep93xx.c
rename {arch/arm/mach-ep93xx => drivers/clocksource}/timer-ep93xx.c (52%)
create mode 100644 drivers/mtd/nand/raw/technologic-nand-controller.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 include/linux/platform_data/eth-ep93xx.h
delete mode 100644 include/linux/platform_data/keypad-ep93xx.h
delete mode 100644 sound/soc/cirrus/edb93xx.c

--
2.37.4