devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 00/38] ep93xx device tree conversion
@ 2024-07-15  8:38 Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 06/38] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Arnd Bergmann, Hartley Sweeten, Alexander Sverdlin, Russell King,
	Lukasz Majewski, Linus Walleij, Bartosz Golaszewski,
	Andy Shevchenko, Michael Turquette, Stephen Boyd,
	Sebastian Reichel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Nikita Shubin, Vinod Koul, Wim Van Sebroeck, Guenter Roeck,
	Thierry Reding, Uwe Kleine-König, Mark Brown,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Damien Le Moal, Sergey Shtylyov, Dmitry Torokhov, Liam Girdwood,
	Jaroslav Kysela, Takashi Iwai, Ralf Baechle, Wu, Aaron, Lee Jones,
	Olof Johansson, Niklas Cassel
  Cc: linux-arm-kernel, linux-kernel, linux-gpio, linux-clk, linux-pm,
	devicetree, dmaengine, linux-watchdog, linux-pwm, linux-spi,
	netdev, linux-mtd, linux-ide, linux-input, linux-sound,
	Bartosz Golaszewski, Krzysztof Kozlowski, Andy Shevchenko,
	Andy Shevchenko, Andrew Lunn

The goal is to recieve ACKs for all patches in series to merge it via Arnd branch.

It was decided from the very beginning of these series, mostly because
it's a full conversion of platform code to DT and it seemed not
convenient to maintain compatibility with both platform and DT.

Following patches require attention from Stephen Boyd or clk subsystem:

- clk: ep93xx: add DT support for Cirrus EP93xx

It is purely possible to add something like devm_clk_hw_register_fixed_rate_parent_data() 
for devm managed version clk_hw_register_fixed_rate_parent_data(), still i would like to 
leave for the time after this series if it's all possible.

Couse may be it's better to add something like
devm_clk_hw_register_fixed_rate_index() like it's done for
devm_clk_hw_register_fixed_factor_index().

Changelog for this patch:
- added devm_ep93xx_clk_hw_register_fixed_rate_parent_data() for
  devm_ version of clk_hw_register_fixed_rate_parent_data()
- s/devm_clk_hw_register_fixed_rate()/devm_ep93xx_clk_hw_register_fixed_rate_parent_data()/
- replaced all devm_clk_hw_register_fixed_factor() to
  devm_clk_hw_register_fixed_factor_parent_hw() or
  devm_clk_hw_register_fixed_factor_index()
- s/devm_clk_hw_register_gate()/devm_clk_hw_register_gate_parent_data()

Stephen - it think that's you was aiming for - to get rid of all
functions that are using const char* parent_name directly instead of
clk_hw or clk_parent_data.

Patches should be formated with '--histogram'

---
Changes in v11:
- clk: ep93xx: add DT support for Cirrus EP93xx
  - added devm_ep93xx_clk_hw_register_fixed_rate_parent_data() for
    devm_ version of clk_hw_register_fixed_rate_parent_data()
  - s/devm_clk_hw_register_fixed_rate()/devm_ep93xx_clk_hw_register_fixed_rate_parent_data()/
  - replaced all devm_clk_hw_register_fixed_factor() to
    devm_clk_hw_register_fixed_factor_parent_hw() or
    devm_clk_hw_register_fixed_factor_index()
  - s/devm_clk_hw_register_gate()/devm_clk_hw_register_gate_parent_data()

- Link to v10: https://lore.kernel.org/r/20240617-ep93xx-v10-0-662e640ed811@maquefel.me

Changes in v10:

Reordered SoB tags to make sure they appear before Rb and Acked tags.

dmaengine: cirrus: Convert to DT for Cirrus EP93xx
    - s/dma/dmaengine/ title

dmaengine: cirrus: remove platform code
    - s/dma/dmaengine/ title

soc: Add SoC driver for Cirrus ep93xx:
    - added __init for ep93xx_adev_alloc(), ep93xx_controller_register()
    - added static, __initconst for pinctrl_names[]
    - clk revision for SPI is now resolved here through differently named
      clk device
    - more verbose Kconfig description

clk: ep93xx: add DT support for Cirrus EP93xx:
    - dropped includes
    - dropped ep93xx_soc_table[]
    - add different named clk and dropped involved includes
    - moved pll's and fclk, hclk, pclk init to separate function
    - fixed ep93xx_clk_ids[] explicit lines

- Link to v9: https://lore.kernel.org/r/20240326-ep93xx-v9-0-156e2ae5dfc8@maquefel.me
- Link to v2 clk: https://lore.kernel.org/r/20240408-ep93xx-clk-v2-1-adcd68c13753@maquefel.me

Changes in v9:

ARM: dts: add Cirrus EP93XX SoC .dtsi
    - added #interrupt-cells to gpio nodes with interrupts-controller
    - fixed EOF

ARM: dts: ep93xx: Add EDB9302 DT
    - Alexander Sverdlin: fixed bug in Device Tree resulting in CS4271 not working

input: keypad: ep93xx: add DT support for Cirrus EP93xx
    - fixed identation and type

- Link to v8: https://lore.kernel.org/r/20240226-ep93xx-v8-0-3136dca7238f@maquefel.me/

Changes in v8:

soc: Add SoC driver for Cirrus ep93xx
    - fixed freeing adev instead of rdev
    - use __free() and no_free_ptr() for rdev allocation
    - s/of_device_get_match_data()/device_get_match_data()/

ata: pata_ep93xx: add device tree support
    - more appropriate usage of dev_err_probe()

pinctrl: add a Cirrus ep93xx SoC pin controller
    - 8 per row in ide_9312_pins

mtd: rawnand: add support for ts72xx
    - fwnode_handle_put() for fwnode in ts72xx_nand_remove()

- Link to v7: https://lore.kernel.org/r/20240118-ep93xx-v7-0-d953846ae771@maquefel.me

Changes in v7:

mtd: rawnand: add support for ts72xx
    - fixed KConfig description

ARM: ep93xx: Add terminator to gpiod_lookup_table
    - + Reported-by, Fixes

ARM: ep93xx: add regmap aux_dev
    - + trailing comma
    - - #include <linux/spinlock.h>

clk: ep93xx: add DT support for Cirrus EP93xx
    - dropped unused defines
    - return from default in ep93xx_mux_get_parent()
    - use guard() in ep93xx_mux_set_parent_lock()
    - <math.h> header for abs_diff()
    - fixed comments

pinctrl: add a Cirrus ep93xx SoC pin controller
    - dropped comments for DEVCFG defines
    - <linux/array_size.h> for ARRAY_SIZE()
    - + default in ep93xx_get_group_name()
    - correct cast for id->driver_data
    - s/device_set_of_node_from_dev()/device_set_node()/

power: reset: Add a driver for the ep93xx reset
    - Add <linux/container_of.h>, <linux/errno.h>, <linux/slab.h>
    - Add <linux/module.h>, <linux/mod_devicetable.h>
    - Remove <platform_device.h>

spi: ep93xx: add DT support for Cirrus EP93xx
    - Replace with ret = dev_err_probe(...);

ata: pata_ep93xx: add device tree support
    - fixed wrong rebase with some partes leaked in "ata: pata_ep93xx: remove legacy pinctrl use"
    - fix dma_request_chan() error processing

dma: cirrus: Convert to DT for Cirrus EP93xx
    - fixed commit message (dropped explicit "only")
    - fixed clk_get() processing to defer probe and log spamming
    - refactor ep93xx_m2p_dma_filter()
    - dropped blank line in ep93xx_m2p_dma_of_xlate()
    - refactor ep93xx_m2m_dma_of_xlate()

dma: cirrus: remove platform code
    - s/dma/DMA/ in commit message

soc: Add SoC driver for Cirrus ep93xx
    - add period
    - use cleanup and guard() for spinlocking
    - correct cast for device_get_match_data()
    - dropped dev_info() with SoC revision - i can't find it anywhere since 2.6 :/,
      don't know why i was so sured that ep93xx always printed that

ata: pata_ep93xx: remove legacy pinctrl use
    - made error handling in DMA as Uwe suggested

- Link to v6: https://lore.kernel.org/r/20231212-ep93xx-v6-0-c307b8ac9aa8@maquefel.me

Changes in v6:

- clk: ep93xx: add DT support for Cirrus EP93xx
  - s/spin_lock_irqsave()/guard()/
  - refactor index check in ep93xx_mux_set_parent_lock() to something more readable
  - use in_range in ep93xx_mux_set_parent_lock()/ep93xx_ddiv_set_rate()
  - use GENMASK() in ep93xx_ddiv_recalc_rate()
  - comment reserved bit in ep93xx_ddiv_set_rate()
  - move out from loop ClkDiv value assigment
  - some style fixes

Andy, i was i asked to set index of XTALI explicitly, i am not setting ddiv_pdata
there becouse only XTALI is jnown in advance, and i think setting them in one place is more convenient.

- pinctrl: add a Cirrus ep93xx SoC pin controller
  - drop OF from Kconfig
  - droped linux/of.h include
  - add space to */ where it is applicable
  - add coma in multiline assigment
  - "return NULL" as default case in ep93xx_get_group_name()
  - fixed casting id->driver_data
  - use device_set_of_node_from_dev()
  - use dev_err_probe()

- power: reset: Add a driver for the ep93xx reset
  - drop linux/of.h include

- soc: Add SoC driver for Cirrus ep93xx
  - s/GPL-2.0/GPL-2.0-only/
  - drop linux/kernel.h include
  - + blank line before linux/soc/cirrus/ep93xx.h
  - + blank line after ep93xx_get_soc_rev()
  - + coma for pinctrl_names
  - valid casting to int for of_device_get_match_data() return value

- mtd: rawnand: add support for ts72xx
  - return as part of switch case
  - s/iowrite8/iowrite8_rep/

- net: cirrus: add DT support for Cirrus EP93xx
  - fix header sorting

- dma: cirrus: Convert to DT for Cirrus EP93xx
  - use devm_clk_get
  - use is_slave_direction

Changes in v5:

- gpio: ep93xx: split device in multiple
  - ordered headers
  - use irqd_to_hwirq()
  - s/platform_get_irq()/platform_get_irq_optional()/

- [PATCH v4 02/42] ARM: ep93xx: add swlocked prototypes
  - replaced with ARM: ep93xx: add regmap aux_dev

- [PATCH v4 03/42] dt-bindings: clock: Add Cirrus EP93xx
  - fixed identation
  - removed EP93XX_CLK_END
  - and dropped it
  - clock bindings moved to syscon with renaming to cirrus,ep9301-syscon.h

- clk: ep93xx: add DT support for Cirrus EP93xx
  - convert to auxiliary and use parent device tree node
  - moved all clocks except XTALI here
  - used devm version everywhere and *_parent_hw() instead of passing name where it's possible
  - unfortunately devm_clk_hw_register_fixed_rate doesn't have a parent index version

- [PATCH v4 05/42] dt-bindings: pinctrl: Add Cirrus EP93xx
  - "unevaluatedProperties: false" for pins
  - returned "additionalProperties: false" where it was
  - and dropped it

- pinctrl: add a Cirrus ep93xx SoC pin controller
  - sorted includes
  - convert to auxiliary and use parent device tree node

- power: reset: Add a driver for the ep93xx reset
  - convert to auxiliary device

- dt-bindings: soc: Add Cirrus EP93xx
  - dropped all ref to reboot, clk, pinctrl subnodes
  - added pins, as it's now used for pinctrl
  - added #clock-cells, as it's now used for clk

- dt-bindings: pwm: Add Cirrus EP93xx
  - $ref to pwm.yaml
  - fixed 'pwm-cells'
  - s/additionalProperties/unevaluatedProperties/

- soc: Add SoC driver for Cirrus ep93xx
  - removed clocks, they are moved to clk auxiliary driver, as we dropped the clk dt node
  - removed all swlocked exported functions
  - dropped static spinlock
  - added instantiating auxiliary reboot, clk, pinctrl

- dt-bindings: spi: Add Cirrus EP93xx
  - Document DMA support

- spi: ep93xx: add DT support for Cirrus EP93xx
  - dropped CONFIG_OF and SPI/DMA platform data entirely
  - s/master/host/
  - reworked DMA setup so we can use probe defer

- dt-bindings: dma: Add Cirrus EP93xx
  - dropped bindings header (moved ports description to YAML)
  - changed '#dma-cells' to 2, we use port, direction in cells so we can drop platform code completely

- dma: cirrus: add DT support for Cirrus EP93xx
  - dropped platform probing completely
  - dropped struct ep93xx_dma_data replaced with internal struct ep93xx_dma_chan_cfg with port/direction
  - added xlate functions for m2m/m2p
  - we require filters to set dma_cfg before hw_setup

- dt-bindings: ata: Add Cirrus EP93xx
  - Document DMA support

- ata: pata_ep93xx: add device tree support
  - drop DMA platform header with data
  - use DMA OF so we can defer probing until DMA is up

- ARM: dts: add Cirrus EP93XX SoC .dtsi
- ARM: dts: ep93xx: add ts7250 board
- ARM: dts: ep93xx: Add EDB9302 DT
  - replaced "eclk: clock-controller" to syscon reference
  - replaced "pinctrl: pinctrl" to syscon reference
  - gpios are now "enabled" by default
  - reworked i2s node
  - change all dma nodes and refs

- new additions to I2S
  - Document DMA
  - Document Audio Port usage
  - drop legacy DMA support

- Link to v4: https://lore.kernel.org/r/20230915-ep93xx-v4-0-a1d779dcec10@maquefel.me

Changes in v4:

- gpio: ep93xx: split device in multiple
  - s/generic_handle_irq/generic_handle_domain_irq/
  - s/int offset/irq_hw_number_t offset/ though now it looks a bit odd to me
  - drop i = 0
  - drop 'error'
  - use dev_err_probe withour printing devname once again

dt-bindings: clock: Add Cirrus EP93xx
  - renamed cirrus,ep93xx-clock.h -> cirrus,ep9301-clk.h

clk: ep93xx: add DT support for Cirrus EP93xx
  - drop unused includes
  - use .name only for xtali, pll1, pll2 parents
  - convert // to /*
  - pass clk_parent_data instead of char* clock name

dt-bindings: pinctrl: Add Cirrus EP93xx
  - s/additionalProperties/unevaluatedProperties/

dt-bindings: soc: Add Cirrus EP93xx
  - move syscon to soc directory
  - add vendor prefix
  - make reboot same style as pinctrl, clk
  - use absolute path for ref
  - expand example

soc: Add SoC driver for Cirrus ep93xx
  - s/0xf0000000/GENMASK(31, 28)/
  - s/ret/ep93xx_chip_revision(map)/
  - drop symbol exports
  - convert to platform driver

dt-bindings: rtc: Add Cirrus EP93xx
  - allOf: with $ref to rtc.yaml
  - s/additionalProperties/unevaluatedProperties/

dt-bindings: watchdog: Add Cirrus EP93x
  - drop description
  - reword

power: reset: Add a driver for the ep93xx reset
  - lets use 'GPL-2.0+' instead of '(GPL-2.0)'
  - s/of_device/of/
  - drop mdelay with warning
  - return 0 at the end

net: cirrus: add DT support for Cirrus EP93xx
  - fix leaking np

mtd: nand: add support for ts72xx
  - +bits.h
  - drop comment
  - ok to fwnode_get_next_child_node
  - use goto to put handle and nand and report error

ARM: dts: add Cirrus EP93XX SoC .dtsi
  - add simple-bus for ebi, as we don't require to setup anything
  - add arm,pl011 compatible to uart nodes
  - drop i2c-gpio, as it's isn't used anywhere

ARM: dts: ep93xx: add ts7250 board
  - generic node name for temperature-sensor
  - drop i2c
  - move nand, rtc, watchdog to ebi node

- Link to v3: https://lore.kernel.org/r/20230605-ep93xx-v3-0-3d63a5f1103e@maquefel.me

---
Alexander Sverdlin (3):
      ASoC: ep93xx: Drop legacy DMA support
      ARM: dts: ep93xx: Add EDB9302 DT
      ASoC: cirrus: edb93xx: Delete driver

Nikita Shubin (35):
      gpio: ep93xx: split device in multiple
      ARM: ep93xx: add regmap aux_dev
      clk: ep93xx: add DT support for Cirrus EP93xx
      pinctrl: add a Cirrus ep93xx SoC pin controller
      power: reset: Add a driver for the ep93xx reset
      dt-bindings: soc: Add Cirrus EP93xx
      soc: Add SoC driver for Cirrus ep93xx
      dt-bindings: dma: Add Cirrus EP93xx
      dmaengine: cirrus: Convert to DT for Cirrus EP93xx
      dt-bindings: watchdog: Add Cirrus EP93x
      watchdog: ep93xx: add DT support for Cirrus EP93xx
      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: mtd: Add ts7200 nand-controller
      mtd: rawnand: add support for ts72xx
      dt-bindings: ata: Add Cirrus EP93xx
      ata: pata_ep93xx: add device tree support
      dt-bindings: input: Add Cirrus EP93xx keypad
      input: keypad: ep93xx: add DT support for Cirrus EP93xx
      wdt: ts72xx: add DT support for ts72xx
      gpio: ep93xx: add DT support for gpio-ep93xx
      ASoC: dt-bindings: ep93xx: Document DMA support
      ASoC: dt-bindings: ep93xx: Document Audio Port support
      ARM: dts: add Cirrus EP93XX SoC .dtsi
      ARM: dts: ep93xx: add ts7250 board
      ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms
      pwm: ep93xx: drop legacy pinctrl
      ata: pata_ep93xx: remove legacy pinctrl use
      ARM: ep93xx: delete all boardfiles
      ARM: ep93xx: soc: drop defines
      dmaengine: cirrus: remove platform code

 .../bindings/arm/cirrus/cirrus,ep9301.yaml         |   38 +
 .../bindings/ata/cirrus,ep9312-pata.yaml           |   42 +
 .../bindings/dma/cirrus,ep9301-dma-m2m.yaml        |   84 ++
 .../bindings/dma/cirrus,ep9301-dma-m2p.yaml        |  144 ++
 .../bindings/input/cirrus,ep9307-keypad.yaml       |   87 ++
 .../devicetree/bindings/mtd/technologic,nand.yaml  |   45 +
 .../devicetree/bindings/net/cirrus,ep9301-eth.yaml |   59 +
 .../devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml |   53 +
 .../bindings/soc/cirrus/cirrus,ep9301-syscon.yaml  |   94 ++
 .../bindings/sound/cirrus,ep9301-i2s.yaml          |   16 +
 .../devicetree/bindings/spi/cirrus,ep9301-spi.yaml |   70 +
 .../bindings/watchdog/cirrus,ep9301-wdt.yaml       |   42 +
 arch/arm/Makefile                                  |    1 -
 arch/arm/boot/dts/cirrus/Makefile                  |    4 +
 arch/arm/boot/dts/cirrus/ep93xx-bk3.dts            |  125 ++
 arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts        |  181 +++
 arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts         |  145 ++
 arch/arm/boot/dts/cirrus/ep93xx.dtsi               |  444 ++++++
 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                        | 1018 --------------
 arch/arm/mach-ep93xx/dma.c                         |  114 --
 arch/arm/mach-ep93xx/edb93xx.c                     |  368 -----
 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/timer-ep93xx.c                |  143 --
 arch/arm/mach-ep93xx/ts72xx.c                      |  422 ------
 arch/arm/mach-ep93xx/ts72xx.h                      |   94 --
 arch/arm/mach-ep93xx/vision_ep9307.c               |  321 -----
 drivers/ata/pata_ep93xx.c                          |  107 +-
 drivers/clk/Kconfig                                |    8 +
 drivers/clk/Makefile                               |    1 +
 drivers/clk/clk-ep93xx.c                           |  846 ++++++++++++
 drivers/dma/ep93xx_dma.c                           |  287 +++-
 drivers/gpio/gpio-ep93xx.c                         |  345 ++---
 drivers/input/keyboard/ep93xx_keypad.c             |   74 +-
 drivers/mtd/nand/raw/Kconfig                       |    6 +
 drivers/mtd/nand/raw/Makefile                      |    1 +
 drivers/mtd/nand/raw/technologic-nand-controller.c |  222 +++
 drivers/net/ethernet/cirrus/ep93xx_eth.c           |   63 +-
 drivers/pinctrl/Kconfig                            |    7 +
 drivers/pinctrl/Makefile                           |    1 +
 drivers/pinctrl/pinctrl-ep93xx.c                   | 1434 ++++++++++++++++++++
 drivers/power/reset/Kconfig                        |   10 +
 drivers/power/reset/Makefile                       |    1 +
 drivers/power/reset/ep93xx-restart.c               |   84 ++
 drivers/pwm/pwm-ep93xx.c                           |   26 +-
 drivers/soc/Kconfig                                |    1 +
 drivers/soc/Makefile                               |    1 +
 drivers/soc/cirrus/Kconfig                         |   17 +
 drivers/soc/cirrus/Makefile                        |    2 +
 drivers/soc/cirrus/soc-ep93xx.c                    |  252 ++++
 drivers/spi/spi-ep93xx.c                           |   66 +-
 drivers/watchdog/ep93xx_wdt.c                      |    8 +
 drivers/watchdog/ts72xx_wdt.c                      |    8 +
 include/dt-bindings/clock/cirrus,ep9301-syscon.h   |   46 +
 include/linux/platform_data/dma-ep93xx.h           |   94 --
 include/linux/platform_data/eth-ep93xx.h           |   10 -
 include/linux/platform_data/keypad-ep93xx.h        |   32 -
 include/linux/platform_data/spi-ep93xx.h           |   15 -
 include/linux/soc/cirrus/ep93xx.h                  |   47 +-
 sound/soc/cirrus/Kconfig                           |    9 -
 sound/soc/cirrus/Makefile                          |    4 -
 sound/soc/cirrus/edb93xx.c                         |  116 --
 sound/soc/cirrus/ep93xx-i2s.c                      |   19 -
 sound/soc/cirrus/ep93xx-pcm.c                      |   19 +-
 71 files changed, 5161 insertions(+), 4550 deletions(-)
---
base-commit: 0c3836482481200ead7b416ca80c68a29cfdaabd
change-id: 20230605-ep93xx-01c76317e2d2

Best regards,
-- 
Nikita Shubin <nikita.shubin@maquefel.me>



^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH v11 06/38] dt-bindings: soc: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 08/38] dt-bindings: dma: " Nikita Shubin via B4 Relay
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Michael Turquette,
	Stephen Boyd, Nikita Shubin, Alexander Sverdlin
  Cc: Krzysztof Kozlowski, devicetree, linux-kernel, linux-clk

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add device tree bindings for the Cirrus Logic EP93xx SoC.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
---
 .../bindings/arm/cirrus/cirrus,ep9301.yaml         | 38 +++++++++
 .../bindings/soc/cirrus/cirrus,ep9301-syscon.yaml  | 94 ++++++++++++++++++++++
 include/dt-bindings/clock/cirrus,ep9301-syscon.h   | 46 +++++++++++
 3 files changed, 178 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/cirrus/cirrus,ep9301.yaml b/Documentation/devicetree/bindings/arm/cirrus/cirrus,ep9301.yaml
new file mode 100644
index 000000000000..170aad5dd7ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/cirrus/cirrus,ep9301.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/cirrus/cirrus,ep9301.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx platforms
+
+description:
+  The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU.
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: The TS-7250 is a compact, full-featured Single Board
+          Computer (SBC) based upon the Cirrus EP9302 ARM9 CPU
+        items:
+          - const: technologic,ts7250
+          - const: cirrus,ep9301
+
+      - description: The Liebherr BK3 is a derivate from ts7250 board
+        items:
+          - const: liebherr,bk3
+          - const: cirrus,ep9301
+
+      - description: EDB302 is an evaluation board by Cirrus Logic,
+          based on a Cirrus Logic EP9302 CPU
+        items:
+          - const: cirrus,edb9302
+          - const: cirrus,ep9301
+
+additionalProperties: true
diff --git a/Documentation/devicetree/bindings/soc/cirrus/cirrus,ep9301-syscon.yaml b/Documentation/devicetree/bindings/soc/cirrus/cirrus,ep9301-syscon.yaml
new file mode 100644
index 000000000000..7cb1b4114985
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/cirrus/cirrus,ep9301-syscon.yaml
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx Platforms System Controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+description: |
+  Central resources are controlled by a set of software-locked registers,
+  which can be used to prevent accidental accesses. Syscon generates
+  the various bus and peripheral clocks and controls the system startup
+  configuration.
+
+  The System Controller (Syscon) provides:
+  - Clock control
+  - Power management
+  - System configuration management
+
+  Syscon registers are common for all EP93xx SoC's, through some actual peripheral
+  may be missing depending on actual SoC model.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - cirrus,ep9302-syscon
+              - cirrus,ep9307-syscon
+              - cirrus,ep9312-syscon
+              - cirrus,ep9315-syscon
+          - const: cirrus,ep9301-syscon
+          - const: syscon
+      - items:
+          - const: cirrus,ep9301-syscon
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  clocks:
+    items:
+      - description: reference clock
+
+patternProperties:
+  '^pins-':
+    type: object
+    description: pin node
+    $ref: /schemas/pinctrl/pinmux-node.yaml
+
+    properties:
+      function:
+        enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ]
+
+      groups:
+        enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp,
+                gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp,
+                rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ]
+
+    required:
+      - function
+      - groups
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@80930000 {
+      compatible = "cirrus,ep9301-syscon", "syscon";
+      reg = <0x80930000 0x1000>;
+
+      #clock-cells = <1>;
+      clocks = <&xtali>;
+
+      spi_default_pins: pins-spi {
+        function = "spi";
+        groups = "ssp";
+      };
+    };
diff --git a/include/dt-bindings/clock/cirrus,ep9301-syscon.h b/include/dt-bindings/clock/cirrus,ep9301-syscon.h
new file mode 100644
index 000000000000..6bb8f532e7d0
--- /dev/null
+++ b/include/dt-bindings/clock/cirrus,ep9301-syscon.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+#ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
+#define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
+
+#define EP93XX_CLK_PLL1		0
+#define EP93XX_CLK_PLL2		1
+
+#define EP93XX_CLK_FCLK		2
+#define EP93XX_CLK_HCLK		3
+#define EP93XX_CLK_PCLK		4
+
+#define EP93XX_CLK_UART		5
+#define EP93XX_CLK_SPI		6
+#define EP93XX_CLK_PWM		7
+#define EP93XX_CLK_USB		8
+
+#define EP93XX_CLK_M2M0		9
+#define EP93XX_CLK_M2M1		10
+
+#define EP93XX_CLK_M2P0		11
+#define EP93XX_CLK_M2P1		12
+#define EP93XX_CLK_M2P2		13
+#define EP93XX_CLK_M2P3		14
+#define EP93XX_CLK_M2P4		15
+#define EP93XX_CLK_M2P5		16
+#define EP93XX_CLK_M2P6		17
+#define EP93XX_CLK_M2P7		18
+#define EP93XX_CLK_M2P8		19
+#define EP93XX_CLK_M2P9		20
+
+#define EP93XX_CLK_UART1	21
+#define EP93XX_CLK_UART2	22
+#define EP93XX_CLK_UART3	23
+
+#define EP93XX_CLK_ADC		24
+#define EP93XX_CLK_ADC_EN	25
+
+#define EP93XX_CLK_KEYPAD	26
+
+#define EP93XX_CLK_VIDEO	27
+
+#define EP93XX_CLK_I2S_MCLK	28
+#define EP93XX_CLK_I2S_SCLK	29
+#define EP93XX_CLK_I2S_LRCLK	30
+
+#endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 08/38] dt-bindings: dma: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 06/38] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 10/38] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin via B4 Relay
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Vinod Koul, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alexander Sverdlin, Nikita Shubin
  Cc: dmaengine, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC DMA.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Vinod Koul <vkoul@kernel.org>
---
 .../bindings/dma/cirrus,ep9301-dma-m2m.yaml        |  84 ++++++++++++
 .../bindings/dma/cirrus,ep9301-dma-m2p.yaml        | 144 +++++++++++++++++++++
 2 files changed, 228 insertions(+)

diff --git a/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2m.yaml b/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2m.yaml
new file mode 100644
index 000000000000..871b76ddf90f
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2m.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/cirrus,ep9301-dma-m2m.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx SoC DMA controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-dma-m2m
+      - items:
+          - enum:
+              - cirrus,ep9302-dma-m2m
+              - cirrus,ep9307-dma-m2m
+              - cirrus,ep9312-dma-m2m
+              - cirrus,ep9315-dma-m2m
+          - const: cirrus,ep9301-dma-m2m
+
+  reg:
+    items:
+      - description: m2m0 channel registers
+      - description: m2m1 channel registers
+
+  clocks:
+    items:
+      - description: m2m0 channel gate clock
+      - description: m2m1 channel gate clock
+
+  clock-names:
+    items:
+      - const: m2m0
+      - const: m2m1
+
+  interrupts:
+    items:
+      - description: m2m0 channel interrupt
+      - description: m2m1 channel interrupt
+
+  '#dma-cells':
+    const: 2
+    description: |
+      The first cell is the unique device channel number as indicated by this
+      table for ep93xx:
+
+      10: SPI controller
+      11: IDE controller
+
+      The second cell is the DMA direction line number:
+
+      1: Memory to device
+      2: Device to memory
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    dma-controller@80000100 {
+        compatible = "cirrus,ep9301-dma-m2m";
+        reg = <0x80000100 0x0040>,
+              <0x80000140 0x0040>;
+        clocks = <&syscon EP93XX_CLK_M2M0>,
+                 <&syscon EP93XX_CLK_M2M1>;
+        clock-names = "m2m0", "m2m1";
+        interrupt-parent = <&vic0>;
+        interrupts = <17>, <18>;
+        #dma-cells = <2>;
+    };
diff --git a/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2p.yaml b/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2p.yaml
new file mode 100644
index 000000000000..d14c31553543
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/cirrus,ep9301-dma-m2p.yaml
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/cirrus,ep9301-dma-m2p.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx SoC M2P DMA controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-dma-m2p
+      - items:
+          - enum:
+              - cirrus,ep9302-dma-m2p
+              - cirrus,ep9307-dma-m2p
+              - cirrus,ep9312-dma-m2p
+              - cirrus,ep9315-dma-m2p
+          - const: cirrus,ep9301-dma-m2p
+
+  reg:
+    items:
+      - description: m2p0 channel registers
+      - description: m2p1 channel registers
+      - description: m2p2 channel registers
+      - description: m2p3 channel registers
+      - description: m2p4 channel registers
+      - description: m2p5 channel registers
+      - description: m2p6 channel registers
+      - description: m2p7 channel registers
+      - description: m2p8 channel registers
+      - description: m2p9 channel registers
+
+  clocks:
+    items:
+      - description: m2p0 channel gate clock
+      - description: m2p1 channel gate clock
+      - description: m2p2 channel gate clock
+      - description: m2p3 channel gate clock
+      - description: m2p4 channel gate clock
+      - description: m2p5 channel gate clock
+      - description: m2p6 channel gate clock
+      - description: m2p7 channel gate clock
+      - description: m2p8 channel gate clock
+      - description: m2p9 channel gate clock
+
+  clock-names:
+    items:
+      - const: m2p0
+      - const: m2p1
+      - const: m2p2
+      - const: m2p3
+      - const: m2p4
+      - const: m2p5
+      - const: m2p6
+      - const: m2p7
+      - const: m2p8
+      - const: m2p9
+
+  interrupts:
+    items:
+      - description: m2p0 channel interrupt
+      - description: m2p1 channel interrupt
+      - description: m2p2 channel interrupt
+      - description: m2p3 channel interrupt
+      - description: m2p4 channel interrupt
+      - description: m2p5 channel interrupt
+      - description: m2p6 channel interrupt
+      - description: m2p7 channel interrupt
+      - description: m2p8 channel interrupt
+      - description: m2p9 channel interrupt
+
+  '#dma-cells':
+    const: 2
+    description: |
+      The first cell is the unique device channel number as indicated by this
+      table for ep93xx:
+
+      0: I2S channel 1
+      1: I2S channel 2 (unused)
+      2: AC97 channel 1 (unused)
+      3: AC97 channel 2 (unused)
+      4: AC97 channel 3 (unused)
+      5: I2S channel 3 (unused)
+      6: UART1 (unused)
+      7: UART2 (unused)
+      8: UART3 (unused)
+      9: IRDA (unused)
+
+      The second cell is the DMA direction line number:
+
+      1: Memory to device
+      2: Device to memory
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    dma-controller@80000000 {
+        compatible = "cirrus,ep9301-dma-m2p";
+        reg = <0x80000000 0x0040>,
+              <0x80000040 0x0040>,
+              <0x80000080 0x0040>,
+              <0x800000c0 0x0040>,
+              <0x80000240 0x0040>,
+              <0x80000200 0x0040>,
+              <0x800002c0 0x0040>,
+              <0x80000280 0x0040>,
+              <0x80000340 0x0040>,
+              <0x80000300 0x0040>;
+        clocks = <&syscon EP93XX_CLK_M2P0>,
+                 <&syscon EP93XX_CLK_M2P1>,
+                 <&syscon EP93XX_CLK_M2P2>,
+                 <&syscon EP93XX_CLK_M2P3>,
+                 <&syscon EP93XX_CLK_M2P4>,
+                 <&syscon EP93XX_CLK_M2P5>,
+                 <&syscon EP93XX_CLK_M2P6>,
+                 <&syscon EP93XX_CLK_M2P7>,
+                 <&syscon EP93XX_CLK_M2P8>,
+                 <&syscon EP93XX_CLK_M2P9>;
+        clock-names = "m2p0", "m2p1",
+                      "m2p2", "m2p3",
+                      "m2p4", "m2p5",
+                      "m2p6", "m2p7",
+                      "m2p8", "m2p9";
+        interrupt-parent = <&vic0>;
+        interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
+        #dma-cells = <2>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 10/38] dt-bindings: watchdog: Add Cirrus EP93x
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 06/38] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 08/38] dt-bindings: dma: " Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 12/38] dt-bindings: pwm: Add Cirrus EP93xx Nikita Shubin via B4 Relay
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Wim Van Sebroeck, Guenter Roeck, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Nikita Shubin, Alexander Sverdlin
  Cc: linux-watchdog, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add device tree bindings for the Cirrus Logic EP93xx watchdog block
used in these SoCs.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../bindings/watchdog/cirrus,ep9301-wdt.yaml       | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/Documentation/devicetree/bindings/watchdog/cirrus,ep9301-wdt.yaml b/Documentation/devicetree/bindings/watchdog/cirrus,ep9301-wdt.yaml
new file mode 100644
index 000000000000..5dbe891c70c6
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/cirrus,ep9301-wdt.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/cirrus,ep9301-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx Watchdog Timer
+
+maintainers:
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-wdt
+      - items:
+          - enum:
+              - cirrus,ep9302-wdt
+              - cirrus,ep9307-wdt
+              - cirrus,ep9312-wdt
+              - cirrus,ep9315-wdt
+          - const: cirrus,ep9301-wdt
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@80940000 {
+        compatible = "cirrus,ep9301-wdt";
+        reg = <0x80940000 0x08>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 12/38] dt-bindings: pwm: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (2 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 10/38] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 14/38] dt-bindings: spi: " Nikita Shubin via B4 Relay
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Uwe Kleine-König, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Sverdlin, Nikita Shubin
  Cc: linux-pwm, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC PWM.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/Documentation/devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml b/Documentation/devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml
new file mode 100644
index 000000000000..903210ef9c31
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/cirrus,ep9301-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx PWM controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-pwm
+      - items:
+          - enum:
+              - cirrus,ep9302-pwm
+              - cirrus,ep9307-pwm
+              - cirrus,ep9312-pwm
+              - cirrus,ep9315-pwm
+          - const: cirrus,ep9301-pwm
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: SoC PWM clock
+
+  "#pwm-cells":
+    const: 3
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    pwm@80910000 {
+        compatible = "cirrus,ep9301-pwm";
+        reg = <0x80910000 0x10>;
+        clocks = <&syscon EP93XX_CLK_PWM>;
+        #pwm-cells = <3>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 14/38] dt-bindings: spi: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (3 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 12/38] dt-bindings: pwm: Add Cirrus EP93xx Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 16/38] dt-bindings: net: " Nikita Shubin via B4 Relay
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alexander Sverdlin, Nikita Shubin
  Cc: linux-spi, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC SPI.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/spi/cirrus,ep9301-spi.yaml | 70 ++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/Documentation/devicetree/bindings/spi/cirrus,ep9301-spi.yaml b/Documentation/devicetree/bindings/spi/cirrus,ep9301-spi.yaml
new file mode 100644
index 000000000000..73980a27dc00
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/cirrus,ep9301-spi.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/cirrus,ep9301-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EP93xx SoC SPI controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-spi
+      - items:
+          - enum:
+              - cirrus,ep9302-spi
+              - cirrus,ep9307-spi
+              - cirrus,ep9312-spi
+              - cirrus,ep9315-spi
+          - const: cirrus,ep9301-spi
+
+  reg:
+    items:
+      - description: SPI registers region
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: SPI Controller reference clock source
+
+  dmas:
+    items:
+      - description: rx DMA channel
+      - description: tx DMA channel
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    spi@808a0000 {
+        compatible = "cirrus,ep9301-spi";
+        reg = <0x808a0000 0x18>;
+        interrupt-parent = <&vic1>;
+        interrupts = <21>;
+        clocks = <&syscon EP93XX_CLK_SPI>;
+        dmas = <&dma1 10 2>, <&dma1 10 1>;
+        dma-names = "rx", "tx";
+        cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 16/38] dt-bindings: net: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (4 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 14/38] dt-bindings: spi: " Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 18/38] dt-bindings: mtd: Add ts7200 nand-controller Nikita Shubin via B4 Relay
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alexander Sverdlin, Nikita Shubin
  Cc: netdev, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC Ethernet Controller.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../devicetree/bindings/net/cirrus,ep9301-eth.yaml | 59 ++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml b/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
new file mode 100644
index 000000000000..ad0915307095
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/cirrus,ep9301-eth.yaml
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/cirrus,ep9301-eth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EP93xx SoC Ethernet Controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: ethernet-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-eth
+      - items:
+          - enum:
+              - cirrus,ep9302-eth
+              - cirrus,ep9307-eth
+              - cirrus,ep9312-eth
+              - cirrus,ep9315-eth
+          - const: cirrus,ep9301-eth
+
+  reg:
+    items:
+      - description: The physical base address and size of IO range
+
+  interrupts:
+    items:
+      - description: Combined signal for various interrupt events
+
+  phy-handle: true
+
+  mdio:
+    $ref: mdio.yaml#
+    unevaluatedProperties: false
+    description: optional node for embedded MDIO controller
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - phy-handle
+
+additionalProperties: false
+
+examples:
+  - |
+    ethernet@80010000 {
+        compatible = "cirrus,ep9301-eth";
+        reg = <0x80010000 0x10000>;
+        interrupt-parent = <&vic1>;
+        interrupts = <7>;
+        phy-handle = <&phy0>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 18/38] dt-bindings: mtd: Add ts7200 nand-controller
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (5 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 16/38] dt-bindings: net: " Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 20/38] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin via B4 Relay
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Nikita Shubin
  Cc: linux-mtd, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ts7200 NAND Controller.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../devicetree/bindings/mtd/technologic,nand.yaml  | 45 ++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/Documentation/devicetree/bindings/mtd/technologic,nand.yaml b/Documentation/devicetree/bindings/mtd/technologic,nand.yaml
new file mode 100644
index 000000000000..f9d87c46094b
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/technologic,nand.yaml
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/technologic,nand.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Technologic Systems NAND controller
+
+maintainers:
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: nand-controller.yaml
+
+properties:
+  compatible:
+    oneOf:
+      - const: technologic,ts7200-nand
+      - items:
+          - enum:
+              - technologic,ts7300-nand
+              - technologic,ts7260-nand
+              - technologic,ts7250-nand
+          - const: technologic,ts7200-nand
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    nand-controller@60000000 {
+        compatible = "technologic,ts7200-nand";
+        reg = <0x60000000 0x8000000>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        nand@0 {
+           reg = <0>;
+        };
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 20/38] dt-bindings: ata: Add Cirrus EP93xx
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (6 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 18/38] dt-bindings: mtd: Add ts7200 nand-controller Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 22/38] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin via B4 Relay
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Damien Le Moal, Niklas Cassel, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-ide, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC PATA.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Acked-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../bindings/ata/cirrus,ep9312-pata.yaml           | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/Documentation/devicetree/bindings/ata/cirrus,ep9312-pata.yaml b/Documentation/devicetree/bindings/ata/cirrus,ep9312-pata.yaml
new file mode 100644
index 000000000000..8130923fdc72
--- /dev/null
+++ b/Documentation/devicetree/bindings/ata/cirrus,ep9312-pata.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ata/cirrus,ep9312-pata.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP9312 PATA controller
+
+maintainers:
+  - Damien Le Moal <dlemoal@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9312-pata
+      - items:
+          - const: cirrus,ep9315-pata
+          - const: cirrus,ep9312-pata
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    ide@800a0000 {
+        compatible = "cirrus,ep9312-pata";
+        reg = <0x800a0000 0x38>;
+        interrupt-parent = <&vic1>;
+        interrupts = <8>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&ide_default_pins>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 22/38] dt-bindings: input: Add Cirrus EP93xx keypad
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (7 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 20/38] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 26/38] ASoC: dt-bindings: ep93xx: Document DMA support Nikita Shubin via B4 Relay
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alexander Sverdlin
  Cc: linux-input, devicetree, linux-kernel, Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add YAML bindings for ep93xx SoC keypad.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../bindings/input/cirrus,ep9307-keypad.yaml       | 87 ++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml b/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml
new file mode 100644
index 000000000000..a0d2460c55ab
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/cirrus,ep9307-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus ep93xx keypad
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+
+allOf:
+  - $ref: /schemas/input/matrix-keymap.yaml#
+
+description:
+  The KPP is designed to interface with a keypad matrix with 2-point contact
+  or 3-point contact keys. The KPP is designed to simplify the software task
+  of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
+  and decoding one or multiple keys pressed simultaneously on a keypad.
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9307-keypad
+      - items:
+          - enum:
+              - cirrus,ep9312-keypad
+              - cirrus,ep9315-keypad
+          - const: cirrus,ep9307-keypad
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  debounce-delay-ms:
+    description: |
+          Time in microseconds that key must be pressed or
+          released for state change interrupt to trigger.
+
+  cirrus,prescale:
+    description: row/column counter pre-scaler load value
+    $ref: /schemas/types.yaml#/definitions/uint16
+    maximum: 1023
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - linux,keymap
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/input/input.h>
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    keypad@800f0000 {
+        compatible = "cirrus,ep9307-keypad";
+        reg = <0x800f0000 0x0c>;
+        interrupt-parent = <&vic0>;
+        interrupts = <29>;
+        clocks = <&eclk EP93XX_CLK_KEYPAD>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&keypad_default_pins>;
+        linux,keymap = <KEY_UP>,
+                       <KEY_DOWN>,
+                       <KEY_VOLUMEDOWN>,
+                       <KEY_HOME>,
+                       <KEY_RIGHT>,
+                       <KEY_LEFT>,
+                       <KEY_ENTER>,
+                       <KEY_VOLUMEUP>,
+                       <KEY_F6>,
+                       <KEY_F8>,
+                       <KEY_F9>,
+                       <KEY_F10>,
+                       <KEY_F1>,
+                       <KEY_F2>,
+                       <KEY_F3>,
+                       <KEY_POWER>;
+    };

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 26/38] ASoC: dt-bindings: ep93xx: Document DMA support
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (8 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 22/38] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 27/38] ASoC: dt-bindings: ep93xx: Document Audio Port support Nikita Shubin via B4 Relay
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Hartley Sweeten, Alexander Sverdlin, Liam Girdwood, Mark Brown,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-sound, devicetree, linux-kernel,
	Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Document DMA support in binding document.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
---
 .../devicetree/bindings/sound/cirrus,ep9301-i2s.yaml         | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml b/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
index 453d493c941f..36a320ddf534 100644
--- a/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
+++ b/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
@@ -40,6 +40,16 @@ properties:
       - const: sclk
       - const: lrclk
 
+  dmas:
+    items:
+      - description: out DMA channel
+      - description: in DMA channel
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
 required:
   - compatible
   - '#sound-dai-cells'
@@ -61,6 +71,8 @@ examples:
                  <&syscon 30>,
                  <&syscon 31>;
         clock-names = "mclk", "sclk", "lrclk";
+        dmas = <&dma0 0 1>, <&dma0 0 2>;
+        dma-names = "tx", "rx";
     };
 
 ...

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 27/38] ASoC: dt-bindings: ep93xx: Document Audio Port support
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (9 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 26/38] ASoC: dt-bindings: ep93xx: Document DMA support Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 29/38] ARM: dts: add Cirrus EP93XX SoC .dtsi Nikita Shubin via B4 Relay
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Hartley Sweeten, Alexander Sverdlin, Liam Girdwood, Mark Brown,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-kernel, linux-sound, devicetree, linux-kernel,
	Krzysztof Kozlowski

From: Nikita Shubin <nikita.shubin@maquefel.me>

Document Audio Graph Port support in binding document.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml b/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
index 36a320ddf534..4693e85aed37 100644
--- a/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
+++ b/Documentation/devicetree/bindings/sound/cirrus,ep9301-i2s.yaml
@@ -50,6 +50,10 @@ properties:
       - const: tx
       - const: rx
 
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
 required:
   - compatible
   - '#sound-dai-cells'

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 29/38] ARM: dts: add Cirrus EP93XX SoC .dtsi
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (10 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 27/38] ASoC: dt-bindings: ep93xx: Document Audio Port support Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 30/38] ARM: dts: ep93xx: add ts7250 board Nikita Shubin via B4 Relay
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alexander Sverdlin, Nikita Shubin
  Cc: devicetree, linux-kernel

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add support for Cirrus Logic EP93XX SoC's family.

Co-developed-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 arch/arm/boot/dts/cirrus/ep93xx.dtsi | 444 +++++++++++++++++++++++++++++++++++
 1 file changed, 444 insertions(+)

diff --git a/arch/arm/boot/dts/cirrus/ep93xx.dtsi b/arch/arm/boot/dts/cirrus/ep93xx.dtsi
new file mode 100644
index 000000000000..0dd1eee346ca
--- /dev/null
+++ b/arch/arm/boot/dts/cirrus/ep93xx.dtsi
@@ -0,0 +1,444 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Cirrus Logic systems EP93XX SoC
+ */
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+/ {
+	soc: soc {
+		compatible = "simple-bus";
+		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		syscon: syscon@80930000 {
+			compatible = "cirrus,ep9301-syscon", "syscon";
+			reg = <0x80930000 0x1000>;
+
+			#clock-cells = <1>;
+			clocks = <&xtali>;
+
+			spi_default_pins: pins-spi {
+				function = "spi";
+				groups = "ssp";
+			};
+
+			ac97_default_pins: pins-ac97 {
+				function = "ac97";
+				groups = "ac97";
+			};
+
+			i2s_on_ssp_pins: pins-i2sonssp {
+				function = "i2s";
+				groups = "i2s_on_ssp";
+			};
+
+			i2s_on_ac97_pins: pins-i2sonac97 {
+				function = "i2s";
+				groups = "i2s_on_ac97";
+			};
+
+			gpio1_default_pins: pins-gpio1 {
+				function = "gpio";
+				groups = "gpio1agrp";
+			};
+
+			pwm1_default_pins: pins-pwm1 {
+				function = "pwm";
+				groups = "pwm1";
+			};
+
+			gpio2_default_pins: pins-gpio2 {
+				function = "gpio";
+				groups = "gpio2agrp";
+			};
+
+			gpio3_default_pins: pins-gpio3 {
+				function = "gpio";
+				groups = "gpio3agrp";
+			};
+
+			keypad_default_pins: pins-keypad {
+				function = "keypad";
+				groups = "keypadgrp";
+			};
+
+			gpio4_default_pins: pins-gpio4 {
+				function = "gpio";
+				groups = "gpio4agrp";
+			};
+
+			gpio6_default_pins: pins-gpio6 {
+				function = "gpio";
+				groups = "gpio6agrp";
+			};
+
+			gpio7_default_pins: pins-gpio7 {
+				function = "gpio";
+				groups = "gpio7agrp";
+			};
+
+			ide_default_pins: pins-ide {
+				function = "pata";
+				groups = "idegrp";
+			};
+
+			lcd_on_dram0_pins: pins-rasteronsdram0 {
+				function = "lcd";
+				groups = "rasteronsdram0grp";
+			};
+
+			lcd_on_dram3_pins: pins-rasteronsdram3 {
+				function = "lcd";
+				groups = "rasteronsdram3grp";
+			};
+		};
+
+		adc: adc@80900000 {
+			compatible = "cirrus,ep9301-adc";
+			reg = <0x80900000 0x28>;
+			clocks = <&syscon EP93XX_CLK_ADC>;
+			interrupt-parent = <&vic0>;
+			interrupts = <30>;
+			status = "disabled";
+		};
+
+		/*
+		 * The EP93XX expansion bus is a set of up to 7 each up to 16MB
+		 * windows in the 256MB space from 0x50000000 to 0x5fffffff.
+		 * But since we don't require to setup it in any way, we can
+		 * represent it as a simple-bus.
+		 */
+		ebi: bus@80080000 {
+			compatible = "simple-bus";
+			reg = <0x80080000 0x20>;
+			native-endian;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+		};
+
+		dma0: dma-controller@80000000 {
+			compatible = "cirrus,ep9301-dma-m2p";
+			reg = <0x80000000 0x0040>,
+			      <0x80000040 0x0040>,
+			      <0x80000080 0x0040>,
+			      <0x800000c0 0x0040>,
+			      <0x80000240 0x0040>,
+			      <0x80000200 0x0040>,
+			      <0x800002c0 0x0040>,
+			      <0x80000280 0x0040>,
+			      <0x80000340 0x0040>,
+			      <0x80000300 0x0040>;
+			clocks = <&syscon EP93XX_CLK_M2P0>,
+				 <&syscon EP93XX_CLK_M2P1>,
+				 <&syscon EP93XX_CLK_M2P2>,
+				 <&syscon EP93XX_CLK_M2P3>,
+				 <&syscon EP93XX_CLK_M2P4>,
+				 <&syscon EP93XX_CLK_M2P5>,
+				 <&syscon EP93XX_CLK_M2P6>,
+				 <&syscon EP93XX_CLK_M2P7>,
+				 <&syscon EP93XX_CLK_M2P8>,
+				 <&syscon EP93XX_CLK_M2P9>;
+			clock-names = "m2p0", "m2p1",
+				      "m2p2", "m2p3",
+				      "m2p4", "m2p5",
+				      "m2p6", "m2p7",
+				      "m2p8", "m2p9";
+			interrupt-parent = <&vic0>;
+			interrupts = <7>, <8>, <9>, <10>, <11>,
+				<12>, <13>, <14>, <15>, <16>;
+			#dma-cells = <2>;
+		};
+
+		dma1: dma-controller@80000100 {
+			compatible = "cirrus,ep9301-dma-m2m";
+			reg = <0x80000100 0x0040>,
+			      <0x80000140 0x0040>;
+			clocks = <&syscon EP93XX_CLK_M2M0>,
+				 <&syscon EP93XX_CLK_M2M1>;
+			clock-names = "m2m0", "m2m1";
+			interrupt-parent = <&vic0>;
+			interrupts = <17>, <18>;
+			#dma-cells = <2>;
+		};
+
+		eth0: ethernet@80010000 {
+			compatible = "cirrus,ep9301-eth";
+			reg = <0x80010000 0x10000>;
+			interrupt-parent = <&vic1>;
+			interrupts = <7>;
+			mdio0: mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+		};
+
+		gpio0: gpio@80840000 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840000 0x04>,
+			      <0x80840010 0x04>,
+			      <0x80840090 0x1c>;
+			reg-names = "data", "dir", "intr";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&vic1>;
+			interrupts = <27>;
+		};
+
+		gpio1: gpio@80840004 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840004 0x04>,
+			      <0x80840014 0x04>,
+			      <0x808400ac 0x1c>;
+			reg-names = "data", "dir", "intr";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupt-parent = <&vic1>;
+			interrupts = <27>;
+		};
+
+		gpio2: gpio@80840008 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840008 0x04>,
+			      <0x80840018 0x04>;
+			reg-names = "data", "dir";
+			gpio-controller;
+			#gpio-cells = <2>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&gpio2_default_pins>;
+		};
+
+		gpio3: gpio@8084000c {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x8084000c 0x04>,
+			      <0x8084001c 0x04>;
+			reg-names = "data", "dir";
+			gpio-controller;
+			#gpio-cells = <2>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&gpio3_default_pins>;
+		};
+
+		gpio4: gpio@80840020 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840020 0x04>,
+			      <0x80840024 0x04>;
+			reg-names = "data", "dir";
+			gpio-controller;
+			#gpio-cells = <2>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&gpio4_default_pins>;
+		};
+
+		gpio5: gpio@80840030 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840030 0x04>,
+			      <0x80840034 0x04>,
+			      <0x8084004c 0x1c>;
+			reg-names = "data", "dir", "intr";
+			gpio-controller;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			interrupts-extended = <&vic0 19>, <&vic0 20>,
+					      <&vic0 21>, <&vic0 22>,
+					      <&vic1 15>, <&vic1 16>,
+					      <&vic1 17>, <&vic1 18>;
+		};
+
+		gpio6: gpio@80840038 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840038 0x04>,
+			      <0x8084003c 0x04>;
+			reg-names = "data", "dir";
+			gpio-controller;
+			#gpio-cells = <2>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&gpio6_default_pins>;
+		};
+
+		gpio7: gpio@80840040 {
+			compatible = "cirrus,ep9301-gpio";
+			reg = <0x80840040 0x04>,
+			      <0x80840044 0x04>;
+			reg-names = "data", "dir";
+			gpio-controller;
+			#gpio-cells = <2>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&gpio7_default_pins>;
+		};
+
+		i2s: i2s@80820000 {
+			compatible = "cirrus,ep9301-i2s";
+			reg = <0x80820000 0x100>;
+			#sound-dai-cells = <0>;
+			interrupt-parent = <&vic1>;
+			interrupts = <28>;
+			clocks = <&syscon EP93XX_CLK_I2S_MCLK>,
+				 <&syscon EP93XX_CLK_I2S_SCLK>,
+				 <&syscon EP93XX_CLK_I2S_LRCLK>;
+			clock-names = "mclk", "sclk", "lrclk";
+			dmas = <&dma0 0 1>, <&dma0 0 2>;
+			dma-names = "tx", "rx";
+			status = "disabled";
+		};
+
+		ide: ide@800a0000 {
+			compatible = "cirrus,ep9312-pata";
+			reg = <0x800a0000 0x38>;
+			interrupt-parent = <&vic1>;
+			interrupts = <8>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&ide_default_pins>;
+			status = "disabled";
+		};
+
+		vic0: interrupt-controller@800b0000 {
+			compatible = "arm,pl192-vic";
+			reg = <0x800b0000 0x1000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			valid-mask = <0x7ffffffc>;
+			valid-wakeup-mask = <0x0>;
+		};
+
+		vic1: interrupt-controller@800c0000 {
+			compatible = "arm,pl192-vic";
+			reg = <0x800c0000 0x1000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			valid-mask = <0x1fffffff>;
+			valid-wakeup-mask = <0x0>;
+		};
+
+		keypad: keypad@800f0000 {
+			compatible = "cirrus,ep9307-keypad";
+			reg = <0x800f0000 0x0c>;
+			interrupt-parent = <&vic0>;
+			interrupts = <29>;
+			clocks = <&syscon EP93XX_CLK_KEYPAD>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&keypad_default_pins>;
+			linux,keymap =	<KEY_UP>,
+					<KEY_DOWN>,
+					<KEY_VOLUMEDOWN>,
+					<KEY_HOME>,
+					<KEY_RIGHT>,
+					<KEY_LEFT>,
+					<KEY_ENTER>,
+					<KEY_VOLUMEUP>,
+					<KEY_F6>,
+					<KEY_F8>,
+					<KEY_F9>,
+					<KEY_F10>,
+					<KEY_F1>,
+					<KEY_F2>,
+					<KEY_F3>,
+					<KEY_POWER>;
+		};
+
+		pwm0: pwm@80910000 {
+			compatible = "cirrus,ep9301-pwm";
+			reg = <0x80910000 0x10>;
+			clocks = <&syscon EP93XX_CLK_PWM>;
+			#pwm-cells = <3>;
+			status = "disabled";
+		};
+
+		pwm1: pwm@80910020 {
+			compatible = "cirrus,ep9301-pwm";
+			reg = <0x80910020 0x10>;
+			clocks = <&syscon EP93XX_CLK_PWM>;
+			#pwm-cells = <3>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pwm1_default_pins>;
+			status = "disabled";
+		};
+
+		rtc0: rtc@80920000 {
+			compatible = "cirrus,ep9301-rtc";
+			reg = <0x80920000 0x100>;
+		};
+
+		spi0: spi@808a0000 {
+			compatible = "cirrus,ep9301-spi";
+			reg = <0x808a0000 0x18>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			interrupt-parent = <&vic1>;
+			interrupts = <21>;
+			clocks = <&syscon EP93XX_CLK_SPI>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&spi_default_pins>;
+			status = "disabled";
+		};
+
+		timer: timer@80810000 {
+			compatible = "cirrus,ep9301-timer";
+			reg = <0x80810000 0x100>;
+			interrupt-parent = <&vic1>;
+			interrupts = <19>;
+		};
+
+		uart0: serial@808c0000 {
+			compatible = "arm,pl011", "arm,primecell";
+			reg = <0x808c0000 0x1000>;
+			arm,primecell-periphid = <0x00041010>;
+			clocks = <&syscon EP93XX_CLK_UART1>, <&syscon EP93XX_CLK_UART>;
+			clock-names = "uartclk", "apb_pclk";
+			interrupt-parent = <&vic1>;
+			interrupts = <20>;
+			status = "disabled";
+		};
+
+		uart1: uart@808d0000 {
+			compatible = "arm,primecell";
+			reg = <0x808d0000 0x1000>;
+			arm,primecell-periphid = <0x00041010>;
+			clocks = <&syscon EP93XX_CLK_UART2>, <&syscon EP93XX_CLK_UART>;
+			clock-names = "apb:uart2", "apb_pclk";
+			interrupt-parent = <&vic1>;
+			interrupts = <22>;
+			status = "disabled";
+		};
+
+		uart2: uart@808b0000 {
+			compatible = "arm,primecell";
+			reg = <0x808b0000 0x1000>;
+			arm,primecell-periphid = <0x00041010>;
+			clocks = <&syscon EP93XX_CLK_UART3>, <&syscon EP93XX_CLK_UART>;
+			clock-names = "apb:uart3", "apb_pclk";
+			interrupt-parent = <&vic1>;
+			interrupts = <23>;
+			status = "disabled";
+		};
+
+		usb0: usb@80020000 {
+			compatible = "generic-ohci";
+			reg = <0x80020000 0x10000>;
+			interrupt-parent = <&vic1>;
+			interrupts = <24>;
+			clocks = <&syscon EP93XX_CLK_USB>;
+			status = "disabled";
+		};
+
+		watchdog0: watchdog@80940000 {
+			compatible = "cirrus,ep9301-wdt";
+			reg = <0x80940000 0x08>;
+		};
+	};
+
+	xtali: oscillator {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <14745600>;
+		clock-output-names = "xtali";
+	};
+};

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 30/38] ARM: dts: ep93xx: add ts7250 board
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (11 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 29/38] ARM: dts: add Cirrus EP93XX SoC .dtsi Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15  8:38 ` [PATCH v11 31/38] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin via B4 Relay
  2024-07-15 12:12 ` [PATCH v11 00/38] ep93xx device tree conversion Rob Herring (Arm)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Nikita Shubin,
	Alexander Sverdlin
  Cc: devicetree, linux-kernel

From: Nikita Shubin <nikita.shubin@maquefel.me>

Add device tree file for Technologic Systems ts7250 board and
Liebherr bk3 board which have many in common, both are based on
ep9302 SoC variant.

Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 arch/arm/boot/dts/cirrus/Makefile          |   3 +
 arch/arm/boot/dts/cirrus/ep93xx-bk3.dts    | 125 +++++++++++++++++++++++++
 arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts | 145 +++++++++++++++++++++++++++++
 3 files changed, 273 insertions(+)

diff --git a/arch/arm/boot/dts/cirrus/Makefile b/arch/arm/boot/dts/cirrus/Makefile
index e944d3e2129d..211a7e2f2115 100644
--- a/arch/arm/boot/dts/cirrus/Makefile
+++ b/arch/arm/boot/dts/cirrus/Makefile
@@ -3,3 +3,6 @@ dtb-$(CONFIG_ARCH_CLPS711X) += \
 	ep7211-edb7211.dtb
 dtb-$(CONFIG_ARCH_CLPS711X) += \
 	ep7211-edb7211.dtb
+dtb-$(CONFIG_ARCH_EP93XX) += \
+	ep93xx-bk3.dtb \
+	ep93xx-ts7250.dtb
diff --git a/arch/arm/boot/dts/cirrus/ep93xx-bk3.dts b/arch/arm/boot/dts/cirrus/ep93xx-bk3.dts
new file mode 100644
index 000000000000..40bc9b2a6ba8
--- /dev/null
+++ b/arch/arm/boot/dts/cirrus/ep93xx-bk3.dts
@@ -0,0 +1,125 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Liebherr controller BK3.1 based on Cirrus EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+	model = "Liebherr controller BK3.1";
+	compatible = "liebherr,bk3", "cirrus,ep9301";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	chosen {
+	};
+
+	memory@0 {
+		device_type = "memory";
+		/* should be set from ATAGS */
+		reg = <0x00000000 0x02000000>,
+		      <0x000530c0 0x01fdd000>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		led-0 {
+			label = "grled";
+			gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			function = LED_FUNCTION_HEARTBEAT;
+		};
+
+		led-1 {
+			label = "rdled";
+			gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+			function = LED_FUNCTION_FAULT;
+		};
+	};
+};
+
+&ebi {
+	nand-controller@60000000 {
+		compatible = "technologic,ts7200-nand";
+		reg = <0x60000000 0x8000000>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		nand@0 {
+			reg = <0>;
+			partitions {
+				compatible = "fixed-partitions";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "System";
+					reg = <0x00000000 0x01e00000>;
+					read-only;
+				};
+
+				partition@1e00000 {
+					label = "Data";
+					reg = <0x01e00000 0x05f20000>;
+				};
+
+				partition@7d20000 {
+					label = "RedBoot";
+					reg = <0x07d20000 0x002e0000>;
+					read-only;
+				};
+			};
+		};
+	};
+};
+
+&eth0 {
+	phy-handle = <&phy0>;
+};
+
+&i2s {
+	dmas = <&dma0 0 1>, <&dma0 0 2>;
+	dma-names = "tx", "rx";
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2s_on_ac97_pins>;
+	status = "okay";
+};
+
+&gpio1 {
+	/* PWM */
+	gpio-ranges = <&syscon 6 163 1>;
+};
+
+&gpio4 {
+	gpio-ranges = <&syscon 0 97 2>;
+	status = "okay";
+};
+
+&gpio6 {
+	gpio-ranges = <&syscon 0 87 2>;
+	status = "okay";
+};
+
+&gpio7 {
+	gpio-ranges = <&syscon 2 199 4>;
+	status = "okay";
+};
+
+&mdio0 {
+	phy0: ethernet-phy@1 {
+		reg = <1>;
+		device_type = "ethernet-phy";
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+};
diff --git a/arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts b/arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts
new file mode 100644
index 000000000000..9e03f93d9fc8
--- /dev/null
+++ b/arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts
@@ -0,0 +1,145 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Technologic Systems ts7250 board based on Cirrus EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+	compatible = "technologic,ts7250", "cirrus,ep9301";
+	model = "TS-7250 SBC";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	chosen {
+	};
+
+	memory@0 {
+		device_type = "memory";
+		/* should be set from ATAGS */
+		reg = <0x00000000 0x02000000>,
+		      <0x000530c0 0x01fdd000>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		led-0 {
+			label = "grled";
+			gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			function = LED_FUNCTION_HEARTBEAT;
+		};
+
+		led-1 {
+			label = "rdled";
+			gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+			function = LED_FUNCTION_FAULT;
+		};
+	};
+};
+
+&ebi {
+	nand-controller@60000000 {
+		compatible = "technologic,ts7200-nand";
+		reg = <0x60000000 0x8000000>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		nand@0 {
+			reg = <0>;
+			partitions {
+				compatible = "fixed-partitions";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "TS-BOOTROM";
+					reg = <0x00000000 0x00020000>;
+					read-only;
+				};
+
+				partition@20000 {
+					label = "Linux";
+					reg = <0x00020000 0x07d00000>;
+				};
+
+				partition@7d20000 {
+					label = "RedBoot";
+					reg = <0x07d20000 0x002e0000>;
+					read-only;
+				};
+			};
+		};
+	};
+
+	rtc@10800000 {
+		compatible = "st,m48t86";
+		reg = <0x10800000 0x1>,
+			<0x11700000 0x1>;
+	};
+
+	watchdog@23800000 {
+		compatible = "technologic,ts7200-wdt";
+		reg = <0x23800000 0x01>,
+			<0x23c00000 0x01>;
+		timeout-sec = <30>;
+	};
+};
+
+&eth0 {
+	phy-handle = <&phy0>;
+};
+
+&gpio1 {
+	/* PWM */
+	gpio-ranges = <&syscon 6 163 1>;
+};
+
+/* ts7250 doesn't have GPIO Port D present */
+&gpio3 {
+	status = "disabled";
+};
+
+&gpio4 {
+	gpio-ranges = <&syscon 0 97 2>;
+};
+
+&gpio6 {
+	gpio-ranges = <&syscon 0 87 2>;
+};
+
+&gpio7 {
+	gpio-ranges = <&syscon 2 199 4>;
+};
+
+&spi0 {
+	cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+	dmas = <&dma1 10 2>, <&dma1 10 1>;
+	dma-names = "rx", "tx";
+	status = "okay";
+
+	tmp122: temperature-sensor@0 {
+		compatible = "ti,tmp122";
+		reg = <0>;
+		spi-max-frequency = <2000000>;
+	};
+};
+
+&mdio0 {
+	phy0: ethernet-phy@1 {
+		reg = <1>;
+		device_type = "ethernet-phy";
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+};

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v11 31/38] ARM: dts: ep93xx: Add EDB9302 DT
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (12 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 30/38] ARM: dts: ep93xx: add ts7250 board Nikita Shubin via B4 Relay
@ 2024-07-15  8:38 ` Nikita Shubin via B4 Relay
  2024-07-15 12:12 ` [PATCH v11 00/38] ep93xx device tree conversion Rob Herring (Arm)
  14 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin via B4 Relay @ 2024-07-15  8:38 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Nikita Shubin,
	Alexander Sverdlin
  Cc: devicetree, linux-kernel

From: Alexander Sverdlin <alexander.sverdlin@gmail.com>

Add device tree for Cirrus EDB9302.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 arch/arm/boot/dts/cirrus/Makefile           |   1 +
 arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts | 181 ++++++++++++++++++++++++++++
 2 files changed, 182 insertions(+)

diff --git a/arch/arm/boot/dts/cirrus/Makefile b/arch/arm/boot/dts/cirrus/Makefile
index 211a7e2f2115..e6015983e464 100644
--- a/arch/arm/boot/dts/cirrus/Makefile
+++ b/arch/arm/boot/dts/cirrus/Makefile
@@ -4,5 +4,6 @@ dtb-$(CONFIG_ARCH_CLPS711X) += \
 dtb-$(CONFIG_ARCH_CLPS711X) += \
 	ep7211-edb7211.dtb
 dtb-$(CONFIG_ARCH_EP93XX) += \
+	ep93xx-edb9302.dtb \
 	ep93xx-bk3.dtb \
 	ep93xx-ts7250.dtb
diff --git a/arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts b/arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts
new file mode 100644
index 000000000000..0bf10086f969
--- /dev/null
+++ b/arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts
@@ -0,0 +1,181 @@
+// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+/*
+ * Device Tree file for Cirrus Logic EDB9302 board based on EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	compatible = "cirrus,edb9302", "cirrus,ep9301";
+	model = "cirrus,edb9302";
+
+	chosen {
+	};
+
+	memory@0 {
+		device_type = "memory";
+		/* should be set from ATAGS */
+		reg = <0x0000000 0x800000>,
+		      <0x1000000 0x800000>,
+		      <0x4000000 0x800000>,
+		      <0x5000000 0x800000>;
+	};
+
+	sound {
+		compatible = "audio-graph-card2";
+		label = "EDB93XX";
+		links = <&i2s_port>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		led-0 {
+			label = "grled";
+			gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			function = LED_FUNCTION_HEARTBEAT;
+		};
+
+		led-1 {
+			label = "rdled";
+			gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+			function = LED_FUNCTION_FAULT;
+		};
+	};
+};
+
+&adc {
+	status = "okay";
+};
+
+&ebi {
+	flash@60000000 {
+		compatible = "cfi-flash";
+		reg = <0x60000000 0x1000000>;
+		bank-width = <2>;
+	};
+};
+
+&eth0 {
+	phy-handle = <&phy0>;
+};
+
+&gpio0 {
+	gpio-ranges = <&syscon 0 153 1>,
+		      <&syscon 1 152 1>,
+		      <&syscon 2 151 1>,
+		      <&syscon 3 148 1>,
+		      <&syscon 4 147 1>,
+		      <&syscon 5 146 1>,
+		      <&syscon 6 145 1>,
+		      <&syscon 7 144 1>;
+};
+
+&gpio1 {
+	gpio-ranges = <&syscon 0 143 1>,
+		      <&syscon 1 142 1>,
+		      <&syscon 2 141 1>,
+		      <&syscon 3 140 1>,
+		      <&syscon 4 165 1>,
+		      <&syscon 5 164 1>,
+		      <&syscon 6 163 1>,
+		      <&syscon 7 160 1>;
+};
+
+&gpio2 {
+	gpio-ranges = <&syscon 0 115 1>;
+};
+
+/* edb9302 doesn't have GPIO Port D present */
+&gpio3 {
+	status = "disabled";
+};
+
+&gpio4 {
+	gpio-ranges = <&syscon 0 97 2>;
+};
+
+&gpio5 {
+	gpio-ranges = <&syscon 1 170 1>,
+		      <&syscon 2 169 1>,
+		      <&syscon 3 168 1>;
+};
+
+&gpio6 {
+	gpio-ranges = <&syscon 0 87 2>;
+};
+
+&gpio7 {
+	gpio-ranges = <&syscon 2 199 4>;
+};
+
+&i2s {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2s_on_ac97_pins>;
+	status = "okay";
+	i2s_port: port {
+		i2s_ep: endpoint {
+			system-clock-direction-out;
+			frame-master;
+			bitclock-master;
+			mclk-fs = <256>;
+			dai-format = "i2s";
+			convert-channels = <2>;
+			convert-sample-format = "s32_le";
+			remote-endpoint = <&codec_ep>;
+		};
+	};
+};
+
+&mdio0 {
+	phy0: ethernet-phy@1 {
+		reg = <1>;
+		device_type = "ethernet-phy";
+	};
+};
+
+&spi0 {
+	cs-gpios = <&gpio0 6 GPIO_ACTIVE_LOW
+		    &gpio0 7 GPIO_ACTIVE_LOW>;
+	dmas = <&dma1 10 2>, <&dma1 10 1>;
+	dma-names = "rx", "tx";
+	status = "okay";
+
+	cs4271: codec@0 {
+		compatible = "cirrus,cs4271";
+		reg = <0>;
+		#sound-dai-cells = <0>;
+		spi-max-frequency = <6000000>;
+		spi-cpol;
+		spi-cpha;
+		reset-gpio = <&gpio0 1 GPIO_ACTIVE_LOW>;
+		port {
+			codec_ep: endpoint {
+				remote-endpoint = <&i2s_ep>;
+			};
+		};
+	};
+
+	at25f1024: eeprom@1 {
+		compatible = "atmel,at25";
+		reg = <1>;
+		address-width = <8>;
+		size = <0x20000>;
+		pagesize = <256>;
+		spi-max-frequency = <20000000>;
+	};
+};
+
+&uart0 {
+	status = "okay";
+};
+
+&uart1 {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+};

-- 
2.43.2



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH v11 00/38] ep93xx device tree conversion
  2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
                   ` (13 preceding siblings ...)
  2024-07-15  8:38 ` [PATCH v11 31/38] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin via B4 Relay
@ 2024-07-15 12:12 ` Rob Herring (Arm)
  2024-07-15 20:46   ` Alexander Sverdlin
  14 siblings, 1 reply; 18+ messages in thread
From: Rob Herring (Arm) @ 2024-07-15 12:12 UTC (permalink / raw)
  To: Nikita Shubin
  Cc: linux-gpio, David S. Miller, Paolo Abeni, Andy Shevchenko,
	linux-mtd, Liam Girdwood, linux-pm, linux-clk, netdev,
	Bartosz Golaszewski, Vinod Koul, Dmitry Torokhov, Olof Johansson,
	Niklas Cassel, linux-arm-kernel, Jakub Kicinski,
	Alexander Sverdlin, Andy Shevchenko, dmaengine,
	Bartosz Golaszewski, Russell King, Michael Turquette, Rob Herring,
	Guenter Roeck, devicetree, Conor Dooley, Wu, Aaron, Lee Jones,
	linux-watchdog, Wim Van Sebroeck, Miquel Raynal, Damien Le Moal,
	Linus Walleij, Thierry Reding, Vignesh Raghavendra, linux-pwm,
	Uwe Kleine-König, Ralf Baechle, Sebastian Reichel,
	Krzysztof Kozlowski, linux-ide, Stephen Boyd, Krzysztof Kozlowski,
	linux-spi, Andy Shevchenko, Mark Brown, Hartley Sweeten,
	linux-kernel, Takashi Iwai, Andrew Lunn, Richard Weinberger,
	Eric Dumazet, linux-sound, Arnd Bergmann, linux-input,
	Jaroslav Kysela, Sergey Shtylyov, Lukasz Majewski


On Mon, 15 Jul 2024 11:38:04 +0300, Nikita Shubin wrote:
> The goal is to recieve ACKs for all patches in series to merge it via Arnd branch.
> 
> It was decided from the very beginning of these series, mostly because
> it's a full conversion of platform code to DT and it seemed not
> convenient to maintain compatibility with both platform and DT.
> 
> Following patches require attention from Stephen Boyd or clk subsystem:
> 
> - clk: ep93xx: add DT support for Cirrus EP93xx
> 
> It is purely possible to add something like devm_clk_hw_register_fixed_rate_parent_data()
> for devm managed version clk_hw_register_fixed_rate_parent_data(), still i would like to
> leave for the time after this series if it's all possible.
> 
> Couse may be it's better to add something like
> devm_clk_hw_register_fixed_rate_index() like it's done for
> devm_clk_hw_register_fixed_factor_index().
> 
> Changelog for this patch:
> - added devm_ep93xx_clk_hw_register_fixed_rate_parent_data() for
>   devm_ version of clk_hw_register_fixed_rate_parent_data()
> - s/devm_clk_hw_register_fixed_rate()/devm_ep93xx_clk_hw_register_fixed_rate_parent_data()/
> - replaced all devm_clk_hw_register_fixed_factor() to
>   devm_clk_hw_register_fixed_factor_parent_hw() or
>   devm_clk_hw_register_fixed_factor_index()
> - s/devm_clk_hw_register_gate()/devm_clk_hw_register_gate_parent_data()
> 
> Stephen - it think that's you was aiming for - to get rid of all
> functions that are using const char* parent_name directly instead of
> clk_hw or clk_parent_data.
> 
> Patches should be formated with '--histogram'
> 
> ---
> Changes in v11:
> - clk: ep93xx: add DT support for Cirrus EP93xx
>   - added devm_ep93xx_clk_hw_register_fixed_rate_parent_data() for
>     devm_ version of clk_hw_register_fixed_rate_parent_data()
>   - s/devm_clk_hw_register_fixed_rate()/devm_ep93xx_clk_hw_register_fixed_rate_parent_data()/
>   - replaced all devm_clk_hw_register_fixed_factor() to
>     devm_clk_hw_register_fixed_factor_parent_hw() or
>     devm_clk_hw_register_fixed_factor_index()
>   - s/devm_clk_hw_register_gate()/devm_clk_hw_register_gate_parent_data()
> 
> - Link to v10: https://lore.kernel.org/r/20240617-ep93xx-v10-0-662e640ed811@maquefel.me
> 
> Changes in v10:
> 
> Reordered SoB tags to make sure they appear before Rb and Acked tags.
> 
> dmaengine: cirrus: Convert to DT for Cirrus EP93xx
>     - s/dma/dmaengine/ title
> 
> dmaengine: cirrus: remove platform code
>     - s/dma/dmaengine/ title
> 
> soc: Add SoC driver for Cirrus ep93xx:
>     - added __init for ep93xx_adev_alloc(), ep93xx_controller_register()
>     - added static, __initconst for pinctrl_names[]
>     - clk revision for SPI is now resolved here through differently named
>       clk device
>     - more verbose Kconfig description
> 
> clk: ep93xx: add DT support for Cirrus EP93xx:
>     - dropped includes
>     - dropped ep93xx_soc_table[]
>     - add different named clk and dropped involved includes
>     - moved pll's and fclk, hclk, pclk init to separate function
>     - fixed ep93xx_clk_ids[] explicit lines
> 
> - Link to v9: https://lore.kernel.org/r/20240326-ep93xx-v9-0-156e2ae5dfc8@maquefel.me
> - Link to v2 clk: https://lore.kernel.org/r/20240408-ep93xx-clk-v2-1-adcd68c13753@maquefel.me
> 
> Changes in v9:
> 
> ARM: dts: add Cirrus EP93XX SoC .dtsi
>     - added #interrupt-cells to gpio nodes with interrupts-controller
>     - fixed EOF
> 
> ARM: dts: ep93xx: Add EDB9302 DT
>     - Alexander Sverdlin: fixed bug in Device Tree resulting in CS4271 not working
> 
> input: keypad: ep93xx: add DT support for Cirrus EP93xx
>     - fixed identation and type
> 
> - Link to v8: https://lore.kernel.org/r/20240226-ep93xx-v8-0-3136dca7238f@maquefel.me/
> 
> Changes in v8:
> 
> soc: Add SoC driver for Cirrus ep93xx
>     - fixed freeing adev instead of rdev
>     - use __free() and no_free_ptr() for rdev allocation
>     - s/of_device_get_match_data()/device_get_match_data()/
> 
> ata: pata_ep93xx: add device tree support
>     - more appropriate usage of dev_err_probe()
> 
> pinctrl: add a Cirrus ep93xx SoC pin controller
>     - 8 per row in ide_9312_pins
> 
> mtd: rawnand: add support for ts72xx
>     - fwnode_handle_put() for fwnode in ts72xx_nand_remove()
> 
> - Link to v7: https://lore.kernel.org/r/20240118-ep93xx-v7-0-d953846ae771@maquefel.me
> 
> Changes in v7:
> 
> mtd: rawnand: add support for ts72xx
>     - fixed KConfig description
> 
> ARM: ep93xx: Add terminator to gpiod_lookup_table
>     - + Reported-by, Fixes
> 
> ARM: ep93xx: add regmap aux_dev
>     - + trailing comma
>     - - #include <linux/spinlock.h>
> 
> clk: ep93xx: add DT support for Cirrus EP93xx
>     - dropped unused defines
>     - return from default in ep93xx_mux_get_parent()
>     - use guard() in ep93xx_mux_set_parent_lock()
>     - <math.h> header for abs_diff()
>     - fixed comments
> 
> pinctrl: add a Cirrus ep93xx SoC pin controller
>     - dropped comments for DEVCFG defines
>     - <linux/array_size.h> for ARRAY_SIZE()
>     - + default in ep93xx_get_group_name()
>     - correct cast for id->driver_data
>     - s/device_set_of_node_from_dev()/device_set_node()/
> 
> power: reset: Add a driver for the ep93xx reset
>     - Add <linux/container_of.h>, <linux/errno.h>, <linux/slab.h>
>     - Add <linux/module.h>, <linux/mod_devicetable.h>
>     - Remove <platform_device.h>
> 
> spi: ep93xx: add DT support for Cirrus EP93xx
>     - Replace with ret = dev_err_probe(...);
> 
> ata: pata_ep93xx: add device tree support
>     - fixed wrong rebase with some partes leaked in "ata: pata_ep93xx: remove legacy pinctrl use"
>     - fix dma_request_chan() error processing
> 
> dma: cirrus: Convert to DT for Cirrus EP93xx
>     - fixed commit message (dropped explicit "only")
>     - fixed clk_get() processing to defer probe and log spamming
>     - refactor ep93xx_m2p_dma_filter()
>     - dropped blank line in ep93xx_m2p_dma_of_xlate()
>     - refactor ep93xx_m2m_dma_of_xlate()
> 
> dma: cirrus: remove platform code
>     - s/dma/DMA/ in commit message
> 
> soc: Add SoC driver for Cirrus ep93xx
>     - add period
>     - use cleanup and guard() for spinlocking
>     - correct cast for device_get_match_data()
>     - dropped dev_info() with SoC revision - i can't find it anywhere since 2.6 :/,
>       don't know why i was so sured that ep93xx always printed that
> 
> ata: pata_ep93xx: remove legacy pinctrl use
>     - made error handling in DMA as Uwe suggested
> 
> - Link to v6: https://lore.kernel.org/r/20231212-ep93xx-v6-0-c307b8ac9aa8@maquefel.me
> 
> Changes in v6:
> 
> - clk: ep93xx: add DT support for Cirrus EP93xx
>   - s/spin_lock_irqsave()/guard()/
>   - refactor index check in ep93xx_mux_set_parent_lock() to something more readable
>   - use in_range in ep93xx_mux_set_parent_lock()/ep93xx_ddiv_set_rate()
>   - use GENMASK() in ep93xx_ddiv_recalc_rate()
>   - comment reserved bit in ep93xx_ddiv_set_rate()
>   - move out from loop ClkDiv value assigment
>   - some style fixes
> 
> Andy, i was i asked to set index of XTALI explicitly, i am not setting ddiv_pdata
> there becouse only XTALI is jnown in advance, and i think setting them in one place is more convenient.
> 
> - pinctrl: add a Cirrus ep93xx SoC pin controller
>   - drop OF from Kconfig
>   - droped linux/of.h include
>   - add space to */ where it is applicable
>   - add coma in multiline assigment
>   - "return NULL" as default case in ep93xx_get_group_name()
>   - fixed casting id->driver_data
>   - use device_set_of_node_from_dev()
>   - use dev_err_probe()
> 
> - power: reset: Add a driver for the ep93xx reset
>   - drop linux/of.h include
> 
> - soc: Add SoC driver for Cirrus ep93xx
>   - s/GPL-2.0/GPL-2.0-only/
>   - drop linux/kernel.h include
>   - + blank line before linux/soc/cirrus/ep93xx.h
>   - + blank line after ep93xx_get_soc_rev()
>   - + coma for pinctrl_names
>   - valid casting to int for of_device_get_match_data() return value
> 
> - mtd: rawnand: add support for ts72xx
>   - return as part of switch case
>   - s/iowrite8/iowrite8_rep/
> 
> - net: cirrus: add DT support for Cirrus EP93xx
>   - fix header sorting
> 
> - dma: cirrus: Convert to DT for Cirrus EP93xx
>   - use devm_clk_get
>   - use is_slave_direction
> 
> Changes in v5:
> 
> - gpio: ep93xx: split device in multiple
>   - ordered headers
>   - use irqd_to_hwirq()
>   - s/platform_get_irq()/platform_get_irq_optional()/
> 
> - [PATCH v4 02/42] ARM: ep93xx: add swlocked prototypes
>   - replaced with ARM: ep93xx: add regmap aux_dev
> 
> - [PATCH v4 03/42] dt-bindings: clock: Add Cirrus EP93xx
>   - fixed identation
>   - removed EP93XX_CLK_END
>   - and dropped it
>   - clock bindings moved to syscon with renaming to cirrus,ep9301-syscon.h
> 
> - clk: ep93xx: add DT support for Cirrus EP93xx
>   - convert to auxiliary and use parent device tree node
>   - moved all clocks except XTALI here
>   - used devm version everywhere and *_parent_hw() instead of passing name where it's possible
>   - unfortunately devm_clk_hw_register_fixed_rate doesn't have a parent index version
> 
> - [PATCH v4 05/42] dt-bindings: pinctrl: Add Cirrus EP93xx
>   - "unevaluatedProperties: false" for pins
>   - returned "additionalProperties: false" where it was
>   - and dropped it
> 
> - pinctrl: add a Cirrus ep93xx SoC pin controller
>   - sorted includes
>   - convert to auxiliary and use parent device tree node
> 
> - power: reset: Add a driver for the ep93xx reset
>   - convert to auxiliary device
> 
> - dt-bindings: soc: Add Cirrus EP93xx
>   - dropped all ref to reboot, clk, pinctrl subnodes
>   - added pins, as it's now used for pinctrl
>   - added #clock-cells, as it's now used for clk
> 
> - dt-bindings: pwm: Add Cirrus EP93xx
>   - $ref to pwm.yaml
>   - fixed 'pwm-cells'
>   - s/additionalProperties/unevaluatedProperties/
> 
> - soc: Add SoC driver for Cirrus ep93xx
>   - removed clocks, they are moved to clk auxiliary driver, as we dropped the clk dt node
>   - removed all swlocked exported functions
>   - dropped static spinlock
>   - added instantiating auxiliary reboot, clk, pinctrl
> 
> - dt-bindings: spi: Add Cirrus EP93xx
>   - Document DMA support
> 
> - spi: ep93xx: add DT support for Cirrus EP93xx
>   - dropped CONFIG_OF and SPI/DMA platform data entirely
>   - s/master/host/
>   - reworked DMA setup so we can use probe defer
> 
> - dt-bindings: dma: Add Cirrus EP93xx
>   - dropped bindings header (moved ports description to YAML)
>   - changed '#dma-cells' to 2, we use port, direction in cells so we can drop platform code completely
> 
> - dma: cirrus: add DT support for Cirrus EP93xx
>   - dropped platform probing completely
>   - dropped struct ep93xx_dma_data replaced with internal struct ep93xx_dma_chan_cfg with port/direction
>   - added xlate functions for m2m/m2p
>   - we require filters to set dma_cfg before hw_setup
> 
> - dt-bindings: ata: Add Cirrus EP93xx
>   - Document DMA support
> 
> - ata: pata_ep93xx: add device tree support
>   - drop DMA platform header with data
>   - use DMA OF so we can defer probing until DMA is up
> 
> - ARM: dts: add Cirrus EP93XX SoC .dtsi
> - ARM: dts: ep93xx: add ts7250 board
> - ARM: dts: ep93xx: Add EDB9302 DT
>   - replaced "eclk: clock-controller" to syscon reference
>   - replaced "pinctrl: pinctrl" to syscon reference
>   - gpios are now "enabled" by default
>   - reworked i2s node
>   - change all dma nodes and refs
> 
> - new additions to I2S
>   - Document DMA
>   - Document Audio Port usage
>   - drop legacy DMA support
> 
> - Link to v4: https://lore.kernel.org/r/20230915-ep93xx-v4-0-a1d779dcec10@maquefel.me
> 
> Changes in v4:
> 
> - gpio: ep93xx: split device in multiple
>   - s/generic_handle_irq/generic_handle_domain_irq/
>   - s/int offset/irq_hw_number_t offset/ though now it looks a bit odd to me
>   - drop i = 0
>   - drop 'error'
>   - use dev_err_probe withour printing devname once again
> 
> dt-bindings: clock: Add Cirrus EP93xx
>   - renamed cirrus,ep93xx-clock.h -> cirrus,ep9301-clk.h
> 
> clk: ep93xx: add DT support for Cirrus EP93xx
>   - drop unused includes
>   - use .name only for xtali, pll1, pll2 parents
>   - convert // to /*
>   - pass clk_parent_data instead of char* clock name
> 
> dt-bindings: pinctrl: Add Cirrus EP93xx
>   - s/additionalProperties/unevaluatedProperties/
> 
> dt-bindings: soc: Add Cirrus EP93xx
>   - move syscon to soc directory
>   - add vendor prefix
>   - make reboot same style as pinctrl, clk
>   - use absolute path for ref
>   - expand example
> 
> soc: Add SoC driver for Cirrus ep93xx
>   - s/0xf0000000/GENMASK(31, 28)/
>   - s/ret/ep93xx_chip_revision(map)/
>   - drop symbol exports
>   - convert to platform driver
> 
> dt-bindings: rtc: Add Cirrus EP93xx
>   - allOf: with $ref to rtc.yaml
>   - s/additionalProperties/unevaluatedProperties/
> 
> dt-bindings: watchdog: Add Cirrus EP93x
>   - drop description
>   - reword
> 
> power: reset: Add a driver for the ep93xx reset
>   - lets use 'GPL-2.0+' instead of '(GPL-2.0)'
>   - s/of_device/of/
>   - drop mdelay with warning
>   - return 0 at the end
> 
> net: cirrus: add DT support for Cirrus EP93xx
>   - fix leaking np
> 
> mtd: nand: add support for ts72xx
>   - +bits.h
>   - drop comment
>   - ok to fwnode_get_next_child_node
>   - use goto to put handle and nand and report error
> 
> ARM: dts: add Cirrus EP93XX SoC .dtsi
>   - add simple-bus for ebi, as we don't require to setup anything
>   - add arm,pl011 compatible to uart nodes
>   - drop i2c-gpio, as it's isn't used anywhere
> 
> ARM: dts: ep93xx: add ts7250 board
>   - generic node name for temperature-sensor
>   - drop i2c
>   - move nand, rtc, watchdog to ebi node
> 
> - Link to v3: https://lore.kernel.org/r/20230605-ep93xx-v3-0-3d63a5f1103e@maquefel.me
> 
> ---
> Alexander Sverdlin (3):
>       ASoC: ep93xx: Drop legacy DMA support
>       ARM: dts: ep93xx: Add EDB9302 DT
>       ASoC: cirrus: edb93xx: Delete driver
> 
> Nikita Shubin (35):
>       gpio: ep93xx: split device in multiple
>       ARM: ep93xx: add regmap aux_dev
>       clk: ep93xx: add DT support for Cirrus EP93xx
>       pinctrl: add a Cirrus ep93xx SoC pin controller
>       power: reset: Add a driver for the ep93xx reset
>       dt-bindings: soc: Add Cirrus EP93xx
>       soc: Add SoC driver for Cirrus ep93xx
>       dt-bindings: dma: Add Cirrus EP93xx
>       dmaengine: cirrus: Convert to DT for Cirrus EP93xx
>       dt-bindings: watchdog: Add Cirrus EP93x
>       watchdog: ep93xx: add DT support for Cirrus EP93xx
>       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: mtd: Add ts7200 nand-controller
>       mtd: rawnand: add support for ts72xx
>       dt-bindings: ata: Add Cirrus EP93xx
>       ata: pata_ep93xx: add device tree support
>       dt-bindings: input: Add Cirrus EP93xx keypad
>       input: keypad: ep93xx: add DT support for Cirrus EP93xx
>       wdt: ts72xx: add DT support for ts72xx
>       gpio: ep93xx: add DT support for gpio-ep93xx
>       ASoC: dt-bindings: ep93xx: Document DMA support
>       ASoC: dt-bindings: ep93xx: Document Audio Port support
>       ARM: dts: add Cirrus EP93XX SoC .dtsi
>       ARM: dts: ep93xx: add ts7250 board
>       ARM: ep93xx: DT for the Cirrus ep93xx SoC platforms
>       pwm: ep93xx: drop legacy pinctrl
>       ata: pata_ep93xx: remove legacy pinctrl use
>       ARM: ep93xx: delete all boardfiles
>       ARM: ep93xx: soc: drop defines
>       dmaengine: cirrus: remove platform code
> 
>  .../bindings/arm/cirrus/cirrus,ep9301.yaml         |   38 +
>  .../bindings/ata/cirrus,ep9312-pata.yaml           |   42 +
>  .../bindings/dma/cirrus,ep9301-dma-m2m.yaml        |   84 ++
>  .../bindings/dma/cirrus,ep9301-dma-m2p.yaml        |  144 ++
>  .../bindings/input/cirrus,ep9307-keypad.yaml       |   87 ++
>  .../devicetree/bindings/mtd/technologic,nand.yaml  |   45 +
>  .../devicetree/bindings/net/cirrus,ep9301-eth.yaml |   59 +
>  .../devicetree/bindings/pwm/cirrus,ep9301-pwm.yaml |   53 +
>  .../bindings/soc/cirrus/cirrus,ep9301-syscon.yaml  |   94 ++
>  .../bindings/sound/cirrus,ep9301-i2s.yaml          |   16 +
>  .../devicetree/bindings/spi/cirrus,ep9301-spi.yaml |   70 +
>  .../bindings/watchdog/cirrus,ep9301-wdt.yaml       |   42 +
>  arch/arm/Makefile                                  |    1 -
>  arch/arm/boot/dts/cirrus/Makefile                  |    4 +
>  arch/arm/boot/dts/cirrus/ep93xx-bk3.dts            |  125 ++
>  arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts        |  181 +++
>  arch/arm/boot/dts/cirrus/ep93xx-ts7250.dts         |  145 ++
>  arch/arm/boot/dts/cirrus/ep93xx.dtsi               |  444 ++++++
>  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                        | 1018 --------------
>  arch/arm/mach-ep93xx/dma.c                         |  114 --
>  arch/arm/mach-ep93xx/edb93xx.c                     |  368 -----
>  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/timer-ep93xx.c                |  143 --
>  arch/arm/mach-ep93xx/ts72xx.c                      |  422 ------
>  arch/arm/mach-ep93xx/ts72xx.h                      |   94 --
>  arch/arm/mach-ep93xx/vision_ep9307.c               |  321 -----
>  drivers/ata/pata_ep93xx.c                          |  107 +-
>  drivers/clk/Kconfig                                |    8 +
>  drivers/clk/Makefile                               |    1 +
>  drivers/clk/clk-ep93xx.c                           |  846 ++++++++++++
>  drivers/dma/ep93xx_dma.c                           |  287 +++-
>  drivers/gpio/gpio-ep93xx.c                         |  345 ++---
>  drivers/input/keyboard/ep93xx_keypad.c             |   74 +-
>  drivers/mtd/nand/raw/Kconfig                       |    6 +
>  drivers/mtd/nand/raw/Makefile                      |    1 +
>  drivers/mtd/nand/raw/technologic-nand-controller.c |  222 +++
>  drivers/net/ethernet/cirrus/ep93xx_eth.c           |   63 +-
>  drivers/pinctrl/Kconfig                            |    7 +
>  drivers/pinctrl/Makefile                           |    1 +
>  drivers/pinctrl/pinctrl-ep93xx.c                   | 1434 ++++++++++++++++++++
>  drivers/power/reset/Kconfig                        |   10 +
>  drivers/power/reset/Makefile                       |    1 +
>  drivers/power/reset/ep93xx-restart.c               |   84 ++
>  drivers/pwm/pwm-ep93xx.c                           |   26 +-
>  drivers/soc/Kconfig                                |    1 +
>  drivers/soc/Makefile                               |    1 +
>  drivers/soc/cirrus/Kconfig                         |   17 +
>  drivers/soc/cirrus/Makefile                        |    2 +
>  drivers/soc/cirrus/soc-ep93xx.c                    |  252 ++++
>  drivers/spi/spi-ep93xx.c                           |   66 +-
>  drivers/watchdog/ep93xx_wdt.c                      |    8 +
>  drivers/watchdog/ts72xx_wdt.c                      |    8 +
>  include/dt-bindings/clock/cirrus,ep9301-syscon.h   |   46 +
>  include/linux/platform_data/dma-ep93xx.h           |   94 --
>  include/linux/platform_data/eth-ep93xx.h           |   10 -
>  include/linux/platform_data/keypad-ep93xx.h        |   32 -
>  include/linux/platform_data/spi-ep93xx.h           |   15 -
>  include/linux/soc/cirrus/ep93xx.h                  |   47 +-
>  sound/soc/cirrus/Kconfig                           |    9 -
>  sound/soc/cirrus/Makefile                          |    4 -
>  sound/soc/cirrus/edb93xx.c                         |  116 --
>  sound/soc/cirrus/ep93xx-i2s.c                      |   19 -
>  sound/soc/cirrus/ep93xx-pcm.c                      |   19 +-
>  71 files changed, 5161 insertions(+), 4550 deletions(-)
> ---
> base-commit: 0c3836482481200ead7b416ca80c68a29cfdaabd
> change-id: 20230605-ep93xx-01c76317e2d2
> 
> Best regards,
> --
> Nikita Shubin <nikita.shubin@maquefel.me>
> 
> 
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y cirrus/ep93xx-bk3.dtb cirrus/ep93xx-edb9302.dtb cirrus/ep93xx-ts7250.dtb' for 20240715-ep93xx-v11-0-4e924efda795@maquefel.me:

arch/arm/boot/dts/cirrus/ep93xx-edb9302.dtb: /soc/spi@808a0000/codec@0: failed to match any schema with compatible: ['cirrus,cs4271']






^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v11 00/38] ep93xx device tree conversion
  2024-07-15 12:12 ` [PATCH v11 00/38] ep93xx device tree conversion Rob Herring (Arm)
@ 2024-07-15 20:46   ` Alexander Sverdlin
  2024-08-02  7:36     ` Nikita Shubin
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Sverdlin @ 2024-07-15 20:46 UTC (permalink / raw)
  To: Rob Herring (Arm), Nikita Shubin
  Cc: Rob Herring, devicetree, linux-watchdog, Wim Van Sebroeck,
	Miquel Raynal, Damien Le Moal, Linus Walleij, Thierry Reding,
	Vignesh Raghavendra, linux-pwm, Uwe Kleine-König,
	Ralf Baechle, Sebastian Reichel, Krzysztof Kozlowski, linux-ide,
	Stephen Boyd, Krzysztof Kozlowski, linux-spi, Andy Shevchenko,
	Mark Brown, Hartley Sweeten, linux-kernel, Takashi Iwai,
	Andrew Lunn, Richard Weinberger, Eric Dumazet, linux-sound,
	Arnd Bergmann, linux-input, Jaroslav Kysela, Sergey Shtylyov,
	Lukasz Majewski

Hi Rob,

On Mon, 2024-07-15 at 06:12 -0600, Rob Herring (Arm) wrote:
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
> 
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
> 
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
> 
>   pip3 install dtschema --upgrade
> 
> 
> New warnings running 'make CHECK_DTBS=y cirrus/ep93xx-bk3.dtb cirrus/ep93xx-edb9302.dtb cirrus/ep93xx-ts7250.dtb' for 20240715-ep93xx-v11-0-4e924efda795@maquefel.me:
> 
> arch/arm/boot/dts/cirrus/ep93xx-edb9302.dtb: /soc/spi@808a0000/codec@0: failed to match any schema with compatible: ['cirrus,cs4271']

well, this seems to come from the fact is still documented in a .txt file
(Documentation/devicetree/bindings/sound/cs4271.txt), which is not really
the scope of this series. Hope it's OK to ignore it for the series.

-- 
Alexander Sverdlin.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v11 00/38] ep93xx device tree conversion
  2024-07-15 20:46   ` Alexander Sverdlin
@ 2024-08-02  7:36     ` Nikita Shubin
  0 siblings, 0 replies; 18+ messages in thread
From: Nikita Shubin @ 2024-08-02  7:36 UTC (permalink / raw)
  To: Rob Herring (Arm), Alexander Sverdlin
  Cc: Rob Herring, devicetree, linux-watchdog, Wim Van Sebroeck,
	Miquel Raynal, Damien Le Moal, Linus Walleij, Thierry Reding,
	Vignesh Raghavendra, linux-pwm, Uwe Kleine-König,
	Ralf Baechle, Sebastian Reichel, Krzysztof Kozlowski, linux-ide,
	Stephen Boyd, Krzysztof Kozlowski, linux-spi, Andy Shevchenko,
	Mark Brown, Hartley Sweeten, linux-kernel, Takashi Iwai,
	Andrew Lunn, Richard Weinberger, Eric Dumazet, linux-sound,
	Arnd Bergmann, linux-input, Jaroslav Kysela, Sergey Shtylyov,
	Lukasz Majewski

Hi Rob,

On Mon, 2024-07-15 at 22:46 +0200, Alexander Sverdlin wrote:
> Hi Rob,
> 
> On Mon, 2024-07-15 at 06:12 -0600, Rob Herring (Arm) wrote:
> > My bot found new DTB warnings on the .dts files added or changed in
> > this
> > series.
> > 
> > Some warnings may be from an existing SoC .dtsi. Or perhaps the
> > warnings
> > are fixed by another series. Ultimately, it is up to the platform
> > maintainer whether these warnings are acceptable or not. No need to
> > reply
> > unless the platform maintainer has comments.
> > 
> > If you already ran DT checks and didn't see these error(s), then
> > make sure dt-schema is up to date:
> > 
> >   pip3 install dtschema --upgrade
> > 
> > 
> > New warnings running 'make CHECK_DTBS=y cirrus/ep93xx-bk3.dtb
> > cirrus/ep93xx-edb9302.dtb cirrus/ep93xx-ts7250.dtb' for
> > 20240715-ep93xx-v11-0-4e924efda795@maquefel.me:
> > 
> > arch/arm/boot/dts/cirrus/ep93xx-edb9302.dtb:
> > /soc/spi@808a0000/codec@0: failed to match any schema with
> > compatible: ['cirrus,cs4271']
> 
> well, this seems to come from the fact is still documented in a .txt
> file
> (Documentation/devicetree/bindings/sound/cs4271.txt), which is not
> really
> the scope of this series. Hope it's OK to ignore it for the series.
> 

Indeed it resides in
Documentation/devicetree/bindings/sound/cs4271.txt.

Can we slip for the series ?

Actually i found this one on mail lists:

https://lore.kernel.org/lkml/20240709184231.125207-1-animeshagarwal28@gmail.com/

Conversion of cs4270.txt, Alexander isn't it almost the same thing as
cs4271 ?


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-08-02  7:36 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-15  8:38 [PATCH v11 00/38] ep93xx device tree conversion Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 06/38] dt-bindings: soc: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 08/38] dt-bindings: dma: " Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 10/38] dt-bindings: watchdog: Add Cirrus EP93x Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 12/38] dt-bindings: pwm: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 14/38] dt-bindings: spi: " Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 16/38] dt-bindings: net: " Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 18/38] dt-bindings: mtd: Add ts7200 nand-controller Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 20/38] dt-bindings: ata: Add Cirrus EP93xx Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 22/38] dt-bindings: input: Add Cirrus EP93xx keypad Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 26/38] ASoC: dt-bindings: ep93xx: Document DMA support Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 27/38] ASoC: dt-bindings: ep93xx: Document Audio Port support Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 29/38] ARM: dts: add Cirrus EP93XX SoC .dtsi Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 30/38] ARM: dts: ep93xx: add ts7250 board Nikita Shubin via B4 Relay
2024-07-15  8:38 ` [PATCH v11 31/38] ARM: dts: ep93xx: Add EDB9302 DT Nikita Shubin via B4 Relay
2024-07-15 12:12 ` [PATCH v11 00/38] ep93xx device tree conversion Rob Herring (Arm)
2024-07-15 20:46   ` Alexander Sverdlin
2024-08-02  7:36     ` Nikita Shubin

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).