Home | History | Annotate | Download | only in renesas
      1 /*
      2  * R-Car Gen2 Clock Pulse Generator
      3  *
      4  * Copyright (C) 2016 Cogent Embedded Inc.
      5  *
      6  * This program is free software; you can redistribute it and/or modify it
      7  * under the terms of the GNU General Public License version 2 as published
      8  * by the Free Software Foundation; version 2 of the License.
      9  */
     10 
     11 #ifndef __CLK_RENESAS_RCAR_GEN2_CPG_H__
     12 #define __CLK_RENESAS_RCAR_GEN2_CPG_H__
     13 
     14 enum rcar_gen2_clk_types {
     15 	CLK_TYPE_GEN2_MAIN = CLK_TYPE_CUSTOM,
     16 	CLK_TYPE_GEN2_PLL0,
     17 	CLK_TYPE_GEN2_PLL1,
     18 	CLK_TYPE_GEN2_PLL3,
     19 	CLK_TYPE_GEN2_Z,
     20 	CLK_TYPE_GEN2_LB,
     21 	CLK_TYPE_GEN2_ADSP,
     22 	CLK_TYPE_GEN2_SDH,
     23 	CLK_TYPE_GEN2_SD0,
     24 	CLK_TYPE_GEN2_SD1,
     25 	CLK_TYPE_GEN2_QSPI,
     26 	CLK_TYPE_GEN2_RCAN,
     27 };
     28 
     29 struct rcar_gen2_cpg_pll_config {
     30 	unsigned int extal_div;
     31 	unsigned int pll1_mult;
     32 	unsigned int pll3_mult;
     33 	unsigned int pll0_mult;		/* leave as zero if PLL0CR exists */
     34 };
     35 
     36 struct gen2_clk_priv {
     37 	void __iomem		*base;
     38 	struct cpg_mssr_info	*info;
     39 	struct clk		clk_extal;
     40 	struct clk		clk_extal_usb;
     41 	const struct rcar_gen2_cpg_pll_config *cpg_pll_config;
     42 };
     43 
     44 int gen2_clk_probe(struct udevice *dev);
     45 int gen2_clk_remove(struct udevice *dev);
     46 
     47 extern const struct clk_ops gen2_clk_ops;
     48 
     49 #endif
     50