On 2023/7/13 20:26, Emil Renner Berthing wrote: > On Tue, 4 Jul 2023 at 08:49, Xingyu Wu <xingyu.wu@xxxxxxxxxxxxxxxx> wrote: >> >> Add bindings for the PLL clock generator on the JH7110 RISC-V SoC. >> >> Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx> >> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> >> Signed-off-by: Xingyu Wu <xingyu.wu@xxxxxxxxxxxxxxxx> >> --- >> .../bindings/clock/starfive,jh7110-pll.yaml | 46 +++++++++++++++++++ >> .../dt-bindings/clock/starfive,jh7110-crg.h | 6 +++ >> 2 files changed, 52 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml >> >> diff --git a/Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml b/Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml >> new file mode 100644 >> index 000000000000..beb78add5a8d >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml >> @@ -0,0 +1,46 @@ >> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/clock/starfive,jh7110-pll.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: StarFive JH7110 PLL Clock Generator >> + >> +description: >> + These PLLs are high speed, low jitter frequency synthesizers in JH7110. > > ..synthesizers in the JH7110. Will fix. > >> + Each PLL works in integer mode or fraction mode, with configuration >> + registers in the sys syscon. So the PLLs node should be a child of >> + SYS-SYSCON node. >> + The formula for calculating frequency is >> + Fvco = Fref * (NI + NF) / M / Q1 >> + >> +maintainers: >> + - Xingyu Wu <xingyu.wu@xxxxxxxxxxxxxxxx> >> + >> +properties: >> + compatible: >> + const: starfive,jh7110-pll >> + >> + clocks: >> + maxItems: 1 >> + description: Main Oscillator (24 MHz) >> + >> + '#clock-cells': >> + const: 1 >> + description: >> + See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices. >> + >> +required: >> + - compatible >> + - clocks >> + - '#clock-cells' >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + clock-controller { >> + compatible = "starfive,jh7110-pll"; >> + clocks = <&osc>; >> + #clock-cells = <1>; >> + }; >> diff --git a/include/dt-bindings/clock/starfive,jh7110-crg.h b/include/dt-bindings/clock/starfive,jh7110-crg.h >> index 06257bfd9ac1..086a6ddcf380 100644 >> --- a/include/dt-bindings/clock/starfive,jh7110-crg.h >> +++ b/include/dt-bindings/clock/starfive,jh7110-crg.h >> @@ -6,6 +6,12 @@ >> #ifndef __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ >> #define __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ >> >> +/* PLL clocks */ >> +#define JH7110_CLK_PLL0_OUT 0 >> +#define JH7110_CLK_PLL1_OUT 1 >> +#define JH7110_CLK_PLL2_OUT 2 >> +#define JH7110_PLLCLK_END 3 > > It would be nice if these names followed the same pattern as the > clocks below. Eg. something like JH7110_PLLCLK_PLL?_OUT and > JH7110_PLLCLK_END. > > But maybe these defines are not even needed, since you just do <&pll > 0>, <&pll 1> and it's obvious what that means. I prefer to keep these names because they are used in the PLL driver and are more easy to understand than numbers. I will use the JH7110_PLLCLK_PLL?_OUT to follow the same pattern in next version. Best regards, Xingyu Wu > >> /* SYSCRG clocks */ >> #define JH7110_SYSCLK_CPU_ROOT 0 >> #define JH7110_SYSCLK_CPU_CORE 1 >> -- >> 2.25.1 >>