Skip to content

ARM: mvebu: Armada 39x basic support, and preparatory cleanups

Gregory CLEMENT linux-arm-kernel linux-devicetree linux-gpio 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v3 Latest0 of 20 patches 0 repliesNew

Patches in v3 No applies recorded yet

None of the 20 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 00/20] ARM: mvebu: Armada 39x basic support, and preparatory cleanups

Hi Thomas,

Quoted 118 lines · Thomas Petazzoni

Hello,

This is the third version of the patch series adding Armada 39x basic support.

This set of patches add basic support for a new family of Marvell EBU
processors: the Armada 39x. They are based on Cortex-A9 (like Armada 375 and 38x) and the most important new feature is probably the addition of 10 GbE support.

See http://www.marvell.com/embedded-processors/armada-39x/ for a basic introduction.

Note that this web page talks about an Armada 395 and Armada 398, but so far the technical documentation we have been given access to only describes Armada 390 and Armada 398, so this series supports only Armada 390 and Armada 398 so far. Support for Armada 395 might be added in the future, once we get access to the appropriate technical details.

Changes v2 -> v3:

- Rebased on top of v4.0-rc1

- Add support for the L2 cache

- Added Acked-by from Gregory Clement on

ARM: mvebu: add __initconst specifiers on DT_MACHINE_START dt_compat tables
ARM: mvebu: fix usb@ unit address on Armada 38x to match register address
ARM: mvebu: add missing UART alias on Armada 38x
devicetree: bindings: add DT binding for the Marvell Armada 39x SoC family

- Renamed 'ARM: mvebu: add missing UART alias on Armada 38x' to 'ARM:
mvebu: add missing UART labels on Armada 38x'.

- Added a patch 'ARM: mvebu: add UART labels to Armada 375'.

- Change 'ARM: mvebu: add stdout-path to all armada-*.dts' to go further and eliminate completely /chosen/bootargs. This removes the non-desired 'earlyprintk' argument, and since console= was the only remaining kernel parameter, using stdout-path makes more sense. Requested by Rob Herring and Mark Rutland.

- Dropped the patch "ARM: mvebu: use IRQ macros to define the SDHCI interrupt on Armada 38x" from the series, since Gregory Clement already submitted it as part of a different series.

- Added patches 'ARM: mvebu: enable Armada 39x in mvebu_v7_defconfig' and 'ARM: configs: enable Marvell Armada 39x in multi_v7_defconfig' to update mvebu_v7_defconfig and multi_v7_defconfig so that they enable Marvell Armada 39x by default. Suggested by Gregory Clement.

- Fix the unit address of the MPIC interrupt controller, in both the newly added Armada 39x support, as well as in the existing Armada 370, 375, 38x and XP support. Suggested by Gregory Clement.

Changes v1 -> v2:

- At the SoC level, add the description of SPI controller 0 and 1, NAND flash controller, SDHCI controller, Core Divider Clock (needed by the NAND flash controller), the main PLL clock (needed by the Core Divider Clock) and the XOR engines.

- At the board level, add the description of the SPI flash connected to SPI bus 1, which contains the bootloader, and the description of the NAND flash.

- Fix space vs. tab.

- Use __initconst when defining the dt_compat table for Armada 39x. Suggested by Stephen Boyd.

- Fix typo in commit log of "ARM: mvebu: add core support for Armada 39x", noticed by Maxime Ripard.

- Remove earlyprintk from /chosen/bootargs. Suggested by Andrew Lunn.

- Add aliases for uart[0-3]. Suggested by Andrew Lunn.

- Add /chosen/stdout-path to Armada 398 DB DT. Suggested by Andrew Lunn.

- Move pinctrl configurations at the SoC level. Suggested by Andrew Lunn.

- Add several preparation/cleanup patches not related to Armada 39x directly, but whose topics were found while working on Armada 39x support:

- Add __initconst to all dt_compat table in mach-mvebu.
- Fixup usb@ unit address on Armada 38x
- Add stdout-path to all armada-*.dts
- Use GIC and IRQ macros in SDHCI definition of Armada 38x
- Add missing UART alias on Armada 38x

Thanks!

Thomas

Thomas Petazzoni (20):
ARM: mvebu: add __initconst specifiers on DT_MACHINE_START dt_compat
tables
ARM: mvebu: fix usb@ unit address on Armada 38x to match register
address
ARM: mvebu: add missing UART labels on Armada 38x
ARM: mvebu: add UART labels to Armada 375
ARM: mvebu: remove aliases for Ethernet devices on Armada

    370/375/38x/XP

ARM: mvebu: add serial port aliases on Armada 370/375/38x/XP
ARM: mvebu: use stdout-path in all armada-*.dts
ARM: mvebu: fix unit address of MPIC nodes
devicetree: bindings: add DT binding for the Marvell Armada 39x SoC
family
devicetree: bindings: update DT bindings for Marvell EBU clock support
devicetree: bindings: add Device Tree bindings for Armada 39x
pin-muxing controller
devicetree: bindings: add new SMP enable method for Marvell Armada 39x

Quoted 8 lines

clk: mvebu: extend common code to allow an optional refclk
clk: mvebu: add Marvell Armada 39x driver
pinctrl: mvebu: add pinctrl driver for Marvell Armada 39x
ARM: mvebu: add core support for Armada 39x
ARM: mvebu: add Device Tree files for Armada 39x SoC and board
Documentation: arm: update supported Marvell EBU processors
ARM: mvebu: enable Armada 39x in mvebu_v7_defconfig
ARM: configs: enable Marvell Armada 39x in multi_v7_defconfig

Patches 1 applied to mvebu/cleanup
Patches 2 to 8 and patch 17 applied to mvebu/dt
Patches 9,12,16 and 18 applied to mvebu/soc
Patch 19 applied to mvebu/defconfig

and

Patches 10,13 and 14 applied to mvebu/clk as requested by Mike.

I had to amend the patch "ARM: mvebu: fix unit address of MPIC nodes" by removing the armada-38x related part which was already applied by the patch "ARM: mvebu: Fix MPIC unit address".

Patch 20 should be directly taken by the arm-soc maintainer.

Thanks,

Gregory

Quoted 63 lines
 Documentation/arm/Marvell/README                   |   5 +
 .../devicetree/bindings/arm/armada-39x.txt         |  20 +
 Documentation/devicetree/bindings/arm/cpus.txt     |   1 +
 .../devicetree/bindings/clock/mvebu-core-clock.txt |   9 +
 .../bindings/clock/mvebu-gated-clock.txt           |  15 +-
 .../pinctrl/marvell,armada-39x-pinctrl.txt         |  78 ++++
 arch/arm/boot/dts/Makefile                         |   2 +
 arch/arm/boot/dts/armada-370-db.dts                |   2 +-
 arch/arm/boot/dts/armada-370-mirabox.dts           |   2 +-
 arch/arm/boot/dts/armada-370-netgear-rn102.dts     |   2 +-
 arch/arm/boot/dts/armada-370-netgear-rn104.dts     |   2 +-
 arch/arm/boot/dts/armada-370-rd.dts                |   2 +-
 arch/arm/boot/dts/armada-370-synology-ds213j.dts   |   3 +-
 arch/arm/boot/dts/armada-370-xp.dtsi               |   6 +-
 arch/arm/boot/dts/armada-370.dtsi                  |   2 +-
 arch/arm/boot/dts/armada-375-db.dts                |   2 +-
 arch/arm/boot/dts/armada-375.dtsi                  |  10 +-
 arch/arm/boot/dts/armada-385-db-ap.dts             |   3 +-
 arch/arm/boot/dts/armada-388-db.dts                |   4 +-
 arch/arm/boot/dts/armada-388-gp.dts                |   5 +-
 arch/arm/boot/dts/armada-388-rd.dts                |   2 +-
 arch/arm/boot/dts/armada-38x.dtsi                  |  11 +-
 .../dts/{armada-xp-matrix.dts => armada-390.dtsi}  |  71 +---
 .../dts/{armada-388-db.dts => armada-398-db.dts}   | 111 ++---
 .../dts/{armada-xp-matrix.dts => armada-398.dtsi}  |  70 +---
 .../boot/dts/{armada-375.dtsi => armada-39x.dtsi}  | 446 ++++++++-------------
 arch/arm/boot/dts/armada-xp-axpwifiap.dts          |   2 +-
 arch/arm/boot/dts/armada-xp-db.dts                 |   2 +-
 arch/arm/boot/dts/armada-xp-gp.dts                 |   2 +-
 arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts    |   3 +-
 arch/arm/boot/dts/armada-xp-matrix.dts             |   2 +-
 arch/arm/boot/dts/armada-xp-mv78260.dtsi           |   1 -
 arch/arm/boot/dts/armada-xp-mv78460.dtsi           |   1 -
 arch/arm/boot/dts/armada-xp-netgear-rn2120.dts     |   2 +-
 arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts   |   2 +-
 arch/arm/boot/dts/armada-xp-synology-ds414.dts     |   3 +-
 arch/arm/boot/dts/armada-xp.dtsi                   |   5 +-
 arch/arm/configs/multi_v7_defconfig                |   1 +
 arch/arm/configs/mvebu_v7_defconfig                |   1 +
 arch/arm/mach-mvebu/Kconfig                        |  14 +
 arch/arm/mach-mvebu/board-v7.c                     |  20 +-
 arch/arm/mach-mvebu/dove.c                         |   2 +-
 arch/arm/mach-mvebu/kirkwood.c                     |   2 +-
 arch/arm/mach-mvebu/platsmp-a9.c                   |   2 +
 drivers/clk/mvebu/Kconfig                          |   4 +
 drivers/clk/mvebu/Makefile                         |   1 +
 drivers/clk/mvebu/armada-39x.c                     | 156 +++++++
 drivers/clk/mvebu/common.c                         |  17 +
 drivers/clk/mvebu/common.h                         |   1 +
 drivers/pinctrl/mvebu/Kconfig                      |   4 +
 drivers/pinctrl/mvebu/Makefile                     |   1 +
 drivers/pinctrl/mvebu/pinctrl-armada-39x.c         | 432 ++++++++++++++++++++
 52 files changed, 1045 insertions(+), 524 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/armada-39x.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,armada-39x-pinctrl.txt
 copy arch/arm/boot/dts/{armada-xp-matrix.dts => armada-390.dtsi} (61%)
 copy arch/arm/boot/dts/{armada-388-db.dts => armada-398-db.dts} (70%)
 copy arch/arm/boot/dts/{armada-xp-matrix.dts => armada-398.dtsi} (61%)
 copy arch/arm/boot/dts/{armada-375.dtsi => armada-39x.dtsi} (55%)
 create mode 100644 drivers/clk/mvebu/armada-39x.c
 create mode 100644 drivers/pinctrl/mvebu/pinctrl-armada-39x.c
Signature · 4 lines
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com