/*
 * Copyright (C) 2013 STMicroelectronics (R&D) Limited
 *
 * 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/stih415-clks.h>

/ {
	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		/*
		 * Fixed 30MHz oscillator input to SoC
		 */
		clk_sysin: clk-sysin {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <30000000>;
		};

		/*
		 * ClockGenAs on SASG1
		 */
		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",
						     "clk-s-icn-if-1",
						     "clk-s-gmac0-phy",
						     "clk-s-nand-ctrl",
						     "", /* Reserved */
						     "clk-s-mii0-ref-out",
						     ""; /* clk-s-stac-sys */
						 /* Remaining outputs unused */
			};
		};

		/*
		 * ClockGenAs on MPE41
		 */
		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 = "clk-m-apb-pm", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     "clk-m-pp-dmu-0",
						     "clk-m-pp-dmu-1",
						     "clk-m-icm-disp",
						     ""; /* Unused */
			};

			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 = "", /* Unused */
						     "", /* 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-icn-dmu-0",
						     "clk-m-icn-dmu-1",
						     "", /* Unused */
						     "", /* Unused */
						     ""; /* Unused */
			};

			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 */
						     "", /* Unused */
						     "", /* Unused */
						     "clk-m-icn-eram",
						     "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 = "clk-m-fdma-12",
						     "clk-m-fdma-10",
						     "clk-m-fdma-11",
						     "clk-m-hva-lmi",
						     "clk-m-proc-sc",
						     "clk-m-tp",
						     "clk-m-icn-gpu",
						     "clk-m-icn-vdp-0";
			};

			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-icn-vdp-1",
						     "clk-m-icn-vdp-2",
						     "clk-m-icn-vdp-3",
						     "clk-m-prv-t1-bus",
						     "clk-m-icn-vdp-4",
						     "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",
						     "", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     "", /* Unused */
						     ""; /* 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 */
						     ""; /* Unused */
			};
		};

		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-0",
						     "clk-m-icn-bdisp-1";
			};

			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-hqvdp0 */
						     "", /* clk-m-icn-hqvdp1 */
						     "clk-m-icn-compo",
						     "", /* clk-m-icn-vdpaux */
						     "clk-m-icn-ts",
						     "clk-m-icn-reg-lp-10",
						     "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 */
						/* Remaining outputs unused */
			};
		};

		/*
		 * A9 PLL
		 */
		clockgen-a9@fdde00d8 {
			reg = <0xfdde00d8 0x70>;

			clockgen_a9_pll: clockgen-a9-pll {
				#clock-cells = <1>;
				compatible = "st,stih415-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@fdde00d8 {
			#clock-cells = <0>;
			compatible = "st,stih415-clkgen-a9-mux", "st,clkgen-mux";
			reg = <0xfdde00d8 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>;
		};
	};
};
