# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/clock/samsung,exynos5433-clock.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Samsung Exynos5433 SoC clock controller maintainers: - Chanwoo Choi <cw00.choi@samsung.com> - Krzysztof Kozlowski <krzk@kernel.org> - Sylwester Nawrocki <s.nawrocki@samsung.com> - Tomasz Figa <tomasz.figa@gmail.com> description: | Expected external clocks, defined in DTS as fixed-rate clocks with a matching name:: - "oscclk" - PLL input clock from XXTI All available clocks are defined as preprocessor macros in include/dt-bindings/clock/exynos5433.h header. properties: compatible: enum: # CMU_TOP which generates clocks for # IMEM/FSYS/G3D/GSCL/HEVC/MSCL/G2D/MFC/PERIC/PERIS domains and bus # clocks - samsung,exynos5433-cmu-top # CMU_CPIF which generates clocks for LLI (Low Latency Interface) IP - samsung,exynos5433-cmu-cpif # CMU_MIF which generates clocks for DRAM Memory Controller domain - samsung,exynos5433-cmu-mif # CMU_PERIC which generates clocks for # UART/I2C/SPI/I2S/PCM/SPDIF/PWM/SLIMBUS IPs - samsung,exynos5433-cmu-peric # CMU_PERIS which generates clocks for PMU/TMU/MCT/WDT/RTC/SECKEY/TZPC IPs - samsung,exynos5433-cmu-peris # CMU_FSYS which generates clocks for USB/UFS/SDMMC/TSI/PDMA IPs - samsung,exynos5433-cmu-fsys - samsung,exynos5433-cmu-g2d # CMU_DISP which generates clocks for Display (DECON/HDMI/DSIM/MIXER) IPs - samsung,exynos5433-cmu-disp - samsung,exynos5433-cmu-aud - samsung,exynos5433-cmu-bus0 - samsung,exynos5433-cmu-bus1 - samsung,exynos5433-cmu-bus2 - samsung,exynos5433-cmu-g3d - samsung,exynos5433-cmu-gscl - samsung,exynos5433-cmu-apollo # CMU_ATLAS which generates clocks for Cortex-A57 Quad-core processor, # CoreSight and L2 cache controller - samsung,exynos5433-cmu-atlas # CMU_MSCL which generates clocks for M2M (Memory to Memory) scaler and # JPEG IPs - samsung,exynos5433-cmu-mscl - samsung,exynos5433-cmu-mfc - samsung,exynos5433-cmu-hevc # CMU_ISP which generates clocks for FIMC-ISP/DRC/SCLC/DIS/3DNR IPs - samsung,exynos5433-cmu-isp # CMU_CAM0 which generates clocks for # MIPI_CSIS{0|1}/FIMC_LITE_{A|B|D}/FIMC_3AA{0|1} IPs - samsung,exynos5433-cmu-cam0 # CMU_CAM1 which generates clocks for # Cortex-A5/MIPI_CSIS2/FIMC-LITE_C/FIMC-FD IPs - samsung,exynos5433-cmu-cam1 # CMU_IMEM which generates clocks for SSS (Security SubSystem) and # SlimSSS IPs - samsung,exynos5433-cmu-imem clocks: minItems: 1 maxItems: 10 clock-names: minItems: 1 maxItems: 10 "#clock-cells": const: 1 power-domains: maxItems: 1 reg: maxItems: 1 required: - compatible - "#clock-cells" - reg allOf: - if: properties: compatible: contains: const: samsung,exynos5433-cmu-top then: properties: clocks: minItems: 4 maxItems: 4 clock-names: items: - const: oscclk - const: sclk_mphy_pll - const: sclk_mfc_pll - const: sclk_bus_pll required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-cpif then: properties: clocks: minItems: 1 maxItems: 1 clock-names: items: - const: oscclk required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-mif then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: sclk_mphy_pll required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-fsys then: properties: clocks: minItems: 10 maxItems: 10 clock-names: items: - const: oscclk - const: sclk_ufs_mphy - const: aclk_fsys_200 - const: sclk_pcie_100_fsys - const: sclk_ufsunipro_fsys - const: sclk_mmc2_fsys - const: sclk_mmc1_fsys - const: sclk_mmc0_fsys - const: sclk_usbhost30_fsys - const: sclk_usbdrd30_fsys required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-g2d then: properties: clocks: minItems: 3 maxItems: 3 clock-names: items: - const: oscclk - const: aclk_g2d_266 - const: aclk_g2d_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-disp then: properties: clocks: minItems: 9 maxItems: 9 clock-names: items: - const: oscclk - const: sclk_dsim1_disp - const: sclk_dsim0_disp - const: sclk_dsd_disp - const: sclk_decon_tv_eclk_disp - const: sclk_decon_vclk_disp - const: sclk_decon_eclk_disp - const: sclk_decon_tv_vclk_disp - const: aclk_disp_333 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-aud then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: fout_aud_pll required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-bus0 then: properties: clocks: minItems: 1 maxItems: 1 clock-names: items: - const: aclk_bus0_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-bus1 then: properties: clocks: minItems: 1 maxItems: 1 clock-names: items: - const: aclk_bus1_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-bus2 then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: aclk_bus2_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-g3d then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: aclk_g3d_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-gscl then: properties: clocks: minItems: 3 maxItems: 3 clock-names: items: - const: oscclk - const: aclk_gscl_111 - const: aclk_gscl_333 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-apollo then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: sclk_bus_pll_apollo required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-atlas then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: sclk_bus_pll_atlas required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-mscl then: properties: clocks: minItems: 3 maxItems: 3 clock-names: items: - const: oscclk - const: sclk_jpeg_mscl - const: aclk_mscl_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-mfc then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: aclk_mfc_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-hevc then: properties: clocks: minItems: 2 maxItems: 2 clock-names: items: - const: oscclk - const: aclk_hevc_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-isp then: properties: clocks: minItems: 3 maxItems: 3 clock-names: items: - const: oscclk - const: aclk_isp_dis_400 - const: aclk_isp_400 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-cam0 then: properties: clocks: minItems: 4 maxItems: 4 clock-names: items: - const: oscclk - const: aclk_cam0_333 - const: aclk_cam0_400 - const: aclk_cam0_552 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-cam1 then: properties: clocks: minItems: 7 maxItems: 7 clock-names: items: - const: oscclk - const: sclk_isp_uart_cam1 - const: sclk_isp_spi1_cam1 - const: sclk_isp_spi0_cam1 - const: aclk_cam1_333 - const: aclk_cam1_400 - const: aclk_cam1_552 required: - clock-names - clocks - if: properties: compatible: contains: const: samsung,exynos5433-cmu-imem then: properties: clocks: minItems: 4 maxItems: 4 clock-names: items: - const: oscclk - const: aclk_imem_sssx_266 - const: aclk_imem_266 - const: aclk_imem_200 required: - clock-names - clocks additionalProperties: false examples: - | #include <dt-bindings/clock/exynos5433.h> xxti: clock { compatible = "fixed-clock"; clock-output-names = "oscclk"; #clock-cells = <0>; clock-frequency = <24000000>; }; clock-controller@10030000 { compatible = "samsung,exynos5433-cmu-top"; reg = <0x10030000 0x1000>; #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>; };