Add CMU (Clock Management Unit) nodes and required fixed clocks. Signed-off-by: Alexandru Chimac <alex@xxxxxxxxx> --- arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts | 1 + arch/arm64/boot/dts/exynos/exynos9610.dtsi | 205 +++++++++++++++++++++++ 2 files changed, 206 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts b/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts index f455af22ff872c6f07b9bcfc68b1ae1f45d0def3..1a09d5e8ebaa130e9cd0b7f3266ee2c9dac4cf9a 100644 --- a/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts +++ b/arch/arm64/boot/dts/exynos/exynos9610-gta4xl.dts @@ -10,6 +10,7 @@ #include "exynos9610.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> +#include <dt-bindings/clock/samsung,exynos9610.h> / { compatible = "samsung,gta4xl", "samsung,exynos9610"; diff --git a/arch/arm64/boot/dts/exynos/exynos9610.dtsi b/arch/arm64/boot/dts/exynos/exynos9610.dtsi index 852f7111e5cdfd82b5afc350792e8b539fe87d39..2a15986c459d6af9f83362c27cdcc3a2646c256b 100644 --- a/arch/arm64/boot/dts/exynos/exynos9610.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos9610.dtsi @@ -6,6 +6,7 @@ */ #include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/clock/samsung,exynos9610.h> / { compatible = "samsung,exynos9610"; @@ -161,6 +162,41 @@ oscclk: clock-osc { clock-frequency = <26000000>; }; + dll_dco: clock-dll-dco { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "dll_dco"; + clock-frequency = <360000000>; + }; + + oscclk_rco_cmgp: clock-osc-rco { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "oscclk_rco"; + clock-frequency = <30000000>; + }; + + ioclk_audiocdclk0: clock-audiocdclk0 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "ioclk_audiocdclk0"; + clock-frequency = <10000000>; + }; + + ioclk_audiocdclk1: clock-audiocdclk1 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "ioclk_audiocdclk1"; + clock-frequency = <100000000>; + }; + + tick_usb: clock-tick-usb { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "tick_usb"; + clock-frequency = <60000000>; + }; + soc: soc@0 { compatible = "simple-bus"; ranges = <0x0 0x0 0x0 0x20000000>; @@ -174,12 +210,81 @@ chipid@10000000 { reg = <0x10000000 0x100>; }; + cmu_peri: clock-controller@10030000 { + compatible = "samsung,exynos9610-cmu-peri"; + reg = <0x10030000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_PERI_BUS>, + <&cmu_top CLK_DOUT_CMU_PERI_IP>, + <&cmu_top CLK_DOUT_CMU_PERI_UART>; + clock-names = "oscclk", + "dout_cmu_peri_bus", + "dout_cmu_peri_ip", + "dout_cmu_peri_uart"; + }; + + cmu_cpucl1: clock-controller@0x10800000 { + compatible = "samsung,exynos9610-cmu-cpucl1"; + reg = <0x10800000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_CPUCL1_SWITCH>, + <&cmu_top CLK_DOUT_CMU_HPM>; + clock-names = "oscclk", + "dout_cmu_cpucl1_switch", + "dout_cmu_hpm"; + }; + + cmu_cpucl0: clock-controller@0x10900000 { + compatible = "samsung,exynos9610-cmu-cpucl0"; + reg = <0x10900000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_CPUCL0_DBG>, + <&cmu_top CLK_DOUT_CMU_CPUCL0_SWITCH>, + <&cmu_top CLK_DOUT_CMU_HPM>; + clock-names = "oscclk", + "dout_cmu_cpucl0_dbg", + "dout_cmu_cpucl0_switch", + "dout_cmu_hpm"; + }; + pinctrl_shub: pinctrl@11080000 { compatible = "samsung,exynos9610-pinctrl"; reg = <0x11080000 0x1000>; interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; }; + cmu_g3d: clock-controller@11430000 { + compatible = "samsung,exynos9610-cmu-g3d"; + reg = <0x11430000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_G3D_SWITCH>, + <&cmu_top CLK_DOUT_CMU_HPM>; + clock-names = "oscclk", + "dout_cmu_g3d_switch", + "dout_cmu_hpm"; + }; + + cmu_apm: clock-controller@11800000 { + compatible = "samsung,exynos9610-cmu-apm"; + reg = <0x11800000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&dll_dco>, + <&cmu_top CLK_DOUT_CMU_APM_BUS>; + clock-names = "oscclk", + "dll_dco", + "dout_cmu_apm_bus"; + }; + pinctrl_alive: pinctrl@11850000 { compatible = "samsung,exynos9610-pinctrl"; reg = <0x11850000 0x1000>; @@ -191,11 +296,48 @@ wakeup-interrupt-controller { }; }; + cmu_cmgp: clock-controller@11c00000 { + compatible = "samsung,exynos9610-cmu-cmgp"; + reg = <0x11c00000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&oscclk_rco_cmgp>, + <&cmu_apm CLK_GOUT_CMU_CMGP_BUS>; + clock-names = "oscclk", + "oscclk_rco", + "gout_cmu_cmgp_bus"; + }; + pinctrl_cmgp: pinctrl@11c20000 { compatible = "samsung,exynos9610-pinctrl"; reg = <0x11c20000 0x1000>; }; + cmu_core: clock-controller@120f0000 { + compatible = "samsung,exynos9610-cmu-core"; + reg = <0x120f0000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_CORE_BUS>, + <&cmu_top CLK_DOUT_CMU_CORE_CCI>, + <&cmu_top CLK_DOUT_CMU_CORE_G3D>; + clock-names = "oscclk", + "dout_cmu_core_bus", + "dout_cmu_core_cci", + "dout_cmu_core_g3d"; + }; + + cmu_top: clock-controller@12100000 { + compatible = "samsung,exynos9610-cmu-top"; + reg = <0x12100000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>; + clock-names = "oscclk"; + }; + gic: interrupt-controller@12300000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; @@ -209,6 +351,37 @@ gic: interrupt-controller@12300000 { IRQ_TYPE_LEVEL_HIGH)>; }; + cmu_g2d: clock-controller@12e00000 { + compatible = "samsung,exynos9610-cmu-g2d"; + reg = <0x12e00000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_G2D_G2D>, + <&cmu_top CLK_DOUT_CMU_G2D_MSCL>; + + clock-names = "oscclk", + "dout_cmu_g2d_g2d", + "dout_cmu_g2d_mscl"; + }; + + cmu_fsys: clock-controller@13400000 { + compatible = "samsung,exynos9610-cmu-fsys"; + reg = <0x13400000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_FSYS_BUS>, + <&cmu_top CLK_DOUT_CMU_FSYS_MMC_CARD>, + <&cmu_top CLK_DOUT_CMU_FSYS_MMC_EMBD>, + <&cmu_top CLK_DOUT_CMU_FSYS_UFS_EMBD>; + clock-names = "oscclk", + "dout_cmu_fsys_bus", + "dout_cmu_fsys_mmc_card", + "dout_cmu_fsys_mmc_embd", + "dout_cmu_fsys_ufs_embd"; + }; + pinctrl_fsys: pinctrl@13490000 { compatible = "samsung,exynos9610-pinctrl"; reg = <0x13490000 0x1000>; @@ -221,6 +394,38 @@ pinctrl_top: pinctrl@139b0000 { interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; }; + cmu_cam: clock-controller@14500000 { + compatible = "samsung,exynos9610-cmu-cam"; + reg = <0x14500000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&cmu_top CLK_DOUT_CMU_CAM_BUS>; + clock-names = "oscclk", + "dout_cmu_cam_bus"; + }; + + cmu_dispaud: clock-controller@14980000 { + compatible = "samsung,exynos9610-cmu-dispaud"; + reg = <0x14980000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, + <&ioclk_audiocdclk0>, + <&ioclk_audiocdclk1>, + <&tick_usb>, + <&cmu_top CLK_DOUT_CMU_DISPAUD_AUD>, + <&cmu_top CLK_DOUT_CMU_DISPAUD_CPU>, + <&cmu_top CLK_DOUT_CMU_DISPAUD_DISP>; + clock-names = "oscclk", + "ioclk_audiocdclk0", + "ioclk_audiocdclk1", + "tick_usb", + "dout_cmu_dispaud_aud", + "dout_cmu_dispaud_cpu", + "dout_cmu_dispaud_disp"; + }; + pinctrl_dispaud: pinctrl@14a60000 { compatible = "samsung,exynos9610-pinctrl"; reg = <0x14a60000 0x1000>; -- 2.47.3