arm: dts: rockchip: rk3288-android delete rk timer
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / stih416-clock.dtsi
index a6942c75cbbbbf4de002588576306cd97c205193..5b4fb838cddb61a71c747cfc05789a80f2f48c27 100644 (file)
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
+#include <dt-bindings/clock/stih416-clks.h>
+
 / {
        clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
                /*
                 * Fixed 30MHz oscillator inputs to SoC
                 */
-               CLK_SYSIN: CLK_SYSIN {
+               clk_sysin: clk-sysin {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <30000000>;
-                       clock-output-names = "CLK_SYSIN";
+               };
+
+               /*
+                * ClockGenAs on SASG2
+                */
+               clockgen-a@fee62000 {
+                       reg = <0xfee62000 0xb48>;
+
+                       clk_s_a0_pll: clk-s-a0-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-plls-c65";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a0-pll0-hs",
+                                                    "clk-s-a0-pll0-ls",
+                                                    "clk-s-a0-pll1";
+                       };
+
+                       clk_s_a0_osc_prediv: clk-s-a0-osc-prediv {
+                               #clock-cells = <0>;
+                               compatible = "st,clkgena-prediv-c65",
+                                            "st,clkgena-prediv";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a0-osc-prediv";
+                       };
+
+                       clk_s_a0_hs: clk-s-a0-hs {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c65-hs",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_s_a0_osc_prediv>,
+                                        <&clk_s_a0_pll 0>, /* PLL0 HS */
+                                        <&clk_s_a0_pll 2>; /* PLL1 */
+
+                               clock-output-names = "clk-s-fdma-0",
+                                                    "clk-s-fdma-1",
+                                                    ""; /* clk-s-jit-sense */
+                                                    /* Fourth output unused */
+                       };
+
+                       clk_s_a0_ls: clk-s-a0-ls {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c65-ls",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_s_a0_osc_prediv>,
+                                        <&clk_s_a0_pll 1>, /* PLL0 LS */
+                                        <&clk_s_a0_pll 2>; /* PLL1 */
+
+                               clock-output-names = "clk-s-icn-reg-0",
+                                                    "clk-s-icn-if-0",
+                                                    "clk-s-icn-reg-lp-0",
+                                                    "clk-s-emiss",
+                                                    "clk-s-eth1-phy",
+                                                    "clk-s-mii-ref-out";
+                                                    /* Remaining outputs unused */
+                       };
+               };
+
+               clockgen-a@fee81000 {
+                       reg = <0xfee81000 0xb48>;
+
+                       clk_s_a1_pll: clk-s-a1-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-plls-c65";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a1-pll0-hs",
+                                                    "clk-s-a1-pll0-ls",
+                                                    "clk-s-a1-pll1";
+                       };
+
+                       clk_s_a1_osc_prediv: clk-s-a1-osc-prediv {
+                               #clock-cells = <0>;
+                               compatible = "st,clkgena-prediv-c65",
+                                            "st,clkgena-prediv";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-s-a1-osc-prediv";
+                       };
+
+                       clk_s_a1_hs: clk-s-a1-hs {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c65-hs",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_s_a1_osc_prediv>,
+                                        <&clk_s_a1_pll 0>, /* PLL0 HS */
+                                        <&clk_s_a1_pll 2>; /* PLL1 */
+
+                               clock-output-names = "", /* Reserved */
+                                                    "", /* Reserved */
+                                                    "clk-s-stac-phy",
+                                                    "clk-s-vtac-tx-phy";
+                       };
+
+                       clk_s_a1_ls: clk-s-a1-ls {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c65-ls",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_s_a1_osc_prediv>,
+                                        <&clk_s_a1_pll 1>, /* PLL0 LS */
+                                        <&clk_s_a1_pll 2>; /* PLL1 */
+
+                               clock-output-names = "clk-s-icn-if-2",
+                                                    "clk-s-card-mmc-0",
+                                                    "clk-s-icn-if-1",
+                                                    "clk-s-gmac0-phy",
+                                                    "clk-s-nand-ctrl",
+                                                    "", /* Reserved */
+                                                    "clk-s-mii0-ref-out",
+                                                    "clk-s-stac-sys",
+                                                    "clk-s-card-mmc-1";
+                                                    /* Remaining outputs unused */
+                       };
+               };
+
+               /*
+                * ClockGenAs on MPE42
+                */
+               clockgen-a@fde12000 {
+                       reg = <0xfde12000 0xb50>;
+
+                       clk_m_a0_pll0: clk-m-a0-pll0 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a0-pll0-phi0",
+                                                    "clk-m-a0-pll0-phi1",
+                                                    "clk-m-a0-pll0-phi2",
+                                                    "clk-m-a0-pll0-phi3";
+                       };
+
+                       clk_m_a0_pll1: clk-m-a0-pll1 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a0-pll1-phi0",
+                                                    "clk-m-a0-pll1-phi1",
+                                                    "clk-m-a0-pll1-phi2",
+                                                    "clk-m-a0-pll1-phi3";
+                       };
+
+                       clk_m_a0_osc_prediv: clk-m-a0-osc-prediv {
+                               #clock-cells = <0>;
+                               compatible = "st,clkgena-prediv-c32",
+                                            "st,clkgena-prediv";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a0-osc-prediv";
+                       };
+
+                       clk_m_a0_div0: clk-m-a0-div0 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf0",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a0_osc_prediv>,
+                                        <&clk_m_a0_pll0 0>, /* PLL0 PHI0 */
+                                        <&clk_m_a0_pll1 0>; /* PLL1 PHI0 */
+
+                               clock-output-names = "", /* Unused */
+                                                    "", /* Unused */
+                                                    "clk-m-fdma-12",
+                                                    "", /* Unused */
+                                                    "clk-m-pp-dmu-0",
+                                                    "clk-m-pp-dmu-1",
+                                                    "clk-m-icm-lmi",
+                                                    "clk-m-vid-dmu-0";
+                       };
+
+                       clk_m_a0_div1: clk-m-a0-div1 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf1",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a0_osc_prediv>,
+                                        <&clk_m_a0_pll0 1>, /* PLL0 PHI1 */
+                                        <&clk_m_a0_pll1 1>; /* PLL1 PHI1 */
+
+                               clock-output-names = "clk-m-vid-dmu-1",
+                                                    "", /* Unused */
+                                                    "clk-m-a9-ext2f",
+                                                    "clk-m-st40rt",
+                                                    "clk-m-st231-dmu-0",
+                                                    "clk-m-st231-dmu-1",
+                                                    "clk-m-st231-aud",
+                                                    "clk-m-st231-gp-0";
+                       };
+
+                       clk_m_a0_div2: clk-m-a0-div2 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf2",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a0_osc_prediv>,
+                                        <&clk_m_a0_pll0 2>, /* PLL0 PHI2 */
+                                        <&clk_m_a0_pll1 2>; /* PLL1 PHI2 */
+
+                               clock-output-names = "clk-m-st231-gp-1",
+                                                    "clk-m-icn-cpu",
+                                                    "clk-m-icn-stac",
+                                                    "clk-m-tx-icn-dmu-0",
+                                                    "clk-m-tx-icn-dmu-1",
+                                                    "clk-m-tx-icn-ts",
+                                                    "clk-m-icn-vdp-0",
+                                                    "clk-m-icn-vdp-1";
+                       };
+
+                       clk_m_a0_div3: clk-m-a0-div3 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf3",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a0_osc_prediv>,
+                                        <&clk_m_a0_pll0 3>, /* PLL0 PHI3 */
+                                        <&clk_m_a0_pll1 3>; /* PLL1 PHI3 */
+
+                               clock-output-names = "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "clk-m-icn-vp8",
+                                                    "", /* Unused */
+                                                    "clk-m-icn-reg-11",
+                                                    "clk-m-a9-trace";
+                       };
+               };
+
+               clockgen-a@fd6db000 {
+                       reg = <0xfd6db000 0xb50>;
+
+                       clk_m_a1_pll0: clk-m-a1-pll0 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a1-pll0-phi0",
+                                                    "clk-m-a1-pll0-phi1",
+                                                    "clk-m-a1-pll0-phi2",
+                                                    "clk-m-a1-pll0-phi3";
+                       };
+
+                       clk_m_a1_pll1: clk-m-a1-pll1 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a1-pll1-phi0",
+                                                    "clk-m-a1-pll1-phi1",
+                                                    "clk-m-a1-pll1-phi2",
+                                                    "clk-m-a1-pll1-phi3";
+                       };
+
+                       clk_m_a1_osc_prediv: clk-m-a1-osc-prediv {
+                               #clock-cells = <0>;
+                               compatible = "st,clkgena-prediv-c32",
+                                            "st,clkgena-prediv";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a1-osc-prediv";
+                       };
+
+                       clk_m_a1_div0: clk-m-a1-div0 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf0",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a1_osc_prediv>,
+                                        <&clk_m_a1_pll0 0>, /* PLL0 PHI0 */
+                                        <&clk_m_a1_pll1 0>; /* PLL1 PHI0 */
+
+                               clock-output-names = "", /* Unused */
+                                                    "clk-m-fdma-10",
+                                                    "clk-m-fdma-11",
+                                                    "clk-m-hva-alt",
+                                                    "clk-m-proc-sc",
+                                                    "clk-m-tp",
+                                                    "clk-m-rx-icn-dmu-0",
+                                                    "clk-m-rx-icn-dmu-1";
+                       };
+
+                       clk_m_a1_div1: clk-m-a1-div1 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf1",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a1_osc_prediv>,
+                                        <&clk_m_a1_pll0 1>, /* PLL0 PHI1 */
+                                        <&clk_m_a1_pll1 1>; /* PLL1 PHI1 */
+
+                               clock-output-names = "clk-m-rx-icn-ts",
+                                                    "clk-m-rx-icn-vdp-0",
+                                                    "", /* Unused */
+                                                    "clk-m-prv-t1-bus",
+                                                    "clk-m-icn-reg-12",
+                                                    "clk-m-icn-reg-10",
+                                                    "", /* Unused */
+                                                    "clk-m-icn-st231";
+                       };
+
+                       clk_m_a1_div2: clk-m-a1-div2 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf2",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a1_osc_prediv>,
+                                        <&clk_m_a1_pll0 2>, /* PLL0 PHI2 */
+                                        <&clk_m_a1_pll1 2>; /* PLL1 PHI2 */
+
+                               clock-output-names = "clk-m-fvdp-proc-alt",
+                                                    "clk-m-icn-reg-13",
+                                                    "clk-m-tx-icn-gpu",
+                                                    "clk-m-rx-icn-gpu",
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* clk-m-apb-pm-12 */
+                                                    ""; /* Unused */
+                       };
+
+                       clk_m_a1_div3: clk-m-a1-div3 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf3",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a1_osc_prediv>,
+                                        <&clk_m_a1_pll0 3>, /* PLL0 PHI3 */
+                                        <&clk_m_a1_pll1 3>; /* PLL1 PHI3 */
+
+                               clock-output-names = "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    "", /* Unused */
+                                                    ""; /* clk-m-gpu-alt */
+                       };
+               };
+
+               clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2 {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&clk_m_a0_div1 2>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
+               };
+
+               clockgen-a@fd345000 {
+                       reg = <0xfd345000 0xb50>;
+
+                       clk_m_a2_pll0: clk-m-a2-pll0 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-0", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a2-pll0-phi0",
+                                                    "clk-m-a2-pll0-phi1",
+                                                    "clk-m-a2-pll0-phi2",
+                                                    "clk-m-a2-pll0-phi3";
+                       };
+
+                       clk_m_a2_pll1: clk-m-a2-pll1 {
+                               #clock-cells = <1>;
+                               compatible = "st,plls-c32-a1x-1", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a2-pll1-phi0",
+                                                    "clk-m-a2-pll1-phi1",
+                                                    "clk-m-a2-pll1-phi2",
+                                                    "clk-m-a2-pll1-phi3";
+                       };
+
+                       clk_m_a2_osc_prediv: clk-m-a2-osc-prediv {
+                               #clock-cells = <0>;
+                               compatible = "st,clkgena-prediv-c32",
+                                            "st,clkgena-prediv";
+
+                               clocks = <&clk_sysin>;
+
+                               clock-output-names = "clk-m-a2-osc-prediv";
+                       };
+
+                       clk_m_a2_div0: clk-m-a2-div0 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf0",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a2_osc_prediv>,
+                                        <&clk_m_a2_pll0 0>, /* PLL0 PHI0 */
+                                        <&clk_m_a2_pll1 0>; /* PLL1 PHI0 */
+
+                               clock-output-names = "clk-m-vtac-main-phy",
+                                                    "clk-m-vtac-aux-phy",
+                                                    "clk-m-stac-phy",
+                                                    "clk-m-stac-sys",
+                                                    "", /* clk-m-mpestac-pg */
+                                                    "", /* clk-m-mpestac-wc */
+                                                    "", /* clk-m-mpevtacaux-pg*/
+                                                    ""; /* clk-m-mpevtacmain-pg*/
+                       };
+
+                       clk_m_a2_div1: clk-m-a2-div1 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf1",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a2_osc_prediv>,
+                                        <&clk_m_a2_pll0 1>, /* PLL0 PHI1 */
+                                        <&clk_m_a2_pll1 1>; /* PLL1 PHI1 */
+
+                               clock-output-names = "", /* clk-m-mpevtacrx0-wc */
+                                                    "", /* clk-m-mpevtacrx1-wc */
+                                                    "clk-m-compo-main",
+                                                    "clk-m-compo-aux",
+                                                    "clk-m-bdisp-0",
+                                                    "clk-m-bdisp-1",
+                                                    "clk-m-icn-bdisp",
+                                                    "clk-m-icn-compo";
+                       };
+
+                       clk_m_a2_div2: clk-m-a2-div2 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf2",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a2_osc_prediv>,
+                                        <&clk_m_a2_pll0 2>, /* PLL0 PHI2 */
+                                        <&clk_m_a2_pll1 2>; /* PLL1 PHI2 */
+
+                               clock-output-names = "clk-m-icn-vdp-2",
+                                                    "", /* Unused */
+                                                    "clk-m-icn-reg-14",
+                                                    "clk-m-mdtp",
+                                                    "clk-m-jpegdec",
+                                                    "", /* Unused */
+                                                    "clk-m-dcephy-impctrl",
+                                                    ""; /* Unused */
+                       };
+
+                       clk_m_a2_div3: clk-m-a2-div3 {
+                               #clock-cells = <1>;
+                               compatible = "st,clkgena-divmux-c32-odf3",
+                                            "st,clkgena-divmux";
+
+                               clocks = <&clk_m_a2_osc_prediv>,
+                                        <&clk_m_a2_pll0 3>, /* PLL0 PHI3 */
+                                        <&clk_m_a2_pll1 3>; /* PLL1 PHI3 */
+
+                               clock-output-names = "", /* Unused */
+                                                    ""; /* clk-m-apb-pm-11 */
+                                                    /* Remaining outputs unused */
+                       };
+               };
+
+               /*
+                * A9 PLL
+                */
+               clockgen-a9@fdde08b0 {
+                       reg = <0xfdde08b0 0x70>;
+
+                       clockgen_a9_pll: clockgen-a9-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih416-plls-c32-a9", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+                               clock-output-names = "clockgen-a9-pll-odf";
+                       };
+               };
+
+               /*
+                * ARM CPU related clocks
+                */
+               clk_m_a9: clk-m-a9@fdde08ac {
+                       #clock-cells = <0>;
+                       compatible = "st,stih416-clkgen-a9-mux", "st,clkgen-mux";
+                       reg = <0xfdde08ac 0x4>;
+                       clocks = <&clockgen_a9_pll 0>,
+                                <&clockgen_a9_pll 0>,
+                                <&clk_m_a0_div1 2>,
+                                <&clk_m_a9_ext2f_div2>;
                };
 
                /*
                 * ARM Peripheral clock for timers
                 */
-               arm_periph_clk: arm_periph_clk {
+               arm_periph_clk: clk-m-a9-periphs {
                        #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <600000000>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&clk_m_a9>;
+                       clock-div = <2>;
+                       clock-mult = <1>;
                };
 
                /*
-                * Bootloader initialized system infrastructure clock for
-                * serial devices.
+                * Frequency synthesizers on the SASG2
                 */
-               CLK_S_ICN_REG_0: clockgenA0@4 {
+               clockgen_b0: clockgen-b0@fee108b4 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs216", "st,quadfs";
+                       reg = <0xfee108b4 0x44>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-s-usb48",
+                                            "clk-s-dss",
+                                            "clk-s-stfe-frc-2",
+                                            "clk-s-thsens-scard";
+               };
+
+               clockgen_b1: clockgen-b1@fe8308c4 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs216", "st,quadfs";
+                       reg = <0xfe8308c4 0x44>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-s-pcm-0",
+                                            "clk-s-pcm-1",
+                                            "clk-s-pcm-2",
+                                            "clk-s-pcm-3";
+               };
+
+               clockgen_c: clockgen-c@fe8307d0 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs432", "st,quadfs";
+                       reg = <0xfe8307d0 0x44>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-s-c-fs0-ch0",
+                                            "clk-s-c-vcc-sd",
+                                            "clk-s-c-fs0-ch2";
+               };
+
+               clk_s_vcc_hd: clk-s-vcc-hd@fe8308b8 {
                        #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
-                       clock-output-names = "CLK_S_ICN_REG_0";
+                       compatible = "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux";
+                       reg = <0xfe8308b8 0x4>; /* SYSCFG2558 */
+
+                       clocks = <&clk_sysin>,
+                                <&clockgen_c 0>;
                };
 
-               CLK_S_GMAC0_PHY: clockgenA1@7 {
+               /*
+                * Add a dummy clock for the HDMI PHY for the VCC input mux
+                */
+               clk_s_tmds_fromphy: clk-s-tmds-fromphy {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <25000000>;
-                       clock-output-names = "CLK_S_GMAC0_PHY";
+                       clock-frequency = <0>;
+               };
+
+               clockgen_c_vcc: clockgen-c-vcc@fe8308ac {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-clkgenc", "st,clkgen-vcc";
+                       reg = <0xfe8308ac 0xc>; /* SYSCFG2555,2556,2557 */
+
+                       clocks = <&clk_s_vcc_hd>,
+                                <&clockgen_c 1>,
+                                <&clk_s_tmds_fromphy>,
+                                <&clockgen_c 2>;
+
+                       clock-output-names  = "clk-s-pix-hdmi",
+                                             "clk-s-pix-dvo",
+                                             "clk-s-out-dvo",
+                                             "clk-s-pix-hd",
+                                             "clk-s-hddac",
+                                             "clk-s-denc",
+                                             "clk-s-sddac",
+                                             "clk-s-pix-main",
+                                             "clk-s-pix-aux",
+                                             "clk-s-stfe-frc-0",
+                                             "clk-s-ref-mcru",
+                                             "clk-s-slave-mcru",
+                                             "clk-s-tmds-hdmi",
+                                             "clk-s-hdmi-reject-pll",
+                                             "clk-s-thsens";
                };
 
-               CLK_S_ETH1_PHY: clockgenA0@7 {
+               clockgen_d: clockgen-d@fee107e0 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs216", "st,quadfs";
+                       reg = <0xfee107e0 0x44>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-s-ccsc",
+                                            "clk-s-stfe-frc-1",
+                                            "clk-s-tsout-1",
+                                            "clk-s-mchi";
+               };
+
+               /*
+                * Frequency synthesizers on the MPE42
+                */
+               clockgen_e: clockgen-e@fd3208bc {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs660-E", "st,quadfs";
+                       reg = <0xfd3208bc 0xb0>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-m-pix-mdtp-0",
+                                            "clk-m-pix-mdtp-1",
+                                            "clk-m-pix-mdtp-2",
+                                            "clk-m-mpelpc";
+               };
+
+               clockgen_f: clockgen-f@fd320878 {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-quadfs660-F", "st,quadfs";
+                       reg = <0xfd320878 0xf0>;
+
+                       clocks = <&clk_sysin>;
+                       clock-output-names = "clk-m-main-vidfs",
+                                            "clk-m-hva-fs",
+                                            "clk-m-fvdp-vcpu",
+                                            "clk-m-fvdp-proc-fs";
+               };
+
+               clk_m_fvdp_proc: clk-m-fvdp-proc@fd320910 {
+                       #clock-cells = <0>;
+                       compatible = "st,stih416-clkgenf-vcc-fvdp", "st,clkgen-mux";
+                       reg = <0xfd320910 0x4>; /* SYSCFG8580 */
+
+                       clocks = <&clk_m_a1_div2 0>,
+                                <&clockgen_f 3>;
+               };
+
+               clk_m_hva: clk-m-hva@fd690868 {
+                       #clock-cells = <0>;
+                       compatible = "st,stih416-clkgenf-vcc-hva", "st,clkgen-mux";
+                       reg = <0xfd690868 0x4>; /* SYSCFG9538 */
+
+                       clocks = <&clockgen_f 1>,
+                                <&clk_m_a1_div0 3>;
+               };
+
+               clk_m_f_vcc_hd: clk-m-f-vcc-hd@fd32086c {
+                       #clock-cells = <0>;
+                       compatible = "st,stih416-clkgenf-vcc-hd", "st,clkgen-mux";
+                       reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
+
+                       clocks = <&clockgen_c_vcc 7>,
+                                <&clockgen_f 0>;
+               };
+
+               clk_m_f_vcc_sd: clk-m-f-vcc-sd@fd32086c {
+                       #clock-cells = <0>;
+                       compatible = "st,stih416-clkgenf-vcc-sd", "st,clkgen-mux";
+                       reg = <0xfd32086c 0x4>; /* SYSCFG8539 */
+
+                       clocks = <&clockgen_c_vcc 8>,
+                                <&clockgen_f 1>;
+               };
+
+               /*
+                * Add a dummy clock for the HDMIRx external signal clock
+                */
+               clk_m_pix_hdmirx_sas: clk-m-pix-hdmirx-sas {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <25000000>;
-                       clock-output-names = "CLK_S_ETH1_PHY";
+                       clock-frequency = <0>;
+               };
+
+               clockgen_f_vcc: clockgen-f-vcc@fd32086c {
+                       #clock-cells = <1>;
+                       compatible = "st,stih416-clkgenf", "st,clkgen-vcc";
+                       reg = <0xfd32086c 0xc>; /* SYSCFG8539,8540,8541 */
+
+                       clocks = <&clk_m_f_vcc_hd>,
+                                <&clk_m_f_vcc_sd>,
+                                <&clockgen_f 0>,
+                                <&clk_m_pix_hdmirx_sas>;
+
+                       clock-output-names  = "clk-m-pix-main-pipe",
+                                             "clk-m-pix-aux-pipe",
+                                             "clk-m-pix-main-cru",
+                                             "clk-m-pix-aux-cru",
+                                             "clk-m-xfer-be-compo",
+                                             "clk-m-xfer-pip-compo",
+                                             "clk-m-xfer-aux-compo",
+                                             "clk-m-vsens",
+                                             "clk-m-pix-hdmirx-0",
+                                             "clk-m-pix-hdmirx-1";
+               };
+
+               /*
+                * DDR PLL
+                */
+               clockgen-ddr@0xfdde07d8 {
+                       reg = <0xfdde07d8 0x110>;
+
+                       clockgen_ddr_pll: clockgen-ddr-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32";
+
+                               clocks = <&clk_sysin>;
+                               clock-output-names = "clockgen-ddr0",
+                                                    "clockgen-ddr1";
+                       };
+               };
+
+               /*
+                * GPU PLL
+                */
+               clockgen-gpu@fd68ff00 {
+                       reg = <0xfd68ff00 0x910>;
+
+                       clockgen_gpu_pll: clockgen-gpu-pll {
+                               #clock-cells = <1>;
+                               compatible = "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32";
+
+                               clocks = <&clk_sysin>;
+                               clock-output-names = "clockgen-gpu-pll";
+                       };
                };
        };
 };