2010-11-17 17:04:33 +08:00
|
|
|
|
|
|
|
config CLKDEV_LOOKUP
|
|
|
|
bool
|
|
|
|
select HAVE_CLK
|
2011-07-18 15:34:54 +08:00
|
|
|
|
2011-12-20 14:46:38 +08:00
|
|
|
config HAVE_CLK_PREPARE
|
|
|
|
bool
|
|
|
|
|
2011-07-18 15:34:54 +08:00
|
|
|
config HAVE_MACH_CLKDEV
|
|
|
|
bool
|
2012-03-16 14:11:19 +08:00
|
|
|
|
2012-03-18 05:10:51 +08:00
|
|
|
config COMMON_CLK
|
|
|
|
bool
|
2012-03-16 14:11:19 +08:00
|
|
|
select HAVE_CLK_PREPARE
|
2012-04-10 04:24:58 +08:00
|
|
|
select CLKDEV_LOOKUP
|
2012-03-16 14:11:19 +08:00
|
|
|
---help---
|
|
|
|
The common clock framework is a single definition of struct
|
|
|
|
clk, useful across many platforms, as well as an
|
|
|
|
implementation of the clock API in include/linux/clk.h.
|
|
|
|
Architectures utilizing the common struct clk should select
|
2012-03-18 05:10:51 +08:00
|
|
|
this option.
|
2012-03-16 14:11:19 +08:00
|
|
|
|
2012-03-18 05:10:51 +08:00
|
|
|
menu "Common Clock Framework"
|
|
|
|
depends on COMMON_CLK
|
2012-03-16 14:11:19 +08:00
|
|
|
|
2012-05-17 17:04:57 +08:00
|
|
|
config COMMON_CLK_WM831X
|
|
|
|
tristate "Clock driver for WM831x/2x PMICs"
|
|
|
|
depends on MFD_WM831X
|
|
|
|
---help---
|
|
|
|
Supports the clocking subsystem of the WM831x/2x series of
|
|
|
|
PMICs from Wolfson Microlectronics.
|
|
|
|
|
2013-09-18 00:16:15 +08:00
|
|
|
source "drivers/clk/versatile/Kconfig"
|
2012-08-07 00:32:08 +08:00
|
|
|
|
2012-08-28 16:54:28 +08:00
|
|
|
config COMMON_CLK_MAX77686
|
|
|
|
tristate "Clock driver for Maxim 77686 MFD"
|
|
|
|
depends on MFD_MAX77686
|
|
|
|
---help---
|
|
|
|
This driver supports Maxim 77686 crystal oscillator clock.
|
|
|
|
|
2013-04-12 03:42:29 +08:00
|
|
|
config COMMON_CLK_SI5351
|
|
|
|
tristate "Clock driver for SiLabs 5351A/B/C"
|
|
|
|
depends on I2C
|
|
|
|
select REGMAP_I2C
|
|
|
|
select RATIONAL
|
|
|
|
---help---
|
|
|
|
This driver supports Silicon Labs 5351A/B/C programmable clock
|
|
|
|
generators.
|
|
|
|
|
2013-09-22 07:40:39 +08:00
|
|
|
config COMMON_CLK_SI570
|
|
|
|
tristate "Clock driver for SiLabs 570 and compatible devices"
|
|
|
|
depends on I2C
|
|
|
|
depends on OF
|
|
|
|
select REGMAP_I2C
|
|
|
|
help
|
|
|
|
---help---
|
|
|
|
This driver supports Silicon Labs 570/571/598/599 programmable
|
|
|
|
clock generators.
|
|
|
|
|
2013-07-07 19:44:20 +08:00
|
|
|
config COMMON_CLK_S2MPS11
|
2014-05-21 19:23:01 +08:00
|
|
|
tristate "Clock driver for S2MPS1X/S5M8767 MFD"
|
2013-07-07 19:44:20 +08:00
|
|
|
depends on MFD_SEC_CORE
|
|
|
|
---help---
|
2014-05-21 19:23:01 +08:00
|
|
|
This driver supports S2MPS11/S2MPS14/S5M8767 crystal oscillator
|
|
|
|
clock. These multi-function devices have two (S2MPS14) or three
|
|
|
|
(S2MPS11, S5M8767) fixed-rate oscillators, clocked at 32KHz each.
|
2013-07-07 19:44:20 +08:00
|
|
|
|
2012-09-14 22:30:27 +08:00
|
|
|
config CLK_TWL6040
|
|
|
|
tristate "External McPDM functional clock from twl6040"
|
|
|
|
depends on TWL6040_CORE
|
|
|
|
---help---
|
|
|
|
Enable the external functional clock support on OMAP4+ platforms for
|
|
|
|
McPDM. McPDM module is using the external bit clock on the McPDM bus
|
|
|
|
as functional clock.
|
|
|
|
|
2013-03-11 23:22:29 +08:00
|
|
|
config COMMON_CLK_AXI_CLKGEN
|
|
|
|
tristate "AXI clkgen driver"
|
|
|
|
depends on ARCH_ZYNQ || MICROBLAZE
|
|
|
|
help
|
|
|
|
---help---
|
|
|
|
Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
|
|
|
|
FPGAs. It is commonly used in Analog Devices' reference designs.
|
|
|
|
|
2013-04-09 16:46:26 +08:00
|
|
|
config CLK_PPC_CORENET
|
|
|
|
bool "Clock driver for PowerPC corenet platforms"
|
|
|
|
depends on PPC_E500MC && OF
|
|
|
|
---help---
|
|
|
|
This adds the clock driver support for Freescale PowerPC corenet
|
|
|
|
platforms using common clock framework.
|
|
|
|
|
2013-06-27 01:56:09 +08:00
|
|
|
config COMMON_CLK_XGENE
|
|
|
|
bool "Clock driver for APM XGene SoC"
|
|
|
|
default y
|
|
|
|
depends on ARM64
|
|
|
|
---help---
|
|
|
|
Sypport for the APM X-Gene SoC reference, PLL, and device clocks.
|
|
|
|
|
2013-09-26 09:18:15 +08:00
|
|
|
config COMMON_CLK_KEYSTONE
|
|
|
|
tristate "Clock drivers for Keystone based SOCs"
|
|
|
|
depends on ARCH_KEYSTONE && OF
|
|
|
|
---help---
|
|
|
|
Supports clock drivers for Keystone based SOCs. These SOCs have local
|
|
|
|
a power sleep control module that gate the clock to the IPs and PLLs.
|
|
|
|
|
2014-01-16 02:47:23 +08:00
|
|
|
source "drivers/clk/qcom/Kconfig"
|
|
|
|
|
2012-03-18 05:10:51 +08:00
|
|
|
endmenu
|
2012-11-17 22:22:22 +08:00
|
|
|
|
clk: bcm281xx: add initial clock framework support
Add code for device tree support of clocks in the BCM281xx family of
SoCs. Machines in this family use peripheral clocks implemented by
"Kona" clock control units (CCUs). (Other Broadcom SoC families use
Kona style CCUs as well, but support for them is not yet upstream.)
A BCM281xx SoC has multiple CCUs, each of which manages a set of
clocks on the SoC. A Kona peripheral clock is composite clock that
may include a gate, a parent clock multiplexor, and zero, one
or two dividers. There is a variety of gate types, and many gates
implement hardware-managed gating (often called "auto-gating").
Most dividers divide their input clock signal by an integer value
(one or more). There are also "fractional" dividers which allow
division by non-integer values. To accomodate such dividers,
clock rates and dividers are generally maintained by the code in
"scaled" form, which allows integer and fractional dividers to
be handled in a uniform way.
If present, the gate for a Kona peripheral clock must be enabled
when a change is made to its multiplexor or one of its dividers.
Additionally, dividers and multiplexors have trigger registers which
must be used whenever the divider value or selected parent clock is
changed. The same trigger is often used for a divider and
multiplexor, and a BCM281xx peripheral clock occasionally has two
triggers.
The gate, dividers, and parent clock selector are treated in this
code as "components" of a peripheral clock. Their functionality is
implemented directly--e.g. the common clock framework gate
implementation is not used for a Kona peripheral clock gate. (This
has being considered though, and the intention is to evolve this
code to leverage common code as much as possible.)
The source code is divided into three general portions:
drivers/clk/bcm/clk-kona.h
drivers/clk/bcm/clk-kona.c
These implement the basic Kona clock functionality,
including the clk_ops methods and various routines to
manipulate registers and interpret their values. This
includes some functions used to set clocks to a desired
initial state (though this feature is only partially
implemented here).
drivers/clk/bcm/clk-kona-setup.c
This contains generic run-time initialization code for
data structures representing Kona CCUs and clocks. This
encapsulates the clock structure initialization that can't
be done statically. Note that there is a great deal of
validity-checking code here, making explicit certain
assumptions in the code. This is mostly useful for adding
new clock definitions and could possibly be disabled for
production use.
drivers/clk/bcm/clk-bcm281xx.c
This file defines the specific CCUs used by BCM281XX family
SoCs, as well as the specific clocks implemented by each.
It declares a device tree clock match entry for each CCU
defined.
include/dt-bindings/clock/bcm281xx.h
This file defines the selector (index) values used to
identify a particular clock provided by a CCU. It consists
entirely of C preprocessor constants, to be used by both the
C source and device tree source files.
Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Acked-by: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
2014-02-15 02:29:18 +08:00
|
|
|
source "drivers/clk/bcm/Kconfig"
|
2012-11-17 22:22:22 +08:00
|
|
|
source "drivers/clk/mvebu/Kconfig"
|
2014-05-08 12:07:08 +08:00
|
|
|
|
|
|
|
source "drivers/clk/samsung/Kconfig"
|