mbox series

[v2,00/12] initial clock support for exynosauto v9 SoC

Message ID 20220503105914.117625-1-chanho61.park@samsung.com
Headers show
Series initial clock support for exynosauto v9 SoC | expand

Message

Chanho Park May 3, 2022, 10:59 a.m. UTC
This patchset adds initial clock driver support for Exynos Auto v9 SoC.
This driver is highly inspired from exynos850 clock driver. Like
exynos850, this does not use Q-channel control & Hardware automatic
clock gating. So, all the gate clocks will be controlled by CCF & CMU
driver.

Below CMU blocks are supported in this patchset and remains will be
implemented later.

- CMU_TOP
- CMU_BUSMC
- CMU_CORE
- CMU_FSYS2
- CMU_PERIC0
- CMU_PERIC1
- CMU_PERIS

Changes from v1:
- Adjust patch order to avoid dt-binding check bot's build warning
- Rename exynosautov9.h to samsung,exynosautov9.h (Suggested by
  Krzystof)
- clock nodes of exynosautov9.dtsi are aligned by unit address order.
- Each clock items are listed to every own line.
- Added Krzystof RB tags.

Chanho Park (12):
  dt-bindings: clock: add clock binding definitions for Exynos Auto v9
  dt-bindings: clock: add Exynos Auto v9 SoC CMU bindings
  clk: samsung: add top clock support for Exynos Auto v9 SoC
  clk: samsung: exynosautov9: add cmu_core clock support
  clk: samsung: exynosautov9: add cmu_peris clock support
  clk: samsung: exynosautov9: add cmu_busmc clock support
  clk: samsung: exynosautov9: add cmu_fsys2 clock support
  clk: samsung: exynosautov9: add cmu_peric0 clock support
  clk: samsung: exynosautov9: add cmu_peric1 clock support
  arm64: dts: exynosautov9: add initial cmu clock nodes
  arm64: dts: exynosautov9: switch usi clocks
  arm64: dts: exynosautov9: switch ufs clock node

 .../clock/samsung,exynosautov9-clock.yaml     |  219 +++
 arch/arm64/boot/dts/exynos/exynosautov9.dtsi  |  115 +-
 drivers/clk/samsung/Makefile                  |    1 +
 drivers/clk/samsung/clk-exynosautov9.c        | 1733 +++++++++++++++++
 .../dt-bindings/clock/samsung,exynosautov9.h  |  299 +++
 5 files changed, 2342 insertions(+), 25 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
 create mode 100644 drivers/clk/samsung/clk-exynosautov9.c
 create mode 100644 include/dt-bindings/clock/samsung,exynosautov9.h

Comments

Krzysztof Kozlowski May 3, 2022, 11:16 a.m. UTC | #1
On 03/05/2022 12:59, Chanho Park wrote:
> Add dt-schema for Exynos Auto v9 SoC clock controller.
> 
> Signed-off-by: Chanho Park <chanho61.park@samsung.com>
> ---
>  .../clock/samsung,exynosautov9-clock.yaml     | 219 ++++++++++++++++++
>  1 file changed, 219 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
> 
> diff --git a/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
> new file mode 100644
> index 000000000000..9f9cd8606728
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
> @@ -0,0 +1,219 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/samsung,exynosautov9-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung Exynos Auto v9 SoC clock controller
> +
> +maintainers:
> +  - Chanho Park <chanho61.park@samsung.com>
> +  - Chanwoo Choi <cw00.choi@samsung.com>
> +  - Krzysztof Kozlowski <krzk@kernel.org>
> +  - Sylwester Nawrocki <s.nawrocki@samsung.com>
> +  - Tomasz Figa <tomasz.figa@gmail.com>
> +
> +description: |
> +  Exynos Auto v9 clock controller is comprised of several CMU units, generating
> +  clocks for different domains. Those CMU units are modeled as separate device
> +  tree nodes, and might depend on each other. Root clocks in that clock tree are
> +  two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
> +  Those external clocks must be defined as fixed-rate clocks in dts.
> +
> +  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
> +  dividers; all other clocks of function blocks (other CMUs) are usually
> +  derived from CMU_TOP.
> +
> +  Each clock is assigned an identifier and client nodes can use this identifier
> +  to specify the clock which they consume. All clocks available for usage
> +  in clock consumer nodes are defined as preprocessor macros in
> +  'dt-bindings/clock/exynosautov9.h' header.

The path is still wrong (and not full).


Best regards,
Krzysztof
Chanho Park May 3, 2022, 11:26 a.m. UTC | #2
> On 03/05/2022 12:59, Chanho Park wrote:
> > Add dt-schema for Exynos Auto v9 SoC clock controller.
> >
> > Signed-off-by: Chanho Park <chanho61.park@samsung.com>
> > ---
> >  .../clock/samsung,exynosautov9-clock.yaml     | 219 ++++++++++++++++++
> >  1 file changed, 219 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yam
> > l
> >
> > diff --git
> > a/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.y
> > aml
> > b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.y
> > aml
> > new file mode 100644
> > index 000000000000..9f9cd8606728
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clo
> > +++ ck.yaml
> > @@ -0,0 +1,219 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id:
> > +https://protect2.fireeye.com/v1/url?k=68882f86-3713169f-6889a4c9-000b
> > +abff3793-6f47dff4d335ab23&q=1&e=233b57a5-86a2-45a5-a097-eea56e8b5b51&
> > +u=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fclock%2Fsamsung%2Cexynosaut
> > +ov9-clock.yaml%23
> > +$schema:
> > +https://protect2.fireeye.com/v1/url?k=a304fe06-fc9fc71f-a3057549-000b
> > +abff3793-cb0414bca8edb007&q=1&e=233b57a5-86a2-45a5-a097-eea56e8b5b51&
> > +u=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23
> > +
> > +title: Samsung Exynos Auto v9 SoC clock controller
> > +
> > +maintainers:
> > +  - Chanho Park <chanho61.park@samsung.com>
> > +  - Chanwoo Choi <cw00.choi@samsung.com>
> > +  - Krzysztof Kozlowski <krzk@kernel.org>
> > +  - Sylwester Nawrocki <s.nawrocki@samsung.com>
> > +  - Tomasz Figa <tomasz.figa@gmail.com>
> > +
> > +description: |
> > +  Exynos Auto v9 clock controller is comprised of several CMU units,
> > +generating
> > +  clocks for different domains. Those CMU units are modeled as
> > +separate device
> > +  tree nodes, and might depend on each other. Root clocks in that
> > +clock tree are
> > +  two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768
> Hz).
> > +  Those external clocks must be defined as fixed-rate clocks in dts.
> > +
> > +  CMU_TOP is a top-level CMU, where all base clocks are prepared
> > + using PLLs and  dividers; all other clocks of function blocks (other
> > + CMUs) are usually  derived from CMU_TOP.
> > +
> > +  Each clock is assigned an identifier and client nodes can use this
> > + identifier  to specify the clock which they consume. All clocks
> > + available for usage  in clock consumer nodes are defined as
> > + preprocessor macros in  'dt-bindings/clock/exynosautov9.h' header.
> 
> The path is still wrong (and not full).

I forgot the description update.
'dt-bindings/clock/exynosautov9.h' -> 'include/dt-bindings/clock/samsung,exynosautov9.h'

Best Regards,
Chanho Park