Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 struct regmap;
0003 
0004 /**
0005  * enum icst_control_type - the type of ICST control register
0006  */
0007 enum icst_control_type {
0008     ICST_VERSATILE, /* The standard type, all control bits available */
0009     ICST_INTEGRATOR_AP_CM, /* Only 8 bits of VDW available */
0010     ICST_INTEGRATOR_AP_SYS, /* Only 8 bits of VDW available */
0011     ICST_INTEGRATOR_AP_PCI, /* Odd bit pattern storage */
0012     ICST_INTEGRATOR_CP_CM_CORE, /* Only 8 bits of VDW and 3 bits of OD */
0013     ICST_INTEGRATOR_CP_CM_MEM, /* Only 8 bits of VDW and 3 bits of OD */
0014     ICST_INTEGRATOR_IM_PD1, /* Like the Versatile, all control bits */
0015 };
0016 
0017 /**
0018  * struct clk_icst_desc - descriptor for the ICST VCO
0019  * @params: ICST parameters
0020  * @vco_offset: offset to the ICST VCO from the provided memory base
0021  * @lock_offset: offset to the ICST VCO locking register from the provided
0022  *  memory base
0023  */
0024 struct clk_icst_desc {
0025     const struct icst_params *params;
0026     u32 vco_offset;
0027     u32 lock_offset;
0028 };
0029 
0030 struct clk *icst_clk_register(struct device *dev,
0031                   const struct clk_icst_desc *desc,
0032                   const char *name,
0033                   const char *parent_name,
0034                   void __iomem *base);
0035 
0036 struct clk *icst_clk_setup(struct device *dev,
0037                const struct clk_icst_desc *desc,
0038                const char *name,
0039                const char *parent_name,
0040                struct regmap *map,
0041                enum icst_control_type ctype);