mbox series

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

Message ID 20241024170540.2721307-1-masterr3c0rd@epochal.quest (mailing list archive)
Headers show
Series sunxi: A100/A133 second stage support | expand

Message

Cody Eksal Oct. 24, 2024, 5:05 p.m. UTC
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

Comments

Rob Herring (Arm) Oct. 25, 2024, 1:55 p.m. UTC | #1
On Thu, 24 Oct 2024 14:05:18 -0300, Cody Eksal wrote:
> 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
> 
> 
> 


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 allwinner/sun50i-a100-allwinner-perf1.dtb' for 20241024170540.2721307-1-masterr3c0rd@epochal.quest:

arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dtb: cpu-opp-table: $nodename:0: 'cpu-opp-table' does not match '^opp-table(-[a-z0-9]+)?$'
	from schema $id: http://devicetree.org/schemas/opp/allwinner,sun50i-h6-operating-points.yaml#
arch/arm64/boot/dts/allwinner/sun50i-a100-allwinner-perf1.dtb: cpu-opp-table: 'opp@1080000000', 'opp@1200000000', 'opp@1320000000', 'opp@1464000000', 'opp@408000000', 'opp@600000000', 'opp@816000000' do not match any of the regexes: '^opp-[0-9]+$', 'pinctrl-[0-9]+'
	from schema $id: http://devicetree.org/schemas/opp/allwinner,sun50i-h6-operating-points.yaml#