[PATCH v3 6/7] dt-bindings: clock: meson: add A1 CPU clock controller bindings
Jerome Brunet
jbrunet at baylibre.com
Mon Jun 10 03:04:09 PDT 2024
On Wed 15 May 2024 at 21:47, Dmitry Rokosov <ddrokosov at salutedevices.com> wrote:
> Add the documentation and dt bindings for Amlogic A1 CPU clock
> controller.
>
> This controller consists of the general 'cpu_clk' and two main parents:
> 'cpu fixed clock' and 'syspll'. The 'cpu fixed clock' is an internal
> fixed clock, while the 'syspll' serves as an external input from the A1
> PLL clock controller.
>
> Signed-off-by: Dmitry Rokosov <ddrokosov at salutedevices.com>
> Reviewed-by: Rob Herring <robh at kernel.org>
> ---
> .../bindings/clock/amlogic,a1-cpu-clkc.yaml | 64 +++++++++++++++++++
> .../dt-bindings/clock/amlogic,a1-cpu-clkc.h | 19 ++++++
> 2 files changed, 83 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/amlogic,a1-cpu-clkc.yaml
> create mode 100644 include/dt-bindings/clock/amlogic,a1-cpu-clkc.h
>
> diff --git a/Documentation/devicetree/bindings/clock/amlogic,a1-cpu-clkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,a1-cpu-clkc.yaml
> new file mode 100644
> index 000000000000..f4958b315ed4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/amlogic,a1-cpu-clkc.yaml
> @@ -0,0 +1,64 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/amlogic,a1-cpu-clkc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Amlogic A1 CPU Clock Control Unit
> +
> +maintainers:
> + - Neil Armstrong <neil.armstrong at linaro.org>
> + - Jerome Brunet <jbrunet at baylibre.com>
> + - Dmitry Rokosov <ddrokosov at salutedevices.com>
> +
> +properties:
> + compatible:
> + const: amlogic,a1-cpu-clkc
> +
> + '#clock-cells':
> + const: 1
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: input fixed pll div2
> + - description: input fixed pll div3
> + - description: input sys pll
> + - description: input oscillator (usually at 24MHz)
According to the documentation, fdiv5 is also an input of the CPU clock
tree.
That is typically the kind of things we'd prefer to get right from the
beginning to avoid modifying the bindings later.
> +
> + clock-names:
> + items:
> + - const: fclk_div2
> + - const: fclk_div3
> + - const: sys_pll
> + - const: xtal
> +
> +required:
> + - compatible
> + - '#clock-cells'
> + - reg
> + - clocks
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/amlogic,a1-pll-clkc.h>
> + apb {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + clock-controller at fd000000 {
> + compatible = "amlogic,a1-cpu-clkc";
> + reg = <0 0xfd000080 0 0x8>;
If reg is <0 0xfd000080 0 0x8> then node name should be clock-controller at fd000080
> + #clock-cells = <1>;
> + clocks = <&clkc_pll CLKID_FCLK_DIV2>,
> + <&clkc_pll CLKID_FCLK_DIV3>,
> + <&clkc_pll CLKID_SYS_PLL>,
> + <&xtal>;
> + clock-names = "fclk_div2", "fclk_div3", "sys_pll", "xtal";
> + };
> + };
> diff --git a/include/dt-bindings/clock/amlogic,a1-cpu-clkc.h b/include/dt-bindings/clock/amlogic,a1-cpu-clkc.h
> new file mode 100644
> index 000000000000..1d321c6eddb7
> --- /dev/null
> +++ b/include/dt-bindings/clock/amlogic,a1-cpu-clkc.h
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
> +/*
> + * Copyright (c) 2024, SaluteDevices. All Rights Reserved.
> + * Author: Dmitry Rokosov <ddrokosov at salutedevices.com>
> + */
> +
> +#ifndef __A1_CPU_CLKC_H
> +#define __A1_CPU_CLKC_H
> +
> +#define CLKID_CPU_FSOURCE_SEL0 0
> +#define CLKID_CPU_FSOURCE_DIV0 1
> +#define CLKID_CPU_FSEL0 2
> +#define CLKID_CPU_FSOURCE_SEL1 3
> +#define CLKID_CPU_FSOURCE_DIV1 4
> +#define CLKID_CPU_FSEL1 5
> +#define CLKID_CPU_FCLK 6
> +#define CLKID_CPU_CLK 7
> +
> +#endif /* __A1_CPU_CLKC_H */
--
Jerome
More information about the linux-arm-kernel
mailing list