* Samsung Exynos5433 CMU (Clock Management Units)

The Exynos5433 clock controller generates and supplies clock to various
controllers within the Exynos5433 SoC.

Required Properties:

- compatible: should be one of the following.
  - "samsung,exynos5433-cmu-top"   - clock controller compatible for CMU_TOP
    which generates clocks for IMEM/FSYS/G3D/GSCL/HEVC/MSCL/G2D/MFC/PERIC/PERIS
    domains and bus clocks.
  - "samsung,exynos5433-cmu-cpif"  - clock controller compatible for CMU_CPIF
    which generates clocks for LLI (Low Latency Interface) IP.
  - "samsung,exynos5433-cmu-mif"   - clock controller compatible for CMU_MIF
    which generates clocks for DRAM Memory Controller domain.
  - "samsung,exynos5433-cmu-peric" - clock controller compatible for CMU_PERIC
    which generates clocks for UART/I2C/SPI/I2S/PCM/SPDIF/PWM/SLIMBUS IPs.
  - "samsung,exynos5433-cmu-peris" - clock controller compatible for CMU_PERIS
    which generates clocks for PMU/TMU/MCT/WDT/RTC/SECKEY/TZPC IPs.
  - "samsung,exynos5433-cmu-fsys"  - clock controller compatible for CMU_FSYS
    which generates clocks for USB/UFS/SDMMC/TSI/PDMA IPs.
  - "samsung,exynos5433-cmu-g2d"   - clock controller compatible for CMU_G2D
    which generates clocks for G2D/MDMA IPs.
  - "samsung,exynos5433-cmu-disp"  - clock controller compatible for CMU_DISP
    which generates clocks for Display (DECON/HDMI/DSIM/MIXER) IPs.
  - "samsung,exynos5433-cmu-aud"   - clock controller compatible for CMU_AUD
    which generates clocks for Cortex-A5/BUS/AUDIO clocks.
  - "samsung,exynos5433-cmu-bus0", "samsung,exynos5433-cmu-bus1"
    and "samsung,exynos5433-cmu-bus2" - clock controller compatible for CMU_BUS
    which generates global data buses clock and global peripheral buses clock.
  - "samsung,exynos5433-cmu-g3d"  - clock controller compatible for CMU_G3D
    which generates clocks for 3D Graphics Engine IP.
  - "samsung,exynos5433-cmu-gscl"  - clock controller compatible for CMU_GSCL
    which generates clocks for GSCALER IPs.
  - "samsung,exynos5433-cmu-apollo"- clock controller compatible for CMU_APOLLO
    which generates clocks for Cortex-A53 Quad-core processor.
  - "samsung,exynos5433-cmu-atlas" - clock controller compatible for CMU_ATLAS
    which generates clocks for Cortex-A57 Quad-core processor, CoreSight and
    L2 cache controller.
  - "samsung,exynos5433-cmu-mscl" - clock controller compatible for CMU_MSCL
    which generates clocks for M2M (Memory to Memory) scaler and JPEG IPs.
  - "samsung,exynos5433-cmu-mfc"  - clock controller compatible for CMU_MFC
    which generates clocks for MFC(Multi-Format Codec) IP.
  - "samsung,exynos5433-cmu-hevc" - clock controller compatible for CMU_HEVC
    which generates clocks for HEVC(High Efficiency Video Codec) decoder IP.
  - "samsung,exynos5433-cmu-isp" - clock controller compatible for CMU_ISP
    which generates clocks for FIMC-ISP/DRC/SCLC/DIS/3DNR IPs.
  - "samsung,exynos5433-cmu-cam0" - clock controller compatible for CMU_CAM0
    which generates clocks for MIPI_CSIS{0|1}/FIMC_LITE_{A|B|D}/FIMC_3AA{0|1}
    IPs.
  - "samsung,exynos5433-cmu-cam1" - clock controller compatible for CMU_CAM1
    which generates clocks for Cortex-A5/MIPI_CSIS2/FIMC-LITE_C/FIMC-FD IPs.

- reg: physical base address of the controller and length of memory mapped
  region.

- #clock-cells: should be 1.

- clocks: list of the clock controller input clock identifiers,
	from common clock bindings. Please refer the next section
	to find the input clocks for a given controller.

- clock-names: list of the clock controller input clock names,
	as described in clock-bindings.txt.

	Input clocks for top clock controller:
		- oscclk
		- sclk_mphy_pll
		- sclk_mfc_pll
		- sclk_bus_pll

	Input clocks for cpif clock controller:
		- oscclk

	Input clocks for mif clock controller:
		- oscclk
		- sclk_mphy_pll

	Input clocks for fsys clock controller:
		- oscclk
		- sclk_ufs_mphy
		- aclk_fsys_200
		- sclk_pcie_100_fsys
		- sclk_ufsunipro_fsys
		- sclk_mmc2_fsys
		- sclk_mmc1_fsys
		- sclk_mmc0_fsys
		- sclk_usbhost30_fsys
		- sclk_usbdrd30_fsys

	Input clocks for g2d clock controller:
		- oscclk
		- aclk_g2d_266
		- aclk_g2d_400

	Input clocks for disp clock controller:
		- oscclk
		- sclk_dsim1_disp
		- sclk_dsim0_disp
		- sclk_dsd_disp
		- sclk_decon_tv_eclk_disp
		- sclk_decon_vclk_disp
		- sclk_decon_eclk_disp
		- sclk_decon_tv_vclk_disp
		- aclk_disp_333

	Input clocks for audio clock controller:
		- oscclk
		- fout_aud_pll

	Input clocks for bus0 clock controller:
		- aclk_bus0_400

	Input clocks for bus1 clock controller:
		- aclk_bus1_400

	Input clocks for bus2 clock controller:
		- oscclk
		- aclk_bus2_400

	Input clocks for g3d clock controller:
		- oscclk
		- aclk_g3d_400

	Input clocks for gscl clock controller:
		- oscclk
		- aclk_gscl_111
		- aclk_gscl_333

	Input clocks for apollo clock controller:
		- oscclk
		- sclk_bus_pll_apollo

	Input clocks for atlas clock controller:
		- oscclk
		- sclk_bus_pll_atlas

	Input clocks for mscl clock controller:
		- oscclk
		- sclk_jpeg_mscl
		- aclk_mscl_400

	Input clocks for mfc clock controller:
		- oscclk
		- aclk_mfc_400

	Input clocks for hevc clock controller:
		- oscclk
		- aclk_hevc_400

	Input clocks for isp clock controller:
		- oscclk
		- aclk_isp_dis_400
		- aclk_isp_400

	Input clocks for cam0 clock controller:
		- oscclk
		- aclk_cam0_333
		- aclk_cam0_400
		- aclk_cam0_552

	Input clocks for cam1 clock controller:
		- oscclk
		- sclk_isp_uart_cam1
		- sclk_isp_spi1_cam1
		- sclk_isp_spi0_cam1
		- aclk_cam1_333
		- aclk_cam1_400
		- aclk_cam1_552

Each clock is assigned an identifier and client nodes can use this identifier
to specify the clock which they consume.

All available clocks are defined as preprocessor macros in
dt-bindings/clock/exynos5433.h header and can be used in device
tree sources.

Example 1: Examples of 'oscclk' source clock node are listed below.

	xxti: xxti {
		compatible = "fixed-clock";
		clock-output-names = "oscclk";
		#clock-cells = <0>;
	};

Example 2: Examples of clock controller nodes are listed below.

	cmu_top: clock-controller@10030000 {
		compatible = "samsung,exynos5433-cmu-top";
		reg = <0x10030000 0x0c04>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_mphy_pll",
			"sclk_mfc_pll",
			"sclk_bus_pll";
		clocks = <&xxti>,
		       <&cmu_cpif CLK_SCLK_MPHY_PLL>,
		       <&cmu_mif CLK_SCLK_MFC_PLL>,
		       <&cmu_mif CLK_SCLK_BUS_PLL>;
	};

	cmu_cpif: clock-controller@10fc0000 {
		compatible = "samsung,exynos5433-cmu-cpif";
		reg = <0x10fc0000 0x0c04>;
		#clock-cells = <1>;

		clock-names = "oscclk";
		clocks = <&xxti>;
	};

	cmu_mif: clock-controller@105b0000 {
		compatible = "samsung,exynos5433-cmu-mif";
		reg = <0x105b0000 0x100c>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_mphy_pll";
		clocks = <&xxti>,
		       <&cmu_cpif CLK_SCLK_MPHY_PLL>;
	};

	cmu_peric: clock-controller@14c80000 {
		compatible = "samsung,exynos5433-cmu-peric";
		reg = <0x14c80000 0x0b08>;
		#clock-cells = <1>;
	};

	cmu_peris: clock-controller@10040000 {
		compatible = "samsung,exynos5433-cmu-peris";
		reg = <0x10040000 0x0b20>;
		#clock-cells = <1>;
	};

	cmu_fsys: clock-controller@156e0000 {
		compatible = "samsung,exynos5433-cmu-fsys";
		reg = <0x156e0000 0x0b04>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_ufs_mphy",
			"aclk_fsys_200",
			"sclk_pcie_100_fsys",
			"sclk_ufsunipro_fsys",
			"sclk_mmc2_fsys",
			"sclk_mmc1_fsys",
			"sclk_mmc0_fsys",
			"sclk_usbhost30_fsys",
			"sclk_usbdrd30_fsys";
		clocks = <&xxti>,
		       <&cmu_cpif CLK_SCLK_UFS_MPHY>,
		       <&cmu_top CLK_ACLK_FSYS_200>,
		       <&cmu_top CLK_SCLK_PCIE_100_FSYS>,
		       <&cmu_top CLK_SCLK_UFSUNIPRO_FSYS>,
		       <&cmu_top CLK_SCLK_MMC2_FSYS>,
		       <&cmu_top CLK_SCLK_MMC1_FSYS>,
		       <&cmu_top CLK_SCLK_MMC0_FSYS>,
		       <&cmu_top CLK_SCLK_USBHOST30_FSYS>,
		       <&cmu_top CLK_SCLK_USBDRD30_FSYS>;
	};

	cmu_g2d: clock-controller@12460000 {
		compatible = "samsung,exynos5433-cmu-g2d";
		reg = <0x12460000 0x0b08>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"aclk_g2d_266",
			"aclk_g2d_400";
		clocks = <&xxti>,
		       <&cmu_top CLK_ACLK_G2D_266>,
		       <&cmu_top CLK_ACLK_G2D_400>;
	};

	cmu_disp: clock-controller@13b90000 {
		compatible = "samsung,exynos5433-cmu-disp";
		reg = <0x13b90000 0x0c04>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_dsim1_disp",
			"sclk_dsim0_disp",
			"sclk_dsd_disp",
			"sclk_decon_tv_eclk_disp",
			"sclk_decon_vclk_disp",
			"sclk_decon_eclk_disp",
			"sclk_decon_tv_vclk_disp",
			"aclk_disp_333";
		clocks = <&xxti>,
		       <&cmu_mif CLK_SCLK_DSIM1_DISP>,
		       <&cmu_mif CLK_SCLK_DSIM0_DISP>,
		       <&cmu_mif CLK_SCLK_DSD_DISP>,
		       <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>,
		       <&cmu_mif CLK_SCLK_DECON_VCLK_DISP>,
		       <&cmu_mif CLK_SCLK_DECON_ECLK_DISP>,
		       <&cmu_mif CLK_SCLK_DECON_TV_VCLK_DISP>,
		       <&cmu_mif CLK_ACLK_DISP_333>;
	};

	cmu_aud: clock-controller@114c0000 {
		compatible = "samsung,exynos5433-cmu-aud";
		reg = <0x114c0000 0x0b04>;
		#clock-cells = <1>;

		clock-names = "oscclk", "fout_aud_pll";
		clocks = <&xxti>, <&cmu_top CLK_FOUT_AUD_PLL>;
	};

	cmu_bus0: clock-controller@13600000 {
		compatible = "samsung,exynos5433-cmu-bus0";
		reg = <0x13600000 0x0b04>;
		#clock-cells = <1>;

		clock-names = "aclk_bus0_400";
		clocks = <&cmu_top CLK_ACLK_BUS0_400>;
	};

	cmu_bus1: clock-controller@14800000 {
		compatible = "samsung,exynos5433-cmu-bus1";
		reg = <0x14800000 0x0b04>;
		#clock-cells = <1>;

		clock-names = "aclk_bus1_400";
		clocks = <&cmu_top CLK_ACLK_BUS1_400>;
	};

	cmu_bus2: clock-controller@13400000 {
		compatible = "samsung,exynos5433-cmu-bus2";
		reg = <0x13400000 0x0b04>;
		#clock-cells = <1>;

		clock-names = "oscclk", "aclk_bus2_400";
		clocks = <&xxti>, <&cmu_mif CLK_ACLK_BUS2_400>;
	};

	cmu_g3d: clock-controller@14aa0000 {
		compatible = "samsung,exynos5433-cmu-g3d";
		reg = <0x14aa0000 0x1000>;
		#clock-cells = <1>;

		clock-names = "oscclk", "aclk_g3d_400";
		clocks = <&xxti>, <&cmu_top CLK_ACLK_G3D_400>;
	};

	cmu_gscl: clock-controller@13cf0000 {
		compatible = "samsung,exynos5433-cmu-gscl";
		reg = <0x13cf0000 0x0b10>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"aclk_gscl_111",
			"aclk_gscl_333";
		clocks = <&xxti>,
			<&cmu_top CLK_ACLK_GSCL_111>,
			<&cmu_top CLK_ACLK_GSCL_333>;
	};

	cmu_apollo: clock-controller@11900000 {
		compatible = "samsung,exynos5433-cmu-apollo";
		reg = <0x11900000 0x1088>;
		#clock-cells = <1>;

		clock-names = "oscclk", "sclk_bus_pll_apollo";
		clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_APOLLO>;
	};

	cmu_atlas: clock-controller@11800000 {
		compatible = "samsung,exynos5433-cmu-atlas";
		reg = <0x11800000 0x1088>;
		#clock-cells = <1>;

		clock-names = "oscclk", "sclk_bus_pll_atlas";
		clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_ATLAS>;
	};

	cmu_mscl: clock-controller@105d0000 {
		compatible = "samsung,exynos5433-cmu-mscl";
		reg = <0x105d0000 0x0b10>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_jpeg_mscl",
			"aclk_mscl_400";
		clocks = <&xxti>,
		       <&cmu_top CLK_SCLK_JPEG_MSCL>,
		       <&cmu_top CLK_ACLK_MSCL_400>;
	};

	cmu_mfc: clock-controller@15280000 {
		compatible = "samsung,exynos5433-cmu-mfc";
		reg = <0x15280000 0x0b08>;
		#clock-cells = <1>;

		clock-names = "oscclk", "aclk_mfc_400";
		clocks = <&xxti>, <&cmu_top CLK_ACLK_MFC_400>;
	};

	cmu_hevc: clock-controller@14f80000 {
		compatible = "samsung,exynos5433-cmu-hevc";
		reg = <0x14f80000 0x0b08>;
		#clock-cells = <1>;

		clock-names = "oscclk", "aclk_hevc_400";
		clocks = <&xxti>, <&cmu_top CLK_ACLK_HEVC_400>;
	};

	cmu_isp: clock-controller@146d0000 {
		compatible = "samsung,exynos5433-cmu-isp";
		reg = <0x146d0000 0x0b0c>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"aclk_isp_dis_400",
			"aclk_isp_400";
		clocks = <&xxti>,
		       <&cmu_top CLK_ACLK_ISP_DIS_400>,
		       <&cmu_top CLK_ACLK_ISP_400>;
	};

	cmu_cam0: clock-controller@120d0000 {
		compatible = "samsung,exynos5433-cmu-cam0";
		reg = <0x120d0000 0x0b0c>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"aclk_cam0_333",
			"aclk_cam0_400",
			"aclk_cam0_552";
		clocks = <&xxti>,
		       <&cmu_top CLK_ACLK_CAM0_333>,
		       <&cmu_top CLK_ACLK_CAM0_400>,
		       <&cmu_top CLK_ACLK_CAM0_552>;
	};

	cmu_cam1: clock-controller@145d0000 {
		compatible = "samsung,exynos5433-cmu-cam1";
		reg = <0x145d0000 0x0b08>;
		#clock-cells = <1>;

		clock-names = "oscclk",
			"sclk_isp_uart_cam1",
			"sclk_isp_spi1_cam1",
			"sclk_isp_spi0_cam1",
			"aclk_cam1_333",
			"aclk_cam1_400",
			"aclk_cam1_552";
		clocks = <&xxti>,
		       <&cmu_top CLK_SCLK_ISP_UART_CAM1>,
		       <&cmu_top CLK_SCLK_ISP_SPI1_CAM1>,
		       <&cmu_top CLK_SCLK_ISP_SPI0_CAM1>,
		       <&cmu_top CLK_ACLK_CAM1_333>,
		       <&cmu_top CLK_ACLK_CAM1_400>,
		       <&cmu_top CLK_ACLK_CAM1_552>;
	};

Example 3: UART controller node that consumes the clock generated by the clock
	   controller.

	serial_0: serial@14C10000 {
		compatible = "samsung,exynos5433-uart";
		reg = <0x14C10000 0x100>;
		interrupts = <0 421 0>;
		clocks = <&cmu_peric CLK_PCLK_UART0>,
			 <&cmu_peric CLK_SCLK_UART0>;
		clock-names = "uart", "clk_uart_baud0";
		pinctrl-names = "default";
		pinctrl-0 = <&uart0_bus>;
	};
