[PATCH 00/13] sunxi: A100/A133 second stage support

Cody Eksal
2024-10-24T17:19:14Z

Hello! This is my first submission, so please be gentle :)

Back in 2020, two Allwinner employees, Yangtao Li and Shuosheng Huang, each
submitted a patch series for the A100 series of SoCs; [1] intended to add
support for the watchdog, ARM PMU, DMA, USB, and (e)MMC controller, and [2]
implemented DVFS support. Some patches from the first series landed, but
the rest were seemingly abandoned.

Although references to the A100 have been removed by Allwinner, it is
believed that the A133 and A133 Plus, which are still available, are simply
better binned variants of the A100; no other differences have been noted
thus far, and the drivers for the A100 work on the A133 without any
additional modifications. There has been a resurgence of interest in the
A133; patches to allow mainline U-Boot to run on these devices are
currently in progress.

I have rebased the patches that failed to land, applying the feedback
provided by maintainers at the time. Some DT binding patches were added, as
there were a few cases where compatibles were used without being
documented. Minor reworks were necessary to apply certain patches, as the
drivers they modified have matured over time.

Patches 1 and 2 add PMU and watchdog nodes to the device tree. This is
followed by patches 3-8, which implement support for the USB host and OTG
peripherals. Patches 9 and 10 add MMC nodes, rounding out what originally
made up the first patch series; support for these already exists from
earlier patches. Patches 11-13 finish the job of the second original
series and this series, implementing OPP and enabling DVFS on these SoCs.

This series is also available on GitHub [3].

A sincere thanks to Andre for encouraging me to submit these patches,
Parthiban for testing this tree on his board, and to the linux-sunxi
community and its resources for pointing me to these abandoned series in
the first place [4].

[1] https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=380887&archive=both&state=*
[2] https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=396055&archive=both&state=*
[3] https://github.com/BrokenR3C0RD/linux-a100/compare/c2ee9f59..allwinner-a100
[4] https://linux-sunxi.org/Linux_mainlining_effort#Work_In_Progress

Cody Eksal (4):
dt-bindings: phy: sun50i-a64: add a100 compatible
dt-bindings: usb: Add A100 compatible string
dt-bindings: usb: sunxi-musb: Add A100 compatible string
dt-bindings: opp: h6: Add A100 operating points

Shuosheng Huang (2):
cpufreq: sun50i: add a100 cpufreq support
arm64: dts: allwinner: a100: Add CPU Operating Performance Points
table

Yangtao Li (7):
arm64: dts: allwinner: A100: Add PMU mode
arm64: dts: allwinner: a100: add watchdog node
phy: sun4i-usb: add support for A100 USB PHY
arm64: dts: allwinner: a100: add usb related nodes
arm64: allwinner: A100: enable EHCI, OHCI and USB PHY nodes in Perf1
arm64: allwinner: a100: Add MMC related nodes
arm64: dts: allwinner: a100: perf1: Add eMMC and MMC node

.../allwinner,sun50i-h6-operating-points.yaml | 1 +
.../phy/allwinner,sun50i-a64-usb-phy.yaml | 1 +
.../usb/allwinner,sun4i-a10-musb.yaml | 1 +
.../devicetree/bindings/usb/generic-ehci.yaml | 1 +
.../devicetree/bindings/usb/generic-ohci.yaml | 1 +
.../allwinner/sun50i-a100-allwinner-perf1.dts | 59 ++++++
.../dts/allwinner/sun50i-a100-cpu-opp.dtsi | 90 ++++++++
.../arm64/boot/dts/allwinner/sun50i-a100.dtsi | 193 +++++++++++++++++-
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 28 +++
drivers/phy/allwinner/phy-sun4i-usb.c | 11 +
10 files changed, 383 insertions(+), 3 deletions(-)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a100-cpu-opp.dtsi

base-commit: c2ee9f594da826bea183ed14f2cc029c719bf4da
--
2.47.0