| * 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>; | 
 | 	}; |