Samuel Holland 1872b7007d clk: sunxi: Add an A31/A23/A33 legacy PRCM MFD driver
When the CCU binding and driver for the PRCM were written, it seems the
intention was to convert the A31 and A23/A33 devicetrees to use them.
However, that never happened, so those SoCs still use the old binding,
with an MFD for the PRCM, and separate DT nodes for clocks and resets.

The specifier in the legacy clock/reset bindings is the register bit
offset, so the drivers are trivial. Only the outer PRCM node has a reg
property, so the clock/reset drivers use the parent device's MMIO base.

Commit-notes:
I didn't reuse the sunxi gate/reset ops, because the driver is actually
smaller without them. I tested this driver on an A33 tablet.
END

Series-to: Andre Przywara <andre.przywara@arm.com>
Series-to: Jagan Teki <jagan@amarulasolutions.com>
Series-to: Lukasz Majewski <lukma@denx.de>
Series-to: Sean Anderson <seanga2@gmail.com>

Signed-off-by: Samuel Holland <samuel@sholland.org>
2023-10-30 23:44:44 -05:00

135 lines
3.5 KiB
Plaintext

config CLK_SUNXI
bool "Clock support for Allwinner SoCs"
depends on CLK && ARCH_SUNXI
select DM_RESET
select SPL_DM_RESET if SPL_CLK
default y
help
This enables support for common clock driver API on Allwinner
SoCs.
if CLK_SUNXI
config CLK_SUNIV_F1C100S
bool "Clock driver for Allwinner F1C100s"
default MACH_SUNIV
help
This enables common clock driver support for platforms based
on Allwinner F1C100s SoC.
config CLK_SUN4I_A10
bool "Clock driver for Allwinner A10/A20"
default MACH_SUN4I || MACH_SUN7I
help
This enables common clock driver support for platforms based
on Allwinner A10/A20 SoC.
config CLK_SUN5I_A10S
bool "Clock driver for Allwinner A10s/A13"
default MACH_SUN5I
help
This enables common clock driver support for platforms based
on Allwinner A10s/A13 SoC.
config CLK_SUN6I_A31
bool "Clock driver for Allwinner A31/A31s"
default MACH_SUN6I
help
This enables common clock driver support for platforms based
on Allwinner A31/A31s SoC.
config CLK_SUN6I_A31_R
bool "Clock driver for Allwinner A31 generation PRCM (CCU)"
default SUNXI_GEN_SUN6I
help
This enables common clock driver support for the PRCM
in Allwinner A31/A31s/A23/A33/A83T/H3/A64/H5 SoCs using
the CCU binding.
config CLK_SUN6I_PRCM
bool "Clock driver for Allwinner A31 generation PRCM (legacy)"
default MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33
help
This enables common clock driver support for the PRCM
in Allwinner A31/A31s/A23/A33 SoCs using the legacy PRCM
MFD binding.
config CLK_SUN8I_A23
bool "Clock driver for Allwinner A23/A33"
default MACH_SUN8I_A23 || MACH_SUN8I_A33
help
This enables common clock driver support for platforms based
on Allwinner A23/A33 SoC.
config CLK_SUN8I_A83T
bool "Clock driver for Allwinner A83T"
default MACH_SUN8I_A83T
help
This enables common clock driver support for platforms based
on Allwinner A83T SoC.
config CLK_SUN8I_R40
bool "Clock driver for Allwinner R40"
default MACH_SUN8I_R40
help
This enables common clock driver support for platforms based
on Allwinner R40 SoC.
config CLK_SUN8I_V3S
bool "Clock driver for Allwinner V3S"
default MACH_SUN8I_V3S
help
This enables common clock driver support for platforms based
on Allwinner V3S SoC.
config CLK_SUN9I_A80
bool "Clock driver for Allwinner A80"
default MACH_SUN9I
help
This enables common clock driver support for platforms based
on Allwinner A80 SoC.
config CLK_SUN8I_H3
bool "Clock driver for Allwinner H3/H5"
default MACH_SUNXI_H3_H5
help
This enables common clock driver support for platforms based
on Allwinner H3/H5 SoC.
config CLK_SUN20I_D1
bool "Clock driver for Allwinner D1"
default MACH_SUN8I_R528
help
This enables common clock driver support for platforms based
on Allwinner D1 SoC.
config CLK_SUN50I_H6
bool "Clock driver for Allwinner H6"
default MACH_SUN50I_H6
help
This enables common clock driver support for platforms based
on Allwinner H6 SoC.
config CLK_SUN50I_H6_R
bool "Clock driver for Allwinner H6 generation PRCM"
default SUN50I_GEN_H6
help
This enables common clock driver support for the PRCM
in Allwinner H6/H616 SoCs.
config CLK_SUN50I_H616
bool "Clock driver for Allwinner H616"
default MACH_SUN50I_H616
help
This enables common clock driver support for platforms based
on Allwinner H616 SoC.
config CLK_SUN50I_A64
bool "Clock driver for Allwinner A64"
default MACH_SUN50I
help
This enables common clock driver support for platforms based
on Allwinner A64 SoC.
endif # CLK_SUNXI