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 01:33:39 +07:00
|
|
|
* Amlogic Meson8, Meson8b and Meson8m2 Clock and Reset Unit
|
2015-06-01 18:13:54 +07:00
|
|
|
|
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 01:33:39 +07:00
|
|
|
The Amlogic Meson8 / Meson8b / Meson8m2 clock controller generates and
|
|
|
|
supplies clock to various controllers within the SoC.
|
2015-06-01 18:13:54 +07:00
|
|
|
|
|
|
|
Required Properties:
|
|
|
|
|
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 01:33:39 +07:00
|
|
|
- compatible: must be one of:
|
|
|
|
- "amlogic,meson8-clkc" for Meson8 (S802) SoCs
|
|
|
|
- "amlogic,meson8b-clkc" for Meson8 (S805) SoCs
|
|
|
|
- "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs
|
2015-06-01 18:13:54 +07:00
|
|
|
- #clock-cells: should be 1.
|
2017-07-29 04:13:11 +07:00
|
|
|
- #reset-cells: should be 1.
|
2015-06-01 18:13:54 +07:00
|
|
|
|
2018-10-28 19:08:57 +07:00
|
|
|
Parent node should have the following properties :
|
|
|
|
- compatible: "amlogic,meson-hhi-sysctrl", "simple-mfd", "syscon"
|
|
|
|
- reg: base address and size of the HHI system control register space.
|
|
|
|
|
2015-06-01 18:13:54 +07:00
|
|
|
Each clock is assigned an identifier and client nodes can use this identifier
|
|
|
|
to specify the clock which they consume. All available clocks are defined as
|
|
|
|
preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be
|
|
|
|
used in device tree sources.
|
|
|
|
|
2017-07-29 04:13:11 +07:00
|
|
|
Similarly a preprocessor macro for each reset line is defined in
|
|
|
|
dt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the
|
|
|
|
device tree sources).
|
|
|
|
|
|
|
|
|
2015-06-01 18:13:54 +07:00
|
|
|
Example: Clock controller node:
|
|
|
|
|
2018-10-28 19:08:57 +07:00
|
|
|
clkc: clock-controller {
|
2015-06-01 18:13:54 +07:00
|
|
|
compatible = "amlogic,meson8b-clkc";
|
2017-07-29 04:13:11 +07:00
|
|
|
#clock-cells = <1>;
|
|
|
|
#reset-cells = <1>;
|
2015-06-01 18:13:54 +07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
Example: UART controller node that consumes the clock generated by the clock
|
|
|
|
controller:
|
|
|
|
|
|
|
|
uart_AO: serial@c81004c0 {
|
|
|
|
compatible = "amlogic,meson-uart";
|
|
|
|
reg = <0xc81004c0 0x14>;
|
|
|
|
interrupts = <0 90 1>;
|
|
|
|
clocks = <&clkc CLKID_CLK81>;
|
|
|
|
};
|