Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / devicetree / bindings / clock / exynos5433-clock.txt
diff --git a/kernel/Documentation/devicetree/bindings/clock/exynos5433-clock.txt b/kernel/Documentation/devicetree/bindings/clock/exynos5433-clock.txt
new file mode 100644 (file)
index 0000000..63379b0
--- /dev/null
@@ -0,0 +1,462 @@
+* 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
+               - div_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 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",
+                       "div_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_DIV_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>;
+       };
+
+       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>;
+               status = "disabled";
+       };