/*
 * Copyright (C) 2013 STMicroelectronics R&D Limited
 * <stlinux-devel@stlinux.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * 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 {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <30000000>;
		};

		/*
		 * 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: clk-m-a9-periphs {
			#clock-cells = <0>;
			compatible = "fixed-factor-clock";
			clocks = <&clk_m_a9>;
			clock-div = <2>;
			clock-mult = <1>;
		};

		/*
		 * Frequency synthesizers on the SASG2
		 */
		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 = "st,stih416-clkgenc-vcc-hd", "st,clkgen-mux";
			reg = <0xfe8308b8 0x4>; /* SYSCFG2558 */

			clocks = <&clk_sysin>,
				 <&clockgen_c 0>;
		};

		/*
		 * 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 = <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";
		};

		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 = <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";
			};
		};
	};
};
