2019-05-19 20:07:45 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
config COMMON_CLK_MESON_REGMAP
|
|
|
|
tristate
|
|
|
|
select REGMAP
|
2018-05-23 00:34:54 +08:00
|
|
|
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
config COMMON_CLK_MESON_DUALDIV
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
2018-05-03 21:26:20 +08:00
|
|
|
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
config COMMON_CLK_MESON_MPLL
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
|
|
|
config COMMON_CLK_MESON_PHASE
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
|
|
|
config COMMON_CLK_MESON_PLL
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
|
|
|
config COMMON_CLK_MESON_SCLK_DIV
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
|
|
|
config COMMON_CLK_MESON_VID_PLL_DIV
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
|
|
|
config COMMON_CLK_MESON_AO_CLKC
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
select RESET_CONTROLLER
|
2018-02-12 22:58:32 +08:00
|
|
|
|
2019-02-01 22:53:45 +08:00
|
|
|
config COMMON_CLK_MESON_EE_CLKC
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
2019-07-31 16:40:17 +08:00
|
|
|
config COMMON_CLK_MESON_CPU_DYNDIV
|
|
|
|
tristate
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
|
2016-05-24 05:29:13 +08:00
|
|
|
config COMMON_CLK_MESON8B
|
|
|
|
bool
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
depends on ARCH_MESON
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
select COMMON_CLK_MESON_MPLL
|
|
|
|
select COMMON_CLK_MESON_PLL
|
|
|
|
select MFD_SYSCON
|
2017-07-29 05:13:12 +08:00
|
|
|
select RESET_CONTROLLER
|
2016-05-24 05:29:13 +08:00
|
|
|
help
|
clk: meson: meson8b: add compatibles for Meson8 and Meson8m2
The clock controller on Meson8, Meson8b and Meson8m2 is very similar
based on the code from the Amlogic GPL kernel sources. Add separate
compatibles for each SoC to make sure that we can easily implement
all the small differences for each SoC later on.
In general the Meson8 and Meson8m2 seem to be almost identical as they
even share the same mach-meson8 directory in Amlogic's GPL kernel
sources.
The main clocks on Meson8, Meson8b and Meson8m2 are very similar,
because they are all using the same PLL values, 90% of the clock gates
are the same (the actual diffstat of the mach-meson8/clock.c and
mach-meson8b/clock.c files is around 30 to 40 lines, when excluding
all commented out code).
The difference between the Meson8 and Meson8b clock gates seem to be:
- Meson8 has AIU_PCLK, HDMI_RX, VCLK2_ENCT, VCLK2_ENCL, UART3,
CSI_DIG_CLKIN gates which don't seem to be available on Meson8b
- the gate on Meson8 for bit 7 seems to be named "_1200XXX" instead
of "PERIPHS_TOP" (on Meson8b)
- Meson8b has a SANA gate which doesn't seem to exist on Meson8 (or
on Meson8 the same bit is used by the UART3 gate in Amlogic's GPL
kernel sources)
None of these gates is added for now, since it's unclear whether these
definitions are actually correct (the VCLK2_ENCT gate for example is
defined, but only used in some commented block).
The main difference between all three SoCs seem to be the video (VPU)
clocks. Apart from different supported clock rates (according to vpu.c
in mach-meson8 and mach-meson8b from Amlogic's GPL kernel sources) the
most notable difference is that Meson8m2 has a GP_PLL clock and a mux
(probably the same as on the Meson GX SoCs) to support glitch-free
(clock rate) switching.
None of these VPU clocks are not supported by our mainline meson8b
clock driver yet though.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
2017-06-05 02:33:39 +08:00
|
|
|
Support for the clock controller on AmLogic S802 (Meson8),
|
|
|
|
S805 (Meson8b) and S812 (Meson8m2) devices. Say Y if you
|
|
|
|
want peripherals and CPU frequency scaling to work.
|
2016-05-24 06:44:26 +08:00
|
|
|
|
|
|
|
config COMMON_CLK_GXBB
|
|
|
|
bool
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
depends on ARCH_MESON
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
select COMMON_CLK_MESON_DUALDIV
|
|
|
|
select COMMON_CLK_MESON_VID_PLL_DIV
|
|
|
|
select COMMON_CLK_MESON_MPLL
|
|
|
|
select COMMON_CLK_MESON_PLL
|
|
|
|
select COMMON_CLK_MESON_AO_CLKC
|
2019-02-01 22:53:45 +08:00
|
|
|
select COMMON_CLK_MESON_EE_CLKC
|
2018-02-12 22:58:46 +08:00
|
|
|
select MFD_SYSCON
|
2016-05-24 06:44:26 +08:00
|
|
|
help
|
|
|
|
Support for the clock controller on AmLogic S905 devices, aka gxbb.
|
|
|
|
Say Y if you want peripherals and CPU frequency scaling to work.
|
2017-12-11 22:13:46 +08:00
|
|
|
|
|
|
|
config COMMON_CLK_AXG
|
|
|
|
bool
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
depends on ARCH_MESON
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
select COMMON_CLK_MESON_DUALDIV
|
|
|
|
select COMMON_CLK_MESON_MPLL
|
|
|
|
select COMMON_CLK_MESON_PLL
|
|
|
|
select COMMON_CLK_MESON_AO_CLKC
|
2019-02-01 22:53:45 +08:00
|
|
|
select COMMON_CLK_MESON_EE_CLKC
|
2018-02-12 22:58:46 +08:00
|
|
|
select MFD_SYSCON
|
2017-12-11 22:13:46 +08:00
|
|
|
help
|
|
|
|
Support for the clock controller on AmLogic A113D devices, aka axg.
|
|
|
|
Say Y if you want peripherals and CPU frequency scaling to work.
|
2018-05-23 00:34:57 +08:00
|
|
|
|
|
|
|
config COMMON_CLK_AXG_AUDIO
|
|
|
|
tristate "Meson AXG Audio Clock Controller Driver"
|
clk: meson: rework and clean drivers dependencies
Initially, the meson clock directory only hosted 2 controllers drivers,
for meson8 and gxbb. At the time, both used the same set of clock drivers
so managing the dependencies was not a big concern.
Since this ancient time, entropy did its job, controllers with different
requirement and specific clock drivers have been added. Unfortunately, we
did not do a great job at managing the dependencies between the
controllers and the different clock drivers. Some drivers, such as
clk-phase or vid-pll-div, are compiled even if they are useless on the
target (meson8). As we are adding new controllers, we need to be able to
pick a driver w/o pulling the whole thing.
The patch aims to clean things up by:
* providing a dedicated CONFIG_ for each clock drivers
* allowing clock drivers to be compiled as a modules, if possible
* stating explicitly which drivers are required by each controller.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lkml.kernel.org/r/20190201125841.26785-5-jbrunet@baylibre.com
2019-02-01 20:58:41 +08:00
|
|
|
depends on ARCH_MESON
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
|
|
|
select COMMON_CLK_MESON_PHASE
|
|
|
|
select COMMON_CLK_MESON_SCLK_DIV
|
2019-02-01 20:58:40 +08:00
|
|
|
select REGMAP_MMIO
|
2018-05-23 00:34:57 +08:00
|
|
|
help
|
|
|
|
Support for the audio clock controller on AmLogic A113D devices,
|
|
|
|
aka axg, Say Y if you want audio subsystem to work.
|
2019-02-01 22:53:44 +08:00
|
|
|
|
|
|
|
config COMMON_CLK_G12A
|
|
|
|
bool
|
|
|
|
depends on ARCH_MESON
|
|
|
|
select COMMON_CLK_MESON_REGMAP
|
2019-02-13 00:28:59 +08:00
|
|
|
select COMMON_CLK_MESON_DUALDIV
|
2019-02-01 22:53:44 +08:00
|
|
|
select COMMON_CLK_MESON_MPLL
|
|
|
|
select COMMON_CLK_MESON_PLL
|
2019-02-13 00:28:59 +08:00
|
|
|
select COMMON_CLK_MESON_AO_CLKC
|
2019-02-01 22:53:45 +08:00
|
|
|
select COMMON_CLK_MESON_EE_CLKC
|
2019-07-31 16:40:17 +08:00
|
|
|
select COMMON_CLK_MESON_CPU_DYNDIV
|
2019-02-01 22:53:44 +08:00
|
|
|
select MFD_SYSCON
|
|
|
|
help
|
|
|
|
Support for the clock controller on Amlogic S905D2, S905X2 and S905Y2
|
|
|
|
devices, aka g12a. Say Y if you want peripherals to work.
|