mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-10 17:26:39 +07:00
c8a8c63008
This patch adds the following Kconfig options to prepare the transition to common clk framework: - AT91_USE_OLD_CLK: this option is selected by every SoC which does not support new at91 clks based on common clk framework (SoC which does not define the clock tree in its device tree). This options is also selected when the user choose non dt boards support (new at91 clks can only be registered from a device tree definition). - COMMON_CLK_AT91: this option cannot be selected directly. Instead it is enabled if these 3 conditions are met: * at least one of the selected SoCs have a PMC (Power Management Controller) Unit * device tree support is enabled * the old at91 clk implementation is disabled (every selected SoC define its clks in its device tree and non dt boards support is disabled) - OLD_CLK_AT91: this option cannot be selected directly. Instead it is enabled if these 2 conditions are met: * at least one of the selected SoCs have a PMC (Power Management Controller) Unit * at least one of the selected SoCs does not define its clks in its device tree or non dt-boards support is enabled This patch selects AT91_USE_OLD_CLK in all currently supported SoCs. These selects will be removed after clk definitions are properly added in each soc's device tree. It also selects AT91_USE_OLD_CLK in all non-dt boards support. AT91_PMC_UNIT references are replaced by OLD_CLK_AT91, because PMC Unit is enabled for both old and common clk implementations, and old clk implementation should not be compiled if COMMON_CLK is enabled. To avoid future link errors, a new stub is created for at91_dt_clock_init function if OLD_CLK_AT91 is disabled. A new check is added in dt init functions (setup.c) to prepare for SoCs supporting new clk implementation. These SoCs won't setup the register_clocks callback (clk registration is done using of_clk_init). Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
234 lines
5.4 KiB
Plaintext
234 lines
5.4 KiB
Plaintext
if ARCH_AT91
|
|
|
|
config HAVE_AT91_DBGU0
|
|
bool
|
|
|
|
config HAVE_AT91_DBGU1
|
|
bool
|
|
|
|
config AT91_USE_OLD_CLK
|
|
bool
|
|
|
|
config AT91_PMC_UNIT
|
|
bool
|
|
default !ARCH_AT91X40
|
|
|
|
config COMMON_CLK_AT91
|
|
bool
|
|
default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK
|
|
select COMMON_CLK
|
|
|
|
config OLD_CLK_AT91
|
|
bool
|
|
default AT91_PMC_UNIT && AT91_USE_OLD_CLK
|
|
|
|
config AT91_SAM9_ALT_RESET
|
|
bool
|
|
default !ARCH_AT91X40
|
|
|
|
config AT91_SAM9G45_RESET
|
|
bool
|
|
default !ARCH_AT91X40
|
|
|
|
config AT91_SAM9_TIME
|
|
bool
|
|
|
|
config SOC_AT91SAM9
|
|
bool
|
|
select AT91_SAM9_TIME
|
|
select CPU_ARM926T
|
|
select GENERIC_CLOCKEVENTS
|
|
select MULTI_IRQ_HANDLER
|
|
select SPARSE_IRQ
|
|
|
|
config SOC_SAMA5
|
|
bool
|
|
select AT91_SAM9_TIME
|
|
select CPU_V7
|
|
select GENERIC_CLOCKEVENTS
|
|
select MULTI_IRQ_HANDLER
|
|
select SPARSE_IRQ
|
|
|
|
menu "Atmel AT91 System-on-Chip"
|
|
|
|
choice
|
|
|
|
prompt "Core type"
|
|
|
|
config SOC_SAM_V4_V5
|
|
bool "ARM7/ARM9"
|
|
help
|
|
Select this if you are using one of Atmel's AT91SAM9, AT91RM9200
|
|
or AT91X40 SoC.
|
|
|
|
config SOC_SAM_V7
|
|
bool "Cortex A5"
|
|
help
|
|
Select this if you are using one of Atmel's SAMA5D3 SoC.
|
|
|
|
endchoice
|
|
|
|
comment "Atmel AT91 Processor"
|
|
|
|
if SOC_SAM_V7
|
|
config SOC_SAMA5D3
|
|
bool "SAMA5D3 family"
|
|
depends on SOC_SAM_V7
|
|
select SOC_SAMA5
|
|
select HAVE_FB_ATMEL
|
|
select HAVE_AT91_DBGU1
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using one of Atmel's SAMA5D3 family SoC.
|
|
This support covers SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35.
|
|
endif
|
|
|
|
if SOC_SAM_V4_V5
|
|
config SOC_AT91RM9200
|
|
bool "AT91RM9200"
|
|
select CPU_ARM920T
|
|
select GENERIC_CLOCKEVENTS
|
|
select HAVE_AT91_DBGU0
|
|
select MULTI_IRQ_HANDLER
|
|
select SPARSE_IRQ
|
|
select AT91_USE_OLD_CLK
|
|
|
|
config SOC_AT91SAM9260
|
|
bool "AT91SAM9260, AT91SAM9XE or AT91SAM9G20"
|
|
select HAVE_AT91_DBGU0
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using one of Atmel's AT91SAM9260, AT91SAM9XE
|
|
or AT91SAM9G20 SoC.
|
|
|
|
config SOC_AT91SAM9261
|
|
bool "AT91SAM9261 or AT91SAM9G10"
|
|
select HAVE_AT91_DBGU0
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using one of Atmel's AT91SAM9261 or AT91SAM9G10 SoC.
|
|
|
|
config SOC_AT91SAM9263
|
|
bool "AT91SAM9263"
|
|
select HAVE_AT91_DBGU1
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
|
|
config SOC_AT91SAM9RL
|
|
bool "AT91SAM9RL"
|
|
select HAVE_AT91_DBGU0
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
|
|
config SOC_AT91SAM9G45
|
|
bool "AT91SAM9G45 or AT91SAM9M10 families"
|
|
select HAVE_AT91_DBGU1
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using one of Atmel's AT91SAM9G45 family SoC.
|
|
This support covers AT91SAM9G45, AT91SAM9G46, AT91SAM9M10 and AT91SAM9M11.
|
|
|
|
config SOC_AT91SAM9X5
|
|
bool "AT91SAM9x5 family"
|
|
select HAVE_AT91_DBGU0
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using one of Atmel's AT91SAM9x5 family SoC.
|
|
This means that your SAM9 name finishes with a '5' (except if it is
|
|
AT91SAM9G45!).
|
|
This support covers AT91SAM9G15, AT91SAM9G25, AT91SAM9X25, AT91SAM9G35
|
|
and AT91SAM9X35.
|
|
|
|
config SOC_AT91SAM9N12
|
|
bool "AT91SAM9N12 family"
|
|
select HAVE_AT91_DBGU0
|
|
select HAVE_FB_ATMEL
|
|
select SOC_AT91SAM9
|
|
select AT91_USE_OLD_CLK
|
|
help
|
|
Select this if you are using Atmel's AT91SAM9N12 SoC.
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
source arch/arm/mach-at91/Kconfig.non_dt
|
|
endif # SOC_SAM_V4_V5
|
|
|
|
comment "Generic Board Type"
|
|
|
|
config MACH_AT91RM9200_DT
|
|
bool "Atmel AT91RM9200 Evaluation Kits with device-tree support"
|
|
depends on SOC_AT91RM9200
|
|
select USE_OF
|
|
help
|
|
Select this if you want to experiment device-tree with
|
|
an Atmel RM9200 Evaluation Kit.
|
|
|
|
config MACH_AT91SAM9_DT
|
|
bool "Atmel AT91SAM Evaluation Kits with device-tree support"
|
|
depends on SOC_AT91SAM9
|
|
select USE_OF
|
|
help
|
|
Select this if you want to experiment device-tree with
|
|
an Atmel Evaluation Kit.
|
|
|
|
config MACH_SAMA5_DT
|
|
bool "Atmel SAMA5 Evaluation Kits with device-tree support"
|
|
depends on SOC_SAMA5
|
|
select USE_OF
|
|
select PHYLIB if NETDEVICES
|
|
help
|
|
Select this if you want to experiment device-tree with
|
|
an Atmel Evaluation Kit.
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
comment "AT91 Feature Selections"
|
|
|
|
config AT91_PROGRAMMABLE_CLOCKS
|
|
bool "Programmable Clocks"
|
|
help
|
|
Select this if you need to program one or more of the PCK0..PCK3
|
|
programmable clock outputs.
|
|
|
|
config AT91_SLOW_CLOCK
|
|
bool "Suspend-to-RAM disables main oscillator"
|
|
depends on SUSPEND
|
|
help
|
|
Select this if you want Suspend-to-RAM to save the most power
|
|
possible (without powering off the CPU) by disabling the PLLs
|
|
and main oscillator so that only the 32 KiHz clock is available.
|
|
|
|
When only that slow-clock is available, some peripherals lose
|
|
functionality. Many can't issue wakeup events unless faster
|
|
clocks are available. Some lose their operating state and
|
|
need to be completely re-initialized.
|
|
|
|
config AT91_TIMER_HZ
|
|
int "Kernel HZ (jiffies per second)"
|
|
range 32 1024
|
|
depends on ARCH_AT91
|
|
default "128" if ARCH_AT91RM9200
|
|
default "100"
|
|
help
|
|
On AT91rm9200 chips where you're using a system clock derived
|
|
from the 32768 Hz hardware clock, this tick rate should divide
|
|
it exactly: use a power-of-two value, such as 128 or 256, to
|
|
reduce timing errors caused by rounding.
|
|
|
|
On AT91sam926x chips, or otherwise when using a higher precision
|
|
system clock (of at least several MHz), rounding is less of a
|
|
problem so it can be safer to use a decimal values like 100.
|
|
|
|
endmenu
|
|
|
|
endif
|