d91612d7f0
The RTC power domain in sun6i and newer SoCs manages the 16 MHz RC oscillator (called "IOSC" or "osc16M") and the optional 32 kHz crystal oscillator (called "LOSC" or "osc32k"). Starting with the H6, this power domain also handles the 24 MHz DCXO (called variously "HOSC", "dcxo24M", or "osc24M") as well. The H6 also adds a calibration circuit for IOSC. Later SoCs introduce further variations on the design: - H616 adds an additional mux for the 32 kHz fanout source. - R329 adds an additional mux for the RTC timekeeping clock, a clock for the SPI bus between power domains inside the RTC, and removes the IOSC calibration functionality. Take advantage of the CCU framework to handle this increased complexity. This driver is intended to be a drop-in replacement for the existing RTC clock provider. So some runtime adjustment of the clock parents is needed, both to handle hardware differences, and to support the old binding which omitted some of the input clocks. Signed-off-by: Samuel Holland <samuel@sholland.org> Acked-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20220203021736.13434-6-samuel@sholland.org
76 lines
2.6 KiB
Makefile
76 lines
2.6 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
obj-$(CONFIG_SUNXI_CCU) += sunxi-ccu.o
|
|
|
|
# Common objects
|
|
sunxi-ccu-y += ccu_common.o
|
|
sunxi-ccu-y += ccu_mmc_timing.o
|
|
sunxi-ccu-y += ccu_reset.o
|
|
|
|
# Base clock types
|
|
sunxi-ccu-y += ccu_div.o
|
|
sunxi-ccu-y += ccu_frac.o
|
|
sunxi-ccu-y += ccu_gate.o
|
|
sunxi-ccu-y += ccu_mux.o
|
|
sunxi-ccu-y += ccu_mult.o
|
|
sunxi-ccu-y += ccu_phase.o
|
|
sunxi-ccu-y += ccu_sdm.o
|
|
|
|
# Multi-factor clocks
|
|
sunxi-ccu-y += ccu_nk.o
|
|
sunxi-ccu-y += ccu_nkm.o
|
|
sunxi-ccu-y += ccu_nkmp.o
|
|
sunxi-ccu-y += ccu_nm.o
|
|
sunxi-ccu-y += ccu_mp.o
|
|
|
|
# SoC support
|
|
obj-$(CONFIG_SUNIV_F1C100S_CCU) += suniv-f1c100s-ccu.o
|
|
obj-$(CONFIG_SUN20I_D1_CCU) += sun20i-d1-ccu.o
|
|
obj-$(CONFIG_SUN20I_D1_R_CCU) += sun20i-d1-r-ccu.o
|
|
obj-$(CONFIG_SUN50I_A64_CCU) += sun50i-a64-ccu.o
|
|
obj-$(CONFIG_SUN50I_A100_CCU) += sun50i-a100-ccu.o
|
|
obj-$(CONFIG_SUN50I_A100_R_CCU) += sun50i-a100-r-ccu.o
|
|
obj-$(CONFIG_SUN50I_H6_CCU) += sun50i-h6-ccu.o
|
|
obj-$(CONFIG_SUN50I_H6_R_CCU) += sun50i-h6-r-ccu.o
|
|
obj-$(CONFIG_SUN50I_H616_CCU) += sun50i-h616-ccu.o
|
|
obj-$(CONFIG_SUN4I_A10_CCU) += sun4i-a10-ccu.o
|
|
obj-$(CONFIG_SUN5I_CCU) += sun5i-ccu.o
|
|
obj-$(CONFIG_SUN6I_A31_CCU) += sun6i-a31-ccu.o
|
|
obj-$(CONFIG_SUN6I_RTC_CCU) += sun6i-rtc-ccu.o
|
|
obj-$(CONFIG_SUN8I_A23_CCU) += sun8i-a23-ccu.o
|
|
obj-$(CONFIG_SUN8I_A33_CCU) += sun8i-a33-ccu.o
|
|
obj-$(CONFIG_SUN8I_A83T_CCU) += sun8i-a83t-ccu.o
|
|
obj-$(CONFIG_SUN8I_H3_CCU) += sun8i-h3-ccu.o
|
|
obj-$(CONFIG_SUN8I_R40_CCU) += sun8i-r40-ccu.o
|
|
obj-$(CONFIG_SUN8I_V3S_CCU) += sun8i-v3s-ccu.o
|
|
obj-$(CONFIG_SUN8I_DE2_CCU) += sun8i-de2-ccu.o
|
|
obj-$(CONFIG_SUN8I_R_CCU) += sun8i-r-ccu.o
|
|
obj-$(CONFIG_SUN9I_A80_CCU) += sun9i-a80-ccu.o
|
|
obj-$(CONFIG_SUN9I_A80_CCU) += sun9i-a80-de-ccu.o
|
|
obj-$(CONFIG_SUN9I_A80_CCU) += sun9i-a80-usb-ccu.o
|
|
|
|
suniv-f1c100s-ccu-y += ccu-suniv-f1c100s.o
|
|
sun20i-d1-ccu-y += ccu-sun20i-d1.o
|
|
sun20i-d1-r-ccu-y += ccu-sun20i-d1-r.o
|
|
sun50i-a64-ccu-y += ccu-sun50i-a64.o
|
|
sun50i-a100-ccu-y += ccu-sun50i-a100.o
|
|
sun50i-a100-r-ccu-y += ccu-sun50i-a100-r.o
|
|
sun50i-h6-ccu-y += ccu-sun50i-h6.o
|
|
sun50i-h6-r-ccu-y += ccu-sun50i-h6-r.o
|
|
sun50i-h616-ccu-y += ccu-sun50i-h616.o
|
|
sun4i-a10-ccu-y += ccu-sun4i-a10.o
|
|
sun5i-ccu-y += ccu-sun5i.o
|
|
sun6i-a31-ccu-y += ccu-sun6i-a31.o
|
|
sun6i-rtc-ccu-y += ccu-sun6i-rtc.o
|
|
sun8i-a23-ccu-y += ccu-sun8i-a23.o
|
|
sun8i-a33-ccu-y += ccu-sun8i-a33.o
|
|
sun8i-a83t-ccu-y += ccu-sun8i-a83t.o
|
|
sun8i-h3-ccu-y += ccu-sun8i-h3.o
|
|
sun8i-r40-ccu-y += ccu-sun8i-r40.o
|
|
sun8i-v3s-ccu-y += ccu-sun8i-v3s.o
|
|
sun8i-de2-ccu-y += ccu-sun8i-de2.o
|
|
sun8i-r-ccu-y += ccu-sun8i-r.o
|
|
sun9i-a80-ccu-y += ccu-sun9i-a80.o
|
|
sun9i-a80-de-ccu-y += ccu-sun9i-a80-de.o
|
|
sun9i-a80-usb-ccu-y += ccu-sun9i-a80-usb.o
|