mbox series

[00/14] arm64: dts: allwinner: Add basic Allwinner A523 support

Message ID 20241111013033.22793-1-andre.przywara@arm.com
Headers show
Series arm64: dts: allwinner: Add basic Allwinner A523 support | expand

Message

Andre Przywara Nov. 11, 2024, 1:30 a.m. UTC
Hi,

this series adds basic DT support for the Allwinner A523 SoC, plus the
Avaota-A1 router board using the T527 package variant of that SoC.[1]
Functionality-wise it relies on the pinctrl[2] and clock[3] support
series, though there is no direct code dependency series to this series
(apart from the respective binding patches in the two series').

Most of the patches add DT binding documentation for the most basic
peripherals, the vast majority of them actually being already supported,
courtesy of identical IP being used. This includes MMC and USB 2.0, so
with the above mentioned clock and pinctrl support this gives an already
somewhat usable mainline support for this new SoC family.
The watchdog is not completely compatible, but is an easy addition, so
this bit is included in here as well.

The A523 features 8 Arm Cortex-A55 cores, organised in two clusters,
clocked separately, with different OPP limits, in some kind of
little/LITTLE configuration. The GPU is a Arm Mali G57 MC01, and the chip
also features a single PCIe 2.1 lane, sharing a PHY with some USB 3.1
controller - which means only one of the two can be used.
The rest of the SoC is the usual soup of multimedia SoC IP, with eDP
support and two Gigabit Ethernet MACs among the highlights.

The main feature is patch 11/14, which adds the SoC .dtsi. This for now
is limited to the parts that are supported and could be tested. At the
moment there is no PSCI firmware, even the TF-A port from the BSP does
not seem to work for me. That's why the secondary cores have been omitted
for now, among other instances of some IP that I couldn't test yet.
I plan to add them in one of the next revisions.

The last patch adds basic support for the Avaota-A1 router board,
designed by YuzukiHD, with some boards now built by Pine64.

The mainline firmware side in general is somewhat lacking still: I have
basic U-Boot support working (including MMC and USB), although still
without DRAM support. This is for now covered by some binary blob found
in the (otherwise Open Source) Syterkit firmware, which also provides
the BSP versions of TF-A and the required (RISC-V) management core
firmware. Fortunately we have indications that DRAM support is not that
tricky, as the IP blocks are very similar to already supported, and dev
boards are on their way to the right people.

Meanwhile I would like people to have a look at those DT bits here. Please
compare them to the available user manual, and test them if you have access
to hardware.

Based on v6.12-rc1.
I pushed a branch with all the three series combined here:
https://github.com/apritzel/linux/commits/a523-v1/

Cheers,
Andre

[1] https://linux-sunxi.org/A523#Family_of_sun55iw3
[2] https://lore.kernel.org/linux-sunxi/20241111005750.13071-1-andre.przywara@arm.com/T/#t
[3] https://lore.kernel.org/linux-sunxi/20241111004722.10130-1-andre.przywara@arm.com/T/#t

Andre Przywara (14):
  dt-bindings: mmc: sunxi: Simplify compatible string listing
  dt-bindings: mmc: sunxi: add compatible strings for Allwinner A523
  dt-bindings: watchdog: sunxi: add Allwinner A523 compatible string
  watchdog: sunxi_wdt: Add support for Allwinner A523
  dt-bindings: i2c: mv64xxx: Add Allwinner A523 compatible string
  dt-bindings: irq: sun7i-nmi: document the Allwinner A523 NMI
    controller
  dt-bindings: phy: document Allwinner A523 USB-2.0 PHY
  dt-bindings: usb: sunxi-musb: add Allwinner A523 compatible string
  dt-bindings: usb: add A523 compatible string for EHCI and OCHI
  dt-bindings: rtc: sun6i: Add Allwinner A523 support
  arm64: dts: allwinner: Add Allwinner A523 .dtsi file
  dt-bindings: vendor-prefixes: Add YuzukiHD name
  dt-bindings: arm: sunxi: Add Avaota A1 board
  arm64: dts: allwinner: a523: add Avaota-A1 router support

 .../devicetree/bindings/arm/sunxi.yaml        |   5 +
 .../bindings/i2c/marvell,mv64xxx-i2c.yaml     |   1 +
 .../allwinner,sun7i-a20-sc-nmi.yaml           |   1 +
 .../bindings/mmc/allwinner,sun4i-a10-mmc.yaml |  40 +-
 .../phy/allwinner,sun50i-a64-usb-phy.yaml     |  10 +-
 .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml |   4 +-
 .../usb/allwinner,sun4i-a10-musb.yaml         |   1 +
 .../devicetree/bindings/usb/generic-ehci.yaml |   1 +
 .../devicetree/bindings/usb/generic-ohci.yaml |   1 +
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 .../watchdog/allwinner,sun4i-a10-wdt.yaml     |   2 +
 arch/arm64/boot/dts/allwinner/Makefile        |   1 +
 .../arm64/boot/dts/allwinner/sun55i-a523.dtsi | 386 ++++++++++++++++++
 .../dts/allwinner/sun55i-t527-avaota-a1.dts   | 311 ++++++++++++++
 drivers/watchdog/sunxi_wdt.c                  |  11 +
 15 files changed, 751 insertions(+), 26 deletions(-)
 create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi
 create mode 100644 arch/arm64/boot/dts/allwinner/sun55i-t527-avaota-a1.dts