clk: nuvoton: Add clock driver for ma35d1 clock controller
authorJacky Huang <ychuang3@nuvoton.com>
Mon, 5 Jun 2023 04:07:47 +0000 (04:07 +0000)
committerArnd Bergmann <arnd@arndb.de>
Mon, 5 Jun 2023 11:18:08 +0000 (13:18 +0200)
commit691521a367cf3c7b3add17addbd4daa6384890d6
tree930465ab5e718b2460649d54a68b3df0ea6a8271
parentb69af09847323f67aeb8adbe214f5e2b4ad6b97a
clk: nuvoton: Add clock driver for ma35d1 clock controller

The clock controller generates clocks for the whole chip, including
system clocks and all peripheral clocks. This driver support ma35d1
clock gating, divider, and individual PLL configuration.

There are 6 PLLs in ma35d1 SoC:
  - CA-PLL for the two Cortex-A35 CPU clock
  - SYS-PLL for system bus, which comes from the companion MCU
    and cannot be programmed by clock controller.
  - DDR-PLL for DDR
  - EPLL for GMAC and GFX, Display, and VDEC IPs.
  - VPLL for video output pixel clock
  - APLL for SDHC, I2S audio, and other IPs.
CA-PLL has only one operation mode.
DDR-PLL, EPLL, VPLL, and APLL are advanced PLLs which have 3
operation modes: integer mode, fraction mode, and spread specturm mode.

Signed-off-by: Jacky Huang <ychuang3@nuvoton.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/clk/Kconfig
drivers/clk/Makefile
drivers/clk/nuvoton/Kconfig [new file with mode: 0644]
drivers/clk/nuvoton/Makefile [new file with mode: 0644]
drivers/clk/nuvoton/clk-ma35d1-divider.c [new file with mode: 0644]
drivers/clk/nuvoton/clk-ma35d1-pll.c [new file with mode: 0644]
drivers/clk/nuvoton/clk-ma35d1.c [new file with mode: 0644]